Introduction
In today’s increasingly climate-aware world, environmental factors such as temperature, humidity, air quality, and severe weather events directly impact Platform Engineering, logistics, energy consumption, and field infrastructure. Despite its flexibility and power, Checkmk lacked native, contextualized support for real-time environmental data, particularly from specialized sources like astronomy, marine forecasts, or pollutant indices.
This gap sparked the creation of the Weather API Special Agent, a modular and scalable plugin designed to seamlessly integrate weather intelligence into Checkmk, enabling informed, real-time decisions across industries.
The challenge: Monitoring beyond the datacenter
Checkmk lacked native, real-time support for environmental data, which is increasingly important for operational resilience. This was especially true for specific domains like astronomy, marine weather, or air quality indices. The Weather API Special Agent fills this gap, allowing Checkmk users to integrate contextual weather insights directly into their monitoring workflows.
Architecture overview: Modular, intelligent, and extensible
The plugin is architected into three cohesive layers, ensuring clean separation of logic, robust execution and deep integration with the Checkmk ecosystem.
1. Collection & Parsing Layer – Domain-Specific Agent Sections
Each weather domain is handled by a dedicated module:
weather_current.py: Real-time conditions (temperature, humidity, UV index)weather_forecast.py: Multi-day forecasts with rainfall, temperature ranges, and weather outlooksweather_marine.py: Maritime forecasts ideal for coastal or naval operationsweather_air_quality.py: Pollution levels (PM2.5, CO, NO₂, O₃…) with health indices (EPA, DEFRA)weather_alerts.py: : Official alerts (e.g., storms, extreme heat) as live monitorable servicesweather_astronomy.py: Solar/lunar cycles, moon phase, daylight indicators
Each module is isolated and fault-tolerant, using fallback mechanisms to ensure resilience even in case of missing or inconsistent data.
2. Integration & Execution Layer – Dynamic and Secure
special_agent.py: : Defines the agent’s logic, validating parameters (via Pydantic) and dynamically building execution commands based on user configuration.agent_weather_api.py:Core executor making API requests to endpoints like /current.json, /forecast.json, and parsing them into Checkmk-compatible structures with multilingual and filtered output options.
3. Configuration Layer – Flexible Rulesets and Server-Side Context
With full support for cmk.rulesets.v1 and cmk.server_side_calls.v1, users can configure the plugin entirely via Checkmk’s WATO interface:
- Enabling/disabling modules
- Monitoring targets (individual cities, districts, exclusions)
- Forecast duration and filtering
- Secure secrets and contextual help
This configuration layer provides granular control without coding, supporting different use cases per host or environment.

Inventory integration: Turning Checkmk into a climate dashboard
Beyond real-time checks, the plugin integrates with Checkmk’s InventoryPlugin, enriching the host inventory with:
- Current weather and forecasts (ideal for planning)
- Air quality insights (critical for outdoor hardware, IoT)
- Astronomical data (relevant for solar panels, agriculture, automation)
This transforms the inventory into a strategic observability layer, contextualizing infrastructure with its physical environment.

Geographic modes: Built for real-world use
Designed with location flexibility in mind, the plugin supports:
- Manual mode: Monitor a single, chosen city
- Predefined Portuguese cities: Seamless integration with Portugal’s geography
- Multiple cities mode: Monitor a custom list of cities in parallel
- District mode: Automatically monitor all cities in a district, excluding specific ones if desired
This geographic flexibility allows tailored monitoring across distributed or multi-site operations.
Visual intelligence: Real-time dashboards with NagVis
To elevate data visibility, the plugin integrates with NagVis for geographic dashboards, enabling:
- District-level views (e.g., “Aveiro Weather”) with interactive maps
- National climate monitoring (mainland + islands)
- Hybrid dashboards combining weather and infrastructure metrics
Dashboards auto-update with current conditions and status indicators (OK/WARN/CRIT), enabling rapid, location-based decision-making.
Resilience by design
- Each module functions independently: a failure in one doesn’t affect others
- Robust parsing and validation ensure stability, with fallbacks for missing values
- Logs provide deep visibility into execution and data transformation
- CLI support enables local testing and development
Real-world applications
This plugin is already delivering tangible value across multiple sectors:
- Datacenters & Telecoms: Auto-alerts for extreme heat, high humidity, wind risks
- Logistics & Transportation: Route optimization based on visibility and weather conditions
- Maritime Operations: Real-time sea state and tide forecasts for navigation and safety
- Sustainability & ESG: Monitoring air quality for compliance and public safety initiatives
From weather to whatever — Checkmk can monitor it
This project is more than an advanced weather monitoring solution, it’s a proof of concept that showcases the true power and flexibility of Checkmk’s architecture.
By leveraging APIs, modular design, and native Checkmk integration points (rulesets, inventory, special agents), this plugin demonstrates that virtually any external data source can be transformed into actionable monitoring.