> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# OpenTelemetry

Reporting application data to AppSignal through OpenTelemetry involves more installation steps than usual.
Please ensure you follow all the steps carefully to set it up correctly.

## Install the AppSignal collector

To report data to AppSignal, you need to install the AppSignal collector via one of the following installation methods:

* [Hosted collector](/collector/hosted-vs-self-hosted): have AppSignal host the collector.
* [Linux package](/collector/installation/linux-package): run the collector on the host you want to monitor.
* [Docker image](/collector/installation/docker-image): run the collector in a Docker container to connect to other containers.
* [Platform as a Service](/collector/installation/platform-as-a-service): run the collector in a Docker container, hosted by your hosting provider.

If you have more than one application, or instances of an application, we recommend installing the collector to your infrastructure on its own instance, which all applications can report to. This will improve our reporting as we can piece together instrumentation data across different applications (distributed tracing). It is also more resource intensive to install the collector separately on each host.

## Configuring the AppSignal collector

<Tip>
  You do not need to configure the collector when using AppSignal's hosted
  collector.
</Tip>

When configuring the collector, use the organization-level Push API key from the [API keys settings page](https://appsignal.com/redirect-to/organization?to=admin/api_keys). This will authenticate requests with AppSignal. Without a Push API key the collector will not start.

<CodeGroup>
  ```toml title="Linux package" theme={null}
  # /etc/appsignal-collector.conf
  push_api_key = "0000-0000-0000-0000"
  ```

  ```bash title="Docker run" theme={null}
  docker run \
    --env APPSIGNAL_PUSH_API_KEY="0000-0000-0000-0000" \
    --publish "8099:8099" \
    appsignal/collector
  ```

  ```yaml title="Docker Compose" theme={null}
  version: "3.8"

  services:
    appsignal-collector:
      image: appsignal/collector:latest
      environment:
        - APPSIGNAL_PUSH_API_KEY="0000-0000-0000-0000"
  ```
</CodeGroup>

## Install OpenTelemetry for your application

To install the OpenTelemetry packages in your app, follow the instructions for the language your app uses:

* [Ruby](/opentelemetry/installation/ruby)
* [Elixir](/opentelemetry/installation/elixir)
* [Node.js](/opentelemetry/installation/nodejs)
* [Python](/opentelemetry/installation/python)
* [Go](/go/installation)
* [PHP](/php/installation)
* [Java](/java/installation)
* [Vercel](/vercel/traces#using-the-instrumentation-package)

Make sure to follow the instructions, including installing any additional packages needed to have OpenTelemetry instrument the frameworks and libraries that your application uses.

For other languages, you can follow the installation instructions in the [OpenTelemetry documentation](https://opentelemetry.io/docs/) for that language, alongside with our [language-agnostic generic installation instructions](/opentelemetry/installation/generic). You might also find it useful to use our installation instructions for the languages we support as reference.
