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

# OTLP

> Logs, metrics, and traces ingested over the OpenTelemetry Protocol from instrumented apps.

The OTLP integration requires CXDOT Collector 1.4.0 or greater.

[OpenTelemetry Protocol (OTLP)](https://opentelemetry.io/docs/specs/otlp/) is
OpenTelemetry's vendor-neutral protocol for transmitting metrics, logs, and traces.
Use the OTLP integration with the Chronosphere XDOT Collector to ingest telemetry from
instrumented apps.

## Supported telemetry types

The OTLP integration supports these telemetry types:

| Type    | Supported |
| ------- | --------- |
| Logs    | Yes       |
| Metrics | Yes       |
| Traces  | Yes       |
| Events  | No        |

## Prerequisites

The OTLP integration has the following prerequisites:

* Instrument your apps with an OpenTelemetry SDK or another client that
  exports OTLP over gRPC or HTTP.
* Configure network access from your apps to an OTLP endpoint for the collector.

## Configure

To configure the OTLP integration, follow these steps:

1. Configure each app's OTLP exporter endpoint. When the collector runs as a DaemonSet,
   use the node's host IP so the app sends to the collector on the same node. Send OTLP
   over gRPC on port `4317` or HTTP on port `4318`. If you use the admission controller
   for routing, add the
   `admission.cxdot.paloaltonetworks.com/enabled: "true"` label to each app's pod
   template and recreate existing pods.

### Validate

To validate the OTLP integration, follow these steps:

1. Generate telemetry from an instrumented app.

2. In Live Telemetry Analyzer, filter for `cxdot.integration.name=otlp`. Confirm that
   the metric names from your app appear.

3. In Metrics Explorer, run the following query:

   ```text theme={null}
   count by ("service.name") ({"cxdot.integration.name"="otlp"})
   ```

   Confirm that the query returns the expected time series for each instrumented
   service.

For more information about diagnosing a failing integration, see
[Troubleshooting](https://docs.chronosphere.io/ingest/cxdot-collector/troubleshooting).

## Configuration reference

Configure one OTLP integration instance with the following settings. In Helm values, place these
settings under `config.integrations.otlp`. In a Collector configuration file, place them under
`cxdot.integrations.otlp`.

### Optional settings

* **`enabled`**
  Type: `boolean`. Optional. Default: `true`.
  Whether to enable this OTLP integration instance. If true, the Collector accepts OTLP
  telemetry on the configured endpoints. If false, the Collector doesn't run this integration
  instance.

* **`grpc`**
  Type: `object`. Optional.
  Settings for receiving telemetry over OTLP/gRPC.

* **`grpc.endpoint`**
  Type: `string`. Optional. Default: `0.0.0.0:4317`.
  Network address and port where the Collector accepts OTLP/gRPC connections. Use an address in
  `host:port` format.

* **`grpc.max_connection_age`**
  Type: `duration`. Optional. Default: `30m`.
  Maximum time that an OTLP/gRPC connection remains open before the client reconnects. Periodic
  reconnection helps distribute clients across Collector replicas behind a load-balancing
  service.

* **`http`**
  Type: `object`. Optional.
  Settings for receiving telemetry over OTLP/HTTP.

* **`http.endpoint`**
  Type: `string`. Optional. Default: `0.0.0.0:4318`.
  Network address and port where the Collector accepts OTLP/HTTP connections. Use an address in
  `host:port` format.


## Related topics

- [Use OpenTelemetry protocol endpoints](/ingest/metrics-traces/otel/otlp-endpoints.md)
- [Ingest DogStatsD metrics with the OpenTelemetry Collector](/ingest/metrics-traces/otel/ingest-dogstatsd.md)
- [Configure your OpenTelemetry Collector](/ingest/metrics-traces/otel/otel-ingest.md)
- [Integrate with Observability Platform](/integrate.md)
