OTLP HTTP Exporter
The OTLP HTTP exporter sends telemetry data using the OpenTelemetry Protocol over HTTP. This is the primary exporter for sending data to KloudMate.Configuration Parameters
| Parameter | Description | Default |
|---|---|---|
endpoint | HTTP endpoint URL | Required |
headers | Custom HTTP headers (e.g., for authentication) | {} |
compression | Compression algorithm (gzip, none) | gzip |
timeout | Request timeout | 30s |
sending_queue.enabled | Enable persistent queue | false |
sending_queue.num_consumers | Number of parallel consumers | 10 |
sending_queue.queue_size | Maximum queue size | 1000 |
retry_on_failure.enabled | Enable retry logic | true |
retry_on_failure.initial_interval | Initial retry delay | 5s |
retry_on_failure.max_interval | Maximum retry delay | 30s |
retry_on_failure.max_elapsed_time | Maximum total retry time | 5m |
Example with All Options
Use Cases
- KloudMate Platform: Primary method for sending data to KloudMate
- HTTP Proxies: Works through HTTP proxies unlike gRPC
- Firewall Compatibility: HTTP/HTTPS typically has better firewall compatibility
- Load Balancers: Easier to load balance than gRPC connections
OTLP Exporter (gRPC)
The OTLP gRPC exporter sends telemetry data using gRPC protocol.Configuration Parameters
| Parameter | Description | Default |
|---|---|---|
endpoint | gRPC endpoint (host:port) | Required |
tls.insecure | Skip TLS verification | false |
tls.ca_file | CA certificate file | - |
tls.cert_file | Client certificate file | - |
tls.key_file | Client key file | - |
compression | Compression (gzip, none) | gzip |
keepalive.time | Keepalive ping interval | 30s |
keepalive.timeout | Keepalive timeout | 10s |
When to Use gRPC vs HTTP
Use OTLP HTTP When
- Sending to KloudMate
- Behind HTTP proxies
- Firewall restrictions
- Simpler deployment
Use OTLP gRPC When
- Maximum performance needed
- Low latency requirements
- High throughput scenarios
- Direct collector-to-collector
Debug Exporter
The debug exporter outputs telemetry data to the console, useful for development and troubleshooting.Verbosity Levels
| Level | Description | Output |
|---|---|---|
basic | Minimal output | Data type counts only |
normal | Standard output | Summary information |
detailed | Full output | Complete telemetry data |
Sampling Parameters
sampling_initial: Number of initial items to logsampling_thereafter: Log every Nth item after initial sampling
Example Output
- Testing receiver configurations
- Verifying processor transformations
- Debugging pipeline issues
- Development and local testing
Nop Exporter
The no-operation exporter silently drops all data without processing or outputting it.- Testing receiver and processor configurations without sending data
- Temporary disabling of data export during troubleshooting
- Performance testing of receiver/processor throughput
- Development scenarios
Multiple Exporters
You can configure multiple exporters in a single pipeline to send data to multiple destinations.- Primary and backup destinations
- Multi-tenancy (sending to different platforms)
- Compliance (archiving to long-term storage)
- Development (debug exporter + production exporter)
Each exporter processes data independently. If one exporter fails, others continue to operate.
Exporter Queue and Retry Configuration
Persistent Queue
Enable persistent queuing to prevent data loss during network outages or backend unavailability.- Data persists across collector restarts
- Survives temporary network failures
- Handles backend downtime gracefully
Retry Configuration
- Initial failure triggers retry after
initial_interval - Subsequent retries use exponential backoff
- Backoff capped at
max_interval - Stops retrying after
max_elapsed_time
Authentication Methods
API Key Authentication
Basic Authentication
Custom Headers
TLS Configuration
Server Certificate Verification
Mutual TLS (mTLS)
Skip Verification (Development Only)
Performance Tuning
High Throughput Configuration
Low Latency Configuration
Resource-Constrained Environments
Monitoring Exporter Health
Exporters expose metrics that help monitor their health and performance:| Metric | Description |
|---|---|
otelcol_exporter_sent_spans | Number of spans successfully sent |
otelcol_exporter_sent_metric_points | Number of metric points sent |
otelcol_exporter_sent_log_records | Number of log records sent |
otelcol_exporter_send_failed_spans | Number of spans that failed to send |
otelcol_exporter_send_failed_metric_points | Number of metric points that failed |
otelcol_exporter_queue_size | Current queue size |
otelcol_exporter_queue_capacity | Maximum queue capacity |
Enable collector self-monitoring to track exporter metrics and detect issues early.
Best Practices
Use environment variables for endpoints and credentials
Keep configuration portable and secure by externalizing sensitive values
Enable persistent queues for production
Prevent data loss during network issues or collector restarts
Configure appropriate timeouts
Balance between allowing time for slow networks and detecting failures quickly
Troubleshooting
Exporter Not Sending Data
- Check endpoint connectivity:
curl ${KM_COLLECTOR_ENDPOINT} - Verify authentication headers are correct
- Check collector logs for error messages
- Enable debug exporter to verify data reaches the pipeline
High Queue Size
- Backend may be slow or unavailable
- Increase
num_consumersfor more parallelism - Check network latency to backend
- Verify backend can handle the data volume
Frequent Timeouts
- Increase
timeoutvalue - Check network latency and stability
- Reduce batch size in batch processor
- Verify backend health and capacity
Next Steps
Configure Extensions
Add health checks and storage capabilities
Pipeline Configuration
Learn how to build complete pipelines