首先使用 Prometheus 在 Raspberry Pi 上部署 Tesla Powerwall Exporter,并让 Prometheus 将指标远程写入 Grafana Cloud。
Tesla Powerwall Exporter 安装
Tesla Powerwall Exporter 可以通过以下方式安装:克隆 Git 存储库github.com/dmyerscough… 并运行node命令或运行预构建的 Docker 映像。在本指南中,我将介绍使用 Docker 映像来运行 Tesla Powerwall Exporter。
下载 Tesla Powerwall Exporter 后,运行以下 docker 命令。
pi@raspberrypi:~ $ docker pull damianmyerscough/tesla-powerwall-exporter:0.0.1 0.0.1: Pulling from damianmyerscough/tesla-powerwall-exporter d4bf0b27c669: Pull complete d65b27641f7b: Pull complete 5f3cb788c4e3: Pull complete b9ab8ace8d81: Pull complete 0f72e21a724d: Pull complete 4329af468ae5: Pull complete 4f4fb700ef54: Pull complete Digest: sha256:0ef7b07ab36bb296e5bc06fa34c60110027974f9f6983064eca0d5222b90226a Status: Downloaded newer image for damianmyerscough/tesla-powerwall-exporter:0.0.1 docker.io/damianmyerscough/tesla-powerwall-exporter:0.0.1
一旦 docker 命令完成下载,我们将需要使用以下四个环境变量运行容器。
- TESLA_ADDR:你的 Tesla Powerwall 的 IP 地址
- TESLA_EMAIL:你的电子邮件地址
- TESLA_PASSWORD:你的 Tesla Powerwall 的密码,你可以在 Powerwall 上找到它,是最后五个字符。
- SCRAPE_INTERVAL:指定我们应该多久刮一次 Tesla Powerwall 以获取指标,默认情况下,Tesla 每隔五分钟刮一次,最好把频率设更高些,比如 30 秒。
docker
复制代码
pi@raspberrypi:~ $ docker run -d -p 9961:9961 \ -e TESLA_ADDR="192.168.1.3" \ -e TESLA_EMAIL="damian@example.com" \ -e TESLA_PASSWORD="MyTeslaPassword" \ -e SCRAPE_INTERVAL=30 damianmyerscough/tesla-powerwall-exporter:0.0.1 4df8be62edb9c493c4b08c064f297bf93f2b97c6fa393eb409f812506b63048c
容器启动后,你可以验证导出器正在运行,它正在成功地从 Tesla Powerwall 抓取指标。验证这一点的命令如下所示。
pi@raspberrypi:~ $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4df8be62edb9 damianmyerscough/tesla-powerwall-exporter:0.0.1 "docker-entrypoint.s…" 5 seconds ago Up 3 seconds 8080/tcp, 0.0.0.0:9961->9961/tcp, :::9962->9962/tcp dazzling_jackson
验证 Tesla Powerwall Exporter 是否正在抓取指标
pi@raspberrypi:~ $ docker logs 4df8be62edb9 > tesla@1.0.0 start > node server.mjs (node:19) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification. (Use `node --trace-warnings ...` to show where the warning was created) {"level":"info","message":"Scraping powerwall","timestamp":"2022-04-06T05:25:28.864Z"} {"level":"info","message":"Listening on 0.0.0.0:9961","timestamp":"2022-04-06T05:25:28.881Z"} {"level":"info","message":"Finished scraping powerwall","timestamp":"2022-04-06T05:25:29.034Z"}
Prometheus 配置
下一步是配置 Prometheus 以抓取 Tesla Powerwall Exporter 并将这些指标写入 Grafana Cloud。由于我们使用 Docker 来运行我们的导出器,我们将使用 Docker 来运行 Prometheus。我们要使用的 Prometheus 配置如下所示,将文件保存为 prometheus.yml。
# Sample config for Prometheus. global: scrape_interval: 30s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 30s # Evaluate rules every 15 seconds. The default is every 1 minute. remote_write: - url: https://prometheus-prod-10-prod-us-central-0.grafana.net/api/prom/push basic_auth: username: <PROMETHEUS USERNAME> password: <API TOKEN> scrape_configs: - job_name: tesla_powerwall scrape_interval: 15s metrics_path: /metrics static_configs: - targets: ['localhost:9961']
prometheus.yml 中的用户名和密码字段可以从 Grafana Cloud 门户获得。将你的用户名和密码插入prometheus.yml 文件后,你可以通过运行以下命令来启动 Prometheus 进程。
pi@raspberrypi:~ $ docker run -p 9090:9090 \ -v $( pwd )/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus
Prometheus 启动后,指标将开始写入 Grafana Cloud 中的 Prometheus 实例。
Grafana 云监控
最后,我们可以使用 Grafana Cloud 导入预先构建的 Tesla Powerwall 仪表板。仪表板将让我们深入了解我们的太阳能和 Powerwall 系统的性能。
像上面这样,我们现在正在监控和绘制我们的 Tesla Powerwall 和太阳能系统,并对我们的系统有更深入的了解。Tesla 应用程序仅显示五分钟的快照,而我们的导出器可以提供更精细的结果。