Exporting Boost Telemetry to Observability Platforms

Mirror JFrog Boost OTLP spans to your observability backend.

JFrog Boost always exports sanitized OpenTelemetry Protocol (OTLP) spans to the default Boost telemetry destination. You can also export to your own observability backend by configuring an export with environment variables in the shell or CI job that runs Boost.

How Boost Chooses the External Destination

Optional export to your observability backend uses the following environment variables:

  • EXTERNAL_OTEL_ENDPOINT: Enables the additional customer-owned OTLP destination.
  • EXTERNAL_OTEL_HEADERS: Sends comma-separated key=value headers and takes precedence over the token helper.
  • EXTERNAL_OTEL_TOKEN: Convenience shortcut for Authorization=Bearer <TOKEN>.

Regarding the endpoint format, host:port applies to OTLP/gRPC. Use http://host or https://host for OTLP/HTTP endpoints. For other Boost settings, see Configuring JFrog Boost.

Quick Setup

OTLP export uses the same environment variables shown in Platform Examples. Each placeholder corresponds to a value from your observability provider. Set those variables in the shell, CI job, or agent environment that runs Boost.

# generic OTLP/gRPC collector
export EXTERNAL_OTEL_ENDPOINT=otel-collector.example.com:4317
export EXTERNAL_OTEL_HEADERS='Authorization=Bearer <COLLECTOR_TOKEN>'

Where:

  • <COLLECTOR_TOKEN>: Bearer token your OTLP collector accepts
# local OTLP/HTTP collector
export EXTERNAL_OTEL_ENDPOINT=http://localhost:4318

Platform Examples

The following sections describe setup examples for supported platforms:

Coralogix

Coralogix accepts OTLP gRPC traces at the ingress endpoint when you authenticate with a Send-Your-Data API key.

Token TypeEndpoint
Coralogix Send-Your-Data API keyingress.<CORALOGIX_DOMAIN>:443
export EXTERNAL_OTEL_ENDPOINT=ingress.<CORALOGIX_DOMAIN>:443
export EXTERNAL_OTEL_HEADERS='Authorization=Bearer <CORALOGIX_SEND_YOUR_DATA_API_KEY>'

Where:

  • <CORALOGIX_DOMAIN>: Region domain for your Coralogix account
  • <CORALOGIX_SEND_YOUR_DATA_API_KEY>: Send-Your-Data API key from Coralogix

The domain placeholder corresponds to your region, such as eu1.coralogix.com or us1.coralogix.com.

Datadog

The most common OTLP setup points Boost at a local Datadog Agent. Accounts enabled for direct OTLP ingest can send traces to Datadog without a local Agent.

Token TypeEndpoint
Datadog API key for direct ingest (no app header for local Agent)http://localhost:4318
# local Datadog Agent
export EXTERNAL_OTEL_ENDPOINT=http://localhost:4318

# direct OTLP traces ingest
export EXTERNAL_OTEL_ENDPOINT=<DATADOG_PROVIDED_OTLP_TRACES_HTTPS_ENDPOINT>
export EXTERNAL_OTEL_HEADERS='dd-api-key=<DD_API_KEY>,dd-otlp-source=<DATADOG_ASSIGNED_SOURCE>'

Where:

  • <DATADOG_PROVIDED_OTLP_TRACES_HTTPS_ENDPOINT>: OTLP traces HTTPS endpoint from Datadog
  • <DD_API_KEY>: Datadog API key for direct ingest
  • <DATADOG_ASSIGNED_SOURCE>: OTLP source value Datadog assigns to your account

Elastic Cloud or Elastic APM

Elastic Cloud-managed OTLP and Elastic APM Server accept OTLP traces with an encoded API key, APM API key, or APM secret token.

Token TypeEndpoint
Elastic encoded API key, Elastic APM API key, or Elastic APM secret tokenhttps://<ELASTIC_OTLP_OR_APM_ENDPOINT>
export EXTERNAL_OTEL_ENDPOINT=https://<ELASTIC_OTLP_OR_APM_ENDPOINT>
export EXTERNAL_OTEL_HEADERS='Authorization=ApiKey <ELASTIC_ENCODED_API_KEY>'

Where:

  • <ELASTIC_OTLP_OR_APM_ENDPOINT>: Elastic Cloud OTLP or APM Server hostname
  • <ELASTIC_ENCODED_API_KEY>: Elastic encoded API key for OTLP ingest

For APM Server secret tokens, use Authorization=Bearer.

Grafana Cloud

Grafana Cloud provides the OTLP endpoint and Basic auth token on the OpenTelemetry connection tile.

Token TypeEndpoint
Grafana Cloud instance ID plus API token encoded as Basic authotlp-gateway-<GRAFANA_REGION>.grafana.net:443
export EXTERNAL_OTEL_ENDPOINT=otlp-gateway-<GRAFANA_REGION>.grafana.net:443
export EXTERNAL_OTEL_HEADERS='Authorization=Basic <BASE64_INSTANCE_ID_COLON_TOKEN>'

Where:

  • <GRAFANA_REGION>: Grafana Cloud region slug from the OpenTelemetry connection tile
  • <BASE64_INSTANCE_ID_COLON_TOKEN>: Base64-encoded instance_id:api_token pair

For Boost, the gRPC host:443 form is the most portable example.

Honeycomb

Honeycomb ingests OTLP traces when the request includes a Honeycomb API key in x-honeycomb-team.

Token TypeEndpoint
Honeycomb API keyapi.honeycomb.io:443
export EXTERNAL_OTEL_ENDPOINT=api.honeycomb.io:443
export EXTERNAL_OTEL_HEADERS='x-honeycomb-team=<HONEYCOMB_API_KEY>'

Where:

  • <HONEYCOMB_API_KEY>: Honeycomb API key for your environment

For the EU, use api.eu1.honeycomb.io:443.

New Relic

New Relic ingests OTLP traces when the request includes your license key in api-key.

Token TypeEndpoint
New Relic license keyotlp.nr-data.net:443
export EXTERNAL_OTEL_ENDPOINT=otlp.nr-data.net:443
export EXTERNAL_OTEL_HEADERS='api-key=<NEW_RELIC_LICENSE_KEY>'

Where:

  • <NEW_RELIC_LICENSE_KEY>: New Relic license key for OTLP ingest

For the EU, use otlp.eu01.nr-data.net:443.

Where to Set the Variables

Local coding agents inherit OTLP settings from the shell environment that launches the editor or agent. After you change shell startup files, restart the editor so new agent shells pick up the external OTLP variables.

In GitHub Actions, store provider tokens in repository or organization secrets and map them into the job env block that runs Boost. Workflow files should reference secrets rather than real token values. For more information, see Use JFrog Boost in GitHub Actions.

env:
  EXTERNAL_OTEL_ENDPOINT: otlp.nr-data.net:443
  EXTERNAL_OTEL_HEADERS: api-key=${{ secrets.NEW_RELIC_LICENSE_KEY }}

Where:

  • secrets.NEW_RELIC_LICENSE_KEY: GitHub Actions secret that stores your New Relic license key

Security Notes

  • Provider tokens should have the narrowest ingest permissions available.
  • Prefer EXTERNAL_OTEL_HEADERS when the provider needs a header name other than Authorization.
  • Boost sanitizes spans before export, then fans the sanitized spans out to the Boost endpoint and your external endpoint.
  • Set EXTERNAL_OTEL_ENDPOINT only when you want spans mirrored outside the default Boost telemetry destination.

Frequently Asked Questions

This section provides answers to frequently asked questions.

plusFAQs
Q: Which environment variables send JFrog Boost telemetry to an external observability backend?

A: Set EXTERNAL_OTEL_ENDPOINT to enable export. Use EXTERNAL_OTEL_HEADERS or EXTERNAL_OTEL_TOKEN for authentication headers. See How Boost Chooses the External Destination.

Q: Does external OTLP export replace the default Boost telemetry destination?

A: No. Boost sanitizes spans and sends them to both the default Boost endpoint and your external endpoint when export is configured. See Security Notes.

Q: How do I configure OTLP export for a local coding agent?

A: Export the OTLP variables in the shell environment your editor inherits. Restart the editor after you change shell startup files so new agent shells pick up the settings. See Where to Set the Variables.

Q: How do I export Boost telemetry from GitHub Actions?

A: Store provider tokens in GitHub Actions secrets and map them into the job env block that runs Boost. See Where to Set the Variables and Use JFrog Boost in GitHub Actions.

Related Topics


Did this page help you?