prometheus自定义metrics
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了prometheus自定义metrics相关的知识,希望对你有一定的参考价值。
参考技术A 项目地址 个人博客日常项目开发过程中为了观察项目的线上运行指标通常需要项目提供一系列指标信息,我们目前用的prometheus,而项目当然要提供一系列prometheus metrics指标信息,但是默认官方golang的仓库不是很好用。
于是乎找到github上一个很好的项目,可以满足上面所有需求可以大多数一般项目开发过程中的metrics需求,使用起来也比较简单。下面来自项目READEME:
GoDoc
init global collector gather
create local metric and registry
create metric base on redis and registry
Register HTTP handler middleware to customize metrics for collecting HTTP requests
Register gin middleware and add metrics interface to collect HTTP metrics information
Register native HTTP Middleware
Built-in default HTTP service startup metrics interface
项目地址 个人博客
Prometheus 使用自定义标头抓取 /metric
【中文标题】Prometheus 使用自定义标头抓取 /metric【英文标题】:Prometheus scrape /metric with custom header 【发布时间】:2021-05-07 23:29:08 【问题描述】:我有一个将被 Prometheus 监控的应用程序, 但是应用程序需要自定义标题键,例如:
x-auth-token: <customrandomtoken>
我应该如何处理 prometheus.yml?
【问题讨论】:
嗨,罗纳尔多,查看这个 Prometheus 文档链接:prometheus.io/docs/prometheus/latest/configuration/… 也许'bearer_token'或http'params'参数是你需要的。yaml # Optional HTTP URL parameters. params: [ <string>: [<string>, ...] ] # Sets the `Authorization` header on every scrape request with # the configured bearer token. It is mutually exclusive with `bearer_token_file`. [ bearer_token: <secret> ]
我需要自定义标头,例如``` x-api-token: Prometheus 本身无法定义自定义标头以到达导出器。但是从prometheus-blackbox-exporter
标签来看,问题是如何使用 Prometheus Blackbox Exporter 定义自定义 HTTP 标头,这是一个单独的东西,它确实有设置的方法标题。
Blackbox 导出器有它自己的配置文件,它由模块 组成。模块是一组参数,定义了如何进行探测以及预期的结果。下面是一个查找 200-299 响应代码并使用 X-Auth-Token
标头的模块示例:
modules:
http_2xx_with_header:
prober: http
http:
headers:
X-Auth-Token: skdjfh98732hjf22exampletoken
更多示例可以在here 和配置选项列表中找到 - here。
当您使黑盒导出器加载新配置时,您还需要调整 Prometheus 配置。由于模块名称是通过 URL 参数传递给导出器的,所以您需要将名称写在 params.module
键下:
scrape_configs:
- job_name: 'blackbox'
metrics_path: /probe
params:
module: [http_2xx_with_header] # <- Here goes the name of the new module
static_configs:
- targets:
- http://prometheus.io
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 127.0.0.1:9115
【讨论】:
以上是关于prometheus自定义metrics的主要内容,如果未能解决你的问题,请参考以下文章
使用 Flask 的 prometheus_client 自定义指标