v0.12.0
[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 reportsfrom 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 withpath not found in any elementinstead 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
- Per-endpoint response cache (TTL) (#132) (
cb5091c) - Report the TLS certificate's remaining validity (closes #128) (#131) (
753bb77) - Create one Checkmk host per '[*]' element (closes #127) (#130) (
e2d3ca2) - Reject two endpoints sharing a name (closes #116) (#122) (
22413fe)
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)