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: [ &lt;string&gt;: [&lt;string&gt;, ...] ] # Sets the `Authorization` header on every scrape request with # the configured bearer token. It is mutually exclusive with `bearer_token_file`. [ bearer_token: &lt;secret&gt; ] 我需要自定义标头,例如``` x-api-token: ``` 然后尝试使用 'params:' 添加 HTTP 标头 params 用于“可选的 HTTP URL 参数”,它绝对不是标头。 【参考方案1】:

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的主要内容,如果未能解决你的问题,请参考以下文章

Prometheus 添加自定义指标

prometheus自定义metrics

使用 Flask 的 prometheus_client 自定义指标

Actuator Prometheus 的自定义指标

无法从 prometheus-adapter 检索自定义指标

k8s 上的 Prometheus 自定义指标服务发现