首页 > 其他分享 >教你如何进行Prometheus 分片自动缩放

教你如何进行Prometheus 分片自动缩放

时间:2024-04-23 09:37:56浏览次数:29  
标签:kind name 缩放 prometheus Prometheus io 分片 k8s

本文分享自华为云社区《使用 Prometheus-Operator 进行 Prometheus + Keda 分片自动缩放》,作者: Kubeservice@董江。

垂直缩放与水平缩放

Prometheus已经成为云原生时代事实上的监控工具。从监控小型花园的实例到企业中大规模的监控,Prometheus 都可以处理工作负载!但并非没有挑战…

在拥有数百个团队的大型组织中,每秒获取数百万个指标是很常见的。人们可以维护一个 Prometheus 实例,并通过投入资金来解决扩展问题:只需获得一个更大的节点即可。好吧,如果你愿意付钱,那就去吧!但是节点价格的增长速度通常高于其大小,并且管理大型和小型 Prometheus 实例之间还有另一个很大的区别:WAL 重播!

Prometheus 保留一个包含最新抓取数据的内存数据库。为了避免在可能的重新启动期间丢失数据,Prometheus 在磁盘上保留了预写日志 (WAL)。当 Prometheus 重启时,它会将 WAL 重新加载到内存中,这样最新抓取的数据就又可用了,这个操作就是我们所说的 WAL Replay。

在 WAL 重放期间,Prometheus 完全无法进行查询,也无法抓取任何目标,因此我们希望尽快完成此操作!这就是巨大的 Prometheus 实例成为问题的时候。当将数百 GiB 的数据重放到内存中时,此操作很容易需要 20 到 30 分钟,在更极端的情况下甚至需要几个小时。如果您决定保留单个 Prometheus 实例,WAL Replay 操作可能会导致监控系统出现长时间停机。

避免大型 Prometheus 实例的一种常见策略是在多个 Prometheus 之间分片抓取目标。由于每个 Prometheus 都会抓取较少量的指标,因此它们会小得多,并且 WAL Replay 不会像以前那样成为问题。为了仍然能够拥有集中式查询体验,可以将指标转发到另一个工具,例如 Thanos、Cortex 或云提供商,这些工具也能够扩展 Prometheus 查询功能。

整个时间内负载不均匀

我们已经通过使用分片而不是垂直扩展 Prometheus 取得了一些重大进展,但是当暴露的指标数量全天增加和减少时会发生什么?对于每天从数百个节点扩展到数千个节点(反之亦然)的 Kubernetes 集群来说,这是一种非常常见的情况。在决定普罗米修斯碎片的数量时,我们如何找到成本/效益比的最佳点?

您可以每天手动微调集群中的分片数量,但有更智能的方法来完成此任务。在这篇博文中,我将重点介绍 Horizo​​ntal Pod Autoscaler 策略,该策略是最近通过 Prometheus-Operator v0.71.0 版本实现的。

使用 Keda 自动缩放 Prometheus 碎片

设置

使用 Kubernetes Scale API 的任何类型的 Horizo​​ntal Pod Autoscaler,但出于演示目的,将使用Keda,它支持多种扩展策略。

让我们从创建一个小型集群开始,我建议使用KinD或Minikube:

$ kind create cluster
Creating cluster "kind" ...
 ✓ Ensuring node image (kindest/node:v1.27.1) 

标签:kind,name,缩放,prometheus,Prometheus,io,分片,k8s
From: https://www.cnblogs.com/huaweiyun/p/18152120

相关文章

  • Qt 从 QTransform 逆向解出 Translate/Scale/Rotate(平移/缩放/旋转)分析
    QTransform用于图形绘制,它定义了如何平移(translate)、缩放(scale)、切变(shear)、旋转(rotate)或投射(project)坐标系。注意:QTransform是作用于坐标系,不是直接作用于图形。实际运用中我们可以通过QPainter、QGraphicsView、QGraphicsItem实现图形的平移、缩放、旋转等操作,但是需要从......
  • 性能测试——性能测试-linux监控工具-Centos7.x安装Prometheus
    此处参考小菠萝文档:https://www.cnblogs.com/poloyy/p/12375039.html 下载安装PrometheusPROM_PATH='/data/prometheus'mkdir-p${PROM_PATH}mkdir-p${PROM_PATH}/{data,conf,logs,bin}useraddprometheuscd/usr/local/srcwgethttps://github.com/prometheus/prom......
  • vue2使用vue-pdf实现pdf分页预览及缩放
    1. 安装依赖npminstall--savevue-pdf2.在需要的页面,引入插件importpdffrom'vue-pdf'3.组件封装完整代码展示应用:<template><pdf-viewer:srcList="Url"style="width:150px;height:100px"></pdf-viewer&g......
  • 在副本集和分片集群上构建 MongoDB 索引
    1.限制留有足够的内存来容纳工作集是非常重要的。不一定所有索引都要放在内存中。在v4.0之前,索引键的限制应小于1024字节。从v4.2版开始,这一限制被取消。索引名也是如此,在使用fcv4.0及以下版本的数据库中,索引名的最大长度为127字节。在dbv4.2和fcv4.2中,这一......
  • 在Linux中,如何使用Grafana和Prometheus进行网络监控和可视化?
    Grafana和Prometheus是两个强大的开源工具,经常一起使用来进行网络监控和数据可视化。Prometheus是一个监控和警报工具,它可以收集和存储时间序列数据。Grafana则是一个开源的数据可视化和分析平台,它可以连接到Prometheus并创建丰富的仪表板来展示和分析数据。1.安装和配置Prometh......
  • HarmonyOS NEXT应用开发之图片缩放效果实现
    介绍图片预览在应用开发中是一种常见场景,在诸如QQ、微信、微博等应用中均被广泛使用。本模块基于Image组件实现了简单的图片预览功能。使用说明:双指捏合缩放图片大小双击图片进行图片的大小切换图片在放大模式下,滑动图片查看图片的对应位置效果图预览实现思路image组......
  • openGauss Prometheus-Exporter组件命令参考
    命令参考reprocessing-exporter的使用帮助详情:gs_dbmindcomponentreprocessing_exporter--helpusage:[-h][--disable-https][--ssl-keyfileSSL_KEYFILE][--ssl-certfileSSL_CERTFILE][--ssl-ca-fileSSL_CA_FILE][--web.listen-addressWEB.LISTEN_ADDRESS][--web......
  • openGauss Prometheus-Exporter组件使用指导
    使用指导用户可通过gs_dbmind命令启动对应的exporter。下面为用户演示一个完整的Prometheus监控平台的搭建过程。通过命令行进行Prometheus和所有exporter的启动:gs_dbmindcomponentdeployment--runprometheus和各个exporter单独的启动方式可以参考后续步骤,如果用户只采......
  • openGauss Prometheus-Exporter组件常见问题处理
    常见问题处理提示需要用户提供--ssl-keyfile与--ssl-certfile选项:上述exporter默认采用Https模式通信,因此需要用户指定证书及其私钥文件的路径。相反,如果用户只想采用Http模式,则需要显性给定--disable-https选项,从而禁用Https协议。提示用户需要输入PEM密码(EnterPEMpass......
  • openGauss Prometheus-Exporter组件环境部署
    环境部署用户可以从Prometheus的官网上下载Prometheus-server和node-exporter,然后根据官方文档中的说明启动它们;也可以通过DBMind提供的快捷部署工具进行部署;如果用户自行部署,则可以跳到部署过程中为支持部署位置正确以及后续的运行和监测...。通过命令行进行Prometheus和......