Skip to content

OTLP export silently drops application name and labels #344

Description

@korniltsev-grafanista

Found while reviewing #335.

In OTLP mode (PYROSCOPE_FORMAT=otlp), PYROSCOPE_APPLICATION_NAME, static labels, PYROSCOPE_LABELS, and dynamic labels from Pyroscope.LabelsWrapper are all silently ignored. PyroscopeExporter sends the raw async-profiler OTLP payload, which does not include service.name, so profiles land under service_name="unknown_service". This is currently acknowledged only in a comment inside the integration test.

Suggested improvements:

  • Document this limitation in the README's OTLP section.
  • Log a warning at startup when an application name or labels are configured together with PYROSCOPE_FORMAT=otlp, so users aren't left wondering where their data went.
  • Relatedly, AsyncProfilerDelegate.dumpImpl still calls Pyroscope.LabelsWrapper.dump() in OTLP mode and the result is discarded. If draining the label state is intentional, fine; otherwise it is wasted work.

cc @arnabnandy7

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