Guida al Monitoraggio delle Callback HTTP/HTTPS

Panoramica

Il sistema di monitoraggio delle callback traccia e analizza tutte le chiamate HTTP/HTTPS in uscita verso gli endpoint di callback, con particolare attenzione ai problemi legati al protocollo HTTPS.

Funzionalità Implementate

1) Logging Dettagliato delle Callback

La funzione process-enrichment-queue registra:

  • Protocollo utilizzato (HTTP vs HTTPS)
  • Tempo di risposta in millisecondi
  • Dimensione del payload
  • Status code della risposta
  • Headers della risposta
  • Errori specifici di connessione HTTPS

2) Identificazione Problemi HTTPS

Il sistema rileva automaticamente:

  • Certificati SSL scaduti o invalidi
  • Errori di connessione HTTPS
  • Timeout di rete
  • Problemi di firewall/DNS

3) Funzione di Monitoraggio

La nuova funzione callback-monitor fornisce:

  • Analisi statistica delle callback
  • Confronto HTTP vs HTTPS (tassi di successo)
  • Tempi di risposta medi per protocollo
  • Lista degli errori più comuni
  • Dettagli dei fallimenti recenti

Come Utilizzare il Sistema

Accesso ai Log in Tempo Reale

Dashboard Supabase:

  1. Vai su Functionsprocess-enrichment-queue
  2. Clicca su Logs per vedere i log in tempo reale
  3. Cerca i log con emoji per identificare rapidamente:
    • 🔄 Inizio chiamata
    • ✅ Successo
    • ❌ Errore HTTP
    • 💥 Eccezione
    • 🚨 Problema HTTPS specifico

Analisi Statistica

  • Endpoint: GET /functions/v1/callback-monitor
  • Parametri: hours (opzionale) → Ore da analizzare (default: 24)

Esempio di chiamata:

curl -X GET "https://your-project.supabase.co/functions/v1/callback-monitor?hours=48" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Risposta di esempio:

{
  "success": true,
  "tenant_id": "tenant-123",
  "analysis_period_hours": 24,
  "analysis": {
    "total_callbacks": 150,
    "successful_callbacks": 120,
    "failed_callbacks": 30,
    "https_issues": 15,
    "http_vs_https": {
      "http_success_rate": 95.5,
      "https_success_rate": 75.2
    },
    "common_errors": [
      {
        "error_type": "TypeError",
        "count": 12,
        "percentage": 40.0
      }
    ],
    "avg_response_time": {
      "http": 250,
      "https": 850
    },
    "recent_failures": [
      {
        "url": "https://example.com/callback",
        "protocol": "HTTPS",
        "error": "SSL certificate expired",
        "timestamp": "2025-01-17T10:30:00Z",
        "duration_ms": 5000
      }
    ]
  }
}

Best Practice

  • Validare i certificati SSL degli endpoint di callback.
  • Implementare retry con backoff esponenziale per timeout di rete.
  • Loggare body, headers principali e timing (con redazione dei dati sensibili).
  • Distinguere chiaramente errori HTTP, eccezioni di trasporto e problemi TLS.