Skip to content

v0.12.0

Choose a tag to compare

@github-actions github-actions released this 03 Aug 08:48
· 36 commits to main since this release

[0.12.0] - 2026-08-03

Upgrade notes

The response cache is opt-in, and deliberately fails loudly

Nothing changes unless you set the new per-endpoint Re-read at most every
(seconds)
. When you do, two behaviours are worth knowing before you rely on it:

  • A failing request is never answered from an expired cache. The endpoint goes
    CRIT as it would without caching. This is deliberate — monitoring that serves
    stale data through an outage is worse than useless — but it does mean a cache
    does not make an endpoint more available, only less frequently polled.
  • A cached serve records no response-time metric. The JSON API <name>
    service reports from cache (N old) instead. So a graph of an endpoint with a
    long TTL will have gaps: those are intervals where nothing was measured, not
    intervals where the API was slow.

Piggyback hosts must exist before they are monitored

Purely additive — nothing changes unless you set the new Create one host per
element, named by this field
on a [*] field. But when you do, be aware of the
standard Checkmk piggyback rule: data for a host that does not exist in Checkmk
is stored and never monitored.
No error, no service, no warning on the polling
host — it simply sits in the piggyback directory.

Effect: create the hosts first (by hand, or with Dynamic host management on
Enterprise/Cloud), then run a discovery. If you enable the option and see nothing,
this is why.

Switching an existing [*] field over to per-element hosts also moves its
services: the label-suffixed services on the polling host (JSON Node web-1)
disappear and are replaced by plainly-named ones on the new hosts (JSON Node on
host web-1), so their metric history restarts.

The endpoint service item drops the URL's query string

Endpoints without a configured Name take their service item from the URL,
which is now used without its query string (?api_key=…) — a credential passed
as a query parameter no longer lands in a service description, which reaches
notifications, availability reports and the metric paths on disk. The full URL
is unchanged in the service details.

Effect: the JSON API <url> service of every unnamed endpoint whose URL has
a query string is renamed once, on the next discovery, and its metric history
restarts. Named endpoints are unaffected. Give your endpoints a Name to
insulate them from this and from any future change to the fallback.

count over a [*] path counts only the elements that have the field

An aggregation over a wildcard path that names a field — nodes[*].load — now
counts only the elements that actually have that field, matching what
sum/avg/min/max over the same path have always done.

Effect, for rules combining count with a [*] path:

  • where the field is sometimes absent, the reported number drops to the number
    of elements that have it;
  • where the field is never present (typically a typo in the path), the service
    goes UNKNOWN with path not found in any element instead of silently
    reporting the element count.

A wildcard-free path (aggregate: count on jobs) names no field and is
unchanged. A condition that matches nothing still counts 0.

Features

Fixes

  • Distinguish a null element from a missing container (closes #114) (#120) (#126) (aedc00f)
  • Stop the aggregation preview claiming a pre-filter count (closes #115) (#123) (5655e4e)
  • Keep the query string out of the endpoint service item (closes #111) (#121) (96dff75)
  • Count only the elements that have the field (closes #113) (#119) (8a0c1af)
  • Render a negative duration instead of crashing (closes #110) (#118) (a20b34f)

Other

  • Add UPGRADING.md and put it in the release body (closes #112) (#125) (e706010)
  • Check gui/ too, and align the make targets with CI (closes #117) (#124) (55c026f)
  • Bump the actions group with 2 updates (#109) (f1f8034)
  • Deps: Bump ruff from 0.16.0 to 0.16.1 (#108) (1f48044)