Skip to content

Add workload-level profiling (draft — provisory) - #1054

Draft
artursarlo wants to merge 1 commit into
masterfrom
workload_level_profiling
Draft

artursarlo wants to merge 1 commit into
masterfrom
workload_level_profiling

Conversation

@artursarlo

Copy link
Copy Markdown

⚠️ Draft / provisory — not yet ready for review. Opening early to run more precise end-to-end tests against upstream before requesting review. Scope, test plan, and this description will be refined.

Brings Pinterest's workload-level profiling feature onto upstream as a single, self-consistent commit.

The workload code is entangled with the PMU, metrics-publisher, and mTLS work at the import/runtime level, so this syncs the whole dynamic-profiling subsystem forward as a coherent unit (rather than a partial slice that wouldn't build):

  • Heartbeat workload inventory collector (namespace/pod/container/process discovery; configurable workload name/kind label keys) + spec.
  • Queue-based command control, continuous & ad-hoc profiling slots, heartbeat perf limits as CLI args.
  • Multi-PMU perf event detection/manager.
  • Metrics publisher for heartbeat error-budget/SLI reporting.
  • mTLS support for the agent heartbeat client.

requirements.txt keeps upstream's cpuid pin and adds bitmath (used by the memory manager).

Verified: full-package import sweep passes (0 failures); workload fast tests (tests_fast) pass (50).

Co-authored with Pinterest contributors (see commit trailers).

Sync Pinterest's dynamic-profiling subsystem forward onto upstream as a
coherent, self-consistent unit so the workload-level profiling feature
builds and runs against intel/gprofiler master.

This brings the workload inventory feature together with the supporting
subsystems it depends on at runtime:

- Workload-level profiling: heartbeat workload inventory collector
  (namespace/pod/container/process discovery, configurable workload
  name/kind label keys), spec, and fast spec tests.
- Heartbeat / dynamic profiling: queue-based command control, continuous
  and ad-hoc profiling slots, heartbeat perf limits as CLI args.
- PMU: multi-PMU perf event detection and manager.
- Metrics: metrics publisher for heartbeat error-budget/SLI reporting.
- mTLS: mutual TLS support for the agent heartbeat client.

The dynamic-profiling core hard-depends on the PMU and metrics modules,
so they are included to keep the import graph consistent with the fork's
tested code. requirements.txt keeps upstream's cpuid pin and adds bitmath
(used by the memory manager). Verified: full-package import sweep passes
and the workload fast tests (tests_fast) pass.

Co-authored-by: Lucas <lpenhademoura@pinterest.com>
Co-authored-by: ashokchatharajupalli <achatharajupalli@pinterest.com>
Co-authored-by: prashantpatel <prashantpatel@pinterest.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant