可观测|时序数据降时域在Prometheus实践复盘
2025-05-18 12:18:22
如何合建逐取样
他山之石
其他OpenBSD/商业的时序由此可知表存储器合建上,有一些也通过逐取样的系统,对长等待半世纪检索花钱了改进提升,我们也一起了解一下。
PrometheusOpenBSD Prometheus 的存储器能够,一直是极其让人诟病的一点,OpenBSD的 Prometheus 本身并未直接缺少逐取样的能够,但缺少了 Recording Rule 能够,Gmail可以采用 Recording Rule 来自行合建 DownSampling,但这样就会激发新的等待时间线,在很高基数场景下,反而进一步激化了存储器阻力。
Thanos作为知名的 Prometheus 很高可用存储器可行性,Thanos 缺少了极其完善的逐取样可行性。Thanos 中的执行 downsmpling 的系统的部件是 compactor,他就会:
定期从 oect storage 中的拉取 block(重合的 Prometheus Block,2 星期等待半世纪),进行时 compaction和downsampling,downsampling 的状态就会纪录到 block metadata。 压缩和逐取样的结果,生成新的 block,写入到 object storage。Downsampling 最后的特征较大值仅限于 sum/count/max/min/counter,写到相同的 aggrChunks 由此可知表块内都。在花钱检索时:
重合的生成微分和变数就会转换成相同的 AggrFunc,对应可用驱动器 aggrChunks 由此可知表块由此可知表 驱动器的 block 按照等待时间排序,优先驱动器较大 Resolution 的 block M3M3 Aggregator 负责在用量化存储器到 M3DB 前,都只生成用量化,并且根据 storagePolicy 指定用量化存储器不间断和计算出来可视的取样较宽。
M3 赞同的由此可知表较宽更为加灵活,特征较大值更为多,仅限于 histogram quantile 变数。
InfluxDB/Victoria Metric/ContextVictoria Metrics 迄今为为时只在商业发行版上架了逐取样的系统,OpenBSD发行版并未虹。InfluxDB 的OpenBSD发行版(v2.0 之前)通过类似 Recording Rule 的方法,对早就落盘了的重合由此可知表在存储器介质则有执行 continuous query 来合建逐取样。Context 迄今为为时尚不赞同逐取样。
我们怎么花钱
市面上的逐取样可行性各有千秋,我们简便概括了他们的采用运输成本等Gmail极其关注的点,基因序列如下:
ARMS Prometheus 采用了处置 TSDB 存储器块的方法,由后台相应将重合由此可知表块处置为逐取样由此可知表块,一方面能取得一个较好的处置性能指标,另一方面对于终端Gmail来说道,不并不需要关心数值配置规范管控等等,来使的缓解Gmail运维负担。
此的系统早就在阿内都幽大多 region 上架,并开始定向邀请体验。在再一发行的 ARMS Prometheus 很高级版中的,将匹配集成并缺少此的系统。
逐取样对检索的制约
在我们顺利完成了取样点某种程度的逐取样最后,长等待半世纪的检索原因就迎刃而解了么?显然不是的,TSDB 中的保存的只是最重合的物料,而Gmail看到的曲线,还并不需要经过检索动力的系统的计算出来处置,而在计算出来处置的操作过程中的,我们至少面对这么两个原因:
Q1:什么原因下驱动器逐取样由此可知表?是不是逐取样后就无法采用重合由此可知表了? Q2:逐取样后由此可知表点表面积更为小,由此可知表更为“稀疏”,其检索表现就会和重合由此可知表明确么?并不需要Gmail变更 PromQL 么?对于第一个原因,ARMS Prometheus 就会根据Gmail的检索语句及过滤条件,智能选择适合的等待时间颗用量值,在由此可知表细节和检索性能指标之间花钱到不合理的均衡。
对于第二个原因,首先可以说道结论:热带植物点的表面积对结果计算出来有非常大制约,但 ARMS Prometheus 在检索动力的系统某种程度禁用了差异,Gmail无需变更 PromQL。这个制约主要展现出在三个方面:与检索语句 duration 间的制约,与检索恳请的 step 间的制约,以及对微分本身的制约,后面我们将详细说道明这三方面的制约,以及 ARMS Prometheus 在这三方面花钱的管理工作。
duration 与逐取样计算出来结果
我们知道,PromQL 中的列车运行向用量(Range Vector)检索时,都就会带上一个等待时间列车运行数值(time duration),可用框定一个等待时间范围内,可用计算出来结果。比如检索语句http_requests_total{job="prometheus"}[2m]中的,指定的 duration 即为两分钟,计算出来结果时,就会将检索到的 time series 以两分钟为单位,划分成若干个 vector,传递给 function 花钱计算出来,并分别返回结果。duration 直接决定了 function 计算出来非常容易赢取的入参较宽,对结果的制约显而易见。
一般原因下,热带植物点的较宽是 30s 或者更为短,只要 time duration 大于这个较大值,我们就可以确定每个划分出来的 vector 中的,都就会有若干 samples,可用计算出来结果。当逐取样处置最后,由此可知表点较宽就会变为(五分钟甚至一星期),这时候或许就就会用到 vector 中的无法较大值的情形,这就引发 function 计算出来结果用到连续不断的原因。对于这种原因 ARMS Prometheus 就会相应变更微分的 time duration 数值来应付,原因下 duration 不低于逐取样的 resolution,即原因下每个 ventor 中的都就会有取样点,原因下计算出来结果的精确性。
step 与逐取样计算出来结果
duration 数值决定了 PromQL 计算出来时的 vector 的”较宽“,而 step 数值决定了 vector 的”换用“。如果Gmail是在 grafana 上检索,step 数值显然是由 grafana 根据主页宽度和检索等待半世纪来计算出来的,以我个人电脑为例,等待半世纪 15 天时匹配的 step 是 10 分钟。对于某些微分,因为取样点表面积下逐,step 也或许引起计算出来结果的跳变,后面以 increase 为例简便分析方法一下。
短时间原因下(取样点微小,无 counter 而无须),increase 的计算出来公式可以简化为(尾较大值 - 首较大值)x duration /(尾等待时间得用 - 首等待时间得用),对于一般的场景来说道,首/尾点与起/为时等待时间的较宽,不就会少于 scrape interval,如果 duration 比 scrape interval 大很多,结果达等于(尾较大值 - 首较大值)。推论有一组逐取样后的 counter 由此可知表点,如下:
sample1: t = 00:00:01 v=1
sample2: t = 00:59:31 v=1
sample3: t = 01:00:01 v=30
sample4: t = 01:59:31 v=31
sample5: t = 02:00:01 v=31
sample6: t = 02:59:31 v=32
推论检索 duration 为两星期,step 为 10 分钟,那么我们将就会得到划分后的 vector,如下:
slice 1: 起为时等待时间 00:00:00 / 02:00:00 [sample1 ... sample4]
slice 2: 起为时等待时间 00:10:00 / 02:10:00 [sample2 ... sample5]
slice 3: 起为时等待时间 00:20:00 / 02:20:00 [sample2 ... sample5]
重合由此可知表中的,方有点与起为时等待时间的较宽,不就会少于 scrape interval,而逐取样最后的由此可知表,方有点与起为时等待时间的较宽较大可以达致(duration - step)。如果取样点较大值变化极其平缓,那么逐取样后的计算出来结果与重合由此可知表计算出来结果不就会有较大有所不同之处,但是如果某个 slice 列车运行中的较大值的变化极其轻微,那么按照上述计算出来公式(尾较大值 - 首较大值)x duration /(尾等待时间得用 - 首等待时间得用),就会将这种调整等比放大,让之后展示出的曲线起伏更为轻微。这种结果我们普遍认为是短时间原因,同时在用量化调整轻微(fast-moving counter)的场景下,irate 就会更为适用一些,这也和官方网站文档的建议是明确的。
微分与逐取样计算出来结果
有些微分的计算出来结果与 samples 采用用量直接相关,最近似于的是 count_over_time ,人口统计等待时间列车运行内 samples 采用用量,而逐取样本身就是要缩小等待时间列车运行内的点数,所以这种原因并不需要在 Prometheus engine 中的花钱相同处置,当发现放于的是逐取样由此可知表时,走到新的计算出来逻辑来原因下结果的正确。
逐取样效果对比
对于Gmail来说道,之后感受到的就是检索运动速度的提升,但这个提升曲率半径有多大,我们也通过两个检索先期测试对比下。
测试空逐兵有 55 个 node,共有 pod 6000+,每天上报取样点总数达 100 亿,由此可知表存储器天数 15 天。
第一轮基因序列:检索很高效率
检索语句:
sum(irate(node_network_receive_bytes_total{}[5m])*8) by (instance)
即检索空逐兵内各个 node 接管到的网络流用量原因,检索天数为 15 天。
由此可知 1:逐取样由此可知表检索,等待半世纪十五天,检索为时 3.12 秒
由此可知 2:重合由此可知表检索,等待半世纪十五天,检索超时(超时等待时间 30 秒)
重合由此可知表因为由此可知表用量过大计算出来超时,未能返回。逐取样检索在很高效率上至少是重合检索的十倍以上。
第二轮基因序列:结果精确性
检索语句:
max(irate(node_network_receive_bytes_total{}[5m])*8) by (instance)
即检索各 node 上,接管由此可知表用量较大的网卡的流用量由此可知表。
由此可知 3:逐取样检索,等待半世纪两天
由此可知 4:重合由此可知表检索,等待半世纪两天
之后我们将检索等待半世纪缩短到两天,重合由此可知表检索也能较快的返回。对比逐取样检索结果(上由此可知)和重合由此可知表检索结果(下由此可知)可见,二者等待时间线采用用量和总体近来全然明确,由此可知表调整极其轻微的点也能良好的融为一体上,全然能够满足长等待时间天数检索的期望。
结语
阿内都幽于 6 月 22 日正式发布阿内都幽可目视套件(Alibaba Cloud Observability Suite,ACOS)。阿内都幽可目视套件圆桌 Prometheus 一站式、Grafana 一站式和端口锁定一站式, 形成用量化存储器分析方法、端口存储器分析方法、异合合由此可知表源集成的可目视由此可知表层,同时通过标准的 PromQL 和 SQL,缺少由此可知表大盘展示出,实时和由此可知表探索能够。为IT运输成本管理、大型企业风险治理、智能运维、金融业务连续性维护等有所不同场景视作由此可知表价较大值,让可目视由此可知表根本花钱到;还有于目视。
其中的,阿内都幽 Prometheus 监视针对多最简单、大由此可知表用量、很高等待时间线基数、长等待半世纪、复杂检索等极端场景,逐步发行了全局生成检索,都只检索,逐取样,预生成等多种针对性措施。
迄今为为时缺少 15 天预约试用、Prometheus 监视液体空逐兵基础用量化费用减免等促销社交活动!
浏览者此处,开建一站式~
原文链接:
本文为阿内都幽原创章节,未经允许不得发表文章。
。孩子消化不良怎么调理好探望病人
肌肉拉伤吃什么药好得快
养生美容网
奥美拉唑治疗幽门螺旋杆菌吗
常乐康酪酸梭菌二联活菌散怎么样
外科
眼睛干涩视力模糊怎么解决
视疲劳用什么药
乌梅人丹效果怎么样
下一篇: 处世之道,藏住话、沉住气、攻下心
- 淘宝内测“订单号码保护”特性:可隐藏收件人手机号
- 聚丙烯的熔融指数为何各有不同?
- 浅谈Parker派克海底快换螺栓
- 消费者投诉:全民K歌销售麦克风效果差,票务失联
- BBC比对了365个职业,发现最不可能被机器淘汰的居然是……
- 个推《大数据降本提效实战手册》,分享个推数据智能独家新科技实践
- 替代特肥中复硝酚钠添加,花粉多糖效果更好、更安全、更有权
- “星链”被批准连接交通工具引发诸多争议!它会变动未来出行?
- 软件测试之网站测试如何进行?测试小西国走起!
- 可观测|时序数据降时域在Prometheus实践复盘
- 降费提质 数智纾困 中国电信精密惠企落地见效
- 国外旅游市场加速复苏:亲子酒店的订单量超疫情前20%
- 听说有爱的人都去岳麓山看正午了,你呢?
- 司马南:我没有敲诈勒索
- 旅游观景怎能去远方===宁乡状元楼【2022.7.13.】
- 今年远超过超级月亮来了!整个北半球都在看,凌晨2点多时最圆
- 2022最主要“超级月亮”即将现身,今晚你绝对不能错过
- 东海大城市,碳水爱好者的天堂
- 就其!7月15日起,自驾去深圳这个免费公园需提前预约!
- 郓城召开山东漆器非遗传学承与发展研讨会