Prometheus 使用Python推送指标数据到Pushgateway

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
简介: Prometheus 使用Python推送指标数据到Pushgateway

使用Python推送指标数据到Pushgateway

需求描述

实践环境

Python 3.6.5

Django 3.0.6

prometheus-client 0.11.0

代码实现

!/usr/bin/env python
-*- coding:utf-8 -*-
from prometheus_client import CollectorRegistry, Gauge, push_to_gateway
if __name__ == '__main__':
    registry = CollectorRegistry()
    labels = ['req_status', 'req_method', 'req_url']
    g_one = Gauge('requests_total', 'url请求次数', labels, registry=registry)
    g_two = Gauge('avg_response_time_seconds', '1分钟内的URL平均响应时间', labels, registry=registry)
    g_one.labels('200','GET', '/test/url').set(1) #set设定值
    g_two.labels('200','GET', '/test/api/url/').set(10) #set设定值
    push_to_gateway('http://162.13.0.83:9091', job='SampleURLMetrics', registry=registry)

注意:采用这种方式是无法为指标数据提供数据生成时间戳的,具体下文说明

查看运行结果

浏览器访问推送网关地址http://162.13.0.83:9091,如下

关于时间戳(timestamp)

如果你在 t1 时刻推送Metric,你可能认为普罗米修斯会“刮取(scrap)”这些指标,并使用相同时间戳 t1 作为对应时序数据的时间戳,然而,普罗米修斯不会这样做,它会把从推送网关(Pushgateway)“刮取”数据时的时间戳当作指标数据对应的时间戳。为什么会这样?

在普罗米修斯的世界观中,一个Metric可以在任何时候被刮取,一个无法被”刮取”的Metric基本上是不存在了。对此,普罗米修斯多少还是有点“容忍”的,但是如果它不能在 5 分钟内获得一个Metric的任何样本,那么它就会表现得好像该Metric不再存在一样。为了防止这种情况发生,实际上是使用Pushgateway的原因之一。Pushgateway将使你的临时job在任何时候都可以被刮取,也就是说任何时刻都可以采集到你推送的数据。将推送时间附加为时间戳将无法达到这一目的,因为在最后一次推送5分钟之后,普罗米修斯会认为你的Metric已经过时,就好像它再也不能被“刮取”一样。(普罗米修斯只能识别每个样本的一个时间戳,无法区分“推送时间”和“刮取时间”。)

由于没有任何让附加不同的时间戳有意义的场景,并且许多用户试图错误地这样做(尽管没有客户端库支持),Pushgateway拒绝任何带有时间戳的推送。

为了更容易对失败的推送器或最近未运行的Pusher发出警报,Pushgateway将在push_time_secondspush_failure_time_secondsMetric中给每个组添加最后一次成功和失败的POSTPUT的Unix时间戳。这将覆盖使用该名称推送的任何Metric。两个Metric的值均为零表示该组从未见过成功或失败的POSTPUT

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
目录
相关文章
|
1月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
使用Python实现深度学习模型:智能数据隐私保护
使用Python实现深度学习模型:智能数据隐私保护 【10月更文挑战第3天】
101 0
|
24天前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
9天前
|
图形学 Python
SciPy 空间数据2
凸包(Convex Hull)是计算几何中的概念,指包含给定点集的所有凸集的交集。可以通过 `ConvexHull()` 方法创建凸包。示例代码展示了如何使用 `scipy` 库和 `matplotlib` 绘制给定点集的凸包。
18 1
|
10天前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
10天前
|
数据采集 Web App开发 iOS开发
如何使用 Python 语言的正则表达式进行网页数据的爬取?
使用 Python 进行网页数据爬取的步骤包括:1. 安装必要库(requests、re、bs4);2. 发送 HTTP 请求获取网页内容;3. 使用正则表达式提取数据;4. 数据清洗和处理;5. 循环遍历多个页面。通过这些步骤,可以高效地从网页中提取所需信息。
|
1月前
|
数据处理 Python
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
这篇文章介绍了如何使用Python读取Excel文件中的数据,处理后将其保存为txt、xlsx和csv格式的文件。
45 3
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
|
1月前
|
计算机视觉 Python
Python实用记录(九):将不同的图绘制在一起、将不同txt文档中的数据绘制多条折线图
这篇文章介绍了如何使用Python的OpenCV库将多张图片合并为一张图片显示,以及如何使用matplotlib库从不同txt文档中读取数据并绘制多条折线图。
41 3
Python实用记录(九):将不同的图绘制在一起、将不同txt文档中的数据绘制多条折线图
|
1月前
|
数据可视化 算法 Python
基于OpenFOAM和Python的流场动态模态分解:从数据提取到POD-DMD分析
本文介绍了如何利用Python脚本结合动态模态分解(DMD)技术,分析从OpenFOAM模拟中提取的二维切片数据,以深入理解流体动力学现象。通过PyVista库处理VTK格式的模拟数据,进行POD和DMD分析,揭示流场中的主要能量结构及动态特征。此方法为研究复杂流动系统提供了有力工具。
65 2
基于OpenFOAM和Python的流场动态模态分解:从数据提取到POD-DMD分析
|
22天前
|
数据可视化 算法 JavaScript
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
本文探讨了如何利用图论分析时间序列数据的平稳性和连通性。通过将时间序列数据转换为图结构,计算片段间的相似性,并构建连通图,可以揭示数据中的隐藏模式。文章介绍了平稳性的概念,提出了基于图的平稳性度量,并展示了图分区在可视化平稳性中的应用。此外,还模拟了不同平稳性和非平稳性程度的信号,分析了图度量的变化,为时间序列数据分析提供了新视角。
50 0
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
|
1月前
|
自然语言处理 算法 数据挖掘
探讨如何利用Python中的NLP工具,从被动收集到主动分析文本数据的过程
【10月更文挑战第11天】本文介绍了自然语言处理(NLP)在文本分析中的应用,从被动收集到主动分析的过程。通过Python代码示例,详细展示了文本预处理、特征提取、情感分析和主题建模等关键技术,帮助读者理解如何有效利用NLP工具进行文本数据分析。
46 2