Skip to content

Export profiles using async-profiler via OTLP #2804

@kamphaus

Description

@kamphaus

Component(s)

No response

Is your feature request related to a problem? Please describe.

I'd like to profile Java applications while linking traces and profiles.

Describe the solution you'd like

I'd like to add a profiling component which uses async-profiler that emits profiles from the SDK via OTLP when profiling is enabled (eg. by setting OTEL_PROFILES_EXPORTER=otlp).

Describe alternatives you've considered

I considered using Grafana's Pyroscope integration with the Java Otel SDK https://github.com/grafana/otel-profiling-java. It uses async-profiler to export profiles and a SpanProcessor extension to link spans and profiles. However Pyroscope does not export profiles via OTLP.

I also considered using inferred-spans component which also uses async-profiler v4.
However inferred-spans exports traces and not profiles.

Additional context

Async-profiler v4 supports exporting profiles in OTLP format: https://github.com/async-profiler/async-profiler/blob/master/docs/OutputFormats.md

Tip

React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding +1 or me too, to help us triage it. Learn more here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions