OpenTelemetry Troubleshooting
When no data is reported from your app to AppSignal, please check the common problems below.
No data is being reported
The OpenTelemetry export endpoint is misconfigured
OpenTelemetry apps default to exporting data to http://localhost:4318
.
AppSignal requires a custom endpoint to send data to the AppSignal collector.
The AppSignal collector can run as a hosted or self-hosted type. Read our Hosted vs Self-hosted page for more information about the difference between these collector types.
Follow the help for the collector type your application uses below:
- Hosted collector
- Self-hosted collector, installed as a Linux package and Docker image
Hosted collector
When using the hosted collector, make sure to use the collector's URL shown in the add app wizard as the OpenTelemetry exporter's endpoint.
In the add app wizard select the language your application uses that AppSignal supports for OpenTelemetry, or use the "More languages" option, to view the hosted collector endpoint.
It may be in a code example, assigned to a variable named endpoint
.
The hosted collector's format is as follows:
https://COLLECTOR-ID.REGION.appsignal-collector.net
The exporter endpoint needs to be configured either via the OTEL_EXPORTER_OTLP_ENDPOINT
environment variable or in the app itself, where OpenTelemetry is configured.
Refer to the language-specific installation guide your application is using for more detail.
Self-hosted collector
When using a self-hosted collector, the OpenTelemetry exporter endpoint needs to point to the location the collector is running.
If the collector is running on the same host (installed using the Linux package) the hostname is localhost
.
If the collector runs in a Docker container or Kubernetes cluster, the hostname may differ based on the specified service name.
We recommend naming the service appsignal
and updating the exporter's endpoint to match the appsignal
hostname.
- Hostname, several values are possible:
- Linux package:
localhost:8099
- Docker image:
appsignal:8099
- Linux package:
- Examples:
http://localhost:8099
, orhttp://appsignal:8099
on Docker.
For some languages, in the OpenTelemetry SDK the URI scheme (http
/https
) should not be set as part of the OpenTelemetry exporter endpoint. Please refer to the installation guide for the language your application uses.
The exporter endpoint needs to be configured either via the OTEL_EXPORTER_OTLP_ENDPOINT
environment variable or in the app itself, where OpenTelemetry is configured.
Refer to the language-specific installation guide your application is using for more detail.
Exporter endpoints
Some OpenTelemetry exporters may need to be configured per OpenTelemetry data type to specific endpoints.
When configuring a trace/span exporter, use the trace endpoint, for metrics, use the metrics endpoint, etc.
These endpoints on the AppSignal collector are:
- Trace data:
/v1/traces
or,/v1/traces
- Metric data:
/v1/metrics
or,/v1/metrics
- Log data:
/v1/logs
or,/v1/logs
The OpenTelemetry export protocol is not set to http/protobuf
The AppSignal collector only supports the OpenTelemetry Protocol (OTLP) over HTTP with Protobuf encoding.
Required config:
- Protocol format:
http/protobuf
If OpenTelemetry in your app is using gRPC or JSON as an export format, update the configuration to use the HTTP/protobuf format.
To configure the exporter protocol format, follow the installation steps for the language your application is using.
The self-hosted collector is not running or is unreachable
To send data to AppSignal, the self-hosted collector needs to have started correctly. Export errors visible in the application logs may indicate the collector isn't running. To check if it's running, check the collector logs.
The collector logs can be found in:
- The container logs for the Docker container installation method. Check your container manager for the best way to access container logs.
- The system logs for the Linux package installation method.
If the collector is running but can't be reached, check internal network settings to see if the application is able to reach the collector's host.
Missing or incomplete data reported
If you're only seeing some data and are missing more data about what your application is doing, it's likely due to missing OpenTelemetry instrumentation in your application.
OpenTelemetry does not automatically instrument everything out of the box. To collect data from specific frameworks and libraries, you'll need to install and configure additional instrumentation libraries.
To report more data, install the appropriate OpenTelemetry instrumentation libraries for the corresponding libraries used in your application.
Refer to add additional OpenTelemetry instrumentation guide for your application's language on how to install more instrumentation packages.