Mercurial > code > home > repos > homeauto
changeset 1751:610beb3248d1
renames and cleanup
author | drewp@bigasterisk.com |
---|---|
date | Sun, 28 Apr 2024 17:12:06 -0700 |
parents | 00e04a98493d |
children | 3cf5333f2f30 |
files | service/powerEagle/plugs/README.md service/powerEagle/plugs/deploy.yaml service/powerEagle/plugs/exporter.py service/powerEagle/plugs/powermeter_exporter.py service/powerEagle/plugs/pyproject.toml service/powerEagle/plugs/skaffold.yaml |
diffstat | 6 files changed, 50 insertions(+), 50 deletions(-) [+] |
line wrap: on
line diff
--- a/service/powerEagle/plugs/README.md Sun Apr 28 17:11:37 2024 -0700 +++ b/service/powerEagle/plugs/README.md Sun Apr 28 17:12:06 2024 -0700 @@ -1,1 +1,1 @@ -# plugs +# powermeter-exporter
--- a/service/powerEagle/plugs/deploy.yaml Sun Apr 28 17:11:37 2024 -0700 +++ b/service/powerEagle/plugs/deploy.yaml Sun Apr 28 17:12:06 2024 -0700 @@ -1,37 +1,37 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: plugs + name: powermeter-exporter spec: replicas: 1 selector: matchLabels: - app: plugs + app: powermeter-exporter template: metadata: labels: - app: plugs + app: powermeter-exporter annotations: prometheus.io/scrape: "true" spec: containers: - - name: plugs - image: reg:5000/plugs_exporter_image + - name: exporter + image: reg:5000/powermeter_exporter_image workingDir: /opt command: - pdm - run - python - - exporter.py + - powermeter_exporter.py ports: - containerPort: 8005 --- apiVersion: v1 kind: Service metadata: - name: plugs + name: powermeter-exporter spec: ports: - { port: 80, targetPort: 8005 } selector: - app: plugs + app: powermeter-exporter
--- a/service/powerEagle/plugs/exporter.py Sun Apr 28 17:11:37 2024 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -import json -import logging - -from aiomqtt import Client -from prometheus_client import Counter, Gauge -from rdferry import StarletteServer - -logging.basicConfig(level=logging.DEBUG) -log = logging.getLogger() - -powermeter_reports = Counter('powermeter_reports', 'mqtt messages from powermeter', labelnames=['sensor']) -metrics = {} -for sensor_field, metric_name in [ - ('Power', 'powermeter_w'), - ('ApparentPower', 'powermeter_apparent_power_va'), - ('ReactivePower', 'powermeter_reactive_power_var'), - ('Factor', 'powermeter_factor'), - ('Voltage', 'powermeter_voltage_v'), - ('Current', 'powermeter_current_a'), -]: - metrics[sensor_field] = Gauge(metric_name, documentation='', labelnames=['sensor']) - - -async def subscribe_to_sensor(topic, sensor_label): - async with Client("mqtt2") as client: - await client.subscribe(topic) - async for message in client.messages: - msg = (json.loads(message.payload)) - for sf, m in metrics.items(): - m.labels(sensor=sensor_label).set(msg['ENERGY'][sf]) - powermeter_reports.labels(sensor=sensor_label).inc() - - -server = StarletteServer() -server.serve(startup_tasks=[ - subscribe_to_sensor(topic="tele/st-wall-power/SENSOR", sensor_label='st_wall'), -])
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/service/powerEagle/plugs/powermeter_exporter.py Sun Apr 28 17:12:06 2024 -0700 @@ -0,0 +1,37 @@ +import json +import logging + +from aiomqtt import Client +from prometheus_client import Counter, Gauge +from rdferry import StarletteServer + +logging.basicConfig(level=logging.DEBUG) +log = logging.getLogger() + +powermeter_reports = Counter('powermeter_reports', 'mqtt messages from powermeter', labelnames=['sensor']) +metrics = {} +for sensor_field, metric_name in [ + ('Power', 'powermeter_w'), + ('ApparentPower', 'powermeter_apparent_power_va'), + ('ReactivePower', 'powermeter_reactive_power_var'), + ('Factor', 'powermeter_factor'), + ('Voltage', 'powermeter_voltage_v'), + ('Current', 'powermeter_current_a'), +]: # yapf: disable + metrics[sensor_field] = Gauge(metric_name, documentation='', labelnames=['sensor']) + + +async def subscribe_to_sensor(topic, sensor_label): + async with Client("mqtt2") as client: + await client.subscribe(topic) + async for message in client.messages: + msg = json.loads(message.payload) + for sf, m in metrics.items(): + m.labels(sensor=sensor_label).set(msg['ENERGY'][sf]) + powermeter_reports.labels(sensor=sensor_label).inc() + + +server = StarletteServer() +server.serve(startup_tasks=[ + subscribe_to_sensor(topic="tele/st-wall-power/SENSOR", sensor_label='st_wall'), +])
--- a/service/powerEagle/plugs/pyproject.toml Sun Apr 28 17:11:37 2024 -0700 +++ b/service/powerEagle/plugs/pyproject.toml Sun Apr 28 17:12:06 2024 -0700 @@ -1,7 +1,7 @@ [project] -name = "plugs" +name = "powermeter_exporter" version = "0.1.0" -description = "Default template for PDM package" +description = "" authors = [ {name = "drew", email = "drewp@bigasterisk.com"}, ]
--- a/service/powerEagle/plugs/skaffold.yaml Sun Apr 28 17:11:37 2024 -0700 +++ b/service/powerEagle/plugs/skaffold.yaml Sun Apr 28 17:12:06 2024 -0700 @@ -1,10 +1,10 @@ apiVersion: skaffold/v3 kind: Config metadata: - name: plugs-exporter + name: powermeter-exporter build: artifacts: - - image: reg:5000/plugs_exporter_image + - image: reg:5000/powermeter_exporter_image platforms: [amd64] tagPolicy: dateTime: