在本文只是简单对 Prometheus Client 从源码角度做一些简单的介绍,并不对其进行深度研究。
主要文件
/github.com/prometheus/client_golang/prometheus/desc.go 度量指标,主要功能通过相关统计信息生成唯一的 id 和 dimHash,作为度量的唯一标识。
/github.com/prometheus/client_golang/prometheus/metric.go 度量模型,定义统计的接口。
/github.com/prometheus/client_golang/prometheus/vec.go metricVec,主要是实现一个desc,管理多metric。
/github.com/prometheus/client_golang/prometheus/collector.go 收集器接口定义。
/github.com/prometheus/client_golang/prometheus/labels.go 定义标签的类型和方法。
/github.com/prometheus/client_golang/prometheus/counter.go 实现 metric 和 collector 接口, counter 只用于递增统计
/github.com/prometheus/client_golang/prometheus/gauge.go 实现 metric 和 collector 接口, cou