0Pricing
AWS Solutions Architect · Lezione

Metriche, namespace e dimensioni di CloudWatch

Comprendere le metriche integrate dei servizi AWS, pubblicare metriche personalizzate dall'applicazione e filtrare per dimensioni per analizzare risorse specifiche

Metriche, namespace e dimensioni di CloudWatch è una lezione AWS Solutions Architect gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AWS Solutions Architect, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AWS Solutions Architect include 4 lezioni in totale.

Che cos'è Amazon CloudWatch?

Amazon CloudWatch è il servizio unificato di osservabilità di AWS, che raccoglie metriche, log e tracce dalle risorse e dalle applicazioni AWS. Offre una visione completa dello stato dell'infrastruttura, consentendo di rilevare anomalie, impostare allarmi e reagire automaticamente ai cambiamenti operativi. CloudWatch è profondamente integrato con quasi tutti i servizi AWS ed è il principale strumento di monitoraggio oggetto dell'esame SAA-C03.

Comprendere le metriche di CloudWatch

Una metrica CloudWatch è un insieme ordinato nel tempo di punti dati che rappresentano il valore di un aspetto misurabile di una risorsa nel corso del tempo, ad esempio CPUUtilization per un'istanza EC2 misurata ogni minuto. Le metriche sono identificate dal relativo namespace, nome e dimensioni. AWS pubblica automaticamente centinaia di metriche integrate; inoltre, può pubblicare metriche personalizzate dal codice dell'applicazione o da script.

Namespace: organizzare le metriche

Un namespace è un contenitore per le metriche CloudWatch che impedisce conflitti tra i nomi delle metriche provenienti da fonti diverse. I servizi AWS utilizzano namespace come AWS/EC2, AWS/RDS, AWS/Lambda e AWS/S3. Quando pubblica metriche personalizzate, sceglie il namespace autonomamente, ad esempio MyApp/OrderService. Le metriche appartenenti a namespace diversi sono completamente isolate le une dalle altre, anche se hanno lo stesso nome.

# List all namespaces in your account
aws cloudwatch list-metrics \
  --query 'Metrics[].Namespace' \
  --output text | tr '\t' '\n' | sort -u

# List metrics in the AWS/EC2 namespace
aws cloudwatch list-metrics \
  --namespace AWS/EC2 \
  --query 'Metrics[].MetricName' \
  --output text | tr '\t' '\n' | sort -u

Dimensioni: filtrare le metriche

Le dimensioni sono coppie chiave-valore che identificano in modo univoco una metrica all'interno di un namespace. Ad esempio, nel namespace AWS/EC2, CPUUtilization può essere filtrata in base alla dimensione InstanceId=i-0123456789abcdef0 per visualizzare una specifica istanza, oppure in base a AutoScalingGroupName=my-asg per visualizzare la metrica aggregata di un'intera flotta. Una singola metrica può avere fino a 30 dimensioni e AWS definisce in anticipo quali dimensioni sono disponibili per ogni metrica di servizio.

# Get CPU utilization for a specific EC2 instance
aws cloudwatch get-metric-statistics \
  --namespace AWS/EC2 \
  --metric-name CPUUtilization \
  --dimensions Name=InstanceId,Value=i-0123456789abcdef0 \
  --start-time 2024-01-01T00:00:00Z \
  --end-time 2024-01-01T01:00:00Z \
  --period 300 \
  --statistics Average

Monitoraggio standard e dettagliato

Per impostazione predefinita, i servizi AWS pubblicano metriche a intervalli di 5 minuti (monitoraggio standard) in CloudWatch senza costi aggiuntivi. Per i carichi di lavoro sensibili ai tempi, può abilitare il monitoraggio dettagliato per ottenere una granularità di 1 minuto. Il monitoraggio dettagliato è disponibile per EC2, Auto Scaling, ELB, RDS e altri servizi e comporta costi aggiuntivi per CloudWatch. Per l'esame SAA-C03, ricordi che le policy di Auto Scaling che utilizzano lo step scaling si basano su allarmi CloudWatch che funzionano meglio con metriche a intervalli di 1 minuto.

# Enable detailed (1-minute) monitoring for an EC2 instance
aws ec2 monitor-instances \
  --instance-ids i-0123456789abcdef0

# Verify monitoring state
aws ec2 describe-instance-status \
  --instance-ids i-0123456789abcdef0 \
  --query 'InstanceStatuses[].Monitoring'

Pubblicare metriche personalizzate

Può inviare metriche personalizzate a CloudWatch da qualsiasi applicazione utilizzando l'API put-metric-data o CloudWatch Agent. Tra le metriche personalizzate più comuni rientrano i KPI aziendali (ordini al minuto), la latenza a livello di applicazione, la profondità delle code e i tassi di errore. Le metriche personalizzate vengono conservate per 15 mesi con risoluzione variabile e hanno un costo per metrica al mese. Sono supportate anche metriche personalizzate ad alta risoluzione, con granularità di 1 secondo, a un costo maggiore.

# Publish a custom metric from the CLI
aws cloudwatch put-metric-data \
  --namespace 'MyApp/OrderService' \
  --metric-name 'OrdersProcessedPerMinute' \
  --value 47 \
  --unit Count \
  --dimensions Environment=Production,Region=us-east-1

# Publish from application code (Python boto3)
# cloudwatch.put_metric_data(
#   Namespace='MyApp/OrderService',
#   MetricData=[{'MetricName': 'ErrorRate', 'Value': 0.5, 'Unit': 'Percent'}]
# )

CloudWatch Agent per le metriche EC2

CloudWatch Agent è un agente software che installa sulle istanze EC2 e sui server on-premises per raccogliere metriche non disponibili tramite l'hypervisor EC2 integrato, come utilizzo della memoria, spazio su disco e connessioni di rete. L'agente raccoglie anche i log e li invia a CloudWatch Logs. L'utilizzo della memoria è uno scenario frequente d'esame: NON è una metrica EC2 predefinita e DEVE essere raccolto tramite CloudWatch Agent.

# Install and start the CloudWatch Agent on Amazon Linux 2
sudo yum install -y amazon-cloudwatch-agent

# Use the wizard to generate a config
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard

# Start the agent with the generated config
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
  -a fetch-config \
  -m ec2 \
  -s \
  -c ssm:/AmazonCloudWatch-linux

Operazioni matematiche sulle metriche e rilevamento delle anomalie

Le operazioni matematiche sulle metriche consentono di creare nuove serie temporali eseguendo calcoli aritmetici su metriche esistenti, senza memorizzare il risultato come metrica separata. Ad esempio, può calcolare direttamente in un'espressione di un dashboard CloudWatch il tasso di errore con Errors / Requests * 100. Il rilevamento delle anomalie applica il machine learning ai dati storici delle metriche per creare bande di valori attesi; può quindi creare allarmi che si attivano quando una metrica devia oltre tali bande, anche in assenza di una soglia fissa.

# Get metric data using metric math
aws cloudwatch get-metric-data \
  --metric-data-queries '[
    {"Id":"e1","Expression":"m1/m2*100","Label":"ErrorRate%"},
    {"Id":"m1","MetricStat":{"Metric":{"Namespace":"MyApp","MetricName":"Errors"},"Period":60,"Stat":"Sum"}},
    {"Id":"m2","MetricStat":{"Metric":{"Namespace":"MyApp","MetricName":"Requests"},"Period":60,"Stat":"Sum"}}
  ]' \
  --start-time 2024-01-01T00:00:00Z \
  --end-time 2024-01-01T01:00:00Z

Periodi di conservazione delle metriche

CloudWatch conserva le metriche per periodi diversi a seconda della loro risoluzione: i punti dati con risoluzione di 1 secondo vengono conservati per 3 ore, i dati a intervalli di 1 minuto per 15 giorni, quelli a intervalli di 5 minuti per 63 giorni e quelli a intervalli di 1 ora per 15 mesi. CloudWatch aggrega automaticamente nel tempo i dati ad alta risoluzione in dati a risoluzione inferiore. Di conseguenza, per analizzare le tendenze a lungo termine vedrà medie su intervalli di 1 ora, non le letture originali a intervalli di 1 minuto di alcuni mesi prima.

Visualizzare le metriche nella console CloudWatch

La console CloudWatch offre Metrics Explorer e Metrics browser, che consentono di selezionare qualsiasi combinazione di namespace, metrica e dimensione e di visualizzare i dati nel tempo. Può sovrapporre più metriche in un unico grafico, modificare i periodi di aggregazione e aggiungerle ai dashboard. Per l'accesso programmatico, le API GetMetricStatistics e GetMetricData restituiscono punti dati grezzi o statistiche aggregate (Average, Sum, Minimum, Maximum, SampleCount).

# Get average CPU for all instances in an ASG over the last hour
aws cloudwatch get-metric-statistics \
  --namespace AWS/EC2 \
  --metric-name CPUUtilization \
  --dimensions Name=AutoScalingGroupName,Value=my-asg \
  --start-time $(date -u -d '1 hour ago' +%Y-%m-%dT%H:%M:%SZ) \
  --end-time $(date -u +%Y-%m-%dT%H:%M:%SZ) \
  --period 300 \
  --statistics Average Maximum

Metriche principali di EC2 e RDS

Per l'esame SAA-C03, conosca queste metriche fondamentali: EC2 — CPUUtilization, NetworkIn/Out, DiskReadOps/WriteOps (solo instance store); non disponibili in EC2 per impostazione predefinita: memoria e spazio su disco (utilizzi CloudWatch Agent). RDS — DatabaseConnections, FreeStorageSpace, ReadLatency, WriteLatency, ReplicaLag. ELB — RequestCount, TargetResponseTime, UnHealthyHostCount. Lambda — Invocations, Errors, Duration, Throttles, ConcurrentExecutions.

Verifica rapida

Verifichi la Sua comprensione dei concetti di AWS Solutions Architect (SAA-C03) trattati in questa lezione.

Riepilogo della lezione

In questa lezione ha imparato che i namespace organizzano le metriche per servizio e impediscono conflitti tra i nomi, che le dimensioni filtrano le metriche per risorse specifiche, come una singola istanza EC2 o un ASG, e che l'utilizzo della memoria non è una metrica EC2 predefinita: per raccoglierlo è necessario CloudWatch Agent. Ora esamineremo gli allarmi CloudWatch e gli allarmi compositi per la gestione automatica delle notifiche.

Domande Frequenti

La lezione «Metriche, namespace e dimensioni di CloudWatch» è gratuita?

Sì — il testo completo di «Metriche, namespace e dimensioni di CloudWatch» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AWS Solutions Architect, passa a CoddyKit PRO. Il corso AWS Solutions Architect include 4 lezioni in totale.

Cosa imparerò in «Metriche, namespace e dimensioni di CloudWatch»?

Comprendere le metriche integrate dei servizi AWS, pubblicare metriche personalizzate dall'applicazione e filtrare per dimensioni per analizzare risorse specifiche Eserciti AWS Solutions Architect con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare AWS Solutions Architect?

Non è richiesta alcuna esperienza precedente. AWS Solutions Architect su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Metriche, namespace e dimensioni di CloudWatch»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione AWS Solutions Architect?

Sì. Ogni lezione AWS Solutions Architect include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Metriche, namespace e dimensioni di CloudWatch
  2. Allarmi CloudWatch e allarmi compositi
  3. Log CloudWatch e Log Insights
  4. Dashboard CloudWatch e Container Insights
← Torna a AWS Solutions Architect