
xperimental/netatmo-exporter简单的Prometheus导出器,用于将NetAtmo传感器的传感器值导入Prometheus。
该导出器作为Docker镜像在DockerHub和GitHub上均有提供:
ghcr.io/xperimental/netatmo-exporterxperimental/netatmo-exporter可用标签如下:
x.y.z:指向该版本的发布latest:指向最新发布的版本master:指向默认分支的最新构建示例Docker运行命令:
bashdocker run -d -p 9210:9210 \ -e NETATMO_CLIENT_ID=你的客户端ID \ -e NETATMO_CLIENT_SECRET=你的客户端密钥 \ -e NETATMO_EXPORTER_TOKEN_FILE=/data/token.json \ -v ./data:/data \ xperimental/netatmo-exporter:latest
由于该程序使用Go 1.11中引入的"Go Module"特性,因此构建至少需要该版本的Go。
如果已安装可用的Go环境,获取二进制文件的步骤如下:
bashgit clone [***] cd netatmo-exporter make
如需为其他操作系统或架构构建导出器,可向Makefile指定参数:
bash# 针对Linux 64位ARM架构 GOOS=linux GOARCH=arm64 make build-binary
此应用程序尝试从NetAtmo API获取数据。为此,需要在NetAtmo开发者控制台中创建应用,以获取Client ID和密钥。
认证方面,可使用导出器的集成Web界面,或使用开发者控制台创建令牌并手动提供给导出器使用。详见authentication.md。
导出器能够在重启期间持久化认证令牌,因此重启时无需用户交互,除非令牌在导出器未运行期间过期。有关用于持久化令牌的文件说明,详见token-file.md。
plain$ netatmo-exporter --help Usage of netatmo-exporter: -a, --addr string 监听地址。(默认 ":9210") --age-stale duration 视为过期的数据时长。过期数据不再生成指标。(默认 1h0m0s) -i, --client-id string NetAtmo应用的Client ID。 -s, --client-secret string NetAtmo应用的Client Secret。 --debug-handlers 启用调试HTTP处理器。 --external-url string 用于OAuth重定向URL的基础外部URL。 --log-level level 设置日志输出的最低级别。(默认 info) --refresh-interval duration NetAtmo传感器数据内部缓存的时间间隔。(默认 8m0s) --token-file string 用于加载/持久化认证令牌的令牌文件路径。
服务器启动后,将在/metrics端点提供指标,可作为Prometheus的目标。
导出器可通过命令行参数(见上节)或以下环境变量进行配置:
| 变量名 | 描述 | 默认值 |
|---|---|---|
NETATMO_EXPORTER_ADDR | 监听地址 | :9210 |
NETATMO_EXPORTER_EXTERNAL_URL | 用于OAuth重定向URL的基础外部URL | [***] |
NETATMO_EXPORTER_TOKEN_FILE | 用于加载/持久化认证令牌的令牌文件路径 | 无 |
DEBUG_HANDLERS | 启用调试HTTP处理器 | 无 |
NETATMO_LOG_LEVEL | 设置日志输出的最低级别 | info |
NETATMO_REFRESH_INTERVAL | NetAtmo传感器数据内部缓存的时间间隔 | 8m |
NETATMO_AGE_STALE | 视为过期的数据时长。过期数据不再生成指标。 | 1h |
NETATMO_CLIENT_ID | NetAtmo应用的Client ID | 无 |
NETATMO_CLIENT_SECRET | NetAtmo应用的Client Secret | 无 |
导出器对从Netatmo API检索的数据设有内存缓存。其目的是将Netatmo API请求与抓取间隔解耦,因为Netatmo的数据更新速度远低于Prometheus的默认抓取间隔。根据Netatmo文档,传感器数据每十分钟更新一次。导出器的默认"刷新间隔"设置为略低于此值(8分钟),但仍远高于Prometheus的默认抓取间隔(15秒)。
如有需要,可为此导出器设置较慢的抓取间隔:
ymlscrape_configs: - job_name: 'netatmo' scrape_interval: 90s static_configs: - targets: ['localhost:9210']

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务