# otlp_grpc

> For the complete documentation index, see [llms.txt](https://docs.redpanda.com/llms.txt). Component-specific: [cloud-data-platform-full.txt](https://docs.redpanda.com/cloud-data-platform-full.txt)

---
title: otlp_grpc
latest-operator-version: v26.1.4
latest-console-tag: v3.7.3
latest-connect-version: 4.93.0
latest-redpanda-tag: v26.1.9
docname: connect/components/outputs/otlp_grpc
page-component-name: cloud-data-platform
page-version: master
page-component-version: master
page-component-title: Cloud
page-relative-src-path: connect/components/outputs/otlp_grpc.adoc
page-edit-url: https://github.com/redpanda-data/cloud-docs/edit/main/modules/develop/pages/connect/components/outputs/otlp_grpc.adoc
page-git-created-date: "2026-01-23"
page-git-modified-date: "2026-05-26"
---

<!-- Source: https://docs.redpanda.com/cloud-data-platform/develop/connect/components/outputs/otlp_grpc.md -->

**Type:** Output ▼

[Output](https://docs.redpanda.com/cloud-data-platform/develop/connect/components/outputs/otlp_grpc/)[Input](https://docs.redpanda.com/cloud-data-platform/develop/connect/components/inputs/otlp_grpc/)

**Available in:** Cloud, [Self-Managed](https://docs.redpanda.com/connect/components/outputs/otlp_grpc/%20%22View%20the%20Self-Managed%20version%20of%20this%20component%22)

Send OpenTelemetry traces, logs, and metrics via OTLP/gRPC protocol.

Sends OpenTelemetry telemetry data to a remote collector via OTLP/gRPC protocol.

Accepts batches of Redpanda OTEL v1 protobuf messages (spans, log records, or metrics) and converts them to OTLP format for transmission to OpenTelemetry collectors.

#### Common

```yml
outputs:
  label: ""
  otlp_grpc:
    endpoint: "" # No default (required)
    max_in_flight: 64
```

#### Advanced

```yml
outputs:
  label: ""
  otlp_grpc:
    endpoint: "" # No default (required)
    headers: {}
    timeout: 30s
    compression: gzip
    tls:
      enabled: false
      skip_cert_verify: false
      cert_file: ""
      key_file: ""
    tcp:
      connect_timeout: 0s
      keep_alive:
        idle: 15s
        interval: 15s
        count: 9
      tcp_user_timeout: 0s
    oauth2:
      enabled: false
      client_key: ""
      client_secret: ""
      token_url: ""
      scopes: []
      endpoint_params: {}
    max_in_flight: 64
```

## [](#input-format)Input format

Expects messages in Redpanda OTEL v1 protobuf format with metadata:

-   `signal_type`: "trace", "log", or "metric"


Each batch must contain messages of the same signal type. The entire batch is converted to a single OTLP export request and sent via gRPC.

## [](#authentication)Authentication

Supports multiple authentication methods:

-   Bearer token authentication (via `auth_token` field)

-   OAuth v2 (via `oauth2` configuration block)


> 📝 **NOTE**
>
> OAuth2 requires TLS to be enabled.

## [](#fields)Fields

### [](#compression)`compression`

Compression type for gRPC requests. Options: 'gzip' or 'none'.

**Type**: `string`

**Default**: `gzip`

**Options**: `gzip`, `none`

### [](#endpoint)`endpoint`

The gRPC endpoint of the remote OTLP collector.

**Type**: `string`

### [](#headers)`headers`

A map of headers to add to the gRPC request metadata.

This field supports [interpolation functions](https://docs.redpanda.com/cloud-data-platform/develop/connect/configuration/interpolation/#bloblang-queries).

**Type**: `string`

**Default**: `{}`

```yaml
# Examples:
headers:
  X-Custom-Header: value
  traceparent: ${! tracing_span().traceparent }
```

### [](#max_in_flight)`max_in_flight`

The maximum number of messages to have in flight at a given time. Increase this to improve throughput.

**Type**: `int`

**Default**: `64`

### [](#oauth2)`oauth2`

Allows you to specify open authentication via OAuth version 2 using the client credentials token flow.

**Type**: `object`

### [](#oauth2-client_key)`oauth2.client_key`

A value used to identify the client to the token provider.

**Type**: `string`

**Default**: `""`

### [](#oauth2-client_secret)`oauth2.client_secret`

A secret used to establish ownership of the client key.

> ⚠️ **CAUTION**
>
> This field contains sensitive information that usually shouldn’t be added to a configuration directly. For more information, see [Manage Secrets](https://docs.redpanda.com/cloud-data-platform/develop/connect/configuration/secret-management/) before adding it to your configuration.

**Type**: `string`

**Default**: `""`

### [](#oauth2-enabled)`oauth2.enabled`

Whether to use OAuth version 2 in requests.

**Type**: `bool`

**Default**: `false`

### [](#oauth2-endpoint_params)`oauth2.endpoint_params`

A list of optional endpoint parameters, values should be arrays of strings.

**Type**: `object`

**Default**: `{}`

```yaml
# Examples:
endpoint_params:
  audience:
    - https://example.com
  resource:
    - https://api.example.com
```

### [](#oauth2-scopes)`oauth2.scopes[]`

A list of optional requested permissions.

**Type**: `array`

**Default**: `[]`

### [](#oauth2-token_url)`oauth2.token_url`

The URL of the token provider.

**Type**: `string`

**Default**: `""`

### [](#tcp)`tcp`

TCP socket configuration.

**Type**: `object`

### [](#tcp-connect_timeout)`tcp.connect_timeout`

Maximum amount of time a dial will wait for a connect to complete. Zero disables.

**Type**: `string`

**Default**: `0s`

### [](#tcp-keep_alive)`tcp.keep_alive`

TCP keep-alive probe configuration.

**Type**: `object`

### [](#tcp-keep_alive-count)`tcp.keep_alive.count`

Maximum unanswered keep-alive probes before dropping the connection. Zero defaults to 9.

**Type**: `int`

**Default**: `9`

### [](#tcp-keep_alive-idle)`tcp.keep_alive.idle`

Duration the connection must be idle before sending the first keep-alive probe. Zero defaults to 15s. Negative values disable keep-alive probes.

**Type**: `string`

**Default**: `15s`

### [](#tcp-keep_alive-interval)`tcp.keep_alive.interval`

Duration between keep-alive probes. Zero defaults to 15s.

**Type**: `string`

**Default**: `15s`

### [](#tcp-tcp_user_timeout)`tcp.tcp_user_timeout`

Maximum time to wait for acknowledgment of transmitted data before killing the connection. Linux-only (kernel 2.6.37+), ignored on other platforms. When enabled, keep\_alive.idle must be greater than this value per RFC 5482. Zero disables.

**Type**: `string`

**Default**: `0s`

### [](#timeout)`timeout`

Timeout for gRPC requests.

**Type**: `string`

**Default**: `30s`

### [](#tls)`tls`

TLS configuration for gRPC client.

**Type**: `object`

### [](#tls-cert_file)`tls.cert_file`

Path to the TLS certificate file for client authentication.

**Type**: `string`

**Default**: `""`

### [](#tls-enabled)`tls.enabled`

Enable TLS connections.

**Type**: `bool`

**Default**: `false`

### [](#tls-key_file)`tls.key_file`

Path to the TLS key file for client authentication.

**Type**: `string`

**Default**: `""`

### [](#tls-skip_cert_verify)`tls.skip_cert_verify`

Skip certificate verification (insecure).

**Type**: `bool`

**Default**: `false`