Overview
OpenTelemetry is a vendor-neutral standard for collecting and exporting telemetry data. Control Plane can forward all Org logs to any OpenTelemetry-compatible target — an OpenTelemetry Collector or any backend that accepts logs over OTLP/HTTP — letting you route logs to a destination of your choice and fan them out from there. Follow the steps below to configure log shipping to an OpenTelemetry target.Step 1 - Prerequisites
- Endpoint: A reachable URL for your OpenTelemetry collector or OTLP/HTTP backend (see Endpoint Format).
- Authentication (optional): Either custom headers or an Opaque Secret holding an
Authorizationheader value, depending on what your target requires.
Step 2 - Configure External Logging
External logging can be configured by using either the UI Console or CLI.Enable Logging using the UI Console
- From the Control Plane Console UI, click on
Orgin the left menu. - Click
External Logsin the middle context menu. - Select
OpenTelemetryand fill out the endpoint and any headers or credentials your target requires. - Click
Save. - After the configuration is complete, log entries will begin forwarding to your OpenTelemetry target within a few minutes.
Enable Logging using the CLI
The external logging configuration can be created / updated using the CLI’scpln org patch ORG_NAME -f FILE.yaml command.
Below is an example of an Org manifest (in YAML). Edit and save the YAML as a file and use it as an input to the CLI’s cpln org patch ORG_NAME -f FILE.yaml command.
- Substitute:
ORG_NAME, theendpoint, and anyheadersorcredentialsyour target requires.
YAML
headers and credentials are both optional. Provide whichever your target requires (or neither for an unauthenticated endpoint).
Endpoint Format
Theendpoint is required. TLS and the port are derived from its format:
| Endpoint | TLS | Port | Notes |
|---|---|---|---|
https://host[:port]/path | On | From URL, else 443 | Recommended. The path (e.g. /v1/logs) is used as the logs URI. |
http://host[:port]/path | Off | From URL, else 80 | Unencrypted; use only for in-cluster collectors. |
host:port | On | As given | TLS is always enabled for this form. |
host | On | 443 | TLS enabled, default port. |
Authentication
Most targets require an authentication header. There are two ways to provide it:headers— a map of header name/value pairs sent on every export. Use this for any header your target expects, such asapi-key,x-…, orAuthorization. This is the most flexible option.credentials— a link to an Opaque Secret whose value is sent as theAuthorizationheader. Use this when you want to keep the credential in a secret rather than inline in the Org manifest.
When using
credentials, store the full Authorization header value, base64-encoded, in the Opaque Secret (set the secret’s encoding to base64). Control Plane base64-decodes the payload and sends the result as the Authorization header. A target that authenticates with a non-Authorization header must use headers instead.Forwarded Log Attributes
Each forwarded record carries the Control Plane log metadata as OpenTelemetry log attributes:| Attribute | Description |
|---|---|
org | Org name |
gvc | GVC name |
workload | Workload name |
version | Workload version |
replica | Replica name |
location | Location the log originated from |
provider | Cloud provider |
log | The log message body |
All logs continue to remain accessible through Control Plane, adhering to the current log retention policy.