文章目录

  • pushed metrics are invalid or inconsistent with existing metrics: collected metric
  • python prometheus_client 批量push to pushgateway
  • 计算 prometheus 需要的理论内存大小
  • 度量指标值 只允许 数字类型
  • 度量指标值为 只能接受最长16位,16位之后数字转为 0
  • pushgateway 数据持久化
  • prometheus 官网解释
    • 度量标签和标签命名
    • 度量标准名称和标签数据模型
  • exceeded maximum resolution of 11,000 points per timeseries. Try decreasing the query resolution
  • docker-compose restart 不会生效新改的docker-compose.yml
  • 开启热更新
  • Blackbox_exporter 提示报错:Timeout reading from socket
  • Pushgateway Delete Group 报错:Deleting metric group failed: Bad Request
  • PushGateway 推送及 Prometheus 拉取时间设置

概述:
由于Prometheus数据采集基于Pull模型进行设计,因此在网络环境的配置上必须要让Prometheus Server能够直接与Exporter进行通信。当这种网络需求无法直接满足时,就可以利用PushGateway来进行中转。
可以通过PushGateway将内部网络的监控数据主动Push到Gateway当中。
而Prometheus Server则可以采用同样Pull的方式从PushGateway中获取到监控数据。
优点:可以像老牌监控一样运维人员可以通过 shell python 脚本自定义监控上报给PushGateway在上报给PrometheusServer,比编写Exporters简单
缺点:当监控项和被监控服务器数量增多,可能会有并发问题使上bao数据相对便慢

pushed metrics are invalid or inconsistent with existing metrics: collected metric

尝试推送一个空的指标,当您尝试一次推送相同的指标两次时,会发生此问题。示例向该指标中添加了多个带有相同标签的样本,或者如果Pushgateway重新启动,您将无法发送相同的指标再次,您必须先将其删除。

参见:https : //github.com/prometheus/pushgateway/blob/master/README.md
状态码为400

python prometheus_client 批量push to pushgateway

https://github.com/liyuanjun/prometheus-python-tutorial/blob/master/exporting/export_pushgateway.py

计算 prometheus 需要的理论内存大小

https://www.robustperception.io/how-much-ram-does-prometheus-2-x-need-for-cardinality-and-ingestion

度量指标值 只允许 数字类型

报错text format parsing error in line 1: expected float as value, got “1.1.1.1”

原因:
为了可以更好地画图,所以只允许返回 数字类型 指标值

$ echo ipaddr 1.1.1.1 curl --data-binary @- -g http://ip:9090/metrics/job/pushgateway/instance/testipaddr 值为 1.1.1.1 是会报错
text format parsing error in line 1: expected float as value, got "1.1.1.1"解决方法:
将1.1.1.1 转为数字function checkIP()
{ip=$1if [ $ip != "${1#*[0-9].[0-9]}" ]; then# IPv4a=`echo $ip | awk -F'.' '{print $1}'`b=`echo $ip | awk -F'.' '{print $2}'`c=`echo $ip | awk -F'.' '{print $3}'`d=`echo $ip | awk -F'.' '{print $4}'`echo "$(((a<<24)+(b<<16)+(c<<8)+d))"elif [ "$ip" != "${1#*:[0-9a-fA-F]}" ]; then# IPv6echo $ipelseecho 0fi
}

参考链接: https://github.com/prometheus/prometheus/issues/2227

度量指标值为 只能接受最长16位,16位之后数字转为 0

“FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF”:340282366920938463463374607431768211455$ echo ipaddr 340282366920938463463374607431768211455 \
curl --data-binary @- -g http://ip:9090/metrics/job/pushgateway/instance/test实际结果:
ipaddr{instance="test"}  340282366920938500000000000000000000000

pushgateway 数据持久化

为了防止 pushgateway 重启或意外挂掉,导致数据丢失,我们可以通过 -persistence.file-persistence.interval 参数将数据持久化下来。


prometheus 官网解释

度量标签和标签命名

度量标准名称和标签数据模型

exceeded maximum resolution of 11,000 points per timeseries. Try decreasing the query resolution

当执行 该操作时:
GET http://xxx/prometheus/api/v1/query_range?query=bps{mac=~‘xx:xx:xx:xx:xx:xx’}&start=2019-09-19T09:29:26Z&end=2019-09-20T09:29:26Z&step=15s&timeout=60s

原因:prometheus 为每个查询设置了11k数据点的硬限制。
参考链接:
https://github.com/prometheus/prometheus/issues/1968
https://github.com/prometheus/prometheus/issues/2253

docker-compose restart 不会生效新改的docker-compose.yml

必须 docker-compose down然后 docker-compose up

开启热更新

从 2.0 开始,hot reload 功能是默认关闭的,
如需开启,需要在启动 Prometheus 的时候,添加 --web.enable-lifecycle 参数

热更新加载方法有两种:
kill -HUP pid
curl -X POST http://IP/-/reload  【推荐】

Blackbox_exporter 提示报错:Timeout reading from socket

解决方法:
重启 blackbox 容器

Pushgateway Delete Group 报错:Deleting metric group failed: Bad Request

如果 key="", 会报错Deleting metric group failed: Bad Request
解决:
对每个KEY 设置默认值,保证每一个 key 都有值

PushGateway 推送及 Prometheus 拉取时间设置

Prometheus 每次从 PushGateway 拉取的数据,并不是拉取周期内用户推送上来的所有数据,而是最后一次 Push 到 PushGateway 上的数据,
所以推荐设置推送时间小于或等于 Prometheus 拉取的时间,这样保证每次拉取的数据是最新 Push 上来的。

【Prometheus Pushgateway】 推送数据踩坑相关推荐

  1. Arduino使用HM-10蓝牙模块向uniapp小程序推送数据采坑总结

    序言 序言不会写,怎么简单怎么来,主要讲蓝牙向手机app传递数据怎么爬坑 概括 Ble蓝牙和uniapp数据互传的玩法,一般都是以下几步 1.初始化蓝牙 uni.openBluetoothAdapte ...

  2. Google Indexing API 推送 (避免踩坑)

    https://developers.google.com/search/apis/indexing-api/v3/prereqs?hl=en_GB 官方文档 1. 在创建服务账号部分需要注意的是: ...

  3. sql server 数据库向java接口推送数据

    因为以前从未用数据库向java接口推送数据,所以为了实现这个demo我是一步一个脚印的踩坑啊!!! 此文章的作用以及应用场景:利用数据库主动推送数据,实现前端页面数据实时更新,替换ajax轮询机制.推 ...

  4. PHp批量推送数据太慢,PHP非阻塞批量推送数据-php教程

    明天看到论坛外面有人问如PHP何批量非梗阻向效劳器推送数据,这里大略总结下. 相干保举:<PHP教程> 一.最简略的方法: 一个剧本同时跑屡次,用参数来跑指定范畴.如果要推送10000用户 ...

  5. 例子 客户端_服务端也是可以主动向客户端推送数据的--WebSocket

    简介 WebSocket是一种在单个TCP连接上进行全双工通信的协议.WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范.WebSocket API也 ...

  6. 使用Java读取 “Python写入redis” 的数据踩坑记录

    https://my.oschina.net/u/2338224/blog/3061507 使用Java读取 "Python写入redis" 的数据踩坑记录 https://seg ...

  7. websocket后台推送数据

    介绍 现在很多网站为了实现即时通讯,所用的技术都是轮询(polling).轮询是在特定的的时间间隔(如每1秒), 由浏览器对服务器发出HTTP request,然后由服务器返回最新的数据给客服端的浏览 ...

  8. java 推送数据给js,Node.js实现数据推送

    场景:后端更新数据推送到客户端(Java部分使用Tomcat服务器). 后端推送数据的解决方案有很多,比如轮询.Comet.WebSocket. 1. 轮询对于后端来说开发成本最低,就是按照传统的方式 ...

  9. ajax轮询模拟websocket,Ajax轮询和SSE服务器推送数据与websocket模式的区别性学习

    我们试想一下我们做个实时聊天的窗口有几种方法? 在我们不刷新页面并且可以试试更新页面内容的方法 你这时候是不是想到了ajax没错确实可以 Ajax轮询 什么是轮询?顾名思义就是我轮着问你,规定一个时间 ...

最新文章

  1. 什么是生成模型和GAN?一文体验计算机视觉的魔力
  2. python——字符串常用方法
  3. 解决fullgc_「OOM」Java heap space原因与解决
  4. Windows编程初步(一)
  5. 【连载】如何掌握openGauss数据库核心技术?秘诀四:拿捏事务机制(1)
  6. 关于FPGA核心bug解决
  7. OPPO 40万年薪招应届生,狂揽芯片人才;恶意差评小米新手机,一用户被判赔3万元;谷歌开源全同态加密通用转译器|极客头条...
  8. 深入浅出插入类排序算法(直接插入, 折半插入, 希尔排序)
  9. 跳槽的5个误区,冷静一下
  10. WordPress直接调用头像地址
  11. 移位运算(计算机组成原理15)
  12. 计算机重装系统后黑屏,重装系统过程中电脑黑屏后修复的方法-电脑自学网
  13. 【OpenGrok代码搜索引擎】一、OpenGrok简介
  14. Android快速启动窗口技术
  15. 【优化求解】基于NSGAII算法求解含约束多目标优化问题matlab代码
  16. 阿里品牌数据品牌银行分析师认证真题资料库整理答案
  17. IPhone、Windows Mobil、Symbian、Android移动开发前景分析
  18. 2020启智开发者大会在京隆重开幕,千万激励奖金首批评选揭晓
  19. mysql怎么设置唯一键_MySQL设置唯一键
  20. svn服务器端下载linux,Svn linux服务端安装及配置

热门文章

  1. JAVA_OA管理系统(三):Spring参数注入
  2. HDFS的读文件、写文件过程
  3. Git remote 修改源
  4. Angular模态框
  5. Web前端知识技能大汇总
  6. C#线程同步(1)- 临界区&Lock
  7. 开启Apache mod_rewrite模块(解决404 Not Found)
  8. Windows Phone Dev Notes-如何使用ConnectionSettingsTask 来启动连接设置页面
  9. 使用MASM02 - Win32汇编语言010
  10. 30个图片浏览插件收集