# RecurringIncidents **Repository Path**: SRIM/RecurringIncidents ## Basic Information - **Project Name**: RecurringIncidents - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-22 - **Last Updated**: 2026-05-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Recurring Incidents (Zabbix Dashboard Widget) This repository contains a Zabbix frontend module that adds a **Recurring Incidents** dashboard widget. The widget helps continuous improvement teams identify recurring problems, track key reliability signals (e.g., MTTR/MTBF), and spot trends over time. image image ## Features - **Recurring detection**: counts occurrences per trigger within the selected time period. - **Accurate recurrence counts**: recurrence is computed using aggregated event counts (not affected by UI paging/search limits). - **Trend**: compares current period vs previous period of the same duration. - **MTTR / MTBF**: calculated from event recovery information within the selected period. - **MTBF “time remaining” hint**: indicates time remaining to reach MTBF (or how much it is exceeded) in the row “Info”. - **Show modes** (like the native *Problems* widget): - Recent problems - Problems - History - **Timeline rendering**: optional timeline view when sorting by time. - **SLI (auto-detected)**: - Detects the impacted **Service** by matching event tags against Service *problem tags*. - Detects the corresponding **SLA** for that service automatically. - Displays **SLI** in the table. - Clicking SLI shows a tooltip with the full Service tree/path and quick links. ## Compatibility - Developed and tested on **Zabbix 7.0.15**. - Other Zabbix versions may behave differently and you may encounter errors. If that happens, please check your Zabbix frontend/web server/PHP logs and open an **issue** with the details so we can keep improving and updating the module. ## Installation Copy (or clone) this module into your Zabbix frontend modules directory: ```bash sudo mkdir -p /usr/share/zabbix/modules sudo cp -a RecurringIncidents /usr/share/zabbix/modules/RecurringIncidents ``` Then reload the Zabbix frontend (or restart your web server/PHP-FPM if needed). ## Usage 1. Open a dashboard in Zabbix. 2. Click **Edit dashboard**. 3. **Add widget** → select **Recurring Incidents**. 4. Configure the widget fields (see below). ## Widget configuration - **Show**: Recent problems / Problems / History - **Host groups / Hosts / Exclude host groups**: scope the dataset - **Problem**: text filter - **Severity**: severity filter - **Problem tags**: tag filter - **Show tags / Tag name / Tag display priority**: tag rendering options - **Minimum occurrences**: minimum number of occurrences required to appear in the list - **Time period**: the analysis window used for recurrence, trend, MTTR/MTBF and SLI - **Sort entries by**: time, severity, name, host, or recurrences - **Show timeline**: timeline rendering when sorting by time - **Show lines**: number of rows to display ## How recurrence is computed Recurrence is calculated as the **count of trigger problem events** within the selected **Time period**, grouped by trigger. The widget uses aggregated counts to avoid undercounting due to frontend paging or search limits. ## How Trend is computed Trend compares the **current Time period** against the **previous period of the same duration**: - `trend = occurrences(current_period) - occurrences(previous_period)` Positive values indicate increased recurrence; negative values indicate improvement. ## How MTTR / MTBF are computed - **MTTR**: average of `(recovery_time - problem_time)` for events that have a recovery event within the selected period. - **MTBF**: average time between consecutive occurrences within the selected period. If there are no resolved occurrences in the selected period, MTTR is shown as `—`. ## How SLI is auto-detected If your Zabbix Services/SLA are configured: 1. The widget matches the event **tags** against Service **problem tags** to find a corresponding Service. 2. It discovers the SLA associated with that Service. 3. It queries SLA SLI for the selected Time period and displays it. Clicking the **SLI** cell opens a tooltip showing: - Service name and link to the Service tree page - SLA/SLO - Service path (root → … → service) - Service tree (limited for performance if very large) ## Performance notes - Large environments with many triggers/events/services may require tuning Zabbix frontend limits and PHP resources. - Service tree tooltips limit the number of loaded nodes to prevent heavy API calls. ## Development notes Main module files: - `manifest.json` - `Widget.php` - `actions/WidgetView.php` - `includes/WidgetForm.php` - `includes/WidgetRecurringIncidents.php` - `views/widget.edit.php` - `views/widget.view.php` - `assets/js/class.widget.js` ## Credits This module was developed by **Monzphere**. Special thanks to our partners: **Lunio**, **IOS**. Website: `https://monzphere.com` ## License This module is intended to be used with Zabbix. Ensure your distribution and modifications comply with the licensing terms applicable to your Zabbix frontend installation and this repository.