Skip to content

Releases: GoogleCloudPlatform/khi

KHI v0.57.2

Choose a tag to compare

@github-actions github-actions released this 21 Jul 15:34
19d0dfe

This change includes organizing the top page README and minor frontend useful feature improvements.

Check our new KHI introductory video out!

623308348-591357d0-9402-4dd1-b30f-6ae7e25b5cc9.mp4

What's Changed

Bug Fixes 🐛

  • Fix cluster name normalization for GKE on AWS/Azure in node log parsers (#838) by @kyasbal in #845

Documentation 📝

  • improved the top page document by @kyasbal in #839
  • docs: update video thumbnail link, refine execution guide, and add job mode guide by @kyasbal in #843
  • minor style improvement on README by @kyasbal in #844
  • Added KHI introduction video by @kyasbal in #840
  • Change asset link in README by @kyasbal in #841
  • Replace asset link in README.ja.md by @kyasbal in #842

Other Changes 🛠

  • feat(web): make log view left columns sticky on horizontal scroll by @kyasbal in #849
  • feat(web): add collapse and expand feature for timeline hierarchy by @kyasbal in #850

Full Changelog: v0.57.1...v0.57.2

KHI v0.57.1

Choose a tag to compare

@github-actions github-actions released this 16 Jul 07:03
8f77f3d

What's Changed

Bug Fixes 🐛

  • Fix #836: Refine global keyboard shortcuts to prevent unexpected focus loss by @kyasbal in #837

Other Changes 🛠

  • feat(job-mode): support file input tasks in job mode CLI command generation by @Ackberry in #829

New Contributors

Full Changelog: v0.57.0...v0.57.1

KHI v0.57.0

Choose a tag to compare

@github-actions github-actions released this 09 Jul 07:32
dc25435

What's Changed

Development Environment 💻

  • Increased NODE_OPTION environment variable to prevent ng lint failure by @kyasbal in #833

Documentation 📝

  • Added release note for 0.57.0 and fixed minor style issue by @kyasbal in #835

Other Changes 🛠

  • chore(storybook): unify and reorganize storybook folder hierarchy by @kyasbal in #830
  • showing tooltip based on managedField metadata by @kyasbal in #831
  • feat: support parsing and displaying mutating webhook annotations by @kyasbal in #834
image

Full Changelog: v0.56.7...v0.57.0

KHI v0.56.7

Choose a tag to compare

@github-actions github-actions released this 03 Jul 05:39
7062fc9

What's Changed

Bug Fixes 🐛

  • test: add task graph resolution conformance test for all inspection types by @kyasbal in #824

Other Changes 🛠

  • refactor: remove redundant V2 suffix from Go and TypeScript codebases, docs, and skills by @kyasbal in #822

Full Changelog: v0.56.6...v0.56.7

KHI v0.56.6

Choose a tag to compare

@github-actions github-actions released this 01 Jul 23:43
393b9fb

What's Changed

Feature 🎉

  • feat: show CLI command example to run query parameters in job mode by @kyasbal in #821

Bug Fixes 🐛

Other Changes 🛠

Full Changelog: v0.56.5...v0.56.6

KHI v0.56.5

Choose a tag to compare

@github-actions github-actions released this 01 Jul 01:02
ef349ba

What's Changed

Bug Fixes 🐛

  • fixed owner timelines sorted by log time by @kyasbal in #819

Full Changelog: v0.56.4...v0.56.5

KHI v0.56.4

Choose a tag to compare

@github-actions github-actions released this 30 Jun 03:19
ddbd757

What's Changed

Improvement 🎉

  • feat: infer missing pod/binding resources and pod phase revisions from container log labels by @kyasbal in #817
  • feat: implemented the YAML viewer shared component for KHI by @kyasbal in #818

Other Changes 🛠

  • refactor: return TimelineMapperResult from V2 timeline mappers and update tests by @kyasbal in #816

Note: 0.56.3 is skipped for several reasons. Use 0.56.2 if you want to use a prior version.

Full Changelog: v0.56.2...v0.56.4

KHI v0.56.2

Choose a tag to compare

@github-actions github-actions released this 26 Jun 08:38
b0ea29e

What's Changed

Bug Fixes 🐛

  • feat(inspection): add missing log revision states and refactor GCP cluster/nodepool operation mappers by @kyasbal in #806
  • feat(core,api): introduce inspection lifecycle context and gRPC connection pooling by @kyasbal in #807
  • added RevisionStateK8sResourceExistingLogNotFound by @kyasbal in #809
  • fixed pod phase mapper bug by @kyasbal in #811
  • fix condition mapper can be not reflecting deletion time correctly by @kyasbal in #812
  • supported multiple response flag on csm access log by @kyasbal in #814

Other Changes 🛠

  • Added new sort policy for k8s resources by @kyasbal in #805
  • build(deps): update Go and npm dependencies to resolve open Dependabot PRs by @kyasbal in #810
  • show ??:??:?? when the given timestamp is a placeholder by @kyasbal in #813

Full Changelog: v0.56.1...v0.56.2

KHI v0.56.1

Choose a tag to compare

@github-actions github-actions released this 25 Jun 01:28
43f49aa

What's Changed

New feature 🎉

Bug Fixes 🐛

  • Enhance GCP operation log visualization and handle missing start logs by @kyasbal in #802
  • fix(web): report granular download progress and show initial progressbar by @kyasbal in #804

CI/CD ⚙️

Full Changelog: v0.56.0...v0.56.1

KHI v0.56.0

Choose a tag to compare

@github-actions github-actions released this 23 Jun 08:00
fa419fe

KHI v0.56.0

.khi file format structure change

Previously .khi file format used JSON for storing its metadata and gzipped raw array buffer for long text part. This limits the maximum size of the logs due to the max string length accepted on V8.
This version changed .khi to use protocol buffer based file schema. It allows performant serialization/deserialization while we maintain file schema interface across backend and frontend.
Protocol buffer has limitation on the max size per single message, thus KHI concatenate multiple protos on simple KHI's container file format.

Comparison by file format update

scenario log volume old format size new format size reduction ratio
basic scenario 223464 logs 128.2MB 19.4MB x 6.6
larger scenario 1386843 logs 885.3MB 144.4MB x6.1

This is not only for the file size issue. KHI needs decompress string data from the file at the beginning of the load to perform filtering and consume a lot of memory(The larger scenario data with old format couldn't be loaded on my environment.) This allows frontend to open larger log data.

Note that even if we support larger log volume, still it's recommended to set appropriate filter to query. Larger logs takes longer time to filter and the inspection experience would be worse.

UI changes

More types of timelines

KHI was initially designed only for visualizing Kubernetes logs. Thus timeline layer count was fixed and it always has the structure APIVersion -> Kind -> Namespace -> Resource -> SubResource.
However, now we have a lot of types of visualization are placed with hierarchical relationships such as .status.conditions or .metadata.ownerReference. We recently added support for CSM TD resources or Managed airflow. These were needed to be placed on timeline with mapping their concept to kubernetes concept forcibly.
New change allows defining new timeline type for each parsers and the count of layers of timeline hierarchy is not limited.
image

With this change, Kubernetes resource hierarchy was changed to cluster name -> api version -> kind -> namespace -> resource -> subresource with aiming to support multi clusters.
image

New timeline filters

By the change of timeline types, KHI no longer guarantee given data contains namespace or kind timeline. It needed more widely applicable filtering mechanism.

image

CEL based filtering

image

The new filtering system is based on CEL based highly flexible filtering system. Now advanced user can input the filter directly. One of the example of this usage is to filter timelines by its manifest property.
The screenshot captures filtering timelines which has status.qosClass = Burstable. This allows us to find resources with more complex conditions.

Severity filtering

image

KHI hasn't supported severity based filtering. This was not from the architectural limit, but more like my own ideological policy. But now I supported it as there were many requests on it.
But note that severities in distributed system sometimes become misleading because each component decides its severity from its own perspective. Severity is not a universal criteria of logs.

Log body search and diff body search

image image

Our log or diff components hasn't provided searching capability. It lead user to use in-browser search but it sometimes hit other elements not on the logs or the manifest.

Graph view integration on the dockable window

hevc.mov

Now KHI's graph view is integrated on the dockable window. It allows us to see the diagram along with the timeline.

What's Changed

Bug Fixes 🐛

  • fix composer parsers to use GCPMainMessageFieldSet because log.MainMessageFieldSet is no longer used by default by @kyasbal in #792
  • fixed CSM access log timeline style by @kyasbal in #796
  • fix style override didn't reflect its status to preview by @kyasbal in #794

CI/CD ⚙️

  • fix build script failure for releasing by @kyasbal in #790
  • Simplified and optimized release workflows running on Cloud Build by @kyasbal in #797

Documentation 📝

  • docs: fix typo in development guide (automativally → automatically) by @manumishra12 in #799

Other Changes 🛠

New Contributors

Full Changelog: v0.55.2...v0.56.0