#prometheus-exporter #weather #prometheus #monitoring

app prometheus-weathermen

从各种天气 API 中提取天气数据的 Prometheus 导出器

8 个重大版本更新

0.9.0 2024年1月22日
0.8.0 2023年11月4日
0.7.0 2023年3月30日

623命令行工具 中排名

每月 39 次下载

MIT/Apache

105KB
2.5K SLoC

Prometheus Weathermen 构建管道 crates.io crates.io

“你不需要天气预报员就知道风向如何。”
       — Bob Dylan, Subterranean Homesick Blues

一个用于天气数据的 Prometheus 导出器端点,或者是我真正学习 Rust 的借口。

它做什么

<host>:36333/metrics 上提供 Prometheus 指标端点,并为每个配置的服务提供以下指标

  • weather_temperature_celsius: 摄氏度温度
  • weather_relative_humidity_ratio: 湿度比(0.0 到 1.0)
  • weather_station_distance_meters: 天气站的距离(米)

支持的提供商

以下服务作为提供商实现。每个配置的提供商都会查询天气信息。

提供商 分辨率 覆盖范围 支持湿度 支持距离 需要注册
Meteoblue 全球
OpenWeather 中等 全球
tomorrow.io 全球
德国气象局 中等 德国
Open-Meteo 全球

对于那些需要 API 密钥的提供商,您需要注册一个账户。

安装

预构建容器

已准备好容器可用于 linux/amd64linux/arm64linux/arm/v7。将 weathermen.toml.dist 下载到当前目录中的 weathermen.toml 并调整配置。

以下是使用 Docker 运行容器的示例

docker run -p 36333:36333 \
    -v $(pwd)/weathermen.toml:/etc/prometheus-weathermen/weathermen.toml \
    lstrojny/prometheus-weathermen:latest

容器也可以通过 GitHub 容器注册表获取,地址为 ghcr.io/lstrojny/prometheus-weathermen

预构建的二进制文件

前往最新版本发布并下载适用于您平台的相应二进制文件。

以下平台得到支持

平台 用途
arm-linux 32 位 armhf,例如树莓派
arm64-linux 64 位 arm,树莓派 4
x86_64-linux 64 位 X86 架构的 Linux
intel-mac 基于 Intel 的 Mac
arm-mac M1/M2 基于的 ARM Mac

如果缺少您喜欢的平台,请提交问题。可能只需做很少的工作就能使其运行。

二进制文件有 dbg(调试)变体。这些是未去除符号的调试构建。如果您不知道这是什么,您不需要它。

对于 Linux 构建,基于 musl libcstatic 变体可用。这些是静态链接的二进制文件,可用于在具有最小模糊的容器中运行 prometheus-weathermen。Linux 的非静态对应版本是针对 glibc 构建的。

配置

检查weathermen.toml.dist以获取配置选项。

配置值也可以通过前缀为 PROMW_ 的环境变量设置。例如,要从一个环境变量设置 HTTP 端口,使用 PROMW_HTTP__PORT=12345。双下划线不是笔误,它是为了区分层次结构和名称。假设这个 TOML 配置

[provider.open_weather]
api_key = "XYZ"

相应的环境变量将是 PROMW_PROVIDER__OPEN_WEATHER__API_KEY

许可证

该项目可以分发给以下许可证

依赖项

约 36-76MB
约 1.5M SLoC