当前位置:网站首页>[Prometheus] An optimization record of the Prometheus federation [continued]
[Prometheus] An optimization record of the Prometheus federation [continued]
2022-07-30 18:33:00 【Meepoljd】
前言
It's been sorted out beforePrometheusOptimization record for federated clusters,A discard for useless indicators,To a certain extent, the data pull pressure of query nodes is linked,But when the index is large enough,Or after collecting enough endpoints,This method is a bit clumsy;So grouping the metrics becomes the next optimization method,在此记录一下.
Refer to the previous article for masking of non-essential metrics【Prometheus】Prometheus联邦的一次优化记录
正文
服务器规划
First explain the current environment of the threePrometheusNode planning,IP经过处理:
| 服务器IP | 服务器类型 | CPU | 内存 |
|---|---|---|---|
| 10.0.0.69 | 采集Prometheus | 64 | 256 |
| 10.0.0.70 | 采集Prometheus | 64 | 256 |
| 10.0.0.71 | 汇聚Prometheus | 64 | 256 |
其中采集PrometheusThe function is to pull data from a specific collection endpoint,如node_exporter;汇聚PrometheusResponsible for collecting from eachPrometheusMetrics collected by node periodic aggregation;
分析过程
after the last optimization,The monitored collection endpoints continue to increase,在前几天,There is a collectionPrometheusBreakpoints in metric ingestion due to too long response time began to occur frequently again:
Check on the corresponding server,The resource usage of the host is not high,PrometheusThe process does not take up too many resources,Exclude collectionPrometheusMetric collection exceptions caused by resource bottlenecks,This node has collected the necessary metrics from the host,Then the suspicion is still the queryPrometheusIt is caused by a timeout when the node aggregates metrics;
The configuration after the last optimization modification is as follows:
- job_name: 'federate'
honor_labels: true
metrics_path: '/federate'
params:
'match[]':
- '{__name__=~"node_.*|up.*"}'
static_configs:
- targets:
- '10.0.0.69:9090'
- '10.0.0.70:9090'
labels:
cluster: XXXX系统
tls_config:
insecure_skip_verify: true
The required metrics are currently screened,Therefore, there is no way to reduce the total amount of index collection,It is possible to consider the method of splitting the indicators transmitted in large batches for aggregation,That is, two collections would have been aggregated separatelyPrometheusFull monitoring indicators of the node(Of course in this example only ingestionnode_开头的和up开头的指标)
Group intake
Because the collected host monitoring indicators all existinstance标签,The operation of grouping and pulling indicators can be performed through network segments,In this way, each pull action will not pull a huge amount of indicators,Instead, it is broken down into smaller pull actions,具体操作如下:
# 第一组
- job_name: 'federate_0'
honor_labels: true
metrics_path: '/federate'
params:
'match[]':
# 负责拉取10.0.4开头的IP的服务器指标
- '{__name__=~"node_.*|up.*",instance=~"10.0.4.*9100"}'
static_configs:
- targets:
- '10.0.0.69:9090'
- '10.0.0.70:9090'
labels:
cluster: XXXX系统
tls_config:
insecure_skip_verify: true
# 第二组
- job_name: 'federate_1'
honor_labels: true
metrics_path: '/federate'
params:
'match[]':
# 负责拉取10.0.6开头的IP的服务器指标
- '{__name__=~"node_.*|up.*",instance=~"10.0.6.*9100"}'
static_configs:
- targets:
- '10.0.0.69:9090'
- '10.0.0.70:9090'
labels:
cluster: XXXX系统
tls_config:
insecure_skip_verify: true
# 第三组
- job_name: 'federate_2'
honor_labels: true
metrics_path: '/federate'
params:
'match[]':
# 负责拉取10.0.7/8开头的IP的服务器指标
- '{__name__=~"node_.*|up.*",instance=~"10.0.7.*9100|10.0.8.*9100"}'
static_configs:
- targets:
- '10.0.0.69:9090'
- '10.0.0.70:9090'
labels:
cluster: XXXX系统
tls_config:
insecure_skip_verify: true
# 第四组
- job_name: 'federate_3'
honor_labels: true
metrics_path: '/federate'
params:
'match[]':
# 负责拉取10.30开头的IP的服务器指标
- '{__name__=~"node_.*|up.*",instance=~"10.30.*9100"}'
static_configs:
- targets:
- '10.0.0.69:9090'
- '10.0.0.70:9090'
labels:
cluster: XXXX系统
tls_config:
insecure_skip_verify: true
然后保存配置,并重载Prometheus服务;Observe the index intake again,Acquisition breakpoints no longer appear:
Look at the intake time,This time produces a very large optimization effect:
小结
在Prometheuswhen collecting indicators,Either a federated or a single-node approach,It is necessary to reduce data ingestion at each metric ingestion endpoint as much as possible,In this way, sufficient delay requirements can be met,Otherwise, network transmission will consume a lot of data pulling time,Causes a breakpoint on the monitored metric.
边栏推荐
- CCNA-子网划分(VLSM)
- 高精度加法
- AI Basics: Graphical Transformer
- The Meta metaverse division lost 2.8 billion in the second quarter!Still want to keep betting?Metaverse development has yet to see a way out!
- mysql的多实例
- 基于b/s架构搭建一个支持多路摄像头的实时处理系统 ---- 使用yolo v5 系列模型
- SwiftUI iOS 精品开源项目之 完整烘焙食品菜谱App基于SQLite(教程含源码)
- MySql中@符号的使用
- Read the "Language Model" in one article
- Confluence OGNL注入漏洞复现(CVE-2022-26134)
猜你喜欢

A senior with 13 years of experience in software testing, summed up 5 test employment suggestions....

荐书 | 推荐好评如潮的3本数据库书籍

Mongo for infrastructure

node封装一个控制台进度条插件

网络基础(二)-Web服务器-简介——WampServer集成服务器软件之Apache+MySQL软件安装流程 & netstat -an之检测计算机的端口是否占用

"Ruffian Heng Embedded Bimonthly" Issue 59

Codeblocks + Widgets create window code analysis

432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型

一文读懂“语言模型”

LeetCode 练习——关于查找数组元素之和的两道题
随机推荐
Pytorch基础--tensorboard使用(一)
ESP8266-Arduino编程实例-DS18B20温度传感器驱动
Codeblocks + Widgets create window code analysis
【HMS Core】【FAQ】运动健康、音频编辑、华为帐号服务 典型问题合集7
二分答案裸题(加一点鸽巢原理)
[Summary] 1396- 60+ VSCode plugins to create a useful editor
The Meta metaverse division lost 2.8 billion in the second quarter!Still want to keep betting?Metaverse development has yet to see a way out!
MYSQL(基本篇)——一篇文章带你走进MYSQL的奇妙世界
AWS console
【PHPWord】PHPOffice 套件之PHPWord快速入门
6 yuan per catty, why do Japanese companies come to China to collect cigarette butts?
Scrapy框架介绍
Mongo for infrastructure
kotlin的by lazy
Read the "Language Model" in one article
DM8:单库单实例搭建本地数据守护服务
Confluence OGNL注入漏洞复现(CVE-2022-26134)
深化校企合作 搭建技术技能人才成长“立交桥”
Basic use of scrapy
【AGC】构建服务1-云函数示例