简单的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']
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429