Description

Monitor any JSON API in Checkmk without writing a line of code.

Point it at a /health, /status, or metrics endpoint, pick the fields you care about, and get a Checkmk service for each โ€” thresholds, graphs, and alerts included. One rule. Any API. Done.

Generic JSON API

What you get

  • ๐ŸŽฏ Any endpoint, unmodified โ€” Spring Boot, Kubernetes, vendor appliances, your own apps. No special response format required.
  • ๐Ÿงญ Pick fields by path โ€” components.db.status, items[0].count, done.
  • ๐Ÿ” Auto-discover arrays and objects โ€” nodes[*].status becomes one service per array element, and components[*].status one per object key (e.g. a Spring Boot Actuator /health map), automatically.
  • ๐Ÿ”ข Aggregate a collection โ€” where [*] fans out one service per element, an aggregation collapses the whole collection into one service: the number of elements (queue length, unhealthy nodes) or the sum / average / min / max of the values (queues[*].depth). The result is a number, so units, WARN/CRIT levels and a metric all apply.
  • โฑ๏ธ Counters and timestamps, done right โ€” mark a field as a counter and monitor its per-second rate instead of an ever-growing total (requests_total); mark it as a timestamp and monitor its age, so upper levels alert on stale data (last_backup older than 26 h โ†’ WARN).
  • ๐Ÿ–ง One Checkmk host per element โ€” point a [*] field at a field holding a host name and every element becomes a host of its own, not just another service. An API describing a fleet gives you hosts with their own downtimes, contact groups and availability, instead of one host with a hundred services.
  • ๐Ÿฉบ Every endpoint monitors itself โ€” each endpoint also gets a JSON API <*name*> service with the HTTP status, response time (thresholds optional), response size and, for HTTPS, the TLS certificate's remaining validity โ€” read from the connection it is already making, so no second check against the same URL. Zero configuration; it comes with the rule.
  • ๐Ÿข Rate-limited API? Cache it โ€” give an endpoint a TTL and the agent reuses its last response instead of asking again, so monitoring cannot exhaust a request quota. It never caches an error and never answers a failed request from an expired cache, so a real outage still shows up.
  • ๐Ÿ”— Many endpoints, one rule โ€” poll several APIs together, each with its own method, auth, and fields; an unreachable one only affects its own services.
  • ๐Ÿ“ˆ Thresholds & graphs in Checkmk โ€” WARN/CRIT and metrics live in your rule, not upstream in the API.
  • ๐Ÿงฎ Transform the numeric value โ€” apply a small arithmetic expression like value / 1024 / 1024 (bytesโ†’MiB) or (value - 32) * 5 / 9 (ยฐFโ†’ยฐC) before levels and the metric; safely evaluated, no eval.
  • ๐Ÿ”ค String matching, two ways โ€” require a value to match a regex (pick the state when it doesn't, default CRIT), or map values like ready / degraded / failed straight to OK / WARN / CRIT.
  • ๐Ÿ” Secure by default โ€” basic or bearer auth via the password store, TLS verification on.
  • ๐Ÿงฐ Bonus field picker โ€” paste your JSON in the bundled explorer, click what to monitor, copy the ready-made rule. On Checkmk 2.5+, install the optional companion package Generic JSON API โ€“ Explorer (extra) for a guided in-site wizard that builds the rule for you from a live API response.

In 30 seconds

GET /actuator/health โ†’ {"status": "UP", "components": {"db": {"status": "UP"}}}

Tick status (expect UP) and components.db.status โ†’ instant services JSON Health and JSON Database. That's the whole setup.

Details

  • Checkmk 2.4+, any edition. Tested on real 2.4 and 2.5 sites.
  • Install via mkp add / mkp enable, or Setup โ†’ Extension packages.
  • GPL-2.0-only
Version 0.12.0
Latest version

Uploaded on: 3 Aug 2026

Downloads: 15

Built on Checkmk version: checkmk-json-agent 0.12.0

Minimum Checkmk version required: 2.4.0

MKP MD5 hash: ffe87593e09e06ec77958a8f5df4e13d