当前位置: 首页 > news >正文

c++ 项目使用 prometheus + grafana 进行实时监控

监控指标设置

使用 prometheus-cpp 进行监控指标设置,这里以 mqtt-server 的活跃连接数为例,统计四种协议类型的活跃连接数,在接收到连接进行连接数加一,连接断开时进行连接数减一,使用 gauge 类型

#pragma once#include <unordered_map>#include "metrics/IMetrics.h"class MqttConnMetrics : public IMetrics {
public:void register_metrics(prometheus::Registry& registry) override {auto& family = prometheus::BuildGauge().Name("mqtt_active_connections").Help("Number of active MQTT connections").Register(registry);protocol_gauges_ = {{MQTT_PROTOCOL::MQTT, &family.Add({{"protocol", "mqtt"}})},{MQTT_PROTOCOL::MQTTS, &family.Add({{"protocol", "mqtts"}})},{MQTT_PROTOCOL::WS, &family.Add({{"protocol", "ws"}})},{MQTT_PROTOCOL::WSS, &family.Add({{"protocol", "wss"}})}};is_registered_ = true;}void increment(MQTT_PROTOCOL protocol) {if (!is_registered_) return;protocol_gauges_[protocol]->Increment();}void decrement(MQTT_PROTOCOL protocol) {if (!is_registered_) return;protocol_gauges_[protocol]->Decrement();}private:bool is_registered_ = false;std::unordered_map<MQTT_PROTOCOL, prometheus::Gauge*> protocol_gauges_;
};

开发完成后,可以通过 http://<address>:<port>/metrics 路径访问到所有的监控指标

prometheus 采集监控指标

安装好 prometheus 之后修改一下 prometheus.yml 配置中 采集的目的地址

# my global config
global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.# scrape_timeout is set to the global default (10s).# Alertmanager configuration
alerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:# - "first_rules.yml"# - "second_rules.yml"# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: "mqtt-server"scrape_interval: 1s# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ["localhost:8085"]

启动后访问 prometheus 界面,检查是否成功采集到,默认地址 http://localhost:9090

grafana 展示监控数据

安装完 grafana 之后,进入界面添加 prometheus 数据源,然后新增仪表盘,配置监控指标等

相关文章:

  • 数据管道架构设计指南:5大模式与最佳实践
  • LG P4278 带插入区间K小值 Solution
  • Java的接口
  • 阿帕奇基金会软件授权与公司贡献者许可协议(中英双语版)
  • 基于CATIA轴系的最小边界曲面自动化生成技术深度解析
  • 力扣的SQL
  • 搭建基于 Prometheus、Grafana 和 Alertmanager 的监控告警系统
  • 「Linux文件及目录管理」文件内容的显示和处理类命令
  • 揭开MongoDB的神秘面纱:从陌生到初识
  • 如何修改PyCharm的界面颜色(超详细)
  • 手写简版React-router
  • 2025ICRA 最佳论文解读:麻省理工PolyTouch:一种多模态触觉传感器以及基于触觉扩散策略的接触丰富操作方法
  • 【学习笔记】深入理解Java虚拟机学习笔记——第9章 类加载及执行子系统的案例与实战
  • C语言进阶:深度解剖数据在内存中的存储(浮点型在内存中的存储)
  • Linux系统firewall-offline-cmd命令在企业网络安全防护中的应用案例分析
  • 2.RMII的时钟模式
  • Python训练营打卡 Day54
  • 【LangChain】5 评估
  • WebAssembly 2.0:超越浏览器的全栈计算革命
  • 修改Rocky Linux文件夹颜色
  • 做网站容易吗/百度搜索引擎的特点
  • 网站开发多少钱一天是/厦门网站的关键词自动排名
  • 深圳快速网站制作服/长沙建站优化
  • WordPress更改角色插件/网站推广和优化系统
  • wordpress获取当前页面链接地址/深圳网站优化公司
  • 正规广东网络推广公司/seo外推