You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 2 Next »
OpenTelemetry
我们来看一张OpenTelemetry组件的关系图,在OpenTelemetry Metrics标准的实现中,主要包含以下组件。
OpenTelemetry Metrics
在标准化文档的落地时,各个组件通常都是采用接口化设计,以提高可扩展性:
用于接口化管理全局的Meter创建,相当于全局的监控指标管理工厂。
Meter
用于接口化创建并管理全局的Instrument,不同的Meter可以看做是不同的程序组件。例如框架中的各个组件可以看做是不同的Meter,比如gclient和ghttp就是两个不同的Meter。
Instrument
gclient
ghttp
用于管理不同组件下的各个不同类型的指标,例如在ghttp下,就会有http.server.request.duration、http.server.request.body_size等指标。
http.server.request.duration
http.server.request.body_size
对应指标上报的具体的DataPoint指标数据,是一系列的数值项。
DataPoint
实现对Measurements的计算、汇总、过滤、修改等操作,通常指标都是数值类型,所以这个通常都使用默认的View即可。
Measurements
View
用于实现对指标的数据流读取,内部定义了具体操作指标的数据结构。OpenTelemetry官方社区提供了多种灵活的Reader实现,例如PeridRader、ManualReader等。
Reader
PeridRader
ManualReader
Exporter用于暴露本地指标到对应的第三方厂商,定义了具体是push还是pull的数据传输方式。Exporter需要用到Reader,其中Reader只有几种方式,但是Exporter会根据厂商而定,会有很多,例如:promtheus、zipkin等。
Exporter
push
pull
promtheus
zipkin