# OpenTelemetry (OTLP)

### Supported Platforms

<table><thead><tr><th width="253.94140625">Platform</th><th>Metrics</th><th>Logs</th><th>Traces</th></tr></thead><tbody><tr><td>Linux</td><td>✓</td><td>✓</td><td>✓</td></tr><tr><td>Windows</td><td>✓</td><td>✓</td><td>✓</td></tr><tr><td>macOS</td><td>✓</td><td>✓</td><td>✓</td></tr><tr><td>Kubernetes Node (DaemonSet)</td><td>✓</td><td>✓</td><td>✓</td></tr><tr><td>Kubernetes Gateway</td><td>✓</td><td>✓</td><td>✓</td></tr><tr><td>OpenShift 4 Node (DaemonSet)</td><td>✓</td><td>✓</td><td>✓</td></tr><tr><td>OpenShift Gateway</td><td>✓</td><td>✓</td><td>✓</td></tr></tbody></table>

### Configuration Table

| Parameter              | Type                | Default                         | Description                                                                                                                           |
| ---------------------- | ------------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| telemetry\_types       | `telemetrySelector` | `["Logs", "Metrics", "Traces"]` | Choose Telemetry Type.                                                                                                                |
| listen\_address        | `string`            | "0.0.0.0"                       | The IP address to listen on.                                                                                                          |
| grpc\_port             | `int`               | 4317                            | TCP port to receive OTLP telemetry using the gRPC protocol. The port used must not be the same as the HTTP port. Set to 0 to disable. |
| http\_port             | `int`               | 4318                            | TCP port to receive OTLP telemetry using the HTTP protocol. The port used must not be the same as the gRPC port. Set to 0 to disable. |
| enable\_tls            | `bool`              | false                           | Whether or not to use TLS.                                                                                                            |
| insecure\_skip\_verify | `bool`              | false                           | Enable to skip TLS certificate verification.                                                                                          |
| ca\_file               | `string`            |                                 | Certificate authority used to validate the OTLP server's TLS certificate.                                                             |
| cert\_file             | `string`            |                                 | A TLS certificate used for client authentication if mutual TLS is enabled.                                                            |
| key\_file              | `string`            |                                 | A TLS private key used for client authentication if mutual TLS is enabled.                                                            |

### Example Configuration

The OTLP source type does not have any required fields. By default, the OTLP source will listen on ports 4317/gRPC and 4318/HTTP on all IP addresses without TLS.

<figure><img src="/files/OzYjFCEiR6ok6glHyJrq" alt="Bindplane docs - OpenTelemetry (OTLP) - image 1"><figcaption></figcaption></figure>

### Kubernetes

The OTLP source type supports Kubernetes, OpenShift Node (DaemonSet), and Gateway collectors. Applications within the cluster can forward metrics, logs, and traces to the collectors using the clusterIP services.

#### Prerequisites

* Bindplane v1.31.0 or newer

#### Configuration

The OTLP source type does not require additional configuration. It can be attached to any Kubernetes, OpenShift Node (DaemonSet), or Gateway configuration.

The following endpoints can forward telemetry to the managed Node (DaemonSet) collectors.

<table><thead><tr><th width="80.53125">Protocol</th><th width="103.47265625">Service</th><th>Endpoint</th></tr></thead><tbody><tr><td>gRPC</td><td>clusterIP</td><td><code>bindplane-node-agent.bindplane-agent.svc.cluster.local:4317</code></td></tr><tr><td>gRPC</td><td>headless clusterIP</td><td><code>bindplane-node-agent-headless.bindplane-agent.svc.cluster.local:4317</code></td></tr><tr><td>HTTP</td><td>clusterIP</td><td><code>http://bindplane-node-agent.bindplane-agent.svc.cluster.local:4318</code></td></tr></tbody></table>

The following endpoints can forward telemetry to the managed Gateway agents.

<table><thead><tr><th width="79.8125">Protocol</th><th width="103.18359375">Service</th><th>Endpoint</th></tr></thead><tbody><tr><td>gRPC</td><td>clusterIP</td><td><code>bindplane-gateway-agent.bindplane-agent.svc.cluster.local:4317</code></td></tr><tr><td>gRPC</td><td>headless clusterIP</td><td><code>bindplane-gateway-agent-headless.bindplane-agent.svc.cluster.local:4317</code></td></tr><tr><td>HTTP</td><td>clusterIP</td><td><code>http://bindplane-gateway-agent.bindplane-agent.svc.cluster.local:4318</code></td></tr></tbody></table>

It is a matter of preference if you should forward telemetry to the DaemonSet or Gateway collectors. It is recommended to use the Gateway collector, if DaemonSet resource consumption is a concern, as the Gateway collector can scale independent of cluster size.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.bindplane.com/integrations/sources/opentelemetry-otlp.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
