首页 > 其他分享 >Prometheus Pushgateway配置笔记

Prometheus Pushgateway配置笔记

时间:2023-02-02 16:34:01浏览次数:88  
标签:http Prometheus 笔记 label metrics instance job Pushgateway pushgateway

前言

pushgateway的安装不再赘述,通用的操作最后以daemonlized方式运行。
在Prometheus中给pushgateway上报的数据单独定义一个job:
image

需要注意的点:
pushgateway本身没有任何抓取监控数据的功能,只能被动等待推送。

推送

一个简单的推送脚本案例

以采集TCP wait connections为例

#!/bin/bash
instance_name=`hostname -f | cut -d'.' -f1`

if [ $instance_name == 'localhost' ];then 
echo "must FQDN hostname"
exit 1
fi

$ For waitting connections

label="count_netstat_wait_connections" #定义一个新的key
count_netstat_wait_connections=`netstat -an |grep -i wait |wc -l` #定义一个新的数值netstat中wait的数量

echo " $label: $count_netstat_wait_connections"
echo "$label $count_netstat_wait_connections" | curl --data-binary @~ http://prometheus.server.com:9091/metrics/job/pushgateway1/instance/$instance_name

脚本写完之后扔到crontab中定期运行即可。

url解释:

http://prometheus.server.com:9091/metrics/job/pushgateway1/instance/$instance_name

http://prometheus.server.com:9091/metrics/
URL的主location

job/pushgateway
推送到Prometheus的对应job中

instance/$instance_name
定义instance_name等其他label。

高级推送示例

以更复杂的形式传入数据

  cat <<EOF | curl --data-binary @- http://pushgateway.example.org:9091/metrics/job/some_job/instance/some_instance
  # TYPE some_metric counter
  some_metric{label="val1"} 42
  # TYPE another_metric gauge
  # HELP another_metric Just an example.
  another_metric 2398.283
  EOF

base64 push

在value存在特殊字符(例如路径中存在换行符job="directory_cleaner",path="/var/tmp")的时候,上报路径会变成/metrics/job/directory_cleaner/path//var/tmp
导致上报路径错误,此时需要做base64转换。
格式:key@base64/value
/metrics/job/directory_cleaner/path@base64/L3Zhci90bXA

如果不是使用高级程序语言直接包含base64转换的库,而是简单使用的shell命令,可以使用命令行base64url工具(Debian中的包是basez),拼入curl命令如下

echo 'some_metric{foo="bar"} 3.14' | curl --data-binary @- http://pushgateway.example.org:9091/metrics/job/directory_cleaner/path@base64/$(echo -n '/var/tmp' | base64url)

二级label

当有时候label需要有多级的时候,可以认为一级label不存在value,二级label存在value。
例如:job="example",first_label="",second_label="foobar"
会被配置成:
/metrics/job/example/first_label//second_label/foobar
这样无疑是不行的,正确的配置方式应该是用=作为占用符:

/metrics/job/example/first_label@base64/=/second_label/foobar

删除数据

可以通过http请求进行数据参数,参考:

curl -X DELETE http://pushgateway.example.org:9091/metrics/job/some_job/instance/some_instance
curl -X DELETE http://pushgateway.example.org:9091/metrics/job/some_job
curl -X PUT http://pushgateway.example.org:9091/api/v1/admin/wipe

标签:http,Prometheus,笔记,label,metrics,instance,job,Pushgateway,pushgateway
From: https://www.cnblogs.com/motorao/p/17086438.html

相关文章

  • CSS系列学习笔记(一)
    前端三大件html、css、javascriptid选择器:唯一的标签,权重最高的<divid='abc'></div>只能有一个divid叫abc类选择器:class用的比较广范比较多​标签选择器:div{}<div><......
  • DockerCompose安装和部署微服务项目(个人笔记)
    DockerCompose安装和部署微服务项目1.安装DockerCompose1.1下载1.2修改文件权限修改好每个服务模块的yml整个cloud-demo文件夹上传到服务器某个文件夹docker和docker-com......
  • 《Vue.js 设计与实现》读书笔记 - 第7章、渲染器的设计
    第7章、渲染器的设计7.1渲染器与响应系统的结合渲染器需要有跨平台的能力。在浏览器端会渲染为真实的DOM元素。const{effect,ref}=VueReactivity//VueRea......
  • 【笔记向】package.json main 作用
    package.jsonmain作用在package.json文件中,"main"字段指定了这个包在被其他包依赖时,入口文件的文件名。例如,如果在package.json中的"main"字段被设置为"index.......
  • (笔记)ntpd与ntpdate的区别
     一、ntp和ntpdate区别①两个服务都是centos自带的(centos7中不自带ntp)。ntp的安装包名是ntp;ntpdate的安装包是ntpdate。他们并非由一个安装包提供。②ntp守护进程为ntpd,......
  • (笔记)NTP使用常见问题记录
     一、ntpd&ntpdate  我的两台虚拟机,使用135作为ntp服务器,138以135为准同步时间。version:4.2.6p5ntpd服务是按照一定时间来同步,而ntpdate是立即同步,但是二者都......
  • Python 虚拟环境 virtualenv 笔记
    初始化virtualenv方式一:virtualenv安装virtualenv,不用sudo的话,是安装到用户home目录下pipinstallvirtualenv#此时如果virtualenv命令还不能用,需要执行......
  • Minecraft 兴趣开发 | 指令笔记
    运行之后会自动创建一个名字为namespace的存储空间,存入:a:1b /datamergestorageminecraft:namespace{a:1b}  创建挖掘榜计分板,id是dig,显示名称是'ABC挖掘榜'......
  • 报错解决记录笔记
    1.2023-2-2启动程序,提示某个类版本不对,应为55.0,实际为52.0解决:首先,右键项目-打开模块设置-设置所有模块的"源"和"依赖"的jdk版本与项目使用的一致;另外打开,......
  • 机器学习-白板推导-系列(三)笔记:线性回归最小二乘法与正则化岭回归
    文章目录​​0笔记说明​​​​1最小二乘法求线性回归模型​​​​2几何意义​​​​2.1平方损失函数的几何意义​​​​2.2用几何意义求线性回归模型​​​​3从概率......