k8s监控指标整改のthanos转VictoriaMetrics

news/2024/10/5 6:13:22

一、问题背景

目前thanos已经稳定在线上运行了5年了,随着集群的数量越来越多,数据量也是水涨船高,大得惊人,查询时延需要5s以上。

通过对比各种开源时序数据库,选择了VictoriaMetrics,以为特定需求的用户提供最合适的解决方案。

以下是性能比较

二、整体架构

跟官方推荐架构并无太大区别 cluster-victoriametrics

PS:蓝色为IDC部署,绿色为k8s pod部署

https://docs.victoriametrics.com/vmagent/

  • Can be used as a drop-in replacement for Prometheus for discovering and scraping targets such as node_exporter. Note that single-node VictoriaMetrics can also discover and scrape Prometheus-compatible targets in the same way as vmagent does - see these docs.

vmagent可以用于直接替换prometheus,因此没必要再架一个prometheus

 

三、采集端

指标鉴权

指标鉴权是否可以集成在vm-agent?或者我们直接用vmagent的relabel的功能

采集链路

采集的链路比较长,中间某一个组件如果出现故障或者网络问题都无法保证采集的数据到vmagent。并且假设collector推送指标到指标网关失败,事实上也会导致指标数据丢失

 

待优化项:

简化采集的链路,同时考虑增加一个WAL的模块,保证数据能够尽力推送到vm-agent。同时vm-agent采用就近部署,降低网路异常带来的影响。同时可以设置一个TTL,避免失效的数据推到vm

 

stream aggregation

对于pull的指标,指标的拉取时间间隔由vm指定,但是push的方式指标的量完全由collector控制,假设我们需要监控iotio的请求时延、成功率等业务指标,会导致TSDB的存储数据量非常大。这时候我们需要用stream aggregation来进行指标的汇总和过滤。

https://docs.victoriametrics.com/stream-aggregation/

https://docs.victoriametrics.com/stream-aggregation/#reducing-the-number-of-stored-samples

这个纯粹是vm-agent的特性,不需要要额外部署组件。

 

四、备份

replication-and-data-safety

speeding-up-backups-for-big-time-series-databases-533c1a927883

总结来说官方说明就是复制并不能解决灾难性故障,vm的默认策略是优先保证可用性,而不是数据一致性。我们可以使用vm-backup工具进行增量/全量数据备份

 

 

参考文档

migrating-data-from-thanos

thanos-vs-victoriametrics/

github VictoriaMetrics

prometheus-vs-victoriametrics-benchmark-on-node-exporter-metrics

k8s-monitoring-via-vm-cluster

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/47623.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

好用的实时同步软件应该具备哪些能力?

数据同步是很多行业企业的刚性需求,如金融机构,特别是传统金融机构的数据中心,需要实现异地灾备以确保业务连续性和数据安全性。实时数据同步是实现这一目标的核心能力;IT服务提供商,这类企业通常需要为不同客户提供数据同步解决方案;全国医药连锁企业,这类企业需要对医…

2024最新idea包

蓝奏云: https://wwm.lanzouq.com/in50b22nkrhc 密码:amhh

在洛谷使用c#刷题如何提高输入输出效率

这是我目前使用的方案,有什么更优的方案欢迎大家分享 使用StreamReader和StreamWriter进行输入和输出+自己解析字符串,例如P1253 public class P1253 {public static void Main(){using (StreamReader sr = new StreamReader(Console.OpenStandardInput())){using (StreamWri…

每天学一个 Linux 命令(12):chown

Github地址: https://github.com/mingongge/Learn-a-Linux-command-every-day命令简介 chown命令用来变更文件或目录的拥有者或所属群组,通过chown改变文件的拥有者和群组。用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的文件列表,文件名也支持通配…

表单引擎字段类型该如何设计?

在软件行业的发展过程中,从业者对于开发效率和质量提升是一直在追随的一个目标。通过复用软件模块来实现这些目标通常是一种有效的手段,从头文件引入、面向对象的封装、动态库的引入、代码生成器类工具、低代码引擎等,随着行业技术发展能复用的层次也从底层的文件逐步到界面…

apisix~14在自定义插件中调用proxy_rewrite

在 Apache APISIX 中,通过 proxy-rewrite 插件来修改上游配置时,需要确保插件的执行顺序和上下文环境正确。你提到在自己的插件中调用 proxy_rewrite.rewrite({host="new_upstream"}, ctx),但新上游没有生效,这可能是由于以下几个原因:插件执行顺序:确保你的自…

NAS安全存储怎样实现更精细的数据权限管控?

NAS存储,即网络附属存储(Network Attached Storage),是一种专用数据存储服务器,其核心特点在于将数据存储设备与网络相连,实现集中管理数据的功能。NAS存储具有以下明显优势,而被全球范围内的企业都广泛采用: 集中存储:NAS可以将所有设备(如电脑、手机、平板等)的数…

【运维自动化-配置平台】如何对主机进行纳管

主机是配置平台管控最常见的资源,也是运维日常主要的管控对象;如何对主机进行全生命周期管理呢导入主机直接导入直接导入仅适用于直连区域(default area)的主机,也就是网络跟蓝鲸平台能内网互通的。 资源–>主机–>导入主机导入后的主机在主机池-空闲机模块下,默认…