Ingesting Metrics To CtrlB via OpenTelemetry (OTLP)
This document provides instructions for configuring OpenTelemetry Collector and SDKs to forward metrics data to CtrlB instances. OpenTelemetry provides a vendor-neutral standard for observability data collection and export.
Protocol Specifications
The CtrlB platform supports OpenTelemetry Protocol (OTLP) metrics ingestion with the following specifications:
- Ingestion Protocol: OTLP over HTTP (recommended)
- Endpoint URL:
http(s)://<INSTANCE_HOST>/api/<ORG_ID>/v1/metrics - Supported Formats:
- JSON
- Protobuf
- Content-Type Headers:
application/jsonapplication/x-protobuf
- Authentication Method: HTTP Basic Authentication via Authorization header
Basic Configuration
Create a configuration file named collector.yaml:
receivers:
otlp:
protocols:
http:
endpoint: 0.0.0.0:4318
grpc:
endpoint: 0.0.0.0:4317
processors:
batch: {}
exporters:
otlphttp:
endpoint: http://<INSTANCE_HOST>/api/<ORG_ID>
headers:
Authorization: Basic <API_TOKEN>
service:
pipelines:
metrics:
receivers: [otlp]
processors: [batch]
exporters: [otlphttp]
Application Configuration
HTTP Protocol Configuration
export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
If using OTEL collector:
export OTEL_EXPORTER_OTLP_ENDPOINT=http://<COLLECTOR_IP>:4318
export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://<COLLECTOR_IP>:4318/v1/metrics
If sending directly:
export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://<INSTANCE_HOST>/api/<ORG_ID>/v1/metrics
Implementation Notes
CtrlB automatically:
- Detects content type (JSON vs Protobuf)
- Decodes OTLP payload
- Processes metrics using internal handlers
Batch processor improves throughput and reduces overhead.
Validation Procedures
Service Initialization
Run OpenTelemetry Collector:
docker run --rm \
-p 4317:4317 -p 4318:4318 \
-v $PWD/collector.yaml:/etc/otelcol/config.yaml \
otel/opentelemetry-collector-contrib:latest
- Ensure metrics are being sent to the Collector from an instrumented application or configured receiver
- Verify the Collector is exporting metrics to CtrlB via the configured exporter
Verification Process
- Access CtrlB dashboard
- Filter metrics by service or resource attributes
- Verify data within last few minutes
Troubleshooting Guide
Authentication Errors
HTTP 401 Unauthorized
- Validate Authorization header
- Confirm API token encoding
Content-Type Issues
Invalid Payload Format
Ensure correct headers:
application/jsonapplication/x-protobuf
Endpoint Errors
HTTP 404
Verify endpoint:
/api/<ORG_ID>/v1/metrics
Decode Errors
- JSON parsing failures -> invalid payload
- Protobuf decode failures -> mismatched encoding
Performance Issues
- Enable batch processor
- Tune batch size and timeout
- Scale Collector resources