Skip to content

v1.7.0

Latest

Choose a tag to compare

@iyashjayesh iyashjayesh released this 29 Aug 19:17
· 5 commits to main since this release
133056a

Four of these fix things a consumer cannot work around.

WithOTelEndpoint never sent a metric

Registry, Pipeline and MultiExporter were each implemented and each unit-tested — and nothing ever constructed them. The exporter was created, logged OTel exporter initialized, and shut down again without being asked for anything in between.

Measured against a collector: 33 bytes in 40 seconds, all of it gRPC handshake. Anyone who configured OTel export has been receiving nothing, with no error and a healthy-looking log line. After the fix, all five metrics arrive within 30s.

Profiling was dead in production

The profile view shelled out to go tool pprof, so on any distroless, scratch or alpine image the dashboard returned Error: 'go' command not found as the report body. It only ever worked on a machine with the Go SDK installed.

Profiles written by runtime/pprof are fully symbolized, so they are now parsed in-process — no toolchain, no binary, no source tree. Annotated source degrades to line numbers where the source tree is absent rather than failing.

The health badge contradicted itself

It rendered Degraded beside the sentence "System usage is within limits", with every number in the card inside its limit — the verdict came from a composite score crossing 50 while the message came from a threshold check. It also flapped, crossing that boundary twice in 45 seconds on an idle machine.

Related: a single exhausted resource was masked by an idle one. Memory at 104% of its allowance reported as within limits, because the breach test averaged the ratios.

Service CPU was inflated by 100/TotalCores

The same measurement read 1.68% under SERVICE CPU LOAD and 17.66% in the health message. An idle process measured 360% on one core, 132% on four — enough, once breach detection became per-resource, to report a healthy service as unhealthy on small hosts.

If you tuned MaxCPUUsage against the old figures, revisit it. The numbers get smaller, so an untouched threshold is now looser than you intended.

Added — Exporters page

Prometheus and OTel status at GET /monigo/api/v1/exporters and in the dashboard nav, each reported in its own terms. Prometheus scrapes MoniGo, so it shows when it was last scraped and carries no failure count — a failed scrape fails at the collector and the server never learns of it. A push exporter shows last attempt, last success, consecutive failures and the transport error verbatim.

Changed — go get downloads 25 MB less

monigo.gif was 24.7 MB of a 25 MB module zip: 96% of every dependency fetch was a README image, and one showing a dashboard the project no longer ships. Media now lives on a branch outside every tagged version. 502 MB of committed example binaries were also untracked, with a magic-number test so they cannot return.

Full changelog: v1.6.0...v1.7.0