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.

Required config:

  • Hostname: localhost (or appsignal on Docker)
  • Port: 8099
  • Examples: http://localhost:8099 (or http://appsignal:8099 on Docker)

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.

Additionally, specific exporters may need to be configured per data type to specific endpoints:

  • Trace data:
    • http://localhost:8099/v1/traces or,
    • http://appsignal:8099/v1/traces
  • Metric data:
    • http://localhost:8099/v1/metrics or,
    • http://appsignal:8099/v1/metrics
  • Log data:
    • http://localhost:8099/v1/logs or,
    • http://appsignal:8099/v1/logs

The exporter 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.

The OpenTelemetry export protocol is not set to http/protobuf

The AppSignal collector only supports OTLP over HTTP with Protobuf encoding.

Required config:

  • Protocol format: http/protobuf

If OpenTelemetry in your app is using gRPC or JSON, 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 collector is not running or is unreachable

To send data to AppSignal, the 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:

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 data about things 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 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 the installation steps for your application's language on how to install more instrumentation packages.