[转帖]Prometheus-使用python开发exporter
exporter有很多,但想要特定需求的话,还需自行开发。在这里使用python写一个exporter,用于监控/root下的目录数量。
开发exporter需要使用prometheus_client库,具体规范可参考:https://github.com/prometheus/client_python ,根据规范可知要想开发一个exporter需要先
1. 定义数据类型,metric,describe(描述),标签
2. 获取数据
3. 传入数据和标签
4. 暴露端口,不断的传入数据和标签
知道了开发的步骤,下边开始实战。
1. 安装prometheus_client库
pip3 install prometheus_client
2. 代码
#!/usr/bin/python3
from prometheus_client import start_http_server,Gauge
import os
import time
#定义数据类型,metric,describe(描述),标签
dir_num = Gauge('dirNum','Calculate the number of directories',['instance'])
def get_dir_num():
#获取目录个数
path = "/root/"
count = 0
for cdir in os.listdir(path):
if os.path.isdir(path+cdir) and not cdir.startswith('.'):
count += 1
#获取主机ip
f = os.popen("hostname -i | awk '{print $2}'")
ip = f.read().strip('\n')
f.close()
dir_num.labels(instance=ip).set(count)
if name == "main":
#暴露端口
start_http_server(8000)
#不断传入数据
while True:
get_dir_num()
time.sleep(10)
3. 创建两个文件

4. 访问

5. python进程托管到supervisord
当然托管到systemd也可以
安装supervisord
yum install supervisor -y
添加子进程配置文件(supervisord默认配置文件为/etc/supervisord.conf,为主进程配置文件,子进程配置文件可在/etc/supervisord.d/下创建,具体可参考https://www.jianshu.com/p/0b9054b33db3)
vim /etc/supervisord.d/dirNum_exporter.ini
[program:dirNum_exporter]
directory=/opt/bin
command=/usr/bin/python3 /opt/bin/dirNum_exporter.py
autostart=true
autorestart=false
startsecs=1
user=root
启动supervisord服务
systemctl start supervisord
查看子进程
[root@prometheus ~]# supervisorctl status
dirNum_exporter RUNNING pid 7458, uptime 0:09:21
- 1
- 2
6. 修改Promehteus配置文件
修改prometheus配置文件
vim /usr/local/prometheus/prometheus.yml
- job_name: "dirNum"
static_configs:
- targets:
- 192.168.71.21:8000
重载服务
curl -X POST http://192.168.71.21:9090/-/reload
查看

[转帖]Prometheus-使用python开发exporter的更多相关文章
- python开发环境搭建
虽然网上有很多python开发环境搭建的文章,不过重复造轮子还是要的,记录一下过程,方便自己以后配置,也方便正在学习中的同事配置他们的环境. 1.准备好安装包 1)上python官网下载python运 ...
- 【Machine Learning】Python开发工具:Anaconda+Sublime
Python开发工具:Anaconda+Sublime 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现 ...
- Python开发工具PyCharm个性化设置(图解)
Python开发工具PyCharm个性化设置,包括设置默认PyCharm解析器.设置缩进符为制表符.设置IDE皮肤主题等,大家参考使用吧. JetBrains PyCharm Pro 4.5.3 中文 ...
- Python黑帽编程1.2 基于VS Code构建Python开发环境
Python黑帽编程1.2 基于VS Code构建Python开发环境 0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Atta ...
- Eclipse中Python开发环境搭建
Eclipse中Python开发环境搭建 目 录 1.背景介绍 2.Python安装 3.插件PyDev安装 4.测试Demo演示 一.背景介绍 Eclipse是一款基于Java的可扩展开发平台. ...
- Python开发:环境搭建(python3、PyCharm)
Python开发:环境搭建(python3.PyCharm) python3版本安装 PyCharm使用(完全图解(最新经典))
- Python 开发轻量级爬虫08
Python 开发轻量级爬虫 (imooc总结08--爬虫实例--分析目标) 怎么开发一个爬虫?开发一个爬虫包含哪些步骤呢? 1.确定要抓取得目标,即抓取哪些网站的哪些网页的哪部分数据. 本实例确定抓 ...
- Python 开发轻量级爬虫07
Python 开发轻量级爬虫 (imooc总结07--网页解析器BeautifulSoup) BeautifulSoup下载和安装 使用pip install 安装:在命令行cmd之后输入,pip i ...
- Python 开发轻量级爬虫06
Python 开发轻量级爬虫 (imooc总结06--网页解析器) 介绍网页解析器 将互联网的网页获取到本地以后,我们需要对它们进行解析才能够提取出我们需要的内容. 也就是说网页解析器是从网页中提取有 ...
- Python 开发轻量级爬虫05
Python 开发轻量级爬虫 (imooc总结05--网页下载器) 介绍网页下载器 网页下载器是将互联网上url对应的网页下载到本地的工具.因为将网页下载到本地才能进行后续的分析处理,可以说网页下载器 ...
随机推荐
- Odoo16—级联删除
我们在odoo中构建业务系统模块的时候,通常会使用one2many.many2one或many2many将模型进行关联,由此产生的数据也会通过外键发生关联.那么在odoo中删除数据的时候,如何关联删除 ...
- CSS之动画
一.动画 动画类型 CSS3 可以创建动画,它可以取代许多网页动画图像.Flash 动画和 JavaScript 实现的效果. transform属性可以定义一些主要的动画属性, translate: ...
- 2023-05-13:你现在手里有一份大小为 n x n 的 网格 grid, 上面的每个 单元格 都用 0 和 1 标记好了其中 0 代表海洋,1 代表陆地。 请你找出一个海洋单元格,这个海洋单元格
2023-05-13:你现在手里有一份大小为 n x n 的 网格 grid, 上面的每个 单元格 都用 0 和 1 标记好了其中 0 代表海洋,1 代表陆地. 请你找出一个海洋单元格,这个海洋单元格 ...
- flutter屏幕适配方案
使用MediaQuery和比例因子 优点:使用简单,可以处理大多数情况下的屏幕适配需求. 缺点:需要手动计算比例因子,并且随着UI元素变得更加复杂和层次化(例如多层次列表或动画效果),使用此方法可能会 ...
- 干货分享丨从MPG 线程模型,探讨Go语言的并发程序
摘要:Go 语言的并发特性是其一大亮点,今天我们来带着大家一起看看如何使用 Go 更好地开发并发程序. 我们都知道计算机的核心为 CPU,它是计算机的运算和控制核心,承载了所有的计算任务.最近半个世纪 ...
- 基于lio-sam框架,教你如何进行回环检测及位姿计算
摘要:本篇主要解析lio-sam框架下,是如何进行回环检测及位姿计算的. 本文分享自华为云社区<lio-sam框架:回环检测及位姿计算>,作者:月照银海似蛟龙 . 前言 图优化本身有成形的 ...
- 云图说丨初识数据工坊DWR
摘要:数据工坊DWR是一款近数据处理服务,通过易用的工作流编排和开放生态的数据处理算子,能够在云上实现图像.视频.文档.图片等数据处理业务. 本文分享自华为云社区<[云图说]第236期 初识数据 ...
- 讲透学烂二叉树(三):二叉树的遍历图解算法步骤及JS代码
二叉树的遍历是指不重复地访问二叉树中所有结点,主要指非空二叉树,对于空二叉树则结束返回. 二叉树的遍历分为 深度优先遍历 先序遍历:根节点->左子树->右子树(根左右),有的叫:前序遍历 ...
- Mvc管道模型和处理请求的流程
管道事件 ASP.NET MVC请求到响应的基本流程 原文链接:https://blog.csdn.net/qq_37112587/article/details/112340916
- 只需 3 步,人人都能搭建自己的 chatgpt 微信机器人
大家好,我是徐公,大厂 6 年经验,CSDN 博客专家.最近,ChatGpt 很火,身边的人都在讨论,会不会成为下一个风口,像前几年互联网一样,迎来井喷式的发展. 徐公我最近也是在密切关注,最近,在 ...