Docs/Prometheus/基础知识.md
2022-10-18 16:59:37 +08:00

31 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Prometheus提供了4中不同的Metrics类型: Counter, Gauge, Histogram, Summary。
#### Counter:只增不减的计数器
```
计数器可以用于记录只会增加不会减少的指标类型,比如记录应用请求的总量cpu使用时间等。
对于Counter类型的指标只包含一个inc()方法,用于计数器+1。
一般而言Counter类型的metrics指标在命名中我们使用_total结束如http_requests_total。
```
#### Gauge: 可增可减的仪表盘
```
对于这类可增可减的指标,可以用于反应应用的当前状态。
例如在监控主机时主机当前空闲的内存大小可用内存大小。或者容器当前的cpu使用率,内存使用率。
对于Gauge指标的对象则包含两个主要的方法inc()以及dec(),用户添加或者减少计数。
```
#### Histogram自带buckets区间用于统计分布统计图[直方图]
```
主要用于在指定分布范围内(Buckets)记录大小或者事件发生的次数。
```
#### Summary: 客户端定义的数据分布统计图
```
Summary和Histogram非常类型相似都可以统计事件发生的次数或者大小以及其分布情况。
Summary和Histogram都提供了对于事件的计数_count以及值的汇总_sum。 因此使用_count,和_sum时间序列可以计算出相同的内容例如http每秒的平均响应时间rate(basename_sum[5m]) / rate(basename_count[5m])。
同时Summary和Histogram都可以计算和统计样本的分布情况比如中位数9分位数等等。其中 0.0<= 分位数Quantiles <= 1.0。
不同在于Histogram可以通过histogram_quantile函数在服务器端计算分位数。 而Sumamry的分位数则是直接在客户端进行定义。因此对于分位数的计算。 Summary在通过PromQL进行查询时有更好的性能表现而Histogram则会消耗更多的资源。相对的对于客户端而言Histogram消耗的资源更少。
```
Prometheus采用时序数据库存储数据所有的存储都是按时间序列去实现的相同的 metrics(指标名称) 和 label(一个或多个标签) 组成一条时间序列不同的label表示不同的时间序列。为了支持一些查询有时还会临时产生一些时间序列存储。
每条时间序列是由唯一的 指标名称 和 一组 标签 key=value的形式组成。指标名称 一般是给监测对像起一名字,例如 http_requests_total 这样它有一些命名规则可以包字母数字_之类的的。通常是以应用名称开头_监测对像_数值类型_单位这样。
如果以传统数据库的理解来看这条语句,则可以考虑 http_requests_total是表名标签是字段而timestamp是主键还有一个float64字段是值了Prometheus里面所有值都是按float64存储