{"id":15374151,"url":"https://github.com/io-developer/prom-apcupsd-exporter","last_synced_at":"2025-04-15T15:10:35.752Z","repository":{"id":57649607,"uuid":"280699332","full_name":"io-developer/prom-apcupsd-exporter","owner":"io-developer","description":"Prometheus exporter of apcupsd metrics. Also it's websocket server for instantly clients notifying. And also provides signal-endpoints for integrating with apccontrol events (signals)","archived":false,"fork":false,"pushed_at":"2024-02-16T20:21:11.000Z","size":63040,"stargazers_count":4,"open_issues_count":1,"forks_count":3,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-28T21:37:47.190Z","etag":null,"topics":["apc","apcupsd","events","exporter","instant","metrics","prometheus","ups","websocket"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/io-developer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-07-18T16:52:09.000Z","updated_at":"2023-10-12T13:31:52.000Z","dependencies_parsed_at":"2024-02-27T05:48:52.879Z","dependency_job_id":null,"html_url":"https://github.com/io-developer/prom-apcupsd-exporter","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/io-developer%2Fprom-apcupsd-exporter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/io-developer%2Fprom-apcupsd-exporter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/io-developer%2Fprom-apcupsd-exporter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/io-developer%2Fprom-apcupsd-exporter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/io-developer","download_url":"https://codeload.github.com/io-developer/prom-apcupsd-exporter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249094932,"owners_count":21211837,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apc","apcupsd","events","exporter","instant","metrics","prometheus","ups","websocket"],"created_at":"2024-10-01T13:57:25.725Z","updated_at":"2025-04-15T15:10:35.729Z","avatar_url":"https://github.com/io-developer.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Prometheus apcupsd exporter\n\n[![Docker Automated build](https://img.shields.io/docker/automated/iodeveloper/prom-apcupsd-exporter.svg)](https://hub.docker.com/repository/docker/iodeveloper/prom-apcupsd-exporter/)\n\n[![Docker Hub repository](http://dockeri.co/image/iodeveloper/prom-apcupsd-exporter)](https://registry.hub.docker.com/r/iodeveloper/prom-apcupsd-exporter)\n\n`iodeveloper/prom-apcupsd-exporter:latest`\n\n## Use cases\n\n* Provides wide apcupsd metrics for prometheus.\n  * `apcupsd_input_*`: input line metrics\n  * `apcupsd_output_*`: output line metrics\n  * `apcupsd_battery_*`: battery metrics\n  * `apcupsd_ups_*`: UPS status and settings\n  * `apcupsd_shutdown_*`: apcupsd shutdown settings\n\n* Can be integrated with apccontrol signals such as `powerout`, `startselftest` and etc.\n\n* Built-in websocket server allow to connect and notify web clients for events/signals.\nExample: lightweight status widget on pure js/css (responsive alternative to grafana for realtime monitoring - see https://github.com/io-developer/vue-ups).\n\n* This exporter calculates events between previous and latest states. Changed fields and new events are broadcasting to connected clients via websocket.\n\n## Grafana example\n\n![Grafana](example-grafana.png \"Grafana example\")\n\n\n#### Prerequisites\n\n_Both services in docker because server shutdown is not required_\n\nSUA1500i connected via serial port /dev/ttyS0 in smart mode. After start on host appear two ports: 3559 - apcupsd, 3560 - exporter.\n\n#### docker-compose.yml\n\n```yml\nversion: '3.4'\n\nservices:\n  apcupsd:\n    build: .\n    restart: always\n    user: root\n    devices:\n      - \"/dev/ttyS0:/dev/ttyS0\"\n    volumes:\n      - ./conf:/etc/apcupsd\n      - ./log/apcupsd.events:/var/log/apcupsd.events\n      - ./log/apcupsd.trace:/apcupsd.trace\n    ports:\n      - \"0.0.0.0:3559:3551\"\n\n  exporter:\n    image: iodeveloper/prom-apcupsd-exporter:latest\n    restart: always\n    ports:\n      - \"0.0.0.0:3560:8001\"\n    command: [\n      \"--logLevel\", \"warn\",\n      \"--apcupsd\", \"apcupsd:3551\",\n      \"--apcupsdStartSkip\", \"20\",\n      \"--collectInterval\", \"10\",\n      \"--defaultModelState\", '{\"OutputPowerNominal\": 900, \"OutputPowerApparentNominal\": 1500}'\n    ]\n```\n\n#### ./conf/apcupsd.conf\n\n```ini\nUPSCABLE smart \nUPSTYPE apcsmart\nDEVICE /dev/ttyS0\nPOLLTIME 3\n\nONBATTERYDELAY 0\nBATTERYLEVEL 0\nMINUTES 0\nTIMEOUT 0\nKILLDELAY 0\n\nNETSERVER on\nNISPORT 3551\n\n# other by default\n```\n\n#### ./conf/doshutdown\n\n```sh\n#!/bin/sh\n\ntouch /etc/apcupsd/shuttingdown\nexit 99\n```\n\n#### ./conf/mainsback\n\n```sh\n#!/bin/sh\n\n# Kill and reload apcupsd to reset `shutdown` status flags after mains back\nif [ -f /etc/apcupsd/shuttingdown ]; then\n    rm -f /etc/apcupsd/shuttingdown\n    pid=$(ps aux | grep '/sbin/apcupsd' | grep -v grep | awk '{print $2}')\n    kill $pid\nfi\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fio-developer%2Fprom-apcupsd-exporter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fio-developer%2Fprom-apcupsd-exporter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fio-developer%2Fprom-apcupsd-exporter/lists"}