OpenObserve Docs
IngestionProfiles

OTLP Profiles Ingestion

Send profiles to OpenObserve over OTLP, the same protocol used for logs, metrics, and traces.

OTLP Profiles is Alpha

The signal is still Alpha. Use otelcol-contrib 0.148 or later, and start it with --feature-gates=+service.profilesSupport.

Authorization

HTTP and gRPC both send Authorization: Basic <base64(email:password)>. Generate the value with:

echo -n 'your-email:your-password' | base64

You can also copy the endpoint and header from Data Sources → Custom → Profiles.

OTLP/HTTP

FieldValue
Endpointhttps://<your-openobserve-host>/api/<your-org>/v1/profiles
Authorization headerBasic <base64(email:password)>
stream-name headeroptional; defaults to default
service.nameCollector resource processor; most profilers omit it
receivers:
  otlp:
    protocols:
      http:
        endpoint: 0.0.0.0:4318

processors:
  resource:
    attributes:
      - key: service.name
        value: your-service
        action: upsert

exporters:
  otlp_http/openobserve:
    profiles_endpoint: http://<your-openobserve-host>/api/<your-org>/v1/profiles
    headers:
      Authorization: Basic <paste-from-Data-Sources>
      stream-name: default

service:
  pipelines:
    profiles:
      receivers: [otlp]
      processors: [resource]
      exporters: [otlp_http/openobserve]
otelcol-contrib --feature-gates=+service.profilesSupport --config=otelcol-config.yaml

OTLP/gRPC

Default port is 5081 (ZO_GRPC_PORT).

FieldValue
Endpoint<your-openobserve-host>:5081
Authorization headerBasic <base64(email:password)>
organization headeryour-org
stream-name headeroptional; defaults to default
tls.insecurefalse / true
service.nameCollector resource processor; most profilers omit it
receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317

processors:
  resource:
    attributes:
      - key: service.name
        value: your-service
        action: upsert

exporters:
  otlp/openobserve:
    endpoint: <your-openobserve-host>:5081
    headers:
      Authorization: "Basic <paste-from-Data-Sources>"
      organization: <your-org>
      stream-name: default
    tls:
      insecure: true

service:
  pipelines:
    profiles:
      receivers: [otlp]
      processors: [resource]
      exporters: [otlp/openobserve]
otelcol-contrib --feature-gates=+service.profilesSupport --config=otelcol-config.yaml

Next steps

Need some help?

Was this page helpful?

Last updated on

On this page