#prometheus-metrics #metrics-exporter #metrics #prometheus #nws

bin+lib nws_exporter

为 api.weather.gov 提供的 Prometheus 指标导出器

6 个版本 (破坏性更新)

0.5.1 2023年10月21日
0.5.0 2023年10月16日
0.4.0 2022年3月13日
0.3.0 2022年2月6日
0.1.0 2022年2月2日

#1#nws

GPL-3.0+

38KB
487

nws_exporter

build status docs.rs crates.io

为 api.weather.gov 提供的 Prometheus 指标导出器

功能

nws_exporter 使用 NWS 站点api.weather.gov API 获取特定站点的天气信息,并将其作为 Prometheus 指标输出。用户必须选择一个特定的站点来获取天气信息。以下指标在可用时输出(并非所有字段对所有站点都可用)。

  • nws_station{station=$STATION, station_id=$STATION_ID, station_name=$STATION_NAME} - 站点元数据
  • nws_elevation_meters{station=$STATION} - 站点海拔,单位为米。
  • nws_temperature_degrees{station=$STATION} - 温度,单位为摄氏度。
  • nws_dewpoint_degrees{station=$STATION} - 露点,单位为摄氏度。
  • nws_barometric_pressure_pascals{station=$STATION} - 气压,单位为帕斯卡。
  • nws_visibility_meters{station=$STATION} - 能见度,单位为米。
  • nws_relative_humidity{station=$STATION} - 相对湿度(0-100)。
  • nws_wind_chill_degrees{station=$STATION} - 风寒温度,单位为摄氏度。

安装

以下列出了多种安装 nws_exporter 的方法。

二进制文件

为每个版本,都发布了适用于GNU/Linux (x86_64)、Windows (x86_64) 和 MacOS (x86_64 和 aarch64) 的二进制文件。请参阅此处

Docker

为GNU/Linux (amd64) 发布了Docker镜像,可在每个版本中找到。

Cargo

使用Rust的cargo工具,可以从源代码下载和构建nws_exporter及其依赖项。请注意,这需要您已安装Rust工具链。

安装

cargo install nws_exporter

卸载

cargo uninstall nws_exporter

源代码

使用Rust的cargo工具,可以从Github上最新的源代码构建nws_exporter及其依赖项。请注意,这需要您已安装Git和Rust工具链。

获取源代码

git clone https://github.com/56quarters/nws_exporter.git && cd nws_exporter

从本地源安装

cargo install --path .

卸载

cargo uninstall nws_exporter

使用方法

选择站点

为了导出NWS预报信息,nws_exporter需要知道请求信息的NWS站点。您可以通过使用API本身来获取您所在州的可用站点列表。以下是一个使用curl的示例。

curl -sS 'https://api.weather.gov/stations?state=MA' | jq | less

此命令列出了马萨诸塞州的所有可用站点。每个站点的properties.stationIdentifier字段是您应该与nws_exporter一起使用的ID。例如,KBOS是波士顿洛根机场站点的ID。

然后您可以像下面演示的那样运行nws_exporter

./nws_exporter KBOS

运行

您可以使用提供的单元文件将nws_exporter作为Systemd服务运行。此单元文件假设您已将生成的nws_exporter二进制文件复制到/usr/local/bin/nws_exporter。请确保编辑单元文件以使用您在上一步中选择的附近的站点。

sudo cp target/release/nws_exporter /usr/local/bin/nws_exporter
sudo cp ext/nws_exporter.service /etc/systemd/system/nws_exporter.service
sudo sed -i 's/KBOS/YOUR_STATION/' /etc/systemd/system/nws_exporter.service
sudo systemctl daemon-reload
sudo systemctl enable nws_exporter.service
sudo systemctl start nws_exporter.serivce

Prometheus

9782端口上的/metrics暴露Prometheus指标。一旦nws_exporter运行,请通过Prometheus服务器配置对它的抓取。按照以下示例,将运行nws_exporter的主机添加到Prometheus的scrape_configs部分下作为目标。

# Sample config for Prometheus.

global:
  scrape_interval:     15s
  evaluation_interval: 15s
  external_labels:
    monitor: 'my_prom'

scrape_configs:
- job_name: nws_exporter
  static_configs:
  - targets: ['example:9782']

许可证

nws_exporter在GPL版本3的条款下可用。请参阅此处

贡献

除非您明确声明,否则您提交的任何贡献都将按照上述条款许可,没有其他额外条款或条件。

依赖项

~12–27MB
~432K SLoC