Drupal is a registered trademark of Dries Buytaert
drupal 10.6.12 Update released for Drupal core (10.6.12)! drupal 11.3.13 Update released for Drupal core (11.3.13)! drupal 10.6.11 Update released for Drupal core (10.6.11)! drupal 11.3.12 Update released for Drupal core (11.3.12)! drupal 11.2.14 Update released for Drupal core (11.2.14)! drupal 10.5.12 Update released for Drupal core (10.5.12)! cms 2.1.3 Update released for Drupal core (2.1.3)! drupal 10.5.11 Update released for Drupal core (10.5.11)! drupal 11.3.11 Update released for Drupal core (11.3.11)! drupal 11.2.13 Update released for Drupal core (11.2.13)! drupal 10.6.10 Update released for Drupal core (10.6.10)! cms 2.1.2 Update released for Drupal core (2.1.2)! drupal 11.1.10 Update released for Drupal core (11.1.10)! drupal 10.5.10 Update released for Drupal core (10.5.10)! drupal 10.4.10 Update released for Drupal core (10.4.10)! drupal 11.2.12 Update released for Drupal core (11.2.12)! drupal 11.3.10 Update released for Drupal core (11.3.10)! drupal 10.6.9 Update released for Drupal core (10.6.9)! drupal 10.6.8 Update released for Drupal core (10.6.8)! drupal 11.3.9 Update released for Drupal core (11.3.9)!

Modulo per il monitoraggio pro attivo della stabilità e delle performance delle API in un ecosistema Drupal.

📌 Panoramica

Il sistema permette di monitorare endpoint remoti (Sito A) da un'istanza di controllo (Sito B).
Non si limita a un semplice controllo dello status HTTP, ma permette di validare la logica della risposta e tracciare la latenza temporale.

Caratteristiche Principali

  • Guzzle Async Esecuzione parallela dei check per massime prestazioni.
  • Plugin System Ogni API da monitorare è un Plugin dedicato.
  • Dashboard Visuale: Grafici storici (Chart.js) per l'analisi dei tempi di risposta.
  • Hook System: Estensibile tramite API per logiche di business custom.
  • Swagger: Per ogni endpoint è possibile visionare lo swagger con dati recuperati dalle request eseguite.
  • Analisi Euristica AI: Se abilitato su ogni endpoint analizzato sarà abilitata l'analisi Euristica AI, in caso di dati sensibili nella response sarete notificati via email.
  • Chat AI: Per ogni endpoint avrei l'assistente AI a cui potrai richiedere un test di esecuzione, uno snippet per l'integrazione nel tuo sistema

---

🛠️ Installazione e Configurazione

1. Requisiti

  • PHP >= 8.3
  • Drupal >= 11.1
  • Estensione cURL abilitata

2. Configurazione Sito B (Monitor)

1. Abilita il modulo: `drush en api_monitor_client`.
2. Naviga in `/admin/config/development/api-monitoring/settings`.
3. Inserisci l'**Endpoint Base** del Sito A.
---

🔔 Sistema di Notifiche (Alerting)

Il modulo include un sistema di monitoraggio attivo che non si limita a registrare i dati, ma invia avvisi immediati in caso di anomalie.

Configurazione Alert

All'interno della pagina di impostazioni (`/admin/config/development/api-monitoring/settings`), è possibile definire:

  1. Destinatari Email: Lista di indirizzi (separati da virgola) che riceveranno i report di errore.
  2. Intervallo di notifica in minuti per evitare lo spam in caso di API giù da ore.

Integrazione con Drupal Mail

Il modulo utilizza il sistema `MailManager` di Drupal.
È consigliato l'uso di moduli come **SMTP** o **Swift Mailer / Symfony Mailer** per garantire la consegna delle notifiche.

L'ID del template per il theming delle email è `api_status_alert`.

🚀 Guida per lo Sviluppatore

Crea una classe nella directory `src/Plugin/ApiMonitorProbe/` del tuo modulo custom:


#[AttributeMonitorProbe(
  id: 'check_ordine_invio',
  label: new TranslatableMarkup('Verifica Invio Ordine'),
  description: new TranslatableMarkup('Invia un ordine di test al Sito A'),
  endpoint_id: 'api_ordini_clienti',
  method: 'POST'
)]
class CustomServiceProbe extends ApiMonitorProbeBase implements ApiMonitorProbeInterface{

  public function validateResponse($response): bool {
    // Esempio: successo solo se lo status è 200 e il body contiene 'active'
    $data = json_decode($response->getBody()->getContents(), TRUE);
    return $response->getStatusCode() === 200 && ($data['status'] === 'active');
  }
 
 public function getPayload() :array {
   return ['id'=> 1, 'name' => 'Api monitor Client'];
 }

}

🔗 Utilizzo degli Hook (Extensibility)

Il modulo espone degli hook per permettere ad altri moduli di intervenire nel processo.

1. hook_api_monitor_report_alter(array &$results, string $api_id)
Questo hook viene invocato dal Runner dopo l'esecuzione dei check ma prima del salvataggio.
Permette di modificare i dati o gli stati in base a logiche esterne.
2. hook_api_monitor_probe_info_alter(array &$definitions)
Permette di modificare le definizioni dei plugin (es. cambiare la label o le soglie di uptime) senza toccare il codice originale.

Activity

Total releases
2
First release
Jun 2026
Latest release
15 hours ago
Release cadence
0 days
Stability
50% stable

Releases

Version Type Release date
1.0.1 Stable Jun 25, 2026
1.0.x-dev Dev Jun 25, 2026