prometheus python client

为什么80%的码农都做不了架构师?>>>   hot3.png

当我刚开始准备使用Python写一个promethues的client的时候,并没有想到过程这么麻烦。github上的大佬们也没兴趣帮我解决这些细节的问题。以下是我在使用prometheus_client遇到的一些问题,仅供大家参考

首先参考下github上的例子

https://github.com/prometheus/client_python

我们使用Gauge这个数据类型来做示例,毕竟用的很多

from prometheus_client import Gauge
g = Gauge('my_inprogress_requests', 'Description of gauge')
g.set(value)   #value自己定义,但是一定要为 整数或者浮点数

这个例子非常简单,如果我们需要定义一些label,该如何做呢

from prometheus_client import Gauge
g = Gauge('my_inprogress_requests', 'Description of gauge',['mylabelname'])
g.labels(mylabelname='str').set(value)   #value自己定义,但是一定要为 整数或者浮点数
#此时一定要注意,定义Gague标签的时候是一个列表,列表可以存多个lablename,类型是字符串
#在给lable定义value的时候也要注意,mylablename 这里是一个方法,或者说是一个变量了,一定要注意.

好了,现在我们来启动一个http 

from prometheus_client import Gauge,start_http_serverfrom prometheus_client import Gauge
a = Gauge('a', 'Description of gauge')
a.set(345)   #value自己定义,但是一定要为 整数或者浮点数g = Gauge('g', 'Description of gauge',['mylabelname'])
g.labels(mylabelname='jastme').set(123)   #value自己定义,但是一定要为 整数或者浮点数
#此时一定要注意,定义Gague标签的时候是一个列表,列表可以存多个lablename,类型是字符串
#在给lable定义value的时候也要注意,mylablename 这里是一个方法,或者说是一个变量了,一定要注意.start_http_server(8000)

这样你就可以通过http访问到数据

但是请注意,这是个静态页面。

如果需要做一个动态页面,请

 

from prometheus_client import Gauge,start_http_server
import randomfrom prometheus_client import Gauge
a = Gauge('a', 'Description of gauge')
a.set(random.random())   #value自己定义,但是一定要为 整数或者浮点数g = Gauge('g', 'Description of gauge',['mylabelname'])#此时一定要注意,定义Gague标签的时候是一个列表,列表可以存多个lablename,类型是字符串
#在给lable定义value的时候也要注意,mylablename 这里是一个方法,或者说是一个变量了,一定要注意.start_http_server(8000)
while True:g.labels(mylabelname='jastme').set(random.random())

这样g的值就是 随机的, 而a的值一直是固定的。

转载于:https://my.oschina.net/jastme/blog/1546174

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

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

相关文章

php之无限极分类

http://blog.csdn.net/kankan231/article/details/8462349/转载于:https://www.cnblogs.com/jeremyjs/p/4798169.html

【遥感数字图像处理】实验:遥感影像分类(监督、非监督分类)完整流程(Erdas版)

一.实验目的: 理解计算机图像分类的基本原理,掌握数字图像非监督分类以及监督分类的具体方法和过程,以及两种分类方法的区别。 二.实验平台:ERDAS IMAGINE 9.1 三.实验要求:掌握非监督分类;非监督分类结果评价;监督分类;监督分类结果评价;分类后处理。 四.实验…

mysql5.7.16安装版_mysql数据库5.7.16安装版怎么安装图解

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户…

重大跨越!Windows 11 23H2 25115 推送:2023 年更新测试开启,水印回归

面向 Dev 频道的 Windows 预览体验成员,微软现已发布 Windows 11 预览版 Build 25115。主要变化1.微软宣布从 Dev 频道切换到 Beta 频道的选项正式关闭,Beta 频道将继续测试 Windows 11 版本 22H2,而 Dev 频道将开启 2023 年更新 Windows 11 …

团队第二次冲刺第三天

已经明白自己犯错误的地方,经过今天的改正,成功调用数据库储存用户名和密码。 明天对于数据库更加完善。转载于:https://www.cnblogs.com/dotacai/p/5521506.html

Android Studio编译提示如下attribute layout_constraintBottom_toBottomOf (aka com.luck.pictureselector:layou

1 问题 Android Studio编译提示错误如下 AAPT: error: attribute layout_constraintBottom_toBottomOf (aka com.luck.pictureselector:layout_constraintBottom_toBottomOf) not found.2 解决办法 在app的build.gradle文件里面添加依赖如下 implementation androidx.const…

《零基础看得懂的C++入门教程 》——(4)条件判断原来如此

一、学习目标 了解什么是条件判断了解多个条件判断了解输入了解什么是逻辑与、逻辑或 目录 预备第一篇,使用软件介绍在这一篇,C与C使用的软件是一样的,查看这篇即可:《软件介绍》 想了解编译原理和学习方法点这篇,学…

Django学习笔记(4)

为什么80%的码农都做不了架构师?>>> 首先提一个问题:在Django中如何处理CRSF(Cross-site request forgery)? 先看一下CSRF原理。 其实就是恶意网站利用正常网站的cookie去非法请求。 ##Java处理方式## 一般做法需要后台和前端配合采取策略去…

MySQL复制--slave设置读取binlog的位置

change_master->global_init_info->Master_info::mi_init_info->Rpl_info_handler::init_info->Rpl_info_file::do_init_info ->mi->rli->rli_init_info()->初始化./relay-bin.000001,4如果relay-log.info不存在的话,否则读取//初始化mas…

【遥感数字图像处理】实验:遥感专题地图制作经典流程(Erdas版)

实验目的:掌握计算机辅助下遥感专题地图的制作。实验平台:ERDAS 9.1实验要求:掌握专题地图的编辑;制图文件路径的编辑;系列地图编辑工具的使用。实验步骤:1 专题地图的编辑 1.1 准备专题制图数据 (1) 在视窗菜单条中点击 File,选择Open (2) 点击 Raster Layer,打开S…

.NET版OCR紧随PP-OCRv3重磅发布

.net版OCR地址PaddleOCRSharp:https://gitee.com/raoyutian/paddle-ocrsharpPaddleOCRSharp是一个基于PaddleOCR的C代码修改并封装的.NET的工具类库。包含文本识别、文本检测、基于文本检测结果的统计分析的表格识别功能,同时针对小图识别不准的情况下&a…

mysql导出二进制日志_使用mysqlbinlog提取二进制日志

MySQL binlog日志记录了MySQL数据库从启用日志以来所有对当前数据库的变更。binlog日志属于二进制文件,我们可以从binlog提取出来生成可阅读的SQL语句来重建当前数据库以及根据需要实现时点恢复或不完全恢复。本文主要描述了如果提取binlog日志,并给出相…

《零基础看得懂的C++入门教程 》——(5) 容我套个娃 循环

一、学习目标 了解循环的使用方法 目录 预备第一篇,使用软件介绍在这一篇,C与C使用的软件是一样的,查看这篇即可:《软件介绍》 想了解编译原理和学习方法点这篇,学习方法和一些原理C与C都是相同的《脱离学习误区》 …

Android之把app作为独立的module导入其他项目遇到的坑

1 问题 把app作为独立的module导入其他项目 2 步骤 1)在app的里面的build.gradle里面把 apply plugin: com.android.application 替换成如下 apply plugin: com.android.library 2)注视掉build.gradle文件里面的applicationId 3)app的AndroidManifest文件中MainActiv…

【ArcGIS风暴】ArcGIS解决数字化之前创建图层时未定义坐标系而导致数据跑偏的问题

数字化时,第一步需要创建点线面图层,创建图层需要指定一个地理坐标系,但如果忽略了这一步,我们数字化的适量数据时没有坐标系的,后果很严重,如果数字化工作只做了一点点,可以卷土重来;如果是大量工作的话,可以采取以下补救措施,建议收藏。 注: (1)如果底图为无任…

Android两个注意事项.深入了解Intent和IntentFilter(两)

深入理解Intent和IntentFiler(二)转载请表明出处:http://blog.csdn.net/u012637501(嵌入式_小J的天空) 在上一篇文章中,我们比較具体学习了"Intent"的相关知识,如今将学习怎样设置Intent对象的这些属性以及怎样使用他们来启动组件。…

Oracle常用sql语句(一)

Sql的分类DDL操作数据库表列等表基本的操作主键索引视图 常用数据类型字符串类型数字类型日期类型LOB类型LONG类型 数据转换character datenumbercharacter通用函数条件表达式Sql的分类 DDL (Data Definition Language):数据定义语言&#xf…

ASP.NET Web API 实现客户端Basic(基本)认证 之简单实现

优点是逻辑简单明了、设置简单。 缺点显而易见,即使是BASE64后也是可见的明文,很容易被破解、非法利用,使用HTTPS是一个解决方案。 还有就是HTTP是无状态的,同一客户端每次都需要验证。 实现: 客户端在用户输入用户名及…

WPF|分享一个登录界面设计

分享一个登录界面,先看效果图:准备文中使用到了一些图标:我们可以从 iconfont[1]免费下载:代码简单说明请随手创建一个WPF项目(.NET Framework、.NET 5\6\7皆可),使用tree /f命令看看最终的文件…

《零基础看得懂的C++入门教程 》——(6)自己动手写个函数

一、学习目标 了解C语言的自定义函数的使用方法了解C语言自定义函数的传参了解C语言自定义函数的返回值 目录 预备第一篇,使用软件介绍在这一篇,C与C使用的软件是一样的,查看这篇即可:《软件介绍》 想了解编译原理和学习方法点…