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

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:
  • Examples:
    • http://localhost:8099, or http://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:

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.