• EnglishEspañol日本語한국어Português
  • Log inStart now

New Relic OTLP Troubleshooting

New Relic has supported native OTLP ingest for several years. In the process of working through support cases that come up from time to time, we've learned about common issues users face. For some, the problem is easy to identify and fix. Others are deviously tricky, given that the internet is unreliable and there are many components (software, networking, hardware, etc.) involved under the control of various parties, such as customers, New Relic, and public networking infrastructure outside the control of either. With so much complexity, configuration, and failure points, it can be difficult to determine which is at fault and how to best address.

Working through a support case can be time consuming and at times frustrating for customers (and for New Relic!). Therefore, we've put together this troubleshooting guide to help establish a shared understanding, and provide tools to self-diagnose and fix issues when possible.

First, please review New Relic OTLP configuration requirements and recommendations. It contains essential advice and context that anyone looking to use OTLP with New Relic should be aware of.

Next, see the sections below:

General troubleshooting

When you encounter an issue with the New Relic OTLP endpoint, first follow these basic troubleshooting steps. If you end up opening a support ticket, these are the first things we ask:

  1. Enable diagnostic logs. Ensure that your OTLP client has logging enabled such that you can see details about any errors which may be occruing. The mechanism for enabling logs varies by implementation. Please consult relevant docs.
  2. Test that New Relic's OTLP endpoint is reachable. A simple shell command curl http://otlp.nr-data.net from the machine in question can help determine if some local network configuration issue (i.e. firewall restriction) is preventing connectivity to New Relic.
  3. Check for NrIntegrationError events. New Relic OTLP ingest performs minimal validation synchronously before returning a success status code. If you don't see indications of export errors in your application logs, but don't see data in New Relic, try querying for NrIntegrationError. There may be issues with your data which were detected during asynchronous validation.
  4. Determine if the problem is localized. Often errors are localized to a specific application or environment. In these cases, it's useful to evaluate the differences between the areas which are problematic and properly functioning.
  5. Look for signs of invalid API key. The New Relic OTLP endoint requires setting an api-key header. Invalid or missing API keys are a common issue which present with HTTP 403 or 401 status codes, or gRPC Unauthenticated or PermissionDenied status codes. If you see these, check that your API key is valid and is being properly set.
  6. Check if the export succeeds after retry. We recommend that retry is enabled, and expect export attempts to occasionally initially fail with transient errors but succeed after retrying. However, we do have an SLA. If you suspect that transient errors are frequent enough that they exceed our SLA, please open a support case.
  7. Check for signs that transient errors are not being retried. Despite our best efforts, there may be corner cases where the New Relic OTLP endpoint returns non-retriable status codes for transient errors. If you believe you've encountered this scenario, please open a support case.

Issue catalog

The table below catalogs issues we've seen customers encounter with the New Relic OTLP endpoint. Many are straight forward to resolve with proper configuration. The Fingerprint column shows a typical log when an application encounters the particular class of issue. See the Known resolution and Notes columns for mitigation steps.

OTLP Protocol VersionTypeLanguage / EcosystemFingerprintKnown ResolutionNotes
HTTP401 - UnauthorizedJavaio.opentelemetry.exporter.internal.http.HttpExporter - Failed to export spans. Server responded with HTTP status code 401.Include API KeyMissing api-key header
HTTP401 - UnauthorizedCollectorExporting failed. The error is not retryable. Dropping data. {"kind": "exporter", "data_type": "traces", "name": "otlphttp", "error": "Permanent error: error exporting items, request to https://otlp.nr-data.net/v1/traces responded with HTTP Status Code 401, Message=, Details=[]", "dropped_items": 4}Include API KeyMissing api-key header
HTTP401 - UnauthorizedGofailed to upload metrics: failed to send metrics to https://otlp.nr-data.net/v1/metrics: 401 UnauthorizedInclude API KeyMissing api-key header
HTTP403 - ForbiddenJavaio.opentelemetry.exporter.internal.http.HttpExporter - Failed to export spans. Server responded with HTTP status code 403.Verify API keyInvalid api-key header
HTTP403 - ForbiddenJavaExporting failed. The error is not retryable. Dropping data. {"kind": "exporter", "data_type": "traces", "name": "otlphttp", "error": "Permanent error: error exporting items, request to https://otlp.nr-data.net/v1/traces responded with HTTP Status Code 403, Message=, Details=[]", "dropped_items": 14}Verify API keyInvalid api-key header
HTTP403 - ForbiddenGotraces export: failed to send to https://otlp.nr-data.net/v1/traces: 403 ForbiddenVerify API keyInvalid api-key header
HTTP403 - Forbidden.NETExporter failed send data to collector to {0} endpoint. Data will not be sent. Exception: {1}{https://otlp.nr-data.net:4317/v1/traces}{System.Net.Http.HttpRequestException: Response status code does not indicate success: 403 (Forbidden).Verify API keyInvalid api-key header
HTTPTimeoutJavaio.opentelemetry.exporter.internal.http.HttpExporter - Failed to export spans. The request could not be executed. Full error message: timeoutTune batching / timeoutOccurs after export times out. Check timeout settings and client network status.
If you've ruled out client side network and configuration, open support case.
HTTPTimeoutCollectormax elapsed time expired failed to make an HTTP request: Post \"https://otlp.nr-data.net/v1/traces\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)Tune batching / timeoutTypically occurs after retry attempts fail and export times out. Can be related to client network, client retry / timeout configuration, or New Relic network / servers.
If you've ruled out client side network and configuration, open support case.
HTTPTimeoutGofailed to upload metrics: context deadline exceeded: retry-able request failureTune batching / timeoutOccurs after export times out. Check timeout settings and client network status.
If you've ruled out client side network and configuration, open support case.
HTTPRate limitCollectorExporting failed. Will retry the request after interval. {"kind": "exporter", "data_type": "metrics", "name": "otlphttp", "error": "Throttle (29s), error: error exporting items, request to https://otlp.nr-data.net:443/v1/metrics responded with HTTP Status Code 429", "interval": "29s"}Tune batchingRate limit exceeded.
Adjust batching configuration to reduce request rate.
gRPCCode 2 - Unknown
Timeout
Javaio.opentelemetry.exporter.internal.grpc.GrpcExporter - Failed to export spans. Server responded with gRPC status code 2. Error message: timeoutTune batching / timeoutOccurs after export times out. Check timeout settings and client network status.
If you've ruled out client side network and configuration, open support case.
gRPCCode 2 - Unknown
HTTP 500
Collectorrpc error: code = Unknown desc = unexpected HTTP status code received from server: 500 (Internal Server Error); malformed header: missing HTTP content-typeNew Relic networking vendor produced non-retriable status code for transient error.
If this happens repeatedly, open support case.
gRPCCode 2 - Unknown
HTTP 530
Collectorrpc error: code = Unknown desc = unexpected HTTP status code received from server: 530 (); transport: received unexpected content-type \"text/html; charset=UTF-8\"New Relic networking vendor produced non-retriable status code for transient error.
If this happens repeatedly, open support case.
gRPCCode 4 - DeadlineExceededCollectorrpc error: code = DeadlineExceeded desc = context deadline exceededTune batching / timeoutTypically occurs after retry attempts fail and export times out. Can be related to client network, client retry / timeout configuration, or New Relic network / servers.
If you've ruled out client side network and configuration, open support case.
gRPCCode 7 - UnauthenticatedJavaio.opentelemetry.exporter.internal.grpc.GrpcExporter - Failed to export spans. Server responded with gRPC status code 7.Include API KeyMissing api-key header
gRPCCode 7 - Unauthenticated.NETExporter failed send data to collector to {0} endpoint. Data will not be sent. Exception: {1}{https://otlp.nr-data.net:4317/}{Grpc.Core.RpcException: Status(StatusCode="Unauthenticated", Detail="")Include API KeyMissing api-key header
gRPCCode 8 - ResourceExhaustedCollectorrpc error: code = ResourceExhausted desc = Too many requests", "dropped_items": 1024Tune batchingRate limit exceeded.
Adjust batching configuration to reduce request rate.
gRPCCode 13 - InternalJavaio.opentelemetry.exporter.internal.grpc.GrpcExporter - Failed to export spans. Server responded with gRPC status code 13.Not enough information to diagnose. Could be New Relic networking vendor produced non-retriable status code for a transient error.
If this happens repeatedly, open a support case.
gRPCCode 13 - Internal
HTTP 400
Collectorrpc error: code = Internal desc = unexpected HTTP status code received from server: 400 (Bad Request)New Relic networking vendor produced non-retriable status code for a transient error.
If this happens repeatedly, open a support case.
gRPCCode 14 - Unavailable
Connection reset
Collectorrpc error: code = Unavailable desc = error reading from server: read tcp 100.127.0.171:47470->162.247.241.110:4317: read: connection reset by peerTune retryShould solve with retry. Ensure collector has sufficient resources to handle retry backpressure.
gRPCCode 14 - Unavailable
HTTP 502
Collectorrpc error: code = Unavailable desc = unexpected HTTP status code received from server: 502 (Bad Gateway); transport: received unexpected content-type "text/html"Tune retryShould solve with retry. Ensure collector has sufficient resources to handle retry backpressure.
gRPCCode 14 - Unavailable
HTTP 503
Collectorrpc error: code = Unavailable desc = unexpected HTTP status code received from server: 503 (Service Unavailable)Tune retryShould solve with retry. Ensure collector has sufficient resources to handle retry backpressure.
gRPCCode 16 - PermissionDeniedJavaio.opentelemetry.exporter.internal.grpc.GrpcExporter - Failed to export spans. Server responded with gRPC status code 16.Verify API keyInvalid api-key header
gRPCCode 16 - PermissionDenied.NETExporter failed send data to collector to {0} endpoint. Data will not be sent. Exception: {1}{https://otlp.nr-data.net:4317/}{Grpc.Core.RpcException: Status(StatusCode="PermissionDenied", Detail="")Verify API keyInvalid api-key header
Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.