8 个重大版本更新
0.9.0 | 2024年1月22日 |
---|---|
0.8.0 | 2023年11月4日 |
0.7.0 | 2023年3月30日 |
623 在 命令行工具 中排名
每月 39 次下载
105KB
2.5K SLoC
Prometheus Weathermen
“你不需要天气预报员就知道风向如何。”
— 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/amd64
、linux/arm64
和 linux/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 libc 的 static
变体可用。这些是静态链接的二进制文件,可用于在具有最小模糊的容器中运行 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
。
许可证
该项目可以分发给以下许可证
- Apache 许可证 2.0 版(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证(LICENSE-MIT 或 https://opensource.org/licenses/MIT)
依赖项
约 36-76MB
约 1.5M SLoC