惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

www.infosecurity-magazine.com
www.infosecurity-magazine.com
S
Security @ Cisco Blogs
Security Archives - TechRepublic
Security Archives - TechRepublic
Google Online Security Blog
Google Online Security Blog
Hacker News: Ask HN
Hacker News: Ask HN
L
LangChain Blog
博客园 - 三生石上(FineUI控件)
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
H
Heimdal Security Blog
WordPress大学
WordPress大学
Google DeepMind News
Google DeepMind News
Y
Y Combinator Blog
The Cloudflare Blog
N
Netflix TechBlog - Medium
云风的 BLOG
云风的 BLOG
F
Full Disclosure
TaoSecurity Blog
TaoSecurity Blog
人人都是产品经理
人人都是产品经理
P
Proofpoint News Feed
T
Troy Hunt's Blog
H
Hacker News: Front Page
MongoDB | Blog
MongoDB | Blog
MyScale Blog
MyScale Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Recent Commits to openclaw:main
Recent Commits to openclaw:main
C
CERT Recently Published Vulnerability Notes
S
SegmentFault 最新的问题
T
The Exploit Database - CXSecurity.com
S
Security Affairs
H
Help Net Security
美团技术团队
小众软件
小众软件
Security Latest
Security Latest
Microsoft Azure Blog
Microsoft Azure Blog
P
Privacy International News Feed
G
Google Developers Blog
T
Threat Research - Cisco Blogs
Webroot Blog
Webroot Blog
U
Unit 42
Hacker News - Newest:
Hacker News - Newest: "LLM"
SecWiki News
SecWiki News
Application and Cybersecurity Blog
Application and Cybersecurity Blog
博客园 - 聂微东
A
Arctic Wolf
Microsoft Security Blog
Microsoft Security Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
D
Docker
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - Franky
M
MIT News - Artificial intelligence

mafeifan 的编程技术分享

mafengwo-mp3-downloader | mafeifan 的编程技术分享 示例页面 | mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 查看 default namespace 下的 default service account名称 mafeifan 的编程技术分享 检查日志 | mafeifan 的编程技术分享 bridge fdb show dev flannel.1 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 数据收集原理分析 | mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 几种方法 | mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 check the export on the very top of this document so we can use $do mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 mafeifan 的编程技术分享 延伸 -- 关于前端路由 xdebug 3 和 2 的区别
mafeifan 的编程技术分享
2026-01-16 · via mafeifan 的编程技术分享

一. Pushgateway简介 ​

Pushgateway为Prometheus整体监控方案的功能组件之一,并做为一个独立的工具存在。

它主要用于Prometheus无法直接拿到监控指标的场景,如监控源位于防火墙之后,Prometheus无法穿透防火墙;目标服务没有可抓取监控数据的端点等多种情况。在类似场景中,可通过部署Pushgateway的方式解决问题。

当部署该组件后,监控源通过主动发送监控数据到Pushgateway,再由Prometheus定时获取信息,实现资源的状态监控。

工作流程:

  1. 监控源通过Post方式,发送数据到Pushgateway,路径为/metrics。
  2. Prometheus服务端设置任务,定时获取Pushgateway上面的监控指标。
  3. Prometheus获取监控指标后,会根据告警规则进行计算,如果匹配将触发告警到Alertmanager;同时,Grafana可配置数据源调用Prometheus数据,做为数据展示。

二. 安装部署 ​

1、二进制安装 ​

下载安装包

$ wget https://github.com/prometheus/pushgateway/releases/download/v1.4.1/pushgateway-1.4.1.linux-amd64.tar.gz
$ tar -xvf pushgateway-1.4.1.linux-amd64.tar.gz
$ cd pushgateway-1.4.1.linux-amd64
$ sudo cp pushgateway /usr/local/bin/

查看版本号验证是否正常

$ pushgateway --version
pushgateway, version 1.4.1 (branch: HEAD, revision: 6fa509bbf4f082ab8455057aafbb5403bd6e37a5)
build user:       root@da864be5f3f0
build date:       20210528-14:30:10
go version:       go1.16.4
platform:         linux/amd64

启动服务,默认端口为9091,可通过--web.listen-address更改监听端口

pushgateway &

2、docker安装 ​

$ docker pull prom/pushgateway
$ docker run -d --name=pushgateway -p 9091:9091 prom/pushgateway

部署完成后,在浏览器输入 http://:9091$IP 即可看到程序界面

三. 数据推送Pushgateway ​

pushgateway的数据推送支持两种方式,Prometheus Client SDK推送和API推送。

1. Client SDK推送 ​

Prometheus本身提供了支持多种语言的SDK,可通过SDK的方式,生成相关的数据,并推送到pushgateway,这也是官方推荐的方案。

目前的SDK覆盖语言有官方的:

  • Go
  • Java or Scala
  • Python
  • Ruby

也有许多第三方的,详情可参见此链接:https://prometheus.io/docs/instrumenting/clientlibs/

示例:

本示例以python为例,讲解SDK的使用

Python

from prometheus_client import Counter,Gauge,push_to_gateway
from prometheus_client.core import CollectorRegistry

registry = CollectorRegistry()
data1 = Gauge('gauge_test_metric','This is a gauge-test-metric',['method','path','instance'],registry=registry) 
data1.labels(method='get',path='/aaa',instance='instance1').inc(3)

push_to_gateway('10.12.61.3:9091', job='alex-job',registry=registry)

注解:

第一、二行代码:引入Python的Prometheus SDK;

第五行代码:创建相关的指标,类型为Gauge。其中“gauge_test_metric”为指标名称,'This is a gauge-test-metric'为指标注释,['method','path','instance'] 为指标相关的label。

第六行代码:添加相关的label信息和指标value 值。

第七行代码:push数据到pushgateway,'10.12.61.3:9091'为发送地址,job指定该任务名称。

以上代码产生的指标数据等同如下 :

# HELP gauge_test_metric This is a gauge-test-metric
# TYPE gauge_test_metric gauge
gauge_test_metric{instance="instance1",method="get",path="/aaa"} 3.0

2. API推送 ​

通过调用pushgateway API的方式实现数据的推送。

请求格式:/metrics/job/<jobname>{/instance/instance_name}

<jobname>将用作Job标签的值,然后是其他指定的标签。

示例:

本例中定义了两个标签 job=alex-job和instance=instance1,并推送了指标 http_request_total 及其value值,10.12.61.1 为pushgateway地址。

echo 'http_request_total 12' | http://10.12.61.3:9091/metrics/job/alex-job/instance/instance1

复杂数据发送:

bash

$ cat <<EOF | curl --data-binary @- http://10.12.61.3:9091/metrics/job/alex-job/instance/10.2.10.1
# TYPE http_request_total counter
http_request_total{code="200",path="/aaa"} 46
http_request_total{code="200",path="/bbb"} 15
EOF

数据推送完成后,可登录pushgateay地址查看指标情况

假如需要删除pushgateway上面存储的指标信息,可通过如下方式操作:

删除某个组下某个实例的所有数据 curl -X DELETE http://10.12.61.3:9091/metrics/job/alex-job/instance/10.2.10.1

删除某个job下所有的数据

curl -X DELETE http://10.12.61.3:9091/metrics/job/alex-job

四. prometheus抓取数据 ​

Pushgateway只是指标的临时存放点,最终我们需要通过Prometheus将其存放到时间序列数据库里。对此,我们需要在Prometheus上面创建一个job。

yaml

- job_name: 'pushgateway'
        honor_labels: true
        static_configs:
          - targets:
            - '10.12.61.3:9091'

目标任务正常启动后,可在prometheus查看到相关的指标数据

五. 注意事项 ​

通过Pushgateway方式,Prometheus无法直接检测到监控源服务的状态,故此种方式不适用于监控服务的存活状态等场景。

Pushgateway属于静态代理,它接收的指标不存在过期时间,故会一直保留直到该指标被更新或删除。此种情况下,不再使用的指标可能存在于网关中。

如上所言,Pushgateway并不算是完美的解决方案,在监控中更多做为辅助方案存在,用于解决Prometheus无法直接获取数据的场景。