ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## metrics类型 --- Prometheus客户库提供了四个核心的metrics类型。这四种类型目前仅在客户库和wire协议中区分。Prometheus服务还没有充分利用这些类型。不久的将来就会发生改变。 ### Counter(计数器) *counter* 是一个累计度量指标,它是一个只能递增的数值。计数器主要用于统计服务的请求数、任务完成数和错误出现的次数等等。计数器是一个递增的值。反例:统计goroutines的数量。计数器的使用方式在下面的各个客户端例子中: 客户端使用计数器的文档: - [Go](http://godoc.org/github.com/prometheus/client_golang/prometheus#Counter) - [Java](https://github.com/prometheus/client_java/blob/master/simpleclient/src/main/java/io/prometheus/client/Counter.java) - [Python](https://github.com/prometheus/client_python#counter) - [Ruby](https://github.com/prometheus/client_ruby#counter) ### Gauge(测量器) *gauge*是一个度量指标,它表示一个既可以递增, 又可以递减的值。 测量器主要测量类似于温度、当前内存使用量等,也可以统计当前服务运行随时增加或者减少的Goroutines数量 客户端使用计量器的文档: - [Go](http://godoc.org/github.com/prometheus/client_golang/prometheus#Gauge) - [Java](https://github.com/prometheus/client_java/blob/master/simpleclient/src/main/java/io/prometheus/client/Gauge.java) - [Python](https://github.com/prometheus/client_python#gauge) - [Ruby](https://github.com/prometheus/client_ruby#gauge) ### Histogram(柱状图) *histogram*,是柱状图,在Prometheus系统中的查询语言中,有三种作用: 1. 对每个采样点进行统计,打到各个分类值中(bucket) 2. 对每个采样点值累计和(sum) 3. 对采样点的次数累计和(count) 度量指标名称: `[basename]`的柱状图, 上面三类的作用度量指标名称 - [basename]_bucket{le="上边界"}, 这个值为小于等于上边界的所有采样点数量 - [basename]_sum - [basename]_count 小结:所以如果定义一个度量类型为Histogram,则Prometheus系统会自动生成三个对应的指标 **histogram的最简单的理解, [DEMO](histogram.go)* 使用[histogram_quantile()](https://prometheus.io/docs/querying/functions/#histogram_quantile)函数, 计算直方图或者是直方图聚合计算的分位数阈值。 一个直方图计算[Apdex值](http://en.wikipedia.org/wiki/Apdex)也是合适的, 当在buckets上操作时,记住直方图是累计的。详见[直方图和总结](https://prometheus.io/docs/practices/histograms) 客户库的直方图使用文档: - [Go](http://godoc.org/github.com/prometheus/client_golang/prometheus#Histogram) - [Java](https://github.com/prometheus/client_java/blob/master/simpleclient/src/main/java/io/prometheus/client/Histogram.java) - [Python](https://github.com/prometheus/client_python#histogram) - [Ruby](https://github.com/prometheus/client_ruby#histogram) ### [Summary]总结 类似*histogram*柱状图,*summary*是采样点分位图统计,(通常的使用场景:请求持续时间和响应大小)。 它也有三种作用: 1. 对于每个采样点进行统计,并形成分位图。(如:正态分布一样,统计低于60分不及格的同学比例,统计低于80分的同学比例,统计低于95分的同学比例) 2. 统计班上所有同学的总成绩(sum) 3. 统计班上同学的考试总人数(count) 带有度量指标的`[basename]`的`summary` 在抓取时间序列数据展示。 - 观察时间的φ-quantiles (0 ≤ φ ≤ 1), 显示为`[basename]{分位数="[φ]"}` - `[basename]_sum`, 是指所有观察值的总和 - `[basename]_count`, 是指已观察到的事件计数值 **summary的最简单的理解, [DEMO](summary.go)* 详见[histogram和summaries](https://prometheus.io/docs/practices/histograms) 有关`summaries`的客户端使用文档: - [Go](http://godoc.org/github.com/prometheus/client_golang/prometheus#Summary) - [Java](https://github.com/prometheus/client_java/blob/master/simpleclient/src/main/java/io/prometheus/client/Summary.java) - [Python](https://github.com/prometheus/client_python#summary) - [Ruby](https://github.com/prometheus/client_ruby#summary)