Python:使用prometheus-client提交数据到实现prometheus+ grafana数据监控

相关资料

  • prometheus文档:https://prometheus.io/
  • grafana文档:https://grafana.com/
  • grafana github: https://github.com/grafana/grafana
  • Pyhton客户端https://pypi.org/project/prometheus-client/

目录

    • 1、使用Python提供数据源
    • 2、启动 prometheus
    • 3、启动 grafana

1、使用Python提供数据源

安装依赖

pip install prometheus-client

基于flask服务代码示例

随机返回一些数值

# -*- coding: utf-8 -*-
"""
@File    : demo.py
@Date    : 2023-06-30
"""import random
import prometheus_client
from flask import Flask, Response
from prometheus_client import Gauge
from prometheus_client.core import CollectorRegistryapp = Flask(__name__)@app.get('/metrics')
def metrics():"""prometheus metrics接口:return:"""registry = CollectorRegistry(auto_describe=False)gauge = Gauge(name="flask_app",documentation="this is a flask app data",labelnames=["label"],registry=registry)rows = [{'label': '张飞','value': random.randint(10, 20)},{'label': '赵云','value': random.randint(10, 20)},{'label': '刘备','value': random.randint(10, 20)}]for row in rows:gauge.labels(row['label']).set(row['value'])return Response(prometheus_client.generate_latest(registry), mimetype='text/plain')if __name__ == '__main__':app.run(host='0.0.0.0', port=8000)

2、启动 prometheus

From metrics to insight Power your metrics and alerting with the leading open-source monitoring solution.

译文:从度量到洞察力,通过领先的开源监控解决方案。

配置文件 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: "prometheus"# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ["localhost:9090"]- targets: ["192.168.0.101:8000"]

注意:如果是docker方式启动,ip地址需要配置局域网ip,不能使用127.0.0.1

使用docker方式启动 prometheus

docker run \
-p 9090:9090 \
-v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml \
--name prometheus \
prom/prometheus

访问地址:http://localhost:9090/

在这里插入图片描述

3、启动 grafana

The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.

译文:开放、可组合的可观测性和数据可视化平台。可视化来自Prometheus、Loki、Elasticsearch、InfluxDB、Postgres等多个来源的指标、日志和跟踪。

使用docker方式启动 grafana

docker run -d \
-p 3000:3000 \
--name grafana \
grafana/grafana

访问地址:http://localhost:3000/

在这里插入图片描述

参考文章

  1. grafana添加prometheus数据源并导入仪表盘展示
  2. 数据采集export使用prometheus_client 和 Flask实现

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于高精度三维机器视觉的新能源汽车锂电池表面缺陷检测

​Part.1 行业背景 ​随着新能源汽车在全球范围内成为焦点发展领域&#xff0c;企业对电池质量控制和检测的要求也变得更加严格。在机器视觉行业迅速发展的背景下&#xff0c;市场上提供了功能强大且种类齐全的3D相机系列&#xff0c;可以满足锂电池从电芯到模组各个工艺和工位…

如何修改 Linux 的时区

文章结构 一、查看 Linux 当前时区二、获取时区 TZ 值&#xff08;可选做&#xff09;三、配置 TZ 值四、加载配置并检验是否生效 TZ 是 time zone 的缩写&#xff01; 一、查看 Linux 当前时区 你可以使用如下命令非常容易地就查看到 Linux 系统的当前时区&#xff1a; # 查…

Java 设计模式实战系列—工厂模式

在 Java 开发中&#xff0c;对象的创建是一个常见的场景&#xff0c;如果对象的创建和使用都写在一起&#xff0c;代码的耦合度高&#xff0c;也不利于后期的维护。我们可以使用工厂模式来解决这个问题&#xff0c;工厂模式是一个创建型模式&#xff0c;将对象的创建和使用分离…

【Visual Studio】使用 C++ 语言,配合 Qt,开发了一个串口通信界面

知识不是单独的&#xff0c;一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏&#xff1a;Visual Studio。 文章目录 1. 获取串口名字1.1 文件 GUI.ui1.2 文件 GUI.h1.3 文件 GUI.cpp潜在 Bug&#xff1a;LN2019 2. 配置串口连接2.1 文件 GUI.ui2.2 文件 GUI.h2.3 文…

【C#】简单聊下Framework框架下的事务

框架用的多了&#xff0c;之前版本的事务都忘记了。本次简单聊下.net framework 4.8框架下本身的事务 目录 1、SqlClient2、TransactionScope3、引用 1、SqlClient 在 C# 中&#xff0c;使用 using 块可以方便地实现对资源的自动释放&#xff0c;但它不适用于实现事务处理。为…

一种基于linux内核双向链表的移植

1.简介 双向链表&#xff08;Doubly Linked List&#xff09;是一种常见的数据结构&#xff0c;由一系列的节点组成&#xff0c;每个节点都包含两个指针&#xff0c;分别指向前一个节点和后一个节点。与单向链表不同&#xff0c;双向链表可以在 O(1) 的时间复杂度内向前或向后遍…

虚拟机VMware+Ubuntu配置DPDK环境并运行Helloworld

虚拟机VMwareUbuntu配置DPDK环境并运行Helloworld 文章目录 虚拟机VMwareUbuntu配置DPDK环境并运行Helloworld安装虚拟机虚拟机中安装DPDK运行Helloworld 首先需要强调的是&#xff0c;版本的影响很大&#xff0c;有可能会因为版本不匹配而导致无法成功配置DPDK环境。 安装虚拟…

火山引擎 Iceberg 数据湖的应用与实践

在云原生计算时代&#xff0c;云存储使得海量数据能以低成本进行存储&#xff0c;但是这也给如何访问、管理和使用这些云上的数据提出了挑战。而 Iceberg 作为一种云原生的表格式&#xff0c;可以很好地应对这些挑战。本文将介绍火山引擎在云原生计算产品上使用 Iceberg 的实践…

Scrapy框架之认识MongoDB

目录 MongoDB 简介 特点 MongoDB的适用场景 MongoDB的行业具体应用 如何抉择是否使用MongoDB MongoDB 简介 MongoDB 是免费开源的跨平台 NoSQL 数据库&#xff0c;命名源于英文单词 humongous&#xff0c;意思是「巨大无比」&#xff0c;可见开发组对 MongoDB 的定位。…

函数模板和类模板 知识点总结 C++程序设计与算法笔记总结(七) 北京大学 郭炜

函数模板 交换两个整型变量的值的Swap函数&#xff1a; void Swap(int & x,int & y) { int tmp x; x y; y tmp; } 交换两个double型变量的值的Swap函数: void Swap(double & x,double & y) { double tmp x; x y; y tmp; }用函数模板解决&#xff1a; …

计算几何——gitf-wrapping算法

几何中的"gift-wrapping"算法&#xff0c;又称为"Jarvis算法"&#xff0c;是一种用于计算凸包(convex hull)的方法。下面我将为你解释一下该算法的步骤&#xff1a; 1. 找到具有最小x坐标的点P&#xff0c;我们将其作为凸包的起点。 2. 将P标记为当前点&a…

Java Spring概述

1、Spring是什么&#xff1f; Spring 是一款主流的 Java EE 轻量级开源框架 &#xff0c;Spring 由“Spring 之父”Rod Johnson 提出并创立&#xff0c;其目的是用于简化 Java 企业级应用的开发难度和开发周期。Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦…