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=valueheaders 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:4318Platform 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 Type | Endpoint |
|---|---|
| Coralogix Send-Your-Data API key | ingress.<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 Type | Endpoint |
|---|---|
| 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 Type | Endpoint |
|---|---|
| Elastic encoded API key, Elastic APM API key, or Elastic APM secret token | https://<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 Type | Endpoint |
|---|---|
| Grafana Cloud instance ID plus API token encoded as Basic auth | otlp-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-encodedinstance_id:api_tokenpair
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 Type | Endpoint |
|---|---|
| Honeycomb API key | api.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 Type | Endpoint |
|---|---|
| New Relic license key | otlp.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_HEADERSwhen the provider needs a header name other thanAuthorization. - Boost sanitizes spans before export, then fans the sanitized spans out to the Boost endpoint and your external endpoint.
- Set
EXTERNAL_OTEL_ENDPOINTonly when you want spans mirrored outside the default Boost telemetry destination.
Frequently Asked Questions
This section provides answers to frequently asked questions.
FAQs
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
Updated about 21 hours ago
