Prometheus 时序数据

一 时序索引
        Prometheus 存储的是时序数据,时间戳(timestamp)来源于服务端本地的系 统时间。Prometheus 使用 Unix 时间戳(即自 1970 年 1 月 1 日 00:00:00 UTC 起经过的秒数)表示时间。
        数 据 格 式 :
<metric name>{<label name>=<label value>, <label name>=<label value>, ...}
({...}里的就是标签部分),显然数据格式就是 由指标名字和一组 KV 标签构成,其实还得加上时间戳,构成三元组(metric,label set,timestamp)。
二 时序格式的优缺点
优点:
        1)高灵活性 。Prometheus 的时序格式采用了 K-V 方式来描述指标数据,使得用户可使用任意数量和类型的标签来对数据进行分类和聚合。这种灵活性使得 Prometheus 可以适应多种场景和需求;
        2)高存储效率 。Prometheus 采用了块压缩和切分等技术,使得它在存储时序数据方面非常高效,可以 支持长期存储大量数据 ,且不会因数据规模增加而导致 性能下降;
        3)查询速度 快。基于 prometheus 的时序数据,Prometheus 的查询引擎使用了一些优化方法可 快速 地处理大量的时序数据。
缺点:
        1) 数据冗余 。在 Prometheus 的时序格式中,每条指标数据都包含了一个完整的 label set,这样可能会导致数据冗余问题。如果数据的标签数过多,则会增加 存储和传输的负担,降低效率;
        2)标签维护 麻烦,标签的数量和选择会影响到查询性能和存储空间的占用。 同时,如果标签的命名不规范或者标签值发生变化,可能会导致查询结果出现错误;
        3)不支持原始数据 :是由于 Prometheus 的时序格式采用了块压缩和切分等技术,这可能会导致一些高精度的计算或者统计分析无法进行。
三 时序概念
        标签:也来⾃ 采集数据 ,可 ⾃定义 ,也可直接使 默认的 exporter 提供的标签项,其中 instance 标签最为重要,因为与机器实例相关联。
        时序的名字即指标名字仅可由 ASCII 字符、数字、下划线及冒号构成,必须满足正则表达式 
[a-zA-Z_:][a-zA-Z0-9_:]*
且名字应具有清晰化语义化 。如 http_requests_total 即 HTTP 请求总数。 而标签能区分不同的实例,标签名称仅可由 ASCII 字符、数字及下划线构成, 其中“_”开头一般属于 prometheus 保留字。
        另外,Target 是一个监控目标,通常是一个 URL,比如想监测一个 Redis 实例,那么通过配置实例 URL 和端口就可以让这个实例成为一个 target。
        Job 是一组相关 Target 的集合。通常是针对不同特点应用、容器或服务,比 如监控一个 Redis 存储服务,那么就需要检测所有 Redis 实例的总体性能情况。
四 类型概念
        Prometheus 有 4 种指标数据类型,其中最常用的是 Gauge 和 Counter。即时序数据指标类型。
Counter
        中文意思为计数器,表示单调累增的指标数据,数值只能在重启或重置为零。
        通常记录服务的请求数、已完成的任务数等。这里的递增很关键,官网的建议不要用Counter 来显示可能减小的数值,如果有用 Gauge 类型。通常 Counter 类型数据会在命名上以 “_total”为后缀,但这并不是强制的。

Gauge
        中文意思是仪表,表⽰ 搜集的数据是 瞬时的值。不像 Counter 那样持续增长,而是比较无状态、无规律的、使用起来相对简单,通常适用:内存使用情况、并发请求等。 不需要increase()、rate()之类的函数计算单位时间段的增量。

Histogram
        中文意思为直方图,主要⽤ 于表 ⼀段时间序列范围 内对数据进 采样(通常是请求持
续时间、响应 ⼤ ⼩ 等)。常命名格式为由
<base_name>_bucket{le="<upper inclusive bound>"}, 
<base_name>_sum,<base_name>_count,<base_name>_bucket{le="+Inf"}
组成。不过 Histogram 计算基于线性分布,桶的区间越大数据会越不准确。

Summary
        要⽤ 于表 ⽰⼀ 段时间内数据采样结果(通常是请求持续时间、响应 ⼤⼩ 等),它直接存储了 quantile 数据,⽽ 不是根据统计区间计算出来的。由
<base_name>{quantile=" <φ>"}, <base_name>_sum, <base_name>_count
组成,Summary 和 Histogram 是比较类似的。相比于 Histogram 少了存储 bucket 的存储空间,但需要在计算上产生压力。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Prometheus时序数据库提供了强大的Promql查询语言来满足我们的查询需求。在查询数据之前,我们需要先插入数据Prometheus中。在之前的博客中,详细介绍了Prometheus数据的插入过程\[1\]。而在查询数据时,我们可以使用Promql来进行查询。Promql是一种灵活的查询语言,可以根据我们的需求进行千变万化的查询\[2\]。 在进行查询时,Prometheus会根据指定的时间窗口来过滤数据,默认的时间窗口是5分钟,可以通过启动参数来进行设置\[3\]。这样可以确保我们只获取到指定时间范围内的数据,而不会包含过去或未来的数据。 总结来说,Prometheus时序数据库通过Promql查询语言来满足我们的查询需求,并通过时间窗口来过滤数据,确保我们获取到的数据符合我们的要求。 #### 引用[.reference_title] - *1* [Prometheus时序数据库-数据的查询](https://blog.csdn.net/weixin_55416758/article/details/115350199)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Prometheus时序数据库-报警的计算 及 Prometheus时序数据库-数据的查询](https://blog.csdn.net/m0_67322837/article/details/125004715)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值