🎬作者简介:大家好,我是蓝胖子🥇
☁️博客首页:CSDN主页蓝胖子的编程梦
⭐️热门专题:我的服务监控实践 ,500行代码手写Docker
🌄每日一句:成功的速度,要超过爸妈老去的速度。
大家好,我是蓝胖子,前面我讲解了OpenTelemetry Collector的部署模式,这一节我们继续看看OpenTelemetry Collector相关的内容。OpenTelemetry Collector有对遥测数据预处理的功能,如何处理,处理的流程定义都是通过一个配置文件完成的,我们来看看它的配置由什么组成。
💡💡 在编程开发中会碰到很多配置文件,如何快速掌握一个配置文件的使用,我倾向于先掌握配置文件的组成部分,对其有个整体的把握,后续有对某个部分有更详细的配置要求时,再去研究官方文档即可,这样能够让你对配置文件的配置有体系化的感知。
Collector的配置文件组成
整个Collector的配置文件会有如下4种类型的组件,receivers 负载接收客户端的遥测数据,processor负责对遥测数据进行预处理,包括清洗,过滤等操作,exporter负责导出processor处理完后的遥测数据,connector 负责连接转换两种不同类型的遥测数据,比如将trace数据转变成指标metric数据。
但是这几个组件声明在配置文件中还不能起到作用,它们必须被配置在service这个配置项下面才能被启用。
除此以外,配置文件中还能声明扩展项extensions,扩展项也需要在service中进行声明。
配置示例如下:
receivers 中声明了一个otlp的receiver,并配置了其监听端口用于接收客户端发来的请求。
processors中声明了一个batch processor。
exporters中声明了一个otlp processor。
extensions声明了3个扩展项,health_check提供了接口 用于对Collector进行存活探测,pprof提供了接口用于分析Collector的性能瓶颈,zpages提供了接口用于查看实时数据调试不同的遥测数据处理任务。
services下的extensions 声明要使用的扩展插件 services 的pipelines下面配置不同类型遥测数据的处理任务,每个任务都会指明要用到的具体receiver和exporter,如果要清洗过滤遥测数据,还要声明processor。
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
processors:
batch:
exporters:
otlp:
endpoint: otelcol:4317
extensions:
health_check:
pprof:
zpages:
service:
extensions: [health_check, pprof, zpages]
pipelines:
traces:
receivers: [otlp]
processors: [batch]
exporters: [otlp]
metrics:
receivers: [otlp]
processors: [batch]
exporters: [otlp]
logs:
receivers: [otlp]
processors: [batch]
exporters: [otlp]
为了知识的完整性, 我们也来看下connectors的配置,下面的配置文件声明了一个count的connector,将trace类型的数据转化成了metric指标数据。
receivers:
foo:
exporters:
bar:
connectors:
count:
spanevents:
my.prod.event.count:
description: The number of span events from my prod environment.
conditions:
- 'attributes["env"] == "prod"'
- 'name == "prodevent"'
service:
pipelines:
traces:
receivers: [foo]
exporters: [count]
metrics:
receivers: [count]
exporters: [bar]
我应该从哪里去寻找相关的配置以及作用
授人予鱼,不如授人以渔。可以发现,有那么多配置,那么我应该从哪里去寻找这些配置究竟有哪些配置项呢。
除了官网上的文档,还可以使用到上一节讲解Opentelemetry组成时提到的ecosystem系统,它可以查找 OpenTelemetry 相关的的扩展库、插件、和其他有用工具。
其访问地址如下:
https://opentelemetry.io/ecosystem/registry/?s=count&component=all
如下图所示,比如我们搜索batch,点击进去可以看到batch processor相关的配置项以及含义