

# OPS 4. Come si implementa l'osservabilità nel carico di lavoro?
<a name="ops-04"></a>

Implementare l'osservabilità nel carico di lavoro ti permette di comprendere lo stato di quest'ultimo e di adottare decisioni basate sui dati e che riflettono i requisiti aziendali.

**Topics**
+ [OPS04-BP01 Identificazione degli indicatori chiave di prestazione](ops_observability_identify_kpis.md)
+ [OPS04-BP02 Implementazione della telemetria dell'applicazione](ops_observability_application_telemetry.md)
+ [OPS04-BP03 Implementazione della telemetria dell'esperienza utente](ops_observability_customer_telemetry.md)
+ [OPS04-BP04 Implementazione della telemetria delle dipendenze](ops_observability_dependency_telemetry.md)
+ [OPS04-BP05 Implementazione del tracciamento distribuito](ops_observability_dist_trace.md)

# OPS04-BP01 Identificazione degli indicatori chiave di prestazione
<a name="ops_observability_identify_kpis"></a>

 L'implementazione dell'osservabilità nel carico di lavoro inizia con la comprensione del suo stato e l'adozione di decisioni basate sui dati che riflettono i requisiti aziendali. Uno dei modi più efficaci per garantire l'allineamento tra le attività di monitoraggio e gli obiettivi aziendali è definire e monitorare gli indicatori chiave di prestazione (KPI). 

 **Risultato desiderato:** Pratiche di osservabilità efficienti e strettamente allineate agli obiettivi aziendali garantiscono che le attività di monitoraggio siano sempre al servizio di risultati aziendali tangibili. 

 **Anti-pattern comuni:** 
+  KPI non definiti: lavorare senza KPI chiari può portare ad attività di monitoraggio eccessive o insufficienti e alla perdita di segnali vitali. 
+  KPI statici: non riesaminare od ottimizzare i KPI man mano che il carico di lavoro o gli obiettivi aziendali si evolvono. 
+  Disallineamento: concentrarsi su metriche tecniche non direttamente correlate ai risultati aziendali o che sono più difficili da correlare ai problemi del mondo reale. 

 **Vantaggi dell'adozione di questa best practice:** 
+  Facilità di identificazione dei problemi: i KPI aziendali spesso evidenziano i problemi in modo più chiaro rispetto alle metriche tecniche. Un valore di un KPI aziendale che diminuisce permette di individuare un problema in modo più efficace rispetto alla valutazione di numerose metriche tecniche. 
+  Allineamento aziendale: assicura che le attività di monitoraggio supportino direttamente gli obiettivi aziendali. 
+  Efficienza: viene data la priorità alle risorse di monitoraggio e al focus sulle metriche che contano. 
+  Proattività: riconoscere e risolvere i problemi prima che abbiano implicazioni aziendali più ampie. 

 **Livello di rischio associato se questa best practice non fosse adottata:** alto 

## Guida all'implementazione
<a name="implementation-guidance"></a>

 Per definire in modo efficace i KPI del carico di lavoro: 

1.  **Inizia con i risultati aziendali:** prima di approfondire le metriche, comprendi i risultati aziendali desiderati. È stato rilevato un aumento delle vendite, un maggiore coinvolgimento degli utenti o tempi di risposta più rapidi? 

1.  **Correla le metriche tecniche con gli obiettivi aziendali:** non tutte le metriche tecniche hanno un impatto diretto sui risultati aziendali. Identifica quelli che hanno un impatto, anche se spesso è più immediato individuare un problema utilizzando un KPI aziendale. 

1.  **Utilizza [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html):** Utilizza CloudWatch per definire e monitorare le metriche che rappresentano i tuoi KPI. 

1.  **Rivedi e aggiorna regolarmente i KPI:** man mano che il carico di lavoro e la tua attività si evolvono, mantieni la pertinenza dei tuoi KPI. 

1.  **Coinvolgi gli stakeholder:** coinvolgi i team tecnici e aziendali nella definizione e revisione dei KPI. 

 **Livello di impegno per il piano di implementazione:** Medio 

## Risorse
<a name="resources"></a>

 **Best practice correlate:** 
+ [OPS04-BP02 Implementazione della telemetria dell'applicazione](ops_observability_application_telemetry.md)
+ [OPS04-BP03 Implementazione della telemetria dell'esperienza utente](ops_observability_customer_telemetry.md)
+ [OPS04-BP04 Implementazione della telemetria delle dipendenze](ops_observability_dependency_telemetry.md)
+ [OPS04-BP05 Implementazione del tracciamento distribuito](ops_observability_dist_trace.md)

 **Documenti correlati:** 
+ [AWS Observability Best Practices ](https://aws-observability.github.io/observability-best-practices/)
+ [ CloudWatch User Guide ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)
+ [AWS Observability Skill Builder Course ](https://explore.skillbuilder.aws/learn/course/external/view/elearning/14688/aws-observability)

 **Video correlati:** 
+ [ Developing an observability strategy ](https://www.youtube.com/watch?v=Ub3ATriFapQ)

 **Esempi correlati:** 
+  [One Observability Workshop](https://catalog.workshops.aws/observability/en-US) 

# OPS04-BP02 Implementazione della telemetria dell'applicazione
<a name="ops_observability_application_telemetry"></a>

 La telemetria dell'applicazione è la base su cui si fonda l'osservabilità del carico di lavoro. È fondamentale emettere dati di telemetria che offrano approfondimenti utili sullo stato dell'applicazione e sul raggiungimento degli obiettivi sia tecnici sia aziendali. Dalla risoluzione dei problemi alla misurazione dell'impatto di una nuova funzionalità fino all'allineamento con gli indicatori di prestazione chiave (KPI), la telemetria dell'applicazione garantisce informazioni su cui basare la creazione, il funzionamento e l'evoluzione del carico di lavoro. 

 Metriche, log e tracce costituiscono i tre pilastri principali dell'osservabilità. Questi operano come strumenti diagnostici che descrivono lo stato dell'applicazione. Nel tempo, aiutano a creare criteri di base e a identificare le anomalie. Tuttavia, per garantire l'allineamento tra le attività di monitoraggio e gli obiettivi aziendali, è fondamentale definire e monitorare i KPI. I KPI aziendali spesso facilitano l'identificazione dei problemi rispetto alle sole metriche tecniche. 

 Altri tipi di telemetria, come il monitoraggio degli utenti reali (RUM) e le transazioni sintetiche, completano queste origini dati primarie. Il RUM offre informazioni sulle interazioni degli utenti in tempo reale, mentre le transazioni sintetiche simulano i potenziali comportamenti degli utenti, aiutando a rilevare i colli di bottiglia prima che vengano riscontrati dagli utenti reali. 

 **Risultato desiderato:** Ottieni approfondimenti utili sulle prestazioni del tuo carico di lavoro. Questi approfondimenti consentono di prendere decisioni proattive sull'ottimizzazione delle prestazioni, ottenere una maggiore stabilità del carico di lavoro, semplificare i processi CI/CD e utilizzare le risorse in modo efficace. 

 **Anti-pattern comuni:** 
+  Osservabilità incompleta: trascurare di incorporare l'osservabilità a ogni livello del carico di lavoro, con conseguenti punti ciechi che possono nascondere le prestazioni vitali del sistema e gli approfondimenti sul comportamento. 
+  Visualizzazione frammentata dei dati: quando i dati sono sparsi su più strumenti e sistemi, diventa difficile mantenere una visione olistica dello stato e delle prestazioni del carico di lavoro. 
+  Problemi segnalati dagli utenti: un segno della mancanza di un rilevamento proattivo dei problemi tramite telemetria e monitoraggio dei KPI aziendali. 

 **Vantaggi dell'adozione di questa best practice:** 
+  Processo decisionale informato: con gli approfondimenti ricavati dalla telemetria e dai KPI aziendali, puoi prendere decisioni basate sui dati. 
+  Migliore efficienza operativa: l'utilizzo delle risorse basato sui dati porta a un miglioramento dell'efficienza risparmiando sui costi. 
+  Maggiore stabilità del carico di lavoro: rilevamento e risoluzione più rapidi dei problemi con conseguente aumento dei tempi di attività. 
+  Processi CI/CD semplificati: gli approfondimenti ricavati dai dati di telemetria facilitano il perfezionamento dei processi e la distribuzione affidabile del codice. 

 **Livello di rischio associato se questa best practice non fosse adottata:** alto 

## Guida all'implementazione
<a name="implementation-guidance"></a>

 Per implementare la telemetria delle applicazioni per il tuo carico di lavoro, utilizza servizi AWS come [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) e [AWS X-Ray](https://aws.amazon.com/xray/). Amazon CloudWatch fornisce una suite completa di strumenti di monitoraggio, che consente di osservare le risorse e le applicazioni in ambienti AWS e on-premise. Raccoglie, tiene traccia e analizza le metriche, consolida e monitora i dati di log e risponde alle modifiche che interessano le risorse, migliorando la comprensione del funzionamento del carico di lavoro. Integrato con altri servizi, AWS X-Ray consente di tenere traccia, analizzare ed eseguire il debug delle applicazioni, offrendoti una comprensione approfondita del comportamento del tuo carico di lavoro. Grazie a funzionalità come mappe dei servizi, distribuzioni di latenza e tempistiche di tracciamento, X-Ray fornisce informazioni dettagliate sulle prestazioni del carico di lavoro e sui colli di bottiglia che lo interessano. 

### Passaggi dell'implementazione
<a name="implementation-steps"></a>

1.  **Identifica quali dati raccogliere:** definisci le metriche, i log e le tracce essenziali che potrebbero offrire importanti informazioni dettagliate sullo stato, le prestazioni e il comportamento del tuo carico di lavoro. 

1.  **Implementa l'agente [CloudWatch](https://aws.amazon.com/cloudwatch/) :** l'agente CloudWatch è fondamentale nel fornire metriche di sistema e dell'applicazione e log dal carico di lavoro e dall'infrastruttura sottostante. L'agente CloudWatch può essere utilizzato anche per raccogliere tracce OpenTelemetry o X-Ray e inviarle a X-Ray. 

1.  **Definisci e monitora i KPI aziendali:** abilita [metriche personalizzate](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) in linea con i tuoi [risultati aziendali](https://aws-observability.github.io/observability-best-practices/guides/operational/business/monitoring-for-business-outcomes/). 

1.  **Fornisci AWS X-Ray alla tua applicazione:** Oltre a implementare l'agente CloudWatch, è fondamentale [dotare la tua applicazione di strumenti](https://docs.aws.amazon.com/xray/latest/devguide/xray-instrumenting-your-app.html) per emettere dati di tracciamento. Questo processo può fornire ulteriori approfondimenti sul comportamento e sulle prestazioni del carico di lavoro. 

1.  **Standardizza la raccolta dei dati in tutta l'applicazione:** standardizza le pratiche di raccolta dei dati in tutta l'applicazione. L'uniformità aiuta a correlare e analizzare i dati, fornendo una visione completa del comportamento dell'applicazione. 

1.  **Analizza e agisci sui dati:** una volta completata la raccolta e la normalizzazione dei dati, utilizza [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/features/) per l'analisi delle metriche e dei log, e [AWS X-Ray](https://aws.amazon.com/xray/features/) per l'analisi delle tracce. Tale analisi può fornire approfondimenti cruciali sullo stato, le prestazioni e il comportamento del carico di lavoro, guidando il processo decisionale. 

 **Livello di impegno per il piano di implementazione:** alto 

## Risorse
<a name="resources"></a>

 **Best practice correlate:** 
+  [OPS04-BP01 Identificazione degli indicatori chiave di prestazione](ops_observability_identify_kpis.md) 
+  [OPS04-BP03 Implementazione della telemetria dell'esperienza utente](ops_observability_customer_telemetry.md) 
+  [OPS04-BP04 Implementazione della telemetria delle dipendenze](ops_observability_dependency_telemetry.md) 
+  [OPS04-BP05 Implementazione del tracciamento distribuito](ops_observability_dist_trace.md) 

 **Documenti correlati:** 
+ [AWS Observability Best Practices ](https://aws-observability.github.io/observability-best-practices/)
+ [ CloudWatch User Guide ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)
+ [ Guida per gli sviluppatori AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html)
+ [ Strumentazione di sistemi distribuiti per visibilità operativa ](https://aws.amazon.com/builders-library/instrumenting-distributed-systems-for-operational-visibility)
+ [AWS Observability Skill Builder Course ](https://explore.skillbuilder.aws/learn/course/external/view/elearning/14688/aws-observability)
+ [ Novità di Amazon CloudWatch ](https://aws.amazon.com/about-aws/whats-new/management-and-governance/?whats-new-content.sort-by=item.additionalFields.postDateTime&whats-new-content.sort-order=desc&awsf.whats-new-products=general-products%23amazon-cloudwatch)
+ [ Novità di AWS X-Ray](https://aws.amazon.com/about-aws/whats-new/developer-tools/?whats-new-content.sort-by=item.additionalFields.postDateTime&whats-new-content.sort-order=desc&awsf.whats-new-products=general-products%23aws-x-ray)

 **Video correlati:** 
+ [AWS re:Invent 2022 - Observability best practices at Amazon ](https://youtu.be/zZPzXEBW4P8)
+ [AWS re:Invent 2022 - Developing an observability strategy ](https://youtu.be/Ub3ATriFapQ)

 **Esempi correlati:** 
+  [One Observability Workshop](https://catalog.workshops.aws/observability/en-US) 
+ [ Biblioteca di soluzioni AWS: Monitoraggio delle applicazioni con Amazon CloudWatch ](https://aws.amazon.com/solutions/implementations/application-monitoring-with-cloudwatch)

# OPS04-BP03 Implementazione della telemetria dell'esperienza utente
<a name="ops_observability_customer_telemetry"></a>

 Acquisire informazioni approfondite sulle esperienze dei clienti e sulle interazioni con la tua applicazione è fondamentale. Il monitoraggio dell'utente reale (RUM) e le transazioni sintetiche sono strumenti molto efficaci per questo scopo. RUM fornisce dati sulle interazioni degli utenti reali, garantendo una prospettiva non filtrata della soddisfazione degli utenti, mentre le transazioni sintetiche simulano le interazioni degli utenti, aiutando a rilevare potenziali problemi prima che essi abbiano un impatto sugli utenti reali. 

 **Risultato desiderato:** Una visione olistica dell'esperienza del cliente, il rilevamento proattivo dei problemi e l'ottimizzazione delle interazioni degli utenti per offrire esperienze digitali fluide. 

 **Anti-pattern comuni:** 
+  Applicazioni senza monitoraggio dell'utente reale (RUM): 
  +  rilevamento ritardato dei problemi: senza RUM, potresti non accorgerti di rallentamenti o problemi di prestazioni fino a quando non ricevi lamentele da parte degli utenti. Questo approccio reattivo può causare insoddisfazione nei clienti. 
  +  Mancanza di informazioni sull'esperienza utente: non utilizzare RUM significa perdere dati cruciali che mostrano come gli utenti reali interagiscono con l'applicazione, il che limita la tua capacità di ottimizzare l'esperienza utente. 
+  Applicazioni senza transazioni sintetiche: 
  +  Casi limite trascurati: le transazioni sintetiche consentono di testare percorsi e funzioni che potrebbero non essere utilizzati frequentemente dagli utenti tipici, ma che sono fondamentali per determinate funzioni aziendali. Senza di esse, questi percorsi potrebbero non funzionare correttamente e passare inosservati. 
  +  Verifica della presenza di problemi quando l'applicazione non viene utilizzata: i test sintetici regolari possono simulare situazioni in cui gli utenti reali non interagiscono attivamente con l'applicazione, garantendo che il sistema funzioni sempre correttamente. 

 **Vantaggi dell'adozione di questa best practice:** 
+  Rilevamento proattivo dei problemi: identifica e risolvi i problemi potenziali prima che abbiano un impatto sugli utenti reali. 
+  Esperienza utente ottimizzata: grazie al suo feedback continuo, RUM aiuta a perfezionare e migliorare l'esperienza utente complessiva. 
+  Informazioni approfondite sulle prestazioni del dispositivo e del browser: scopri come si comporta la tua applicazione in vari dispositivi e browser e implementa ulteriori ottimizzazioni. 
+  Flussi di lavoro aziendali convalidati: transazioni sintetiche regolari assicurano che le funzionalità principali e i percorsi critici siano operativi ed efficienti in maniera costante. 
+  Prestazioni delle applicazioni migliorate: sfrutta le informazioni approfondite raccolte dai dati degli utenti reali per migliorare la reattività e l'affidabilità delle applicazioni. 

 **Livello di rischio associato se questa best practice non fosse adottata:** alto 

## Guida all'implementazione
<a name="implementation-guidance"></a>

 Per eseguire la telemetria delle attività degli utenti sfruttando RUM e le transazioni sintetiche, AWS offre servizi come [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) e [Amazon CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html). Metriche, log e tracce, insieme ai dati sulle attività degli utenti, forniscono una visione completa dello stato operativo dell'applicazione e dell'esperienza utente. 

### Passaggi dell'implementazione
<a name="implementation-steps"></a>

1.  **Implementa Amazon CloudWatch RUM:** integra la tua applicazione con CloudWatch RUM per raccogliere, analizzare e presentare dati relativi agli utenti reali. 

   1.  Utilizza [la libreria JavaScript CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) per integrare RUM con la tua applicazione. 

   1.  Configura dashboard per visualizzare e monitorare i dati relativi agli utenti reali. 

1.  **Configura CloudWatch Synthetics:** crea canary o routine con script che simulano le interazioni degli utenti con la tua applicazione. 

   1.  Definisci i flussi di lavoro e i percorsi critici delle applicazioni. 

   1.  Progetta canary utilizzando [script di CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) per simulare le interazioni degli utenti per questi percorsi. 

   1.  Pianifica e monitora i canary affinché si attivino a intervalli specifici, in modo da garantire controlli costanti delle prestazioni. 

1.  **Analizza e intervieni sui dati:** Utilizza i dati provenienti da RUM e transazioni sintetiche per ottenere informazioni e adottare misure correttive quando vengono rilevate anomalie. Usa dashboard CloudWatch e allarmi per ottenere informazioni costanti. 

 **Livello di impegno per il piano di implementazione:** Medio 

## Risorse
<a name="resources"></a>

 **Best practice correlate:** 
+  [OPS04-BP01 Identificazione degli indicatori chiave di prestazione](ops_observability_identify_kpis.md) 
+  [OPS04-BP02 Implementazione della telemetria dell'applicazione](ops_observability_application_telemetry.md) 
+  [OPS04-BP04 Implementazione della telemetria delle dipendenze](ops_observability_dependency_telemetry.md) 
+  [OPS04-BP05 Implementazione del tracciamento distribuito](ops_observability_dist_trace.md) 

 **Documenti correlati:** 
+ [ Amazon CloudWatch RUM Guide ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html)
+ [ Amazon CloudWatch Synthetics Guide ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html)

 **Video correlati:** 
+ [ Optimize applications through end user insights with Amazon CloudWatch RUM ](https://www.youtube.com/watch?v=NMaeujY9A9Y)
+ [AWS on Air ft. Real-User Monitoring for Amazon CloudWatch ](https://www.youtube.com/watch?v=r6wFtozsiVE)

 **Esempi correlati:** 
+ [ One Observability Workshop ](https://catalog.workshops.aws/observability/en-US/intro)
+ [ Repository Git per client Web Amazon CloudWatch RUM ](https://github.com/aws-observability/aws-rum-web)
+ [ Using Amazon CloudWatch Synthetics to measure page load time ](https://github.com/aws-samples/amazon-cloudwatch-synthetics-page-performance)

# OPS04-BP04 Implementazione della telemetria delle dipendenze
<a name="ops_observability_dependency_telemetry"></a>

 La telemetria delle dipendenze è essenziale per monitorare lo stato e le prestazioni dei servizi e dei componenti esterni su cui si basa il carico di lavoro. Fornisce preziose informazioni dettagliate su reperibilità, timeout e altri eventi critici correlati alle dipendenze come DNS, database o API di terze parti. Dotando l'applicazione di strumenti per generare metriche, log e tracce relative a queste dipendenze, acquisisci una comprensione più chiara dei potenziali colli di bottiglia, problemi di prestazioni o errori che potrebbero influire sul carico di lavoro. 

 **Risultato desiderato:** Le dipendenze su cui si basa il carico di lavoro funzionano come previsto, consentendo di gestire i problemi in modo proattivo e garantendo prestazioni ottimali del carico di lavoro. 

 **Anti-pattern comuni:** 
+  Scarsa attenzione alle dipendenze esterne: il focus è rivolto esclusivamente alle metriche interne dell'applicazione, trascurando quelle legate alle dipendenze esterne. 
+  Mancanza di monitoraggio proattivo: si attende che si verifichino problemi anziché monitorare costantemente lo stato e le prestazioni delle dipendenze. 
+  Monitoraggio isolato in comparti: utilizzo di strumenti di monitoraggio multipli ed eterogenei che possono portare a visioni dello stato delle dipendenze frammentate e incoerenti. 

 **Vantaggi dell'adozione di questa best practice:** 
+  Maggiore affidabilità del carico di lavoro: viene garantito che le dipendenze esterne siano costantemente disponibili e funzionino in modo ottimale. 
+  Rilevamento e risoluzione dei problemi più rapidi: identificazione e risoluzione proattiva dei problemi relativi alle dipendenze prima che influiscano sul carico di lavoro. 
+  Visione completa: acquisizione di una visione olistica dei componenti interni ed esterni che influenzano lo stato del carico di lavoro. 
+  Scalabilità del carico di lavoro migliorata grazie alla comprensione dei limiti di scalabilità e delle caratteristiche prestazionali delle dipendenze esterne. 

 **Livello di rischio associato se questa best practice non fosse adottata:** alto 

## Guida all'implementazione
<a name="implementation-guidance"></a>

 Implementa la telemetria delle dipendenze iniziando con l'identificazione dei servizi, dell'infrastruttura e dei processi da cui dipende il carico di lavoro. Esegui una valutazione quantitativa delle condizioni ottimali nelle quali tali dipendenze funzionano come previsto e poi determina quali dati sono necessari per misurarle. Con queste informazioni, puoi creare dashboard e avvisi che forniscono informazioni dettagliate ai tuoi team operativi sullo stato di tali dipendenze. Usa gli strumenti AWS per scoprire e quantificare gli impatti quando le dipendenze non riescono a fornire le prestazioni necessarie. Rivedi costantemente la tua strategia per tenere conto dei cambiamenti relativi a priorità, obiettivi e alle informazioni dettagliate acquisite. 

### Passaggi dell'implementazione
<a name="implementation-steps"></a>

 Per implementare efficacemente la telemetria delle dipendenze: 

1.  **Identifica le dipendenze esterne:** collabora con gli stakeholder per individuare le dipendenze esterne sulle quali si basa il tuo carico di lavoro. Le dipendenze esterne possono comprendere servizi come database esterni, API di terze parti, percorsi di connettività di rete verso altri ambienti e servizi DNS. Il primo passo verso un'efficace telemetria delle dipendenze è acquisire una comprensione totale di quali esse siano. 

1.  **Sviluppa una strategia di monitoraggio:** una volta acquisito un quadro chiaro delle dipendenze esterne, progetta una strategia di monitoraggio ad hoc per esse. Trovare la strategia giusta implica comprendere le criticità di tutte le dipendenze, il loro comportamento previsto e gli eventuali accordi od obiettivi sul livello di servizio associato (SLA o SLT). Imposta avvisi proattivi che ti informino riguardo a cambiamenti di stato o deviazioni delle prestazioni. 

1.  **Sfrutta [Monitor Internet Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-InternetMonitor.html):** fornisce approfondimenti sull'Internet globale, aiutandoti a comprendere interruzioni o perturbazioni che potrebbero influire sulle dipendenze esterne. 

1.  **Non perdere alcun aggiornamento con [Dashboard AWS Health](https://aws.amazon.com/premiumsupport/technology/aws-health-dashboard/):** fornisce avvisi e indicazioni per la correzione qualora AWS sia interessato da eventi che potrebbero influire sui servizi. 

1.  **Potenzia la tua applicazione con [AWS X-Ray](https://aws.amazon.com/xray/):** AWS X-Ray fornisce informazioni dettagliate sulle prestazioni delle applicazioni e delle relative dipendenze sottostanti. La tracciatura delle richieste dall'inizio alla fine ti permette di identificare colli di bottiglia o guasti nei servizi o nei componenti esterni su cui si basa l'applicazione. 

1.  **Utilizza [Amazon DevOps Guru](https://aws.amazon.com/devops-guru/):** questo servizio basato sul machine learning identifica i problemi operativi, prevede quando potrebbero verificarsi problemi critici e consiglia azioni specifiche da intraprendere. Fornisce un supporto prezioso per acquisire informazioni dettagliate sulle dipendenze e determinare che queste non siano la fonte di problemi operativi. 

1.  **Monitora regolarmente:** monitora le metriche e i log relativi alle dipendenze esterne in maniera costante. Imposta avvisi per comportamenti imprevisti o prestazioni ridotte. 

1.  **Convalida dopo le modifiche:** ogni volta che una dipendenza esterna è interessata da un aggiornamento o una modifica, convalidane le prestazioni e verifica che queste siano in linea con i requisiti dell'applicazione. 

 **Livello di impegno per il piano di implementazione:** Medio 

## Risorse
<a name="resources"></a>

 **Best practice correlate:** 
+  [OPS04-BP01 Identificazione degli indicatori chiave di prestazione](ops_observability_identify_kpis.md) 
+  [OPS04-BP02 Implementazione della telemetria dell'applicazione](ops_observability_application_telemetry.md) 
+  [OPS04-BP03 Implementazione della telemetria dell'esperienza utente](ops_observability_customer_telemetry.md) 
+  [OPS04-BP05 Implementazione del tracciamento distribuito](ops_observability_dist_trace.md) 

 **Documenti correlati:** 
+ [ What is AWS Health? ](https://docs.aws.amazon.com/health/latest/ug/what-is-aws-health.html)
+ [ Using Amazon CloudWatch Internet Monitor ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-InternetMonitor.html)
+ [Guida per gli sviluppatori AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html)
+ [ Amazon DevOps Guru User Guide ](https://docs.aws.amazon.com/devops-guru/latest/userguide/welcome.html)

 **Video correlati:** 
+ [ Visibility into how internet issues impact app performance ](https://www.youtube.com/watch?v=Kuc_SG_aBgQ)
+ [ Introduction to Amazon DevOps Guru ](https://www.youtube.com/watch?v=2uA8q-8mTZY)

 **Esempi correlati:** 
+ [ Gaining operational insights with AIOps using Amazon DevOps Guru ](https://catalog.us-east-1.prod.workshops.aws/workshops/f92df379-6add-4101-8b4b-38b788e1222b/en-US)
+ [AWS Health Aware ](https://github.com/aws-samples/aws-health-aware/)

# OPS04-BP05 Implementazione del tracciamento distribuito
<a name="ops_observability_dist_trace"></a>

 Il tracciamento distribuito offre un modo per monitorare e visualizzare le richieste mentre attraversano vari componenti di un sistema distribuito. Acquisendo i dati di tracciamento da più fonti e analizzandoli in una vista unificata, i team possono comprendere meglio il flusso delle richieste, in quali punti sono presenti colli di bottiglia e dove devono concentrare gli sforzi di ottimizzazione. 

 **Risultato desiderato:** Una visione olistica del flusso delle richieste nel tuo sistema distribuito, che ti permette di ottenere un debug preciso, prestazioni ottimizzate e migliori esperienze utente. 

 **Anti-pattern comuni:** 
+  Strumentazione incoerente: non tutti i servizi in un sistema distribuito sono dotati di strumentazione per il monitoraggio. 
+  Ignorare la latenza: concentrarsi solo sugli errori e non considerare la latenza o il graduale deterioramento delle prestazioni. 

 **Vantaggi dell'adozione di questa best practice:** 
+ Panoramica completa del sistema: visualizzazione dell'intero percorso delle richieste, dall'ingresso all'uscita.
+  Debug avanzato: identificazione rapida dei punti in cui si verificano guasti o problemi di prestazioni. 
+  Esperienza utente migliorata: monitoraggio e ottimizzazione in base ai dati effettivi dell'utente, garantendo che il sistema soddisfi le esigenze del mondo reale. 

 **Livello di rischio associato se questa best practice non fosse adottata:** alto 

## Guida all'implementazione
<a name="implementation-guidance"></a>

 Inizia identificando tutti gli elementi del carico di lavoro che richiedono strumentazione. Una volta presi in considerazione tutti i componenti, sfrutta strumenti come AWS X-Ray e OpenTelemetry per raccogliere dati di tracciamento da analizzare con strumenti come X-Ray e Amazon CloudWatchServiceLens Map. Effettua revisioni periodiche insieme agli sviluppatori e integra queste discussioni con strumenti come Amazon DevOps Guru, X-Ray Analytics e X-Ray Insights per ottenere risultati più approfonditi. Imposta avvisi basati sui dati di tracciamento per notificare quando i risultati sono a rischio, come definito nel piano di monitoraggio del carico di lavoro. 

### Passaggi dell'implementazione
<a name="implementation-steps"></a>

 Per implementare il tracciamento distribuito in modo efficace: 

1.  **Adotta [AWS X-Ray](https://aws.amazon.com/xray/):** implementa X-Ray nella tua applicazione per ottenere informazioni dettagliate sul suo comportamento, comprenderne le prestazioni e individuare i punti critici. Utilizza X-Ray Insights per l'analisi automatica dei tracciamenti. 

1.  **Dota i tuoi servizi di strumenti:** verifica che tutti i servizi, dalle funzioni [AWS Lambda](https://aws.amazon.com/lambda/) alle [istanze EC2](https://aws.amazon.com/ec2/), siano in grado di inviare dati di tracciamento. Più servizi doti di strumentazione, più chiara sarà la visione end-to-end. 

1.  **Incorpora [il monitoraggio dell'utente reale tramite CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) e [il monitoraggio sintetico](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html):** integra il monitoraggio dell'utente reale (RUM) e il monitoraggio sintetico con X-Ray. Ciò ti consente di acquisire esperienze utenti del mondo reale e simulare le interazioni degli utenti per identificare potenziali problemi. 

1.  **Utilizza [l'agente CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html):** l'agente può inviare dati di tracciamento da X-Ray o da OpenTelemetry, permettendoti di raccogliere informazioni più approfondite. 

1.  **Utilizza [Amazon DevOps Guru](https://aws.amazon.com/devops-guru/):** DevOps Guru utilizza dati provenienti da X-Ray, CloudWatch, AWS Config e AWS CloudTrail per fornire suggerimenti fruibili. 

1.  **Analizza le tracce:** esamina regolarmente i dati di tracciamento per individuare schemi, anomalie o colli di bottiglia che possono influire sulle prestazioni dell'applicazione. 

1.  **Imposta avvisi:** configura avvisi in [CloudWatch](https://aws.amazon.com/cloudwatch/) per segnalare schemi insoliti o latenze prolungate, il che ti permette di effettuare una risoluzione proattiva dei problemi. 

1.  **Miglioramento continuo:** riesamina la tua strategia di tracciamento man mano che aggiungi o modifichi servizi per acquisire tutti i punti dati pertinenti. 

 **Livello di impegno per il piano di implementazione:** Medio 

## Risorse
<a name="resources"></a>

 **Best practice correlate:** 
+  [OPS04-BP01 Identificazione degli indicatori chiave di prestazione](ops_observability_identify_kpis.md) 
+  [OPS04-BP02 Implementazione della telemetria dell'applicazione](ops_observability_application_telemetry.md) 
+  [OPS04-BP03 Implementazione della telemetria dell'esperienza utente](ops_observability_customer_telemetry.md) 
+  [OPS04-BP04 Implementazione della telemetria delle dipendenze](ops_observability_dependency_telemetry.md) 

 **Documenti correlati:** 
+ [ Guida per gli sviluppatori AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html)
+ [ Amazon CloudWatch agent User Guide ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)
+ [ Amazon DevOps Guru User Guide ](https://docs.aws.amazon.com/devops-guru/latest/userguide/welcome.html)

 **Video correlati:** 
+ [ Use AWS X-Ray Insights ](https://www.youtube.com/watch?v=tl8OWHl6jxw)
+ [AWS on Air ft. Observability: Amazon CloudWatch and AWS X-Ray](https://www.youtube.com/watch?v=qBDBnPkZ-KI)

 **Esempi correlati:** 
+ [ Instrumenting your Application with AWS X-Ray](https://aws.amazon.com/getting-started/hands-on/distributed-tracing-with-xray/)