OTel Collector
OpenTelemetry Collector offers a vendor-agnostic implementation of how to receive, process and export telemetry data. It can act as an intermediate layer to send data from different sources to GreptimeDB. Below is a sample configuration for sending data to GreptimeDB using OpenTelemetry Collector.
extensions:
basicauth/client:
client_auth:
username: <your_username>
password: <your_password>
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
exporters:
otlphttp/traces:
endpoint: 'http://127.0.0.1:4000/v1/otlp'
# auth:
# authenticator: basicauth/client
headers:
# x-greptime-db-name: '<your_db_name>'
x-greptime-pipeline-name: 'greptime_trace_v1'
tls:
insecure: true
otlphttp/logs:
endpoint: 'http://127.0.0.1:4000/v1/otlp'
# auth:
# authenticator: basicauth/client
headers:
# x-greptime-db-name: '<your_db_name>'
# x-greptime-log-table-name: '<table_name>'
# x-greptime-pipeline-name: '<pipeline_name>'
tls:
insecure: true
otlphttp/metrics:
endpoint: 'http://127.0.0.1:4000/v1/otlp'
# auth:
# authenticator: basicauth/client
headers:
# x-greptime-db-name: '<your_db_name>'
tls:
insecure: true
service:
# extensions: [basicauth/client]
pipelines:
traces:
receivers: [otlp]
exporters: [otlphttp/traces]
logs:
receivers: [otlp]
exporters: [otlphttp/logs]
metrics:
receivers: [otlp]
exporters: [otlphttp/metrics]
In the above configuration, we define a receiver otlp
that can receive data from OpenTelemetry. We also define three exporters: otlphttp/traces
, otlphttp/logs
, and otlphttp/metrics
, which send data to the OTLP endpoint of GreptimeDB.
Based on the otlphttp protocol, we have added some headers to specify certain parameters, such as x-greptime-pipeline-name
and x-greptime-log-table-name
:
- The
x-greptime-pipeline-name
header is used to specify the pipeline name to use, and, - the
x-greptime-log-table-name
header is used to specify the table name in GreptimeDB where the data will be written.
If you have enabled authentication in GreptimeDB, you need to use the basicauth/client
extension to handle basic authentication.
Here, we strongly recommend using different exporters to handle traces, logs, and metrics separately. On one hand, GreptimeDB supports some specific headers to customize processing flows; on the other hand, this also helps with data isolation.
For more about OpenTelemetry protocols, please read the doc.