写入与查询
注意
本章内容目前仍处于实验阶段,在未来的版本中可能会有所调整。
本节我们将从 Trace 数据的写入和查询开始使用 GreptimeDB.
GreptimeDB 并未为 Trace 数据引入新的协议,而是尽可能使用以后的广泛接受的协议。
写入
GreptimeDB 使用 OpenTelemetry 的 OTLP/HTTP 协议作为主要的 Trace 数据写入协议。 Trace 也是 OpenTelemetry 中最广为接受的子协议,包含了良好的生态。
OpenTelemetry SDK
如果你在应用中使用了 OpenTelemetry 的 SDK/API 库,你可以直接配置一个 OTLP/HTTP 的导出模块来将 trace 数据写入 GreptimeDB。
在我们的 OpenTelemetry 协议文档 里 介绍了关于这部分 接口的使用,包含相应的写入路径和配置项。
OpenTelemetry Collector
OpenTelemetry Collector 是一个厂商中 立的用于收集和处理 OpenTelemetry 数据的服务。本文我们将介绍如何使用 OpenTelemetry Collector 将 traces 数据写入到 GreptimeDB。
启动 OpenTelemetry Collector
你可以使用如下命令来快速启动一个 OpenTelemetry Collector 实例,此时 collector 会监听 4317(gRPC) 和 4318(HTTP) 端口:
docker run --rm \
--network host \
-p 4317:4317 \
-p 4318:4318 \
-v $(pwd)/config.yaml:/etc/otelcol-contrib/config.yaml \
otel/opentelemetry-collector-contrib:0.123.0
其中 config.yaml 文件内容如下:
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
exporters:
otlphttp:
endpoint: "http://greptimedb:4000/v1/otlp" # GreptimeDB 的 OTLP 路径
headers:
x-greptime-pipeline-name: "greptime_trace_v1"
#authorization: "Basic <base64(username:password)>"
tls:
insecure: true
service:
pipelines:
traces:
receivers: [otlp]
exporters: [otlphttp]