07.8、练习 配置Alloy处理微服务数据
练习:配置 Alloy 处理微服务数据
今天我们要动手配置 Alloy 处理微服务数据,包括接收 OTLP 数据、处理数据、导出到 Grafana Stack。通过实践,我们可以巩固前面学习的知识。
练习目标
今天的练习目标是什么?
第一个目标:配置 OTLP Receiver。 接收 gRPC 和 HTTP 数据,配置端口和端点。这是数据入口。
第二个目标:配置数据处理 Pipeline。 Metrics Pipeline、Traces Pipeline、Logs Pipeline。每个 Pipeline 包含 Processor(批处理)和 Exporter。
第三个目标:配置导出到 Grafana Stack。 导出到 Prometheus(指标)、导出到 Loki(日志)、导出到 Tempo(追踪)。
第四个目标:验证配置。 检查配置文件语法,测试数据流,验证数据导出。
练习架构: 微服务(OTLP)→ Alloy(OTLP Receiver)→ Metrics Pipeline / Traces Pipeline / Logs Pipeline → Prometheus / Tempo / Loki。
配置步骤
第一步:创建配置文件。 在终端创建配置文件目录和文件,然后在 IDE 中打开。我们使用
microservices.river第二步:配置 OTLP Receiver。 在 IDE 中输入 Receiver 配置代码,配置 gRPC 端点(0.0.0.0:4317)和 HTTP 端点(0.0.0.0:4318),然后保存文件。
第三步:配置 Pipelines。 逐步添加 Metrics Pipeline(Processor + Exporter),Traces Pipeline(Processor + Exporter),Logs Pipeline(Processor + Exporter),每次添加后保存并验证。
第四步:配置 Exporters。 添加 Prometheus Remote Write 配置,添加 Loki Write 配置,添加 Tempo Write 配置,然后连接 Exporters 到对应的 Exporter 组件。
第五步:测试配置。 在终端运行
alloy run --dry-run config/alloy/microservices.river完整配置示例
配置包括:
- 日志配置: 配置 Alloy 的日志级别(info)和格式(logfmt)。这是可选的,但建议配置。
- OTLP Receiver: 配置接收 gRPC(4317)和 HTTP(4318)数据,输出到三个 Processor。这是数据入口。
- Metrics Pipeline: 批处理 Metrics,导出到 Prometheus。包括 batch processor 和 prometheus exporter。
- Traces Pipeline: 批处理 Traces,导出到 Tempo。包括 batch processor 和 tempo exporter。
- Logs Pipeline: 批处理 Logs,导出到 Loki。包括 batch processor 和 loki exporter。
- Remote Write 配置: 配置 Prometheus、Loki、Tempo 的写入端点。这些是数据出口。
注意组件之间的连接关系,每个 Processor 的 output 指向 Exporter 的 input,每个 Exporter 的 forward_to 指向 Remote Write 的 receiver。
验证和测试
验证步骤:
第一步:检查配置语法。 在终端运行
alloy run --dry-run config/alloy/microservices.river第二步:启动 Alloy。 在终端运行
alloy run config/alloy/microservices.riversudo systemctl start alloy第三步:检查服务状态。 检查端口是否监听(4317 gRPC、4318 HTTP),检查 Alloy 进程是否运行。
第四步:发送测试数据。 使用 otel-cli 发送测试追踪,或者使用 curl 发送 HTTP 请求。
第五步:验证数据导出。 打开浏览器,访问 Grafana,进入 Explore,分别查询 Prometheus、Tempo、Loki 的数据,或者在终端使用 curl 验证。
练习总结
我们完成了什么?
- ✅ 配置了 OTLP Receiver。 接收 gRPC 和 HTTP 数据。
- ✅ 配置了 Metrics、Traces、Logs Pipeline。 处理不同类型的数据。
- ✅ 配置了导出到 Prometheus、Loki、Tempo。 数据导出到 Grafana Stack。
- ✅ 验证了配置和数据流。 确保一切正常运行。
关键收获:
- 掌握了 Alloy 配置方法。 学会了如何配置 Alloy。
- 理解了 Pipeline 配置。 理解了数据流的配置。
- 学会了如何导出到 Grafana Stack。 学会了如何导出数据。
- 掌握了配置验证方法。 学会了如何验证配置。
下一步: 继续学习 Grafana Tempo 分布式追踪,学习如何查询和分析追踪数据。
本节小结
在本节中,我们完成了配置 Alloy 处理微服务数据的练习:
第一个是 OTLP Receiver。 接收 gRPC 和 HTTP 数据。
第二个是 Pipelines。 Metrics、Traces、Logs Pipeline。
第三个是 Exporters。 导出到 Prometheus、Loki、Tempo。
第四个是验证配置。 使用 --dry-run 测试配置。
练习总结: 练习目标 → 配置 OTLP Receiver → 配置 Pipelines → 配置 Exporters → 验证配置 → 完成练习。
这就是练习:配置 Alloy 处理微服务数据。通过实践,我们巩固了前面学习的知识。
恭喜你! 你已经完成了第 7 章的学习。我们学习了 Alloy 简介、安装、配置基础、接收 OpenTelemetry 信号、数据处理和路由、导出到 Grafana Stack、高级配置,以及实战练习。
在下一章,我们将学习 Grafana Tempo 分布式追踪。学习如何查询和分析追踪数据。