6 个版本 (破坏性)
| 0.5.0 | 2023年11月12日 |
|---|---|
| 0.4.0 | 2023年2月2日 |
| 0.3.1 | 2023年1月1日 |
| 0.2.0 | 2022年12月31日 |
| 0.1.0 | 2022年12月31日 |
#5 in #release
52KB
1.5K SLoC
release-exporter
检索发布信息和导出相关指标。
指标
目前仅支持单个核心指标 upgrades。
upgrades
指标 upgrades 包含有关可用升级的信息。此信息在标签中表示。指标值本身将是 1。
该指标使用 upgrade_pending_checks 配置密钥进行配置(请参阅下面的配置部分)。
以下标签始终存在
name:在upgrade_pending_checks配置中给出的名称。status,其值可以是unknown、upgrades-available或up-to-date之一:指示是否可用升级。
此外,还会添加 upgrades_pending_checks 配置的 current 字段中引用的发布提供者的所有标签。
release_exporter_build_info
提供 release-exporter 版本作为标签。
配置
配置必须以 YAML 格式。它使用两个主要密钥
providers(列表)来配置提供有关可用和使用的发布信息的发布提供者数量,upgrade_pending_checks(列表)来配置要比较以确定可用升级的发布版本。
示例配置可以在 sample-conf.yml 中找到。
提供者
每个提供者必须至少有以下两个键
name(字符串):用于引用此配置提供者的唯一名称,provider(枚举):用于获取发布版本的提供者类型。
每种提供者类型都有额外的必需和可选键。
提供者返回一组发布,其中每个发布都有不同的标签。
latest_github_release 提供者
从 GitHub 仓库检索最新版本。
接受以下配置键
repo(字符串):形式为username/repo的仓库。version_regex(字符串,默认^v?(.*)$):从发布标签中提取版本号的正则表达式。使用 Rust 的正则表达式包的语法(语法)。version_fmt(字符串,默认值${1}):从version_regex的捕获组中构建版本的表达式。api_url(字符串,默认值:https://api.github.com):GitHub API 的 URL。cache_seconds(非负整数,默认值14400= 4小时):在内存中缓存发布的持续时间,以避免遇到 GitHub 的速率限制。
Prometheus 提供商
从 Prometheus 指标标签检索版本。
query(字符串):用于检索具有版本信息的指标的 Prometheus 查询。它可能返回具有不同标签的多个版本。除label中指定的标签外,所有标签都将附加到发布上。label(字符串,默认值:version):包含版本信息的标签。version_regex(字符串,默认值^v?(.*)$):从版本信息中提取版本号的正则表达式。使用 Rust 的 regex crate 的语法。version_fmt(字符串,默认值${1}):从version_regex的捕获组中构建版本的表达式。api_url(字符串,默认值:https://:9090/api):Prometheus API 的 URL。cache_seconds(非负整数,默认值0):在内存中缓存发布的持续时间。
升级待检查
配置发布版本之间的检查,以确定可用的升级。这些检查作为 upgrades 指标导出。每个项目接受以下配置键
name(字符串):检查的名称。将用于upgrades指标的name标签。current(字符串,默认值:current_{name}_release):必须引用提供者名称。该提供者用于确定当前正在使用的版本。latest(字符串,默认值:latest_{name}_release):必须引用提供者名称。该提供者用于确定最新可用的版本。
注意标签的处理
- 从
current提供者获得的所有标签都将复制到输出指标中。 - 将尝试将
current提供的每个发布与latest提供的每个发布进行匹配。要考虑匹配,latest发布的所有标签都必须存在,并且与current发布中的值相同。
用法
Usage: release-exporter [OPTIONS] --config.file <CONFIG>
Options:
--config.file <CONFIG>
Configuration file to load
--http.timout <HTTP_TIMEOUT_SECONDS>
Timeout for HTTP requests (seconds) [default: 10]
--web.listen-address <LISTEN_ADDRESS>
Address on which to expose metrics [default: localhost:31343]
-h, --help
Print help information
-V, --version
Print version information
依赖项
~18–33MB
~538K SLoC