Skip to content
This repository was archived by the owner on Mar 9, 2021. It is now read-only.
This repository was archived by the owner on Mar 9, 2021. It is now read-only.

[kn-admin] Proposal: support downloading profiling data for knative components #66

@xliuxu

Description

@xliuxu

Currently we are using profiling data to debug knative performance issues. I think it would be nice to support download related profiling data directly using kn admin plugin.
Here are three steps to get a profiling data for knative components:

  1. Enable tracing by updating the config-observability ConfigMap and setting profiling.enable = "true"
  2. Enable port-forwarding to get access to Knative Serving pods.
  3. Download specific profiling data at http://localhost:8008/debug/pprof/

There are 8 types of profiling data could be fetched according to https://github.com/knative/serving/blob/master/test/performance/profiling.md

  • heap
  • profile
  • block
  • trace
  • allocs
  • mutex
  • goroutine
  • threadcreate

For profile and trace, a optional seconds parameter could be specified.

I think for kn-admin plugin, we could download profiling data in one command like

  • kn admin profiling --enable/--disable to enable/disable profiling.
  • kn admin profiling -t/--target autoscaler --heap to download heap profile of auto scaler. Will enable profiling if it is currently not enabled. The same goes for the following commands.
  • kn admin profiling -t/--target networking-istio --trace 2m for a 2 minutes CPU trace profile of networking-istio.
  • kn admin profiling -t/--target activator --all to download all profiling data avaliable for all activator pods with a default 30s duration for tracing and profile.

If there are more than one pod avaliable, the default behaviour should download profiling data for all pods. Also we can set a specific pod name using -t/--target flag

  • kn admin profiling -t/--target activator-5979f56548 --all to download all profiling data avaliable for pod activator-5979f56548.

The plugin should be responsible to provide a meaningful filename for downloaded profiling data. e.g.
2020-07-09T10:09:48Z-activator-5979f56548-54crk-heap.pb.gz. A -d flag could be supported to specify the download directory.

cc @zhanggbj

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions