Repository navigation
Modernize runtime, fix API handling, and add device online metric - #60
Merged
Merged
Conversation
Preserve exporter contracts while updating the supported toolchain, fixing API decoding and cache concurrency, and adding nullable online status. Replace publishing CI with guarded build and test workflows. Credit hakonegi's fractional temperature offset correction in #59.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Restore a maintained, testable exporter while preserving existing metrics and deployment targets. This addresses the dependency backlog in #30 and incorporates the fractional temperature-offset correction proposed by @hakonegi in #59, with regression tests.
Scope
remo_device_onlineonly when the API reports a known online/offline value. Keep existing metric names, labels, configuration, and Linux amd64/arm64/ARMv7 targets.Tradeoffs
Electricity history and new OAuth scopes are deferred. Prometheus examples stay on 2.55.1 as an interim major-version-preserving update, not a claim of upstream support. Each HTTP request has a timeout; the complete scrape does not have a separate deadline.
Blast radius
Existing device and smart-meter metric values remain unchanged. Source builds now require Go 1.26 or later. The online metric is additive and is absent for missing/null status.
Public CircleCI job metadata confirmed branch-specific configuration and checkout revisions before publication. The first branch revision included all publication guards. CircleCI job 1478 for this exact head succeeded with only the no-publication notice, without checkout or publishing steps. The legacy tag-only publisher invocation also fails before any Docker command; the script rejects CI even with its explicit publish flag. The old CircleCI test entrypoint also fails before its subsequent Codecov upload.
Verification
govulncheckwith no findings after the update.8a217a9eaa4b0f25bac1b7b1e40dbf0c7deb8a29. Both push and PR runs passed Go 1.26/1.27 checks. Live Kubernetes and Nature hardware remain unverified. No real Nature token is used.