switchbot-exporterを書いた
先だって、SwitchBot APIのGo言語用クライアント実装であるgithub.com/nasa9084/go-switchbot を書いた、という記事 を書きましたが、これを使用してPrometheusでSwitchBot温湿度計 の情報を収集できるswitchbot-exporter を書いてみたので紹介します。 switchbot-exporterはblackbox exporter のように、起動時にはターゲットを指定せず、Prometheusがメトリクスを収集する際にrelabel_configでターゲットを与えるタイプのexporterです。 起動時に必要な情報はSwitchBotアプリから取得できるOpenTokenのみです。OpenTokenはコマンドラインオプションか、環境変数SWITCHBOT_OPENTOKEN経由で渡すことができます。 1 2 3 $ switchbot-exporter -switchbot.opentoken=blahblahblah # or $ SWITCHBOT_OPENTOKEN=blahblahblah switchbot-exporter docker image も用意してありますので、例えばKubernetes上で動かすこともできます: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 --- apiVersion: apps/v1 kind: Deployment metadata: name: switchbot-exporter spec: revisionHistoryLimit: 3 selector: matchLabels: app: switchbot-exporter template: metadata: labels: app: switchbot-exporter spec: containers: - name: switchbot-exporter image: nasa9084/switchbot-exporter:0.1.0 ports: - protocol: TCP containerPort: 8080 env: - name: SWITCHBOT_OPENTOKEN valueFrom: secretKeyRef: name: switchbot key: opentoken --- apiVersion: v1 kind: Service metadata: name: switchbot-exporter spec: ports: - protocol: TCP port: 8080 targetPort: 8080 selector: app: switchbot-exporter このようにして起動した後、README に記載のあるようにprometheusの設定をします ...