Prometheus client for Indigo
Posted: Sat Jul 04, 2020 6:42 am
Hello Indigo Community!
I'm messing around with a Prometheus client plugin for Indigo and I thought I'd post my progress so far... I haven't posted it to the Plugin Store until I am certain it's the right way to go. If you give it a shot, let me know how it works out and any changes you'd like to see!
Why another monitoring plugin? Well, the SQL Logger is perfect for logging all state changes. I've been looking for a tool that will display the information as a time-series, rather than a straight log. For example, if a light is on, the SQL Logger will only update if the state changes. But what about all the time in between? I'm trying to build up a view of something like "show me the number of lights on in my house at a certain time if day" or "show me the cumulative watering times for all sprinkler zones in the past month".
The disadvantage with this approach is that you might miss short events. Specifically, anything that changes before the next polling interval. Additionally, devices often have complex state that cannot be easily represented by a simple metric. In a future version, I am considering how to add support for additional metrics (e.g. using custom Devices or specific state names).
There is also some additional overhead running the collection server and Prometheus itself. In initial testing, this setup is easier on my aging Mac Mini than the full SQL Logger. Admittedly, I'm still running both plugins since the logger has other benefits.
Release Page: https://github.com/jheddings/indigo-pro ... tag/v0.1.0
I'm messing around with a Prometheus client plugin for Indigo and I thought I'd post my progress so far... I haven't posted it to the Plugin Store until I am certain it's the right way to go. If you give it a shot, let me know how it works out and any changes you'd like to see!
Why another monitoring plugin? Well, the SQL Logger is perfect for logging all state changes. I've been looking for a tool that will display the information as a time-series, rather than a straight log. For example, if a light is on, the SQL Logger will only update if the state changes. But what about all the time in between? I'm trying to build up a view of something like "show me the number of lights on in my house at a certain time if day" or "show me the cumulative watering times for all sprinkler zones in the past month".
The disadvantage with this approach is that you might miss short events. Specifically, anything that changes before the next polling interval. Additionally, devices often have complex state that cannot be easily represented by a simple metric. In a future version, I am considering how to add support for additional metrics (e.g. using custom Devices or specific state names).
There is also some additional overhead running the collection server and Prometheus itself. In initial testing, this setup is easier on my aging Mac Mini than the full SQL Logger. Admittedly, I'm still running both plugins since the logger has other benefits.
Release Page: https://github.com/jheddings/indigo-pro ... tag/v0.1.0