Snippets · Destinations
Send to New Relic over OTLP
New Relic accepts OTLP natively. The otlphttp exporter sends all three signals with the ingest license key in the api-key header; this config uses the EU endpoint, otlp.eu01.nr-data.net.
- Source
- OTLP
- Components
- otlpbatchmemory_limiterotlphttp
- Destination
- New Relic
OpenTelemetry Collector
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
processors:
memory_limiter:
check_interval: 1s
limit_percentage: 80
spike_limit_percentage: 25
batch:
timeout: 5s
exporters:
otlphttp/newrelic:
# The base URL: the exporter appends /v1/traces, /v1/metrics, /v1/logs.
endpoint: https://otlp.eu01.nr-data.net
headers:
api-key: ${env:NEW_RELIC_LICENSE_KEY}
compression: gzip
sending_queue:
enabled: true
queue_size: 5000
retry_on_failure:
enabled: true
initial_interval: 5s
max_interval: 30s
max_elapsed_time: 300s
service:
pipelines:
logs:
receivers: [otlp]
processors: [memory_limiter, batch]
exporters: [otlphttp/newrelic]
traces:
receivers: [otlp]
processors: [memory_limiter, batch]
exporters: [otlphttp/newrelic]
metrics:
receivers: [otlp]
processors: [memory_limiter, batch]
exporters: [otlphttp/newrelic]
LinkMesh
LinkMesh has no built-in template for this job. Add it as a custom destination in raw mode, with otlphttp as the component type and this body - the same lines as under otlphttp/newrelic in the collector config:
endpoint: https://otlp.eu01.nr-data.net
headers:
api-key: ${env:NEW_RELIC_LICENSE_KEY}
compression: gzip
sending_queue:
enabled: true
queue_size: 5000
retry_on_failure:
enabled: true
initial_interval: 5s
max_interval: 30s
max_elapsed_time: 300s
How custom components are validated and rolled out: create a custom destination.
Download config.yamlValidated with otelcol-contrib v0.161.0 on 2026-10-26
Complete config files, each checked with the collector's own validate command (otelcol-contrib v0.161.0).
The gotcha
endpoint is the base URL; the exporter appends /v1/traces, /v1/metrics and /v1/logs itself. In our test an endpoint that already ended in /v1/logs produced requests to /v1/logs/v1/logs. Use the base URL, not a signal-specific one.
Manage this across a fleet
LinkMesh manages collector configuration across a fleet from one self-hosted control plane, so a change like this is made once rather than host by host. The first 25 Collectors are free after a no-card registration in the OpenSight Customer Portal (5 without one).
Doing this in LinkMesh: Create a custom source or destination
Related snippets
- Deduplicate repeated log recordsCollapse a burst of identical errors into one record with a count, instead of storing it a thousand times.
- Drop sensitive attributes before exportDelete named attributes, and every captured HTTP request header, from logs, spans and metrics before they are exported.
- Drop all telemetry from a serviceDrop everything a load generator or synthetic probe sends, by service.name, across logs, metrics and traces.
- Drop health-check logs and spansStop paying to store Kubernetes probe traffic: drop /healthz, /readyz and /livez logs and spans on the collector.