07.4、配置Alloy接收OpenTelemetry信号
配置 Alloy 接收 OpenTelemetry 信号
OTLP(OpenTelemetry Protocol)是 OpenTelemetry 的标准协议。今天我们要学习:OTLP Receiver 配置、Metrics Pipeline、Traces Pipeline、以及 Logs Pipeline。
OTLP Receiver 配置
OTLP Receiver 是什么? OTLP Receiver 用于接收 OpenTelemetry 数据。支持 gRPC 协议(默认端口:4317)、HTTP 协议(默认端口:4318)、Metrics、Traces、Logs。
如何配置 OTLP Receiver 呢?
第一步:配置 gRPC Receiver。
otelcol.receiver.otlp "default"0.0.0.0:4317第二步:配置 HTTP Receiver。 可选,配置 HTTP 端点,比如
0.0.0.0:4318第三步:配置输出。 使用
outputotelcol.processor.batch.default.input第四步:配置批处理器。
otelcol.processor.batch "default"timeout = "1s"send_batch_size = 1024OTLP Receiver 架构: 应用(OTLP)→ OTLP Receiver(gRPC/HTTP)→ Processor(batch)→ Exporter(Prometheus/Tempo/Loki)。
配置完成后,Alloy 就可以接收 OpenTelemetry 数据了。
Metrics Pipeline 配置
Metrics Pipeline 是什么? Metrics Pipeline 用于处理和导出指标数据。流程:接收 Metrics(OTLP)→ 批处理 Metrics → 导出到 Prometheus。
如何配置 Metrics Pipeline 呢?
第一步:配置 OTLP Receiver。
otelcol.receiver.otlp "metrics"第二步:配置批处理器。
otelcol.processor.batch "metrics"第三步:配置 Prometheus Exporter。
otelcol.exporter.prometheus "metrics"forward_to第四步:配置 Remote Write。
prometheus.remote_write "local"Metrics Pipeline 流程: OTLP Metrics → Receiver(otlp)→ Processor(batch)→ Exporter(prometheus)→ Remote Write(Prometheus)。
配置完成后,指标数据就可以从应用导出到 Prometheus 了。
Traces Pipeline 配置
Traces Pipeline 是什么? Traces Pipeline 用于处理和导出追踪数据。流程:接收 Traces(OTLP)→ 批处理 Traces → 导出到 Tempo。
如何配置 Traces Pipeline 呢?
第一步:配置 OTLP Receiver。
otelcol.receiver.otlp "traces"第二步:配置批处理器。
otelcol.processor.batch "traces"第三步:配置 Tempo Exporter。
otelcol.exporter.tempo "traces"forward_to第四步:配置 Tempo Write。
tempo.write "local"Traces Pipeline 流程: OTLP Traces → Receiver(otlp)→ Processor(batch)→ Exporter(tempo)→ Tempo Write(Tempo)。
配置完成后,追踪数据就可以从应用导出到 Tempo 了。
Logs Pipeline 配置
Logs Pipeline 是什么? Logs Pipeline 用于处理和导出日志数据。流程:接收 Logs(OTLP)→ 批处理 Logs → 导出到 Loki。
如何配置 Logs Pipeline 呢?
第一步:配置 OTLP Receiver。
otelcol.receiver.otlp "logs"第二步:配置批处理器。
otelcol.processor.batch "logs"第三步:配置 Loki Exporter。
otelcol.exporter.loki "logs"forward_to第四步:配置 Loki Write。
loki.write "local"Logs Pipeline 流程: OTLP Logs → Receiver(otlp)→ Processor(batch)→ Exporter(loki)→ Loki Write(Loki)。
配置完成后,日志数据就可以从应用导出到 Loki 了。
完整配置示例
这个配置示例展示了什么? 展示了如何配置 Alloy 接收 OpenTelemetry 的所有信号(Metrics、Traces、Logs)。
配置包括:
- 日志配置: 配置 Alloy 的日志级别和格式。
- OTLP Receiver: 配置接收 gRPC 和 HTTP 协议的数据,输出到不同的处理器。
- Metrics Pipeline: 批处理 Metrics,导出到 Prometheus。
- Traces Pipeline: 批处理 Traces,导出到 Tempo。
- Logs Pipeline: 批处理 Logs,导出到 Loki。
完整流程: 应用(OTLP)→ OTLP Receiver(gRPC/HTTP)→ Metrics Processor / Traces Processor / Logs Processor → Prometheus / Tempo / Loki。这是一个完整的数据流。
使用这个配置,Alloy 可以接收和处理所有 OpenTelemetry 信号。
本节小结
在本节中,我们学习了配置 Alloy 接收 OpenTelemetry 信号:
第一个是 OTLP Receiver。 接收 gRPC/HTTP 协议的数据,支持 Metrics、Traces、Logs。配置完成后,Alloy 就可以接收 OpenTelemetry 数据了。
第二个是 Metrics Pipeline。 接收 → 批处理 → 导出到 Prometheus。配置完成后,指标数据就可以从应用导出到 Prometheus 了。
第三个是 Traces Pipeline。 接收 → 批处理 → 导出到 Tempo。配置完成后,追踪数据就可以从应用导出到 Tempo 了。
第四个是 Logs Pipeline。 接收 → 批处理 → 导出到 Loki。配置完成后,日志数据就可以从应用导出到 Loki 了。
第五个是完整配置。 可以同时处理所有信号。一个 Alloy 实例可以处理所有类型的信号。
OTLP 配置总结: OTLP 配置包括 Receiver(gRPC/HTTP)、Metrics Pipeline(Prometheus)、Traces Pipeline(Tempo)、Logs Pipeline(Loki)。这些组合在一起,构成了完整的数据收集和路由能力。
这就是配置 Alloy 接收 OpenTelemetry 信号。掌握这些配置方法,可以开始收集和处理 OpenTelemetry 数据了。
在下一节,我们将学习 Alloy 数据处理和路由。学习如何使用 Processors 处理数据。