MiroxMirox
  • Platform

    • Philosophy
    • Platform Overview
    • Platform Resources
  • Mirox-Cloud

    • Cloud Overview
    • Connected Microservices
  • Mirox-Agent

    • Agent Overview
    • Deployment Options
    • Data Scraper
    • Digital Twin
  • Technical Details

    • Metric Collection
  • Information

    • Supported Plants
  • Plant Types

    • Solar Plants
    • Wind Plants
    • Battery Storage
    • Alarm System
  • Monitoring & Visualization

    • Real-time Monitoring
    • Digital Twin
    • Component States
    • Inverter Status Codes
    • Inverter Events
    • Loss Detection
    • Power Limits & Curtailment
    • Efficiency Detection
    • KPI Dashboard
  • Data Management

    • Events
    • Tickets
    • Forecasts
    • Reports
    • Metrics
  • Integration & Sharing

    • Cooperations
    • API Tokens
    • VPN
    • Proxy
  • AI

    • AI Assistant & Wizards
    • Agentic Access (MCP)
  • Billing

    • Market & Tariffs
    • Accounting & Billing
  • Collaboration

    • Invitations
  • Security

    • Authentication
    • Account Lockout
    • Permission System
    • Network Segmentation
    • Cooperation Restrictions
    • Access Audit Logging
    • Activity & Audit Trail
  • Nodes

    • mrxnode
  • Application

    • Door Control
    • Generic Relay
  • Edge Cluster

    • Orchestration
  • Getting Started

    • Onboarding
    • Setup
  • Personal

    • Using the VPN
    • Using the Proxy
    • Two-Factor Authentication
    • Sessions
    • API Tokens
    • Notifications
    • Connect Microsoft Teams
  • Per Park

    • Contacts
    • Network Devices
    • Data Loggers
    • Components
    • Direct VPN (per Agent)
    • Data Volume
    • History Import
  • Organization

    • Member Permissions
    • Cooperations
    • File Storage
    • VPN Services
  • Data Export

    • Export Metric API
    • MiroxQL Query Language
    • External Report Generation
    • Grafana
    • Grafana Dashboards
    • API Overview
  • Support

    • Request an Integration
  • mrxnode

    • Overview
    • How-To Guide
    • Container Deployment
    • Command Cheatsheet
    • Troubleshooting
  • Reporting

    • External Report Generator
    • Raw Data Export for Excel
  • Remote Access
  • AI in Mirox
  • History Import
  • English
  • Deutsch
  • Español
  • Français
  • Português
  • Italiano
  • English
  • Platform

    • Philosophy
    • Platform Overview
    • Platform Resources
  • Mirox-Cloud

    • Cloud Overview
    • Connected Microservices
  • Mirox-Agent

    • Agent Overview
    • Deployment Options
    • Data Scraper
    • Digital Twin
  • Technical Details

    • Metric Collection
  • Information

    • Supported Plants
  • Plant Types

    • Solar Plants
    • Wind Plants
    • Battery Storage
    • Alarm System
  • Monitoring & Visualization

    • Real-time Monitoring
    • Digital Twin
    • Component States
    • Inverter Status Codes
    • Inverter Events
    • Loss Detection
    • Power Limits & Curtailment
    • Efficiency Detection
    • KPI Dashboard
  • Data Management

    • Events
    • Tickets
    • Forecasts
    • Reports
    • Metrics
  • Integration & Sharing

    • Cooperations
    • API Tokens
    • VPN
    • Proxy
  • AI

    • AI Assistant & Wizards
    • Agentic Access (MCP)
  • Billing

    • Market & Tariffs
    • Accounting & Billing
  • Collaboration

    • Invitations
  • Security

    • Authentication
    • Account Lockout
    • Permission System
    • Network Segmentation
    • Cooperation Restrictions
    • Access Audit Logging
    • Activity & Audit Trail
  • Nodes

    • mrxnode
  • Application

    • Door Control
    • Generic Relay
  • Edge Cluster

    • Orchestration
  • Getting Started

    • Onboarding
    • Setup
  • Personal

    • Using the VPN
    • Using the Proxy
    • Two-Factor Authentication
    • Sessions
    • API Tokens
    • Notifications
    • Connect Microsoft Teams
  • Per Park

    • Contacts
    • Network Devices
    • Data Loggers
    • Components
    • Direct VPN (per Agent)
    • Data Volume
    • History Import
  • Organization

    • Member Permissions
    • Cooperations
    • File Storage
    • VPN Services
  • Data Export

    • Export Metric API
    • MiroxQL Query Language
    • External Report Generation
    • Grafana
    • Grafana Dashboards
    • API Overview
  • Support

    • Request an Integration
  • mrxnode

    • Overview
    • How-To Guide
    • Container Deployment
    • Command Cheatsheet
    • Troubleshooting
  • Reporting

    • External Report Generator
    • Raw Data Export for Excel
  • Remote Access
  • AI in Mirox
  • History Import
  • English
  • Deutsch
  • Español
  • Français
  • Português
  • Italiano
  • English
  • Platform

    • Platform Philosophy
    • Platform Overview
    • Platform Resources
  • Mirox-Cloud

    • Cloud Overview
    • Connected Microservices
  • Mirox-Agent

    • Mirox-Agent
    • Agent Deployment Options
    • Data Scraper
    • Digital Twin
  • Technical Details

    • Metric Collection

Metric Collection

Mirox gathers performance data from your renewable energy plants into a single, standardized metric vocabulary — the foundation for every monitoring, analysis, reporting, and forecasting capability on the platform. This page is the reference catalog of what is measured and how the measurements are organized.

The full taxonomy spans 458 standardized metric names across twelve families: plant production (powerplant), battery storage, the site's alarm system, weather inputs, weather-derived models, and several operational families that describe the collection itself — network monitoring, the agents, the operator fleet, basic network reachability, and the scraper sources. The tables below document the families you will chart most often; the operational families are summarized in the Network Metrics and Agent Metrics sections.

Data Scraper Architecture

At the core of metric collection is the Data Scraper, the edge component that collects time-series data from your plants. Rather than a single generic protocol engine, it uses a dedicated adapter per device family (data loggers, inverters, meters, battery systems), each built for that vendor's interface. The Data Scraper can operate in two deployment modes:

Cloud-Based Collection

When deployed in the cloud:

  • Connects to solar parks via secure internet connections
  • Aggregates data from multiple sites centrally
  • Handles connection management and retry logic
  • Optimizes bandwidth usage through intelligent polling

Edge-Based Collection

When deployed at the edge (on-site):

  • Directly interfaces with local equipment for minimum latency
  • Operates with local buffering to handle internet outages
  • Performs preliminary data validation and filtering
  • Synchronizes with the cloud when connectivity is available

The dual-mode architecture ensures reliable data collection regardless of site connectivity conditions or system scale.

Collected Metrics

The metric collection system gathers a comprehensive set of measurements that provide complete visibility into renewable energy plant performance. Metrics are grouped along three orthogonal axes:

  • Site Metrics describe the physical site itself — its powerplant, its battery storage, its alarm system, and the weather around it.
  • Network Metrics describe the connectivity between the site and the cloud.
  • Agent Metrics describe the data-collection agents themselves — the scraper sources and the supporting infrastructure services running on the IoT device.

Site Metrics

Site metrics are the raw, time-series measurements collected directly from the equipment installed at a renewable energy site. They are partitioned by domain into the powerplant (PV inverters, grid connection, etc.), the battery energy storage system (BESS), the site's alarm system, and the weather (forecast and modelled).

Powerplant Metrics

Grid Metrics

Metric NameTypeUnit
powerplant_energy_grid_totalEnergyWh
powerplant_energy_grid_out_totalEnergyWh
powerplant_grid_energy_total_reactiveEnergyVArh
powerplant_grid_energy_total_apparentEnergyVAh
powerplant_power_gridPowerW
powerplant_grid_power_reactivePowerVAr
powerplant_grid_power_apparentPowerVA
powerplant_energy_consumed_totalEnergyWh
powerplant_grid_energy_total_reactive_capacitiveEnergyVArh
powerplant_grid_energy_total_reactive_inductiveEnergyVArh
powerplant_grid_powerPowerW
powerplant_grid_energy_totalEnergyWh

powerplant_grid_power is the minute-aligned interpolation of powerplant_power_grid, summed across every meter, and powerplant_grid_energy_total the platform's own boot-aware energy counter integrated from it — the one monotonic site-production series the analytics read (a multi-meter park has several raw powerplant_energy_grid_total counters). Both carry a boot_time label; read the counter with sum(increase(…)).

Naming Convention Note

The raw meter metrics powerplant_energy_grid_* and powerplant_power_grid do not follow the standard naming pattern (powerplant_grid_*) for legacy reasons and keep their names for compatibility. Do not read powerplant_grid_power / powerplant_grid_energy_total as renamed twins of them: those are the platform's minute-aligned calculator series described above — one summed plant series, not one per meter.

PV and Battery Feeder Meters

A park with a battery (or another producer) behind the same grid connection point meters each feeder separately. The grid family above is the connection point, summed park-wide; the PV feeder publishes the powerplant_pv_* family and the battery feeder the powerplant_battery_* family — the same quantities with the same sign convention (production / discharge positive). The two battery counters are named by what the unit did: _energy_discharge_total is what it gave out, _energy_charge_total what it took in. Not to be confused with the battery_* families below, which are the battery controller's own view of its box, storage, module and cell levels.

Metric NameTypeUnit
powerplant_pv_powerPowerW
powerplant_pv_power_apparentPowerVA
powerplant_pv_power_reactiveReactive PowerVAr
powerplant_pv_energy_totalEnergyWh
powerplant_pv_energy_consumed_totalEnergyWh
powerplant_pv_energy_total_reactiveEnergyVArh
powerplant_pv_energy_total_reactive_capacitiveEnergyVArh
powerplant_pv_energy_total_reactive_inductiveEnergyVArh
powerplant_battery_powerPowerW
powerplant_battery_power_apparentPowerVA
powerplant_battery_power_reactiveReactive PowerVAr
powerplant_battery_energy_discharge_totalEnergyWh
powerplant_battery_energy_charge_totalEnergyWh
powerplant_battery_energy_total_reactiveEnergyVArh
powerplant_battery_energy_total_reactive_capacitiveEnergyVArh
powerplant_battery_energy_total_reactive_inductiveEnergyVArh

Plant AC Totals

Plant-level AC totals published by loggers that report the plant as one AC unit (legacy naming, energy/power before ac).

Metric NameTypeUnit
powerplant_energy_ac_totalEnergyWh
powerplant_energy_ac_reactive_totalEnergyVArh
powerplant_power_acPowerW
powerplant_power_ac_reactiveReactive PowerVAr
powerplant_power_ac_apparentPowerVA

Inverter Metrics

Metric NameTypeUnit
powerplant_inverter_energy_ac_totalEnergyWh
powerplant_inverter_energy_dc_totalEnergyWh
powerplant_inverter_energy_consumed_totalEnergyWh
powerplant_inverter_power_acPowerW
powerplant_inverter_power_dcPowerW
powerplant_inverter_power_reactivePowerVAr
powerplant_inverter_power_maxPowerW
powerplant_inverter_setpoint_power_activeSetpointW
powerplant_inverter_setpoint_power_active_percentSetpoint%
powerplant_inverter_setpoint_power_reactiveSetpointVAr
powerplant_inverter_max_powerShutdown%
powerplant_inverter_voltage_acVoltageV
powerplant_inverter_current_acCurrentA
powerplant_inverter_voltage_dcVoltageV
powerplant_inverter_current_dcCurrentA
powerplant_inverter_resistance_isoResistanceOhm
powerplant_inverter_vendor_statusStatuscode
powerplant_inverter_cosPower Factor-
powerplant_inverter_frequencyFrequencyHz
powerplant_inverter_temperatureTemperature°C
powerplant_inverter_current_ac_phaseCurrentA
powerplant_inverter_voltage_ac__phase__L1_L2VoltageV
powerplant_inverter_voltage_ac__phase__L2_L3VoltageV
powerplant_inverter_voltage_ac__phase__L3_L1VoltageV
powerplant_inverter_current_ac__phase__L1CurrentA
powerplant_inverter_current_ac__phase__L2CurrentA
powerplant_inverter_current_ac__phase__L3CurrentA
powerplant_inverter_powerPowerW
powerplant_inverter_energy_totalEnergyWh
powerplant_inverter_data_completeValiditybool
powerplant_inverter_derating_reasonReasoncode
powerplant_inverter_operating_stateStatecode

powerplant_inverter_power / powerplant_inverter_energy_total are the inverter-summed, minute-aligned analogues of the grid pair above (one plant series with a boot_time label, not one per inverter). powerplant_inverter_data_complete is the per-minute verdict on that sum: 1 when every expected inverter contributed, 0 otherwise, absent when no verdict was possible. powerplant_inverter_operating_state is the platform's standard operating state derived from the maker's status code (0 unknown, 1 idle, 2 producing, 3 producing limited, 4 self-derating, 5 stopped by command, 6 stopped by protection, 7 unreachable, 8 fault — numbered so max reads as the worst state), while powerplant_inverter_derating_reason is the maker's own reason code for a derate.

Junction Box (GAK) Metrics

Metric NameTypeUnit
powerplant_gak_voltageVoltageV
powerplant_gak_currentCurrentA
powerplant_gak_powerPowerW
powerplant_gak_energy_totalEnergyWh
powerplant_gak_temperatureTemperature°C

String Metrics

Metric NameTypeUnit
powerplant_string_voltageVoltageV
powerplant_string_currentCurrentA
powerplant_string_powerPowerW
powerplant_string_energy_totalEnergyWh

Wind Turbine Metrics

A wind turbine is a flat plant component like an inverter, identified by the turbine_id label (with turbine_name and turbine_vendor). Values are the 10-minute averages the turbine controller records. powerplant_turbine_blade_pitch_angle carries a blade label (A/B/C) and powerplant_turbine_temperature a sensor label (gearbox, generator, transformer, nacelle, …). The time_* series are seconds per 10-minute interval spent in each state — measured availability, not inferred from gaps. The curtailment and loss series are the measured gap between possible and actual power, attributed to a party by the controller's own status code (grid = grid operator, marketer = plant-controller dispatch, environment = shadow / bat / ice / weather stops, command = manual or service stops, fault = a turbine alarm); their _energy_total counters are lifetime totals the platform maintains.

Metric NameTypeUnit
powerplant_turbine_power_acPowerW
powerplant_turbine_power_ac_possiblePowerW
powerplant_turbine_power_ac_reactiveReactive PowerVAr
powerplant_turbine_energy_ac_totalEnergyWh
powerplant_turbine_energy_consumed_totalEnergyWh
powerplant_turbine_voltage_ac__phase__L1VoltageV
powerplant_turbine_voltage_ac__phase__L2VoltageV
powerplant_turbine_voltage_ac__phase__L3VoltageV
powerplant_turbine_current_ac__phase__L1CurrentA
powerplant_turbine_current_ac__phase__L2CurrentA
powerplant_turbine_current_ac__phase__L3CurrentA
powerplant_turbine_frequencyFrequencyHz
powerplant_turbine_power_factorPower Factor-
powerplant_turbine_wind_speedWind Speedm/s
powerplant_turbine_wind_directionWind Direction°
powerplant_turbine_nacelle_directionDirection°
powerplant_turbine_rotor_speedSpeedrpm
powerplant_turbine_generator_speedSpeedrpm
powerplant_turbine_blade_pitch_angleAngle°
powerplant_turbine_temperatureTemperature°C
powerplant_turbine_temperature_ambientTemperature°C
powerplant_turbine_time_runningDurations
powerplant_turbine_time_okDurations
powerplant_turbine_time_alarmDurations
powerplant_turbine_time_wind_okDurations
powerplant_turbine_time_grid_okDurations
powerplant_turbine_time_serviceDurations
powerplant_turbine_time_derate_remoteDurations
powerplant_turbine_time_derate_internalDurations
powerplant_turbine_vendor_statusStatuscode
powerplant_turbine_pause_reasonReasoncode
powerplant_turbine_operating_stateStatecode
powerplant_turbine_setpoint_power_activeSetpointW
powerplant_turbine_stop_commandCommandbool
powerplant_turbine_curtailment_grid_powerPowerW
powerplant_turbine_curtailment_marketer_powerPowerW
powerplant_turbine_curtailment_environment_powerPowerW
powerplant_turbine_curtailment_command_powerPowerW
powerplant_turbine_loss_fault_powerPowerW
powerplant_turbine_curtailment_grid_energy_totalEnergyWh
powerplant_turbine_curtailment_marketer_energy_totalEnergyWh
powerplant_turbine_curtailment_environment_energy_totalEnergyWh
powerplant_turbine_curtailment_command_energy_totalEnergyWh
powerplant_turbine_loss_fault_energy_totalEnergyWh

Component Info Series

The names an operator gave the components, published as their own series so dashboards can show current names without the telemetry carrying them as labels (a label change would fork a series). One series per component, keyed exactly like its telemetry (inverter_id; gak_id; string_number, with gak_id only behind a combiner box; id for a feed-in meter; turbine_id) plus the name label (inverter_name, gak_name, string_name, meter_name, turbine_name). The value is the emission time; the series is refreshed on every tree sync, so a rename shows up on the next sync. Never chart, sum or alert on these — join them onto the telemetry as shown in Building Your Own Grafana Dashboards.

Metric NameTypeUnit
powerplant_inverter_infoInfo-
powerplant_gak_infoInfo-
powerplant_string_infoInfo-
powerplant_feedin_infoInfo-
powerplant_turbine_infoInfo-

Control Metrics

Metric NameTypeUnit
powerplant_max_power_by_gridShutdown%
powerplant_max_power_by_externalShutdown%
powerplant_max_power_by_external_wShutdownW
powerplant_max_power_by_localShutdown%
powerplant_battery_setpoint_externalControl%
powerplant_battery_setpoint_local_wControlW
powerplant_max_power_import_by_gridLimit%
powerplant_battery_setpoint_external_wSetpointW
powerplant_battery_setpoint_appliedSetpoint%
powerplant_battery_setpoint_applied_wSetpointW
powerplant_battery_max_power_charge_by_gridLimit%
powerplant_battery_max_power_charge_by_grid_wLimitW
powerplant_battery_max_power_discharge_by_gridLimit%
powerplant_battery_max_power_discharge_by_grid_wLimitW
powerplant_control_connection_gridControlbool
powerplant_control_connection_externalControlbool
powerplant_control_interface_readyControlbool
powerplant_power_maxPowerW
powerplant_max_power_sourceControl-

Battery setpoints are signed (positive = discharge, negative = charge): _external / _external_w is the marketer's order, _local_w the operator's manual entry, _applied / _applied_w what the plant controller actually commands the storage with after folding every order and cap into one number. Caps are positive magnitudes: powerplant_max_power_import_by_grid is the grid operator's limit on what the plant may draw (100 = no reduction), and the battery_max_power_charge/discharge_by_grid pairs the grid operator's limits on the storage inside a larger plant, one lane per direction. Each device publishes the lane it states natively (percent or watts); the platform never converts between them.

Irradiance Metrics

Metric NameTypeUnit
powerplant_solar_radiationIrradianceW/m²
powerplant_energy_irradiation_totalEnergyWh
powerplant_solar_ghi_referenceIrradianceW/m²
powerplant_solar_ghi_reference_energyEnergyWh

Environmental Metrics

Metric NameTypeUnit
powerplant_humidityHumidity%
powerplant_ambient_temperatureTemperature°C
powerplant_module_temperatureTemperature°C
powerplant_wind_speedWind Speedm/s
powerplant_wind_directionWind Direction°

Loss Metrics

Metric NameTypeUnit
powerplant_energy_loss_totalEnergyWh
powerplant_power_lossPowerW

Report Metrics

Metric NameTypeUnit
powerplant_power_reportPowerW
powerplant_energy_report_totalEnergyWh
powerplant_energy_radiation_totalEnergyWh

Digital Twin Metrics

Metric NameTypeUnit
powerplant_grid_power_simulationPowerW
powerplant_grid_energy_total_simulationEnergyWh
powerplant_grid_prrcPRRC-
powerplant_grid_sim_errError-
powerplant_inverter_power_ac_simulationPowerW
powerplant_inverter_energy_ac_total_simulationEnergyWh
powerplant_inverter_prrcPRRC-
powerplant_inverter_sim_errError-
powerplant_gak_power_simulationPowerW
powerplant_gak_energy_total_simulationEnergyWh
powerplant_gak_prrcPRRC-
powerplant_gak_sim_errError-
powerplant_string_power_simulationPowerW
powerplant_string_energy_total_simulationEnergyWh
powerplant_string_shadow_factorFactor-
powerplant_string_prrcPRRC-
powerplant_string_sim_errError-
powerplant_grid_power_lossPowerW
powerplant_grid_energy_total_lossEnergyWh
powerplant_inverter_power_lossPowerW
powerplant_inverter_energy_total_lossEnergyWh
powerplant_gak_power_lossPowerW
powerplant_gak_energy_total_lossEnergyWh
powerplant_string_power_lossPowerW
powerplant_string_energy_total_lossEnergyWh

Status Metrics

The platform's daily production verdict per component: 1 when the component produced normally, 0 otherwise, with the detailed state in the status label. Not to be confused with powerplant_inverter_operating_state, which is what the device itself reports per poll.

Metric NameTypeUnit
powerplant_string_statusStatusbool
powerplant_gak_statusStatusbool
powerplant_inverter_statusStatusbool
powerplant_grid_statusStatusbool

Configured Facts

Published once per park-local day by the platform from the plant configuration, never measured: the peak power of each component and of the park, the park's inverter limit and the component counts. Hidden components are excluded and an unconfigured value writes no sample, so "not configured" stays distinguishable from "configured as zero". Read them like any series, e.g. last_over_time(powerplant_inverter_peak_power[1d]).

Metric NameTypeUnit
powerplant_inverter_peak_powerPowerW
powerplant_gak_peak_powerPowerW
powerplant_string_peak_powerPowerW
powerplant_park_peak_powerPowerW
powerplant_park_limit_inverterPowerW
powerplant_park_inverter_countCount-
powerplant_park_string_countCount-

Deprecated Metrics

Kept only for dashboards that already use them — new dashboards should use powerplant_solar_radiation and powerplant_inverter_frequency instead.

Metric NameTypeUnit
powerplant_power_radiationPowerW
powerplant_frequency_gridFrequencyHz

Edge Analytics Metrics

The Data Scraper computes a set of analytics directly at the plant and publishes them as chartable series alongside the raw measurements. These are the series behind the platform's performance-ratio, curtailment and settlement features. Most families exist once per irradiance source — written <source> below, one of pyranometer (on-site sensors), satellite (satellite-derived irradiance for the site) or weather (modelled irradiance from meteorological data) — so each source keeps its own independent series and a drifting input can never silently distort the others.

Irradiance & modelled production

The plane-of-array irradiance each source sees, and the theoretical (uncurtailed) plant output modelled from it. One set per source — 13 series in total.

Metric Name PatternTypeUnitDescription
powerplant_<source>_radiation_powerIrradianceW/m²Plane-of-array irradiance from this source — the sunlight actually hitting the modules.
powerplant_<source>_radiation_energy_totalEnergyWh/m²Cumulative irradiation integrated from the series above.
powerplant_pyranometer_ghi_radiation_powerIrradianceW/m²Cleaned plant-mean horizontal irradiance (GHI) — only present when the plant has horizontal pyranometers.
powerplant_<source>_powerPowerWTheoretical plant output modelled from this source's irradiance and the plant's module orientations.
powerplant_<source>_energy_totalEnergyWhCumulative modelled energy.
Performance ratio

Actual production compared against the modelled production — one independent PR lane per irradiance source, at plant level. See Expected Power and Performance Ratio for how the filters work.

Metric Name PatternTypeUnitDescription
powerplant_<source>_prPerformance Ratio-Measured production over modelled production.
powerplant_<source>_pr_filterFilter-Per-filter breakdown — which quality filter (low light, clipping, curtailment, frost/snow/fog, data gaps) excluded a moment from the clean PR.
powerplant_<source>_pr_validityValiditybool1 when the moment passed every filter and counts toward the trustworthy PR.
Expected power & energy

The PR-calibrated expectation — the modelled production scaled by the plant's real-world efficiency. This is the baseline the component health watchdog holds live production against.

Metric Name PatternTypeUnitDescription
powerplant_<source>_expected_powerPowerWExpected plant output under the current conditions.
powerplant_<source>_expected_energy_totalEnergyWhCumulative expected energy.
Per-component model & performance ratio

The component-level analogue of the plant-wide model: theoretical output and PR of a single inverter, combiner box (GAK) or string, using that component's own orientation and peak power. Emitted for the weather and pyranometer sources; series carry the component's identity labels. <component> is one of inverter, gak, string — 12 series in total, plus the daily completion marker.

Metric Name PatternTypeUnitDescription
powerplant_<source>_<component>_powerPowerWModelled output of one component from this source's irradiance.
powerplant_<source>_<component>_prPerformance Ratio-Per-component performance ratio (clean, filtered values only).
powerplant_simulation_day_completeMarker-Stamped once per source and day when the day's model series are verified complete.
Live & forecast power lanes

Real-time and forward-looking production references.

Metric NameTypeUnitDescription
powerplant_pyranometer_live_powerPowerWReal-time PR-adjusted expected power from on-site sensors.
powerplant_satellite_live_powerPowerWReal-time PR-adjusted expected power from satellite irradiance.
powerplant_pyranometer_live_energy_totalEnergyWhCumulative energy of the pyranometer live lane.
powerplant_satellite_live_energy_totalEnergyWhCumulative energy of the satellite live lane.
powerplant_clearsky_powerPowerWTheoretical ideal-conditions (clear-sky) output — the physical ceiling for a settled day.
powerplant_clearsky_energy_totalEnergyWhCumulative clear-sky energy.
powerplant_weather_forecast_powerPowerWDay-ahead production forecast derived from weather data.
powerplant_weather_forecast_energy_totalEnergyWhCumulative forecast energy.
powerplant_clearsky_forecast_powerPowerWClear-sky forecast — the ideal-conditions ceiling for the forecast horizon.
powerplant_clearsky_forecast_energy_totalEnergyWhCumulative clear-sky forecast energy.
powerplant_weather_forecast_radiation_powerIrradianceW/m²Capacity-weighted plane-of-array irradiance the weather forecast power is computed from — the forecast's own input, as a gauge.
Curtailment

Foregone production attributed to its cause — <party> is grid (a grid-operator setpoint limits production) or marketer (the direct marketer's cap limits production). Each combination is emitted as instantaneous power and cumulative energy, in two variants: the settled series and a live series computed in real time. 24 series in total.

Metric Name PatternTypeUnitDescription
powerplant_<source>curtailment<party>_powerPowerWSettled curtailment loss — production foregone because of the binding curtailer.
powerplant_<source>curtailment<party>_energy_totalEnergyWhCumulative settled curtailment energy.
powerplant_<source>live_curtailment<party>_powerPowerWThe same attribution computed live, at real timestamps.
powerplant_<source>live_curtailment<party>_energy_totalEnergyWhCumulative live curtailment energy.
Settlement families

Series backing curtailment settlement and compensation. The fixed (flat-rate) family implements the source-independent settlement method: the reference is the average measured grid power over the 15 minutes before the curtailment began, frozen for the whole measure — no irradiance input needed. The Mischpreis family prices curtailment energy with the quarter-hourly German market mixed price, giving a revenue value in EUR per 15-minute interval.

Metric Name PatternTypeUnitDescription
powerplant_fixed_curtailment_<party>_powerPowerWFlat-rate curtailment loss against the frozen pre-curtailment reference.
powerplant_fixed_curtailment_<party>_energy_totalEnergyWhCumulative flat-rate curtailment energy.
powerplant_fixed_curtailment_reference_powerPowerWThe last valid uncurtailed reference power the flat-rate method freezes at curtailment onset.
powerplant_mischpreis_<variant>_<party>_revenueRevenueEURMarket value of the curtailed energy per 15-minute interval. <variant> is one of the curtailment lanes above: pyranometer, satellite, weather, their _live counterparts, or fixed — 14 series in total.
Wind settlement families

Onshore wind settles curtailment per turbine and sums to a park lane: the per-turbine points carry a turbine_id label, the park sum carries none — read them apart with turbine_id!~".+", since a bare sum(...) over both double-counts. Three methods share the same maths and labels: nacelle (the turbine's own anemometer feeds the certified power curve), windref (the default — a reference turbine's or a meteorological-service wind speed), and windfixed (flat-rate: the last unrestricted measured power, frozen for the whole measure). The Marktprämie feed-in is the measured grid feed-in with every negative-price quarter zeroed, one copy per negative_price_rule. <party> is grid or marketer.

Metric Name PatternTypeUnitDescription
powerplant_nacelle_curtailment_<party>_powerPowerWCurtailment loss, nacelle-anemometer method.
powerplant_nacelle_curtailment_<party>_energy_totalEnergyWhCumulative curtailment energy, nacelle method.
powerplant_windref_curtailment_<party>_powerPowerWCurtailment loss, reference-wind method (default).
powerplant_windref_curtailment_<party>_energy_totalEnergyWhCumulative curtailment energy, reference-wind method.
powerplant_windfixed_curtailment_<party>_powerPowerWCurtailment loss, flat-rate wind method.
powerplant_windfixed_curtailment_<party>_energy_totalEnergyWhCumulative curtailment energy, flat-rate wind method.
powerplant_marktpraemie_feedin_powerPowerWMarktprämie-eligible feed-in as a quarter-hour mean.
powerplant_marktpraemie_feedin_energy_totalEnergyWhCumulative Marktprämie-eligible feed-in energy, per delivery month (period label).
powerplant_mischpreis_<wind method>_grid_revenueRevenueEURMarket value of the grid-curtailed energy per 15-minute interval; <wind method> is nacelle, windref or windfixed. Park sum only, grid party only.

Battery Metrics

The battery_* family is the vendor-independent metric vocabulary for any Battery Energy Storage System (BESS). It follows a strict component hierarchy where instance identification lives in labels, not in the metric name:

battery_environment_*       ambient sensors around the BESS
battery_pcs_*               grid-tied Power Conversion System in front of the box
battery_box_*               a BESS box / container — the DC battery
└── battery_storage_*       a cabinet / rack inside the box
    └── battery_module_*    a module inside the cabinet
        └── battery_cell_*  an individual cell inside the module

The battery hierarchy (box → storage → module → cell) describes the DC battery itself. The PCS (battery_pcs_*) is the grid-tied AC↔DC converter that sits in front of the box — it owns the AC side of the BESS plus its own converter telemetry, and is identified per device by the pcs label. Modelling it as its own component lets the battery and its converter be collected as two independent devices for the same container without their series colliding.

This is a collection-only spec — adapters publish raw values exactly as the vendor exposes them, with no aggregations, derivations, _min / _max / _mean modifiers, or status / health flags. All interpretation, roll-ups and alarming are downstream concerns of the digital twin.

Two distinct kinds of "voltage"

The spec deliberately separates two physically different quantities that both happen to be measured in volts:

  • Cell voltage (*_cell_voltage) — the chemical terminal voltage produced by the cells. At the cell level it is the single-cell voltage (~3.2 V for an LFP cell). At higher levels it is the sum of all cell voltages on the same series string. It changes only with state-of-charge.
  • Interface voltage (*_voltage_dc, _dc_in, _dc_out) — what is being fed in or pulled out of the battery at its electrical terminals. Differs from the cell voltage by I·R during charge / discharge.

The two are physically the same number when the battery is at rest; they diverge by the IR drop the moment any current flows.

Direction-aware DC variants

For each DC quantity (voltage_dc, current_dc, power_dc) at the box, storage and module levels there are three variants: *_dc (signed, single register from the vendor), *_dc_in (always positive — value while charging) and *_dc_out (always positive — value while discharging). Adapters publish whichever variant(s) the vendor actually exposes.

Environment

Ambient sensors around the BESS — distinguished by the sensor label.

Metric NameTypeUnit
battery_environment_temperatureTemperature°C
battery_environment_humidityHumidity%

PCS Level

The grid-tied Power Conversion System — the AC↔DC converter in front of the battery box. It owns the AC side of the BESS (which the DC battery never measures), plus its own DC-bus reading, the battery state it relays, and converter-side telemetry. A PCS is a distinct device, identified by the pcs label; phase distinguishes per-phase AC quantities. Sign convention: positive = charging (grid → battery); direction is resolved from the directional energy counters, never from a status bit.

DC bus

The converter's own view of the DC link — the battery's authoritative DC state remains at box level.

Metric NameTypeUnitDescription
battery_pcs_voltage_dcVoltageVDC-bus voltage measured at the converter.
battery_pcs_current_dcCurrentADC current. Signed (+ = charging).
battery_pcs_power_dcPowerWDC power. Signed.
AC side
Metric NameTypeUnitDescription
battery_pcs_voltage_acVoltageVRMS line-to-line AC voltage.
battery_pcs_voltage_ac__phase__L1_L2VoltageVPer-phase (line-to-line) AC voltage.
battery_pcs_voltage_ac__phase__L2_L3VoltageVPer-phase (line-to-line) AC voltage.
battery_pcs_voltage_ac__phase__L3_L1VoltageVPer-phase (line-to-line) AC voltage.
battery_pcs_current_acCurrentARMS AC current.
battery_pcs_current_ac__phase__L1CurrentAPer-phase AC current.
battery_pcs_current_ac__phase__L2CurrentAPer-phase AC current.
battery_pcs_current_ac__phase__L3CurrentAPer-phase AC current.
battery_pcs_frequencyFrequencyHzAC frequency.
battery_pcs_power_acPowerWActive power, AC side. Signed.
battery_pcs_power_ac_inPowerWActive power into the battery (charging from grid). Always positive.
battery_pcs_power_ac_outPowerWActive power out of the battery (discharging to grid). Always positive.
battery_pcs_power_ac_reactiveReactive PowerVArReactive power, AC side. Signed.
battery_pcs_power_factorPower Factor-Power factor (−1…1).
Setpoints

Read-only view of the active dispatch targets.

Metric NameTypeUnitDescription
battery_pcs_power_ac_setpointSetpointWActive-power setpoint. Signed.
battery_pcs_power_ac_setpoint_reactiveSetpointVArReactive-power setpoint. Signed.
battery_pcs_power_factor_setpointSetpoint-Power-factor setpoint.
battery_pcs_vendor_statusStatuscodeThe converter's own operating state in the maker's vocabulary (battery_vendor label selects the decode table). A gap means "not read"; never sum or average it.
Energy counters

Published exactly as the device's own lifetime counters report them — separate directional counters, so no sign decision is needed.

Metric NameTypeUnitDescription
battery_pcs_energy_ac_in_totalEnergyWhLifetime AC energy charged into the battery.
battery_pcs_energy_ac_out_totalEnergyWhLifetime AC energy discharged from the battery.
Relayed battery state & converter limits

The PCS relays a battery-management summary and reports its own dynamic operating limits. Where the battery management system is collected directly, battery_box_soc is authoritative and the relayed value is redundant; on a PCS-only site it is the only state of charge available.

Metric NameTypeUnitDescription
battery_pcs_socState of Charge%State of charge relayed from the battery management system (0–100).
battery_pcs_current_limit_chargeLimitAMaximum allowed charge current (dynamic).
battery_pcs_current_limit_dischargeLimitAMaximum allowed discharge current.
battery_pcs_power_limit_chargeLimitWMaximum allowed charge power.
battery_pcs_power_limit_dischargeLimitWMaximum allowed discharge power.
battery_pcs_temperatureTemperature°CConverter temperature — the converter's thermal state, not a battery cell temperature.

Box Level

The top of the battery side — a BESS box / container. Required label: box. Optional labels: inverter, phase. AC-side metrics are only present when the AC↔DC conversion physically sits at box level.

AC-side energy flow
Metric NameTypeUnit
battery_box_voltage_acVoltageV
battery_box_voltage_ac__phase__L1_L2VoltageV
battery_box_voltage_ac__phase__L2_L3VoltageV
battery_box_voltage_ac__phase__L3_L1VoltageV
battery_box_current_acCurrentA
battery_box_current_ac__phase__L1CurrentA
battery_box_current_ac__phase__L2CurrentA
battery_box_current_ac__phase__L3CurrentA
battery_box_frequencyFrequencyHz
battery_box_power_acPowerW
battery_box_power_ac_inPowerW
battery_box_power_ac_outPowerW
battery_box_power_ac_reactiveReactive PowerVAr
battery_box_power_ac_setpointSetpointW
battery_box_power_ac_setpoint_reactiveSetpointVAr
battery_box_energy_ac_in_totalEnergyWh
battery_box_energy_ac_out_totalEnergyWh
DC-side interface
Metric NameTypeUnit
battery_box_voltage_dcVoltageV
battery_box_voltage_dc_inVoltageV
battery_box_voltage_dc_outVoltageV
battery_box_current_dcCurrentA
battery_box_current_dc_inCurrentA
battery_box_current_dc_outCurrentA
battery_box_power_dcPowerW
battery_box_power_dc_inPowerW
battery_box_power_dc_outPowerW
battery_box_energy_dc_in_totalEnergyWh
battery_box_energy_dc_out_totalEnergyWh
Chemistry & state
Metric NameTypeUnitDescription
battery_box_cell_voltageVoltage (sum)VSum of cell voltages on the box DC bus.
battery_box_socState of Charge%Box-wide state of charge (0–100).
battery_box_sohState of Health%Box-wide state of health (0–100).
battery_box_temperatureTemperature°CBox-level representative temperature.
battery_box_energy_nominalEnergyWhCell-installed nameplate energy at beginning-of-life. Drifts downward with SoH.
battery_box_energy_usableEnergyWhMaximum usable energy — the static BMS-allowed capacity that SoC = 100 % corresponds to (typically 85–95 % of _nominal).
battery_box_energy_chargedEnergyWhEnergy currently stored in the box, derived from soc / 100 × energy_usable.
battery_box_cell_voltage_minVoltageVLowest single-cell voltage in the box, as the BMS reports it.
battery_box_cell_voltage_maxVoltageVHighest single-cell voltage in the box.
battery_box_cell_temperature_minTemperature°CLowest cell temperature in the box.
battery_box_cell_temperature_maxTemperature°CHighest cell temperature in the box.
battery_box_power_limit_chargeLimitWWhat the BMS currently allows the box to take in. Positive magnitude; a derated box sits below its nameplate.
battery_box_power_limit_dischargeLimitWWhat the BMS currently allows the box to give out.
battery_box_power_auxiliaryPowerWWhat the box's own systems draw to keep running (climate control, electronics, pumps). Positive consumption, never folded into the charge/discharge lanes.
battery_box_energy_auxiliary_totalEnergyWhLifetime auxiliary consumption counter.
battery_box_vendor_statusStatuscodeThe container's own state word in the maker's vocabulary (battery_vendor label). A gap means "not read"; never sum or average it.

Storage Level

A cabinet / rack inside a box. Required labels: box, storage. AC metrics are rare at this level — they are present only when the AC↔DC conversion physically sits at storage level.

AC-side energy flow

The same AC vocabulary as the box level, without per-phase or setpoint variants.

Metric NameTypeUnit
battery_storage_voltage_acVoltageV
battery_storage_current_acCurrentA
battery_storage_frequencyFrequencyHz
battery_storage_power_acPowerW
battery_storage_power_ac_inPowerW
battery_storage_power_ac_outPowerW
battery_storage_power_ac_reactiveReactive PowerVAr
battery_storage_energy_ac_in_totalEnergyWh
battery_storage_energy_ac_out_totalEnergyWh
DC-side interface
Metric NameTypeUnit
battery_storage_voltage_dcVoltageV
battery_storage_voltage_dc_inVoltageV
battery_storage_voltage_dc_outVoltageV
battery_storage_current_dcCurrentA
battery_storage_current_dc_inCurrentA
battery_storage_current_dc_outCurrentA
battery_storage_power_dcPowerW
battery_storage_power_dc_inPowerW
battery_storage_power_dc_outPowerW
battery_storage_energy_dc_in_totalEnergyWh
battery_storage_energy_dc_out_totalEnergyWh
Chemistry & state
Metric NameTypeUnitDescription
battery_storage_cell_voltageVoltage (sum)VSum of all cell voltages in the storage's series string.
battery_storage_socState of Charge%State of charge of this storage (0–100).
battery_storage_sohState of Health%State of health of this storage (0–100).
battery_storage_temperatureTemperature°CStorage-level representative temperature.
battery_storage_energy_nominalEnergyWhCell-installed nameplate energy of this storage (beginning-of-life).
battery_storage_energy_usableEnergyWhMaximum usable energy — the static BMS-allowed capacity that SoC = 100 % corresponds to (typically 85–95 % of _nominal).
battery_storage_energy_chargedEnergyWhEnergy currently stored, derived from soc / 100 × energy_usable.
battery_storage_comm_qualityQuality%Communication-link quality at storage level (0–100).
battery_storage_power_limit_chargeLimitWPer-storage charge ceiling the BMS currently allows. Positive magnitude.
battery_storage_power_limit_dischargeLimitWPer-storage discharge ceiling the BMS currently allows.
battery_storage_cycle_countCount-Full cycle equivalents as the BMS counts them since commissioning.
battery_storage_vendor_statusStatuscodeThe rack's own operating state in the maker's vocabulary (battery_vendor label). Never sum or average it.

Module Level

A module inside a cabinet — the smallest unit that has its own BMS chip. Required labels: box, storage, module. AC metrics are practically never present here.

DC-side interface
Metric NameTypeUnit
battery_module_voltage_dcVoltageV
battery_module_voltage_dc_inVoltageV
battery_module_voltage_dc_outVoltageV
battery_module_current_dcCurrentA
battery_module_current_dc_inCurrentA
battery_module_current_dc_outCurrentA
battery_module_power_dcPowerW
battery_module_power_dc_inPowerW
battery_module_power_dc_outPowerW
battery_module_energy_dc_in_totalEnergyWh
battery_module_energy_dc_out_totalEnergyWh
Chemistry & state
Metric NameTypeUnitDescription
battery_module_cell_voltageVoltage (sum)VSum of cell voltages in this module's series string.
battery_module_socState of Charge%Module state of charge (0–100).
battery_module_sohState of Health%Module state of health (0–100).
battery_module_temperatureTemperature°CRepresentative module temperature.
battery_module_energy_nominalEnergyWhMaximum storable energy of this module.
battery_module_energy_usableEnergyWhMaximum usable energy — the static BMS-allowed capacity that SoC = 100 % corresponds to.
battery_module_energy_chargedEnergyWhEnergy currently stored, derived from soc / 100 × energy_usable.
battery_module_comm_qualityQuality%BMS comms quality between this module and its storage controller (0–100).

Cell Level

The smallest physical unit. Cells are series-connected within a module and share the module current, so per-cell current and power are not meaningful. Required labels: box, storage, module, cell.

Metric NameTypeUnit
battery_cell_voltageVoltageV
battery_cell_temperatureTemperature°C
battery_cell_socState of Charge%
battery_cell_sohState of Health%

Weather Forecast Metrics

Daily Weather Metrics

Metric NameTypeUnit
weather_forecast_daily_shortwave_radiation_sumRadiationWh/m²
weather_forecast_daily_precipitation_sumPrecipitationmm
weather_forecast_daily_rain_sumRainmm
weather_forecast_daily_showers_sumShowersmm
weather_forecast_daily_snowfall_sumSnowfallcm
weather_forecast_daily_precipitation_hoursDurationh
weather_forecast_daily_weather_codeCode-
weather_forecast_daily_temperature_2m_maxTemperature°C
weather_forecast_daily_wind_speed_10m_maxWind Speedm/s
weather_forecast_daily_wind_gusts_10m_maxWind Gustsm/s
weather_forecast_daily_wind_direction_10m_dominantWind Direction°

15-Minute Weather Metrics

Metric NameTypeUnit
weather_forecast_minutely_15_terrestrial_radiationRadiationW/m²
weather_forecast_minutely_15_shortwave_radiationRadiationW/m²
weather_forecast_minutely_15_diffuse_radiationRadiationW/m²
weather_forecast_minutely_15_direct_normal_irradianceIrradianceW/m²
weather_forecast_minutely_15_lightning_potentialPotential-
weather_forecast_minutely_15_precipitationPrecipitationmm
weather_forecast_minutely_15_snowfallSnowfallcm
weather_forecast_minutely_15_rainRainmm
weather_forecast_minutely_15_weather_codeCode-
weather_forecast_minutely_15_relative_humidity_2mHumidity%
weather_forecast_minutely_15_dew_point_2mTemperature°C
weather_forecast_minutely_15_apparent_temperatureTemperature°C
weather_forecast_minutely_15_cloud_coverCloud Cover%
weather_forecast_minutely_15_temperature_2mTemperature°C
weather_forecast_minutely_15_temperature_80mTemperature°C
weather_forecast_minutely_15_temperature_120mTemperature°C
weather_forecast_minutely_15_temperature_180mTemperature°C
weather_forecast_minutely_15_wind_speed_10mWind Speedm/s
weather_forecast_minutely_15_wind_speed_80mWind Speedm/s
weather_forecast_minutely_15_wind_speed_120mWind Speedm/s
weather_forecast_minutely_15_wind_speed_180mWind Speedm/s
weather_forecast_minutely_15_wind_direction_10mWind Direction°
weather_forecast_minutely_15_wind_direction_80mWind Direction°
weather_forecast_minutely_15_wind_direction_120mWind Direction°
weather_forecast_minutely_15_wind_direction_180mWind Direction°
weather_forecast_minutely_15_wind_gusts_10mWind Gustsm/s
weather_forecast_minutely_15_snow_depthSnow Depthm
weather_forecast_minutely_15_visibilityVisibilitym

Weather Calculation Metrics

Metric NameTypeUnit
weather_forecast_minutely_15_gtiIrradianceW/m²
weather_forecast_minutely_15_gti_directIrradianceW/m²
weather_forecast_minutely_15_gti_clearskyIrradianceW/m²
weather_forecast_minutely_15_ghi_directIrradianceW/m²
weather_forecast_minutely_15_ghi_direct_clearskyIrradianceW/m²
weather_forecast_minutely_15_gti_direct_clearskyIrradianceW/m²
weather_forecast_minutely_15_gti_energyEnergyWh

Weather Model Metrics

Weather Model Power Metrics

Metric NameTypeUnit
powerplant_power_model_dcPowerW
powerplant_energy_model_dc_totalEnergyWh
powerplant_power_model_acPowerW
powerplant_energy_model_ac_totalEnergyWh
powerplant_power_model_gridPowerW
powerplant_energy_model_grid_totalEnergyWh
powerplant_energy_model_grid_in_totalEnergyWh
powerplant_energy_model_grid_out_totalEnergyWh

Clearsky Model Power Metrics

Metric NameTypeUnit
powerplant_power_clearsky_dcPowerW
powerplant_energy_clearsky_dc_totalEnergyWh
powerplant_power_clearsky_acPowerW
powerplant_energy_clearsky_ac_totalEnergyWh
powerplant_power_clearsky_gridPowerW
powerplant_energy_clearsky_grid_totalEnergyWh
powerplant_energy_clearsky_grid_in_totalEnergyWh
powerplant_energy_clearsky_grid_out_totalEnergyWh

Alarm System Metrics

The alarm_* family is the site's own alarm signalling. Nothing in it is measured: every value is the position of a relay contact read through a controller's digital inputs — an intrusion alarm panel's own relay outputs, plus the supervision contacts of the communication cabinet the panel is wired through.

Every series is a 0/1 gauge normalized so that 1 always means "the condition is present" (door open, alarm raised, UPS on battery, breaker tripped) and 0 means normal, whatever polarity the contact has on the wire. Absence is never a zero: a signal the device did not serve this cycle is not published at all, and a contact the operator has declared unwired is withheld rather than left standing in alarm. Instance identification lives in the alarm label — the alarm system the signals belong to — never in the metric name.

Every signal except alarm_door_open also opens a park event of the same name while it is asserted; an open door is routine and stays a series only. See Alarm System for the page these series feed.

Metric NameTypeUnitDescription
alarm_door_openState0/1The panel reports the gate or door as open. Series only — never an event.
alarm_triggeredState0/1The panel has raised an alarm.
alarm_faultState0/1The panel reports a fault of its own.
alarm_cabinet_ups_alarmState0/1The communication cabinet's UPS reports a fault.
alarm_cabinet_ups_on_batteryState0/1Mains supply lost — the UPS is carrying the cabinet.
alarm_cabinet_heating_breaker_trippedState0/1The cabinet heating's circuit breaker has tripped.
alarm_cabinet_main_switch_offState0/1The cabinet's main switch is off.

Network Metrics

Network metrics describe the connectivity between the IoT device and the cloud, independent of any specific scraper or service.

Metric NameTypeUnit
network_ping_latency_msLatencyms
network_ping_packet_loss_percentPacket Loss%
network_ping_successSuccessbool
network_connection_statusStatus-

Network Monitoring Metrics

The agent's own active checks (ICMP, TCP, HTTP) against the devices on the plant network. Per-device series carry device_ip, device_name, device_type and device_vendor; TCP checks add the port, HTTP checks the endpoint. netmon_park_network_up is one roll-up series per plant.

Metric NameTypeUnit
netmon_park_network_upStatusbool
netmon_device_upStatusbool
netmon_device_ping_latency_msLatencyms
netmon_device_ping_packet_loss_percentPacket Loss%
netmon_tcp_port_openStatusbool
netmon_tcp_port_response_msResponse Timems
netmon_http_status_codeHTTP Statuscode
netmon_http_response_msResponse Timems
netmon_http_upStatusbool
netmon_discovered_devices_totalCount-
netmon_snmp_devices_totalCount-
netmon_discovery_duration_secondsDurations

SNMP Metrics

Read from SNMP-capable devices on the plant network (switches, routers, gateways). Device series carry the same device labels as above; interface series add if_index, if_name and if_type.

Metric NameTypeUnit
snmp_device_uptime_secondsDurations
snmp_device_availableAvailabilitybool
snmp_device_cpu_usage_percentUsage%
snmp_device_memory_usage_percentUsage%
snmp_device_memory_used_bytesMemorybytes
snmp_device_memory_total_bytesMemorybytes
snmp_device_temperature_celsiusTemperature°C
snmp_interface_statusStatuscode
snmp_interface_admin_statusStatuscode
snmp_interface_speed_bpsSpeedbit/s
snmp_interface_in_bytes_totalTrafficbytes
snmp_interface_out_bytes_totalTrafficbytes
snmp_interface_in_errors_totalErrors-
snmp_interface_out_errors_totalErrors-
snmp_interface_in_discards_totalDiscards-
snmp_interface_out_discards_totalDiscards-

Agent Metrics

Agent metrics describe the data-collection agents themselves — both the per-source state of individual scraper adapters, and the overall health and traffic of the agents and supporting connectivity. These metrics let your dashboards correlate data gaps with adapter or connectivity failures rather than with the equipment under measurement.

Scraper Source Metrics

The Data Scraper emits one set of these metrics per active adapter source. Series are distinguished by the source, source_num and name labels, so that data gaps can be correlated directly with adapter health rather than with the equipment being measured.

Metric NameTypeUnitLabels
scraper_health_stateStatecodesource, source_num, name
scraper_cycles_totalCounter-source, source_num, name
scraper_errors_totalCounter-source, source_num, name
scraper_last_success_timestampTimestampssource, source_num, name
  • scraper_health_state: Current adapter state, encoded as an integer: 0 = initializing, 1 = healthy, 2 = unhealthy, 3 = reconnecting, 4 = frozen (the logger is returning stale/stuck values), 5 = paused.
  • scraper_cycles_total: Number of fetch cycles the adapter has executed since process start (resets on restart).
  • scraper_errors_total: Number of fetch cycles that ended in an exception since process start (resets on restart).
  • scraper_last_success_timestamp: Unix epoch seconds of the last successful fetch cycle. Only emitted after the first success.

Agent Service Metrics

These metrics track the health and network usage of the individual agent services (Data Scraper, Digital Twin, and supporting services) running on a device, so you can see whether a data gap is the equipment or the agent itself.

Network Traffic

Metric NameTypeUnit
agent_network_rx_bytesCounterbytes
agent_network_tx_bytesCounterbytes

Agent Health

Metric NameTypeUnit
agent_healthStatusbool
agent_uptime_secondsDurations
agent_boottimeTimestamps

Organization VPN

Connectivity and traffic for the organization-wide VPN link between the plant and the cloud.

Metric NameTypeUnit
agent_organization_vpn_connectedStatusbool
agent_organization_vpn_rx_bytesCounterbytes
agent_organization_vpn_tx_bytesCounterbytes

Direct VPN

Connectivity and traffic for each direct (per-plant) VPN tunnel. Series carry a vpn_name label so each tunnel is identified individually.

Metric NameTypeUnit
agent_direct_vpn_connectedStatusbool
agent_direct_vpn_rx_bytesCounterbytes
agent_direct_vpn_tx_bytesCounterbytes

SaaS VPN

Connectivity and traffic for the built-in agent-to-cloud tunnel that carries the platform's remote-access traffic to the plant.

Metric NameTypeUnit
agent_saas_vpn_connectedStatusbool
agent_saas_vpn_rx_bytesCounterbytes
agent_saas_vpn_tx_bytesCounterbytes

VPN Server

When the agent itself acts as a VPN server for incoming connections, these metrics report the server state and every connecting peer. Per-peer series carry the interface, peer_uid and peer_kind labels, so dashboards can tell user connections and site links apart.

Metric NameTypeUnit
agent_vpn_server_runningStatusbool
agent_vpn_server_peer_connectedStatusbool
agent_vpn_server_peer_rx_bytesCounterbytes
agent_vpn_server_peer_tx_bytesCounterbytes
agent_vpn_server_peer_last_handshakeTimestamps
  • agent_vpn_server_peer_last_handshake: Unix epoch seconds of the peer's last completed handshake; 0 means the peer never completed one. For OpenVPN peers, which expose no per-handshake timestamp, the connected-since time is published under the same metric so one query covers both protocols.

Operator Metrics

The operator fleet pushes infrastructure metrics for VPN tunnel monitoring and operator health, letting you see the state of the cloud-side connectivity that links your plants to the platform.

VPN Tunnel Metrics

Metric NameTypeUnitLabels
operator_vpn_connectedStatusboolvpn_service, organization, cluster, region
operator_vpn_rx_bytesTrafficbytesvpn_service, organization, cluster, region
operator_vpn_tx_bytesTrafficbytesvpn_service, organization, cluster, region
  • operator_vpn_connected: 1 if the VPN tunnel has a recent handshake (within the last 3 minutes), 0 otherwise
  • operator_vpn_rx_bytes: Total bytes received through the VPN tunnel (counter)
  • operator_vpn_tx_bytes: Total bytes transmitted through the VPN tunnel (counter)

Operator Health Metrics

Metric NameTypeUnitLabels
operator_healthStatusbooloperator, cluster, region
operator_uptime_secondsDurationsoperator, cluster, region
operator_cloud_response_age_secondsDurationsoperator, cluster, region
operator_cloud_liveness_age_secondsDurationsoperator, cluster, region
  • operator_health: 1 if the operator has an active cloud connection, 0 if in timeout state
  • operator_uptime_seconds: Seconds since the operator process started
  • operator_cloud_response_age_seconds: Seconds since the last successful cloud API response
  • operator_cloud_liveness_age_seconds: Seconds since the cloud process was last confirmed alive (health endpoint) — stays fresh even while the main API returns errors, so it is the failsafe gate

Collection Process

The data collection process follows a structured workflow:

  1. Discovery: The system identifies all components to monitor based on park configuration
  2. Scheduling: Collection schedules are optimized based on metric importance and variability
  3. Retrieval: The data scraper connects to devices and collects raw measurements
  4. Validation: Collected data is validated for accuracy and range compliance
  5. Enrichment: Contextual information is added (timestamps, component identifiers, etc.)
  6. Transmission: Data is securely transmitted to the Time-Series Database
  7. Verification: The system confirms successful storage and availability

Integration Points

The metric collection system integrates with other platform components:

  • Monitoring Dashboard: Provides real-time data visualization
  • Event Detection: Supplies data for anomaly and issue identification
  • Reporting Engine: Furnishes measurements for performance reports
  • Analytics System: Feeds data into advanced performance calculations
  • Forecasting Module: Provides historical data for prediction models

Data Security

All collected metrics are protected through multiple security measures:

  • Encryption: Data is encrypted both in transit and at rest
  • Access Control: Metrics are subject to the same permission model as other resources
  • Auditing: All access to metric data is logged for compliance purposes
  • Anonymization: Aggregated data used for benchmarking is anonymized

Extensibility

The metric collection system is designed for extensibility:

  • New Device Families: We build a dedicated adapter for each device family on request — if your plant uses a logger, inverter, meter, or battery system we do not yet support, it can be added without a generic catch-all.
  • Custom Metrics: Support for site-specific or equipment-specific measurements.
  • External Data Sources: Weather and reference-irradiance series are pulled in alongside your plant data to power analysis and forecasting.

Related Features

  • Data Scraper — the edge agent that collects these metrics with a dedicated adapter per device family
  • Digital Twin — turns the raw metrics into simulated production, performance ratio, and loss findings
  • Metrics Export API — query and download these metrics for your own use
  • MiroxQL — the query format for programmatic and raw access to your collected metrics
  • Real-Time Monitoring — live dashboards built on the collected metrics
© 2026 Mirox Verwaltungs GmbH. All rights reserved. | Privacy Policy