L’APM (Application Performance Monitoring) è un approccio completo al monitoraggio delle prestazioni del software, che include la raccolta di metriche, la tracciatura delle richieste e la diagnosi degli errori in tempo reale. Secondo Gartner IT Glossary, 2024, l’APM combina tre aree chiave: monitoraggio dell’esperienza utente, rilevamento dei guasti nell’architettura dell’applicazione e analisi dei dati di esecuzione per la diagnosi approfondita degli incidenti.
Punti chiave
L’APM (Application Performance Monitoring) è la disciplina della gestione delle prestazioni delle applicazioni, che comprende la raccolta, la visualizzazione e l’analisi dei dati di funzionamento del software. A differenza del monitoraggio puntuale di singole metriche (CPU, memoria), l’APM fornisce una visione olistica: come si comporta l’applicazione dal punto di vista dell’utente, come interagiscono i suoi componenti e dove si verificano i colli di bottiglia.
Il concetto di APM è emerso negli anni 2010 con il passaggio da applicazioni monolitiche all’architettura a microservizi. Quando il numero di servizi ha superato le 10–15 unità, i metodi di monitoraggio tradizionali hanno smesso di funzionare — era impossibile determinare quale servizio specifico stesse causando il rallentamento dell’intera richiesta. Le soluzioni APM hanno risolto questo problema attraverso il tracciamento distribuito e la costruzione automatica della mappa dei servizi.
Secondo Grand View Research (2024), il mercato APM è valutato a 8,2 miliardi di dollari USA e cresce dell’11,5% annuo. I principali driver includono la migrazione al cloud, il crescente numero di microservizi e le crescenti richieste di qualità dell’esperienza utente nelle applicazioni mobili e nei servizi web.
L’APM moderno si basa su tre tipi di dati che insieme formano un quadro completo dello stato dell’applicazione. Le metriche sono aggregati numerici: tempo di risposta, numero di richieste, tasso di errore. Rispondono alla domanda “cosa sta succedendo” e consentono di configurare avvisi basati su valori soglia.
Il tracciamento (tracciamento distribuito) risponde alla domanda “perché sta succedendo.” Ogni richiesta in entrata viene tracciata attraverso tutti i microservizi, database e chiamate esterne. Il sistema APM combina metriche e tracciamento: se la metrica del tempo di risposta è aumentata, lo sviluppatore naviga verso la dashboard dei trace e vede la richiesta esatta che ha causato il rallentamento, suddivisa per ogni servizio.
I log forniscono contesto — un messaggio di errore specifico, valore di variabile, stack di chiamate. Le piattaforme APM moderne (Datadog, New Relic, Grafana) collegano i log ai trace tramite un trace_id comune, consentendo di passare da un grafico di metrica al log di una richiesta specifica. Secondo Datadog (2025), la correlazione dei log con i trace riduce il tempo medio di diagnosi degli incidenti da 45 a 12 minuti.
| Segnale | Domanda | Unità |
|---|---|---|
| Metriche | Cosa sta succedendo? | Aggregati numerici |
| Tracciamento | Perché sta succedendo? | Span e trace |
| Log | Cosa è andato esattamente storto? | Registrazioni testuali |
L’architettura APM classica si compone di tre livelli: agente, collettore e backend. Un agente è una libreria incorporata nell’applicazione o eseguita accanto ad essa (sidecar). L’agente intercetta le chiamate in entrata e in uscita, raccoglie i dati di runtime e li invia al collettore tramite un canale sicuro.
Un agente APM per Java può connettersi tramite javaagent a livello JVM, strumentando automaticamente tutte le richieste HTTP, le chiamate ai database, le code di messaggi e le API esterne. Per le piattaforme mobili, l’agente si connette come SDK e raccoglie le metriche dal dispositivo. L’agente New Relic per Android, ad esempio, traccia automaticamente tutte le richieste di rete tramite OkHttp, i client HTTP e WebView.
import com.newrelic.agent.android.NewRelic;
public class MainApplication extends Application {
public void onCreate() {
super.onCreate();
NewRelic.withApplicationToken("YOUR_TOKEN")
.start(this);
}
}
Questo codice inizializza l’agente New Relic in un’applicazione Android. Dopo l’avvio, l’agente raccoglie automaticamente le metriche delle richieste di rete, gli errori, gli ANR e i dati sulle prestazioni dell’interfaccia utente senza strumentazione aggiuntiva di ogni schermata. L’agente viene eseguito in un thread in background e non influisce sulle prestazioni dell’interfaccia principale dell’applicazione.
Il collettore riceve dati da migliaia di agenti, aggrega le metriche, esegue il campionamento dei trace e memorizza i dati in un archivio a lungo termine con funzionalità di archiviazione a caldo e a freddo. Il backend APM fornisce dashboard, avvisi, mappe dei servizi e un’API per l’integrazione con sistemi esterni (Slack, PagerDuty, Jira, ServiceNow). Datadog elabora oltre 10 milioni di punti dati al secondo attraverso i suoi collettori, situati in oltre 20 regioni del mondo per una latenza di trasmissione minima.
Apdex (Application Performance Index) è uno standard aperto per misurare la soddisfazione dell’utente rispetto al tempo di risposta dell’applicazione. Il valore Apdex viene calcolato utilizzando la formula: (numero di utenti soddisfatti + numero di utenti tolleranti / 2) / numero totale di utenti. Il risultato è un numero da 0 a 1, dove 1 significa che tutti gli utenti sono soddisfatti.
Le soglie Apdex vengono impostate individualmente per ogni applicazione. Per le applicazioni mobili, una tipica soglia di soddisfazione è un tempo di risposta fino a 1,5 secondi, tollerabile fino a 4,5 secondi. Qualunque cosa superi i 4,5 secondi è considerata inaccettabile. Un punteggio Apdex di 0,94 e superiore è considerato eccellente per un ambiente di produzione.
Apdex viene utilizzato non solo come metrica di qualità, ma anche come soglia per gli avvisi. Se l’Apdex scende al di sotto di 0,85 per 10 minuti, il sistema APM invia una notifica al team di turno. Questo è un approccio più equilibrato rispetto all’affidamento ai valori assoluti del tempo di risposta, che possono fluttuare a seconda dell’ora del giorno e del carico.
L’APM mobile ha le sue specificità: l’applicazione viene eseguita sul dispositivo dell’utente, che può trovarsi in diverse condizioni di rete, avere diverse quantità di memoria libera e versioni del sistema operativo. L’APM mobile deve tenere conto di tutti questi fattori e fornire una suddivisione delle metriche per modelli di dispositivo, versioni del sistema operativo, regioni e operatori di rete.
Gli agenti APM mobili raccolgono le metriche sul dispositivo e le inviano al server in lotti a intervalli di 1–5 minuti. Ciò minimizza l’impatto sul traffico dell’utente. In caso di perdita di connessione, i dati vengono salvati in una cache locale e inviati alla connessione successiva. Firebase Performance e Dynatrace Mobile supportano la ritrasmissione automatica in caso di perdita di rete.
Alle metriche APM standard nello sviluppo mobile si aggiungono metriche specifiche: tempo di avvio a freddo, FPS durante lo scorrimento, consumo di memoria, frequenza ANR (Android) e numero di terminazioni watchdog (iOS). New Relic Mobile traccia inoltre le viste mappa, la percentuale di utilizzo della cache e il tempo di rendering di ViewController specifici.
import NewRelic
class ProfileViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
NewRelic.startInteraction(withName: "ProfileView")
}
override func viewDidDisappear(animated: Bool) {
super.viewDidDisappear(animated)
NewRelic.stopCurrentInteraction()
}
}
Il codice Swift crea un trace di interazione per la schermata del profilo utente. New Relic misurerà automaticamente il tempo di caricamento dei dati, il rendering dell’interfaccia utente e tutte le richieste di rete effettuate durante la visualizzazione di questa schermata.
Il mercato APM offre decine di soluzioni che differiscono per profondità di monitoraggio, costo e piattaforme supportate. Datadog APM è leader nell’integrazione di metriche, trace e log in un’unica interfaccia. New Relic offre il tracciamento più dettagliato per le piattaforme mobili. Dynatrace utilizza il motore AI Davis per il rilevamento automatico delle cause profonde.
| Piattaforma | Agente mobile | Tracciamento distribuito | Piano gratuito |
|---|---|---|---|
| Datadog | iOS, Android | Sì | No |
| New Relic | iOS, Android | Sì | 100 GB/mese |
| Dynatrace | iOS, Android | Sì | 15 giorni |
| Grafana | Tramite OpenTelemetry | Sì | Sì (OSS) |
La scelta della piattaforma APM dipende dalle dimensioni del team, dallo stack tecnologico e dal budget. Per le startup, Firebase Performance combinato con Grafana per il backend è ottimale. Per i progetti aziendali con elevati requisiti SLA — Datadog o Dynatrace con una suite completa di strumenti di osservabilità e analisi delle cause profonde basata sull’IA.
Domande frequenti
Il monitoraggio ordinario tiene traccia delle metriche dell’infrastruttura: CPU, memoria, disco. L’APM osserva il livello applicativo: tempo di esecuzione di transazioni specifiche, query SQL, chiamate HTTP tra microservizi. L’APM può mostrare che la CPU è normale, ma l’applicazione è lenta a causa di una query lenta al database.
Per un singolo servizio, il monitoraggio standard + la registrazione sono sufficienti per una copertura di base. L’APM diventa necessario quando ci sono 5 o più servizi e una richiesta passa attraverso diversi di essi in un singolo scenario utente. L’APM fornisce la risposta su quale servizio specifico sta rallentando l’intero flusso della richiesta e dove si trova il collo di bottiglia.
Gli agenti APM consumano 1–3% di CPU e 50–200 MB di memoria per server. I costi delle licenze variano da 15 a 80 dollari per host al mese. Il traffico di telemetria è di 1–10 GB al giorno per host a seconda dell’intensità del tracciamento. OpenTelemetry + Grafana è un’alternativa gratuita all’APM commerciale.
Sì, gli agenti APM mobili funzionano in modo autonomo. Raccolgono le metriche sul dispositivo anche se l’applicazione non ha una parte server: tempo di avvio, FPS, crash, richieste di rete ad API di terze parti. I dati vengono inviati alla piattaforma APM quando il dispositivo si connette a Internet.
La configurazione APM di base (soglie, dashboard, avvisi) viene impostata una volta e regolata quando l’architettura cambia o i benchmark delle prestazioni vengono aggiornati. La configurazione dell’agente viene aggiornata automaticamente tramite il pannello di controllo della piattaforma APM senza bisogno di ripubblicare l’applicazione o modificare il codice.
Riepilogo
Svilupperemo un'applicazione mobile chiavi in mano
IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.
Leggi anche