0Pricing
Cloud & IT Cert Prep · Lekcja

Metryki, przestrzenie nazw i wymiary CloudWatch

Poznać wbudowane metryki usług AWS, publikować niestandardowe metryki z aplikacji oraz filtrować je według wymiarów, aby analizować konkretne zasoby.

Metryki, przestrzenie nazw i wymiary CloudWatch to bezpłatna lekcja Cloud & IT Cert Prep na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cloud & IT Cert Prep, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.

Czym jest Amazon CloudWatch?

Amazon CloudWatch to ujednolicona usługa obserwowalności AWS, która zbiera metryki, logi i ślady z zasobów AWS oraz aplikacji. Zapewnia pełny obraz stanu infrastruktury, umożliwiając wykrywanie anomalii, ustawianie alarmów i automatyczne reagowanie na zmiany operacyjne. CloudWatch jest ściśle zintegrowany z niemal każdą usługą AWS i jest podstawowym narzędziem monitorowania uwzględnianym na egzaminie SAA-C03.

Zrozumienie metryk CloudWatch

Metryka CloudWatch to uporządkowany w czasie zbiór punktów danych przedstawiających wartość mierzalnego aspektu zasobu w czasie — na przykład CPUUtilization dla instancji EC2 mierzonej co minutę. Metryki są identyfikowane przez przestrzeń nazw, nazwę i wymiary. AWS automatycznie publikuje setki wbudowanych metryk, a własne metryki niestandardowe można publikować z kodu aplikacji lub skryptów.

Przestrzenie nazw: organizowanie metryk

Przestrzeń nazw to kontener na metryki CloudWatch, który zapobiega kolizjom nazw metryk pochodzących z różnych źródeł. Usługi AWS używają przestrzeni nazw takich jak AWS/EC2, AWS/RDS, AWS/Lambda i AWS/S3. Podczas publikowania metryk niestandardowych można wybrać własną przestrzeń nazw — na przykład MyApp/OrderService. Metryki w różnych przestrzeniach nazw są całkowicie od siebie odizolowane, nawet jeśli mają tę samą nazwę.

# 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

Wymiary: filtrowanie metryk

Wymiary to pary klucz-wartość, które jednoznacznie identyfikują metrykę w przestrzeni nazw. Na przykład w przestrzeni nazw AWS/EC2 metrykę CPUUtilization można filtrować według wymiaru InstanceId=i-0123456789abcdef0, aby wyświetlić jedną konkretną instancję, albo według AutoScalingGroupName=my-asg, aby wyświetlić zagregowaną metrykę dla całej floty. Pojedyncza metryka może mieć maksymalnie 30 wymiarów, a AWS z góry określa, które wymiary są dostępne dla metryk poszczególnych usług.

# 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

Monitorowanie standardowe a szczegółowe

Domyślnie usługi AWS publikują metryki w CloudWatch w 5-minutowych odstępach (monitorowanie standardowe) bez dodatkowych opłat. W przypadku obciążeń wymagających szybkiej reakcji można włączyć monitorowanie szczegółowe, aby uzyskać rozdzielczość 1-minutową. Monitorowanie szczegółowe jest dostępne dla EC2, Auto Scaling, ELB, RDS i innych usług — wiąże się z dodatkowymi opłatami za CloudWatch. Na egzamin SAA-C03 należy pamiętać, że zasady Auto Scaling wykorzystujące skalowanie krokowe opierają się na alarmach CloudWatch, które działają lepiej z metrykami 1-minutowymi.

# 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'

Publikowanie metryk niestandardowych

Metryki niestandardowe można przesyłać do CloudWatch z dowolnej aplikacji za pomocą interfejsu API put-metric-data lub CloudWatch Agent. Typowe metryki niestandardowe obejmują kluczowe wskaźniki biznesowe (liczbę zamówień na minutę), opóźnienie na poziomie aplikacji, długość kolejki i współczynniki błędów. Metryki niestandardowe są przechowywane przez 15 miesięcy przy zmiennej rozdzielczości, a opłaty są naliczane za każdą metrykę w ujęciu miesięcznym. Obsługiwane są również metryki niestandardowe o wysokiej rozdzielczości (z dokładnością do 1 sekundy), ale ich koszt jest wyższy.

# 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 dla metryk EC2

CloudWatch Agent to agent programowy instalowany na instancjach EC2 (oraz na serwerach lokalnych) w celu zbierania metryk niedostępnych za pośrednictwem wbudowanego hiperwizora EC2, takich jak wykorzystanie pamięci, wolne miejsce na dysku i połączenia sieciowe. Agent zbiera również logi i wysyła je do CloudWatch Logs. Wykorzystanie pamięci jest częstym scenariuszem egzaminacyjnym — NIE jest domyślną metryką EC2 i MUSI być zbierane za pomocą 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

Działania na metrykach i wykrywanie anomalii

Działania na metrykach umożliwiają tworzenie nowych szeregów czasowych przez wykonywanie działań arytmetycznych na istniejących metrykach, bez przechowywania wyniku jako oddzielnej metryki. Na przykład współczynnik błędów można obliczyć bezpośrednio w wyrażeniu pulpitu CloudWatch jako Errors / Requests * 100. Wykrywanie anomalii wykorzystuje uczenie maszynowe do analizy historycznych danych metryk i tworzenia oczekiwanych przedziałów wartości. Można tworzyć alarmy uruchamiane wtedy, gdy metryka wykracza poza te przedziały — nawet jeśli nie ustalono stałego progu.

# 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

Okresy przechowywania metryk

CloudWatch przechowuje metryki przez różny czas zależnie od ich rozdzielczości: punkty danych o rozdzielczości 1 sekundy są przechowywane przez 3 godziny, dane 1-minutowe przez 15 dni, dane 5-minutowe przez 63 dni, a dane 1-godzinne przez 15 miesięcy. CloudWatch automatycznie agreguje dane o wysokiej rozdzielczości do danych o niższej rozdzielczości wraz z upływem czasu. Oznacza to, że podczas analizowania trendów długoterminowych zobaczą Państwo średnie 1-godzinne — a nie pierwotne odczyty 1-minutowe sprzed kilku miesięcy.

Wyświetlanie metryk w konsoli CloudWatch

Konsola CloudWatch udostępnia narzędzia Metrics Explorer i Metrics browser, w których można wybrać dowolną kombinację przestrzeni nazw, metryki i wymiaru oraz zwizualizować dane w czasie. Można nakładać wiele metryk na jeden wykres, zmieniać okresy agregacji i dodawać metryki do pulpitów. Dostęp programistyczny zapewniają interfejsy API GetMetricStatistics i GetMetricData, które zwracają surowe punkty danych lub zagregowane statystyki (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

Najważniejsze metryki EC2 i RDS

Na egzamin SAA-C03 należy znać te kluczowe metryki: EC2 — CPUUtilization, NetworkIn/Out, DiskReadOps/WriteOps (tylko magazyn instancji); domyślnie niedostępne w EC2: pamięć i wolne miejsce na dysku (należy użyć CloudWatch Agent). RDS — DatabaseConnections, FreeStorageSpace, ReadLatency, WriteLatency, ReplicaLag. ELB — RequestCount, TargetResponseTime, UnHealthyHostCount. Lambda — Invocations, Errors, Duration, Throttles, ConcurrentExecutions.

Szybkie sprawdzenie

Sprawdź swoją znajomość zagadnień AWS Solutions Architect (SAA-C03) omawianych w tej lekcji.

Podsumowanie lekcji

W tej lekcji poznali Państwo następujące zagadnienia: przestrzenie nazw organizują metryki według usług i zapobiegają kolizjom nazw, wymiary filtrują metryki do konkretnych zasobów, takich jak pojedyncza instancja EC2 lub ASG, a wykorzystanie pamięci nie jest domyślną metryką EC2 — w tym celu potrzebny jest CloudWatch Agent. W następnej części omówimy alarmy CloudWatch i alarmy złożone służące do automatycznego generowania alertów.

Często zadawane pytania

Czy lekcja „Metryki, przestrzenie nazw i wymiary CloudWatch” jest bezpłatna?

Tak — pełny tekst „Metryki, przestrzenie nazw i wymiary CloudWatch” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cloud & IT Cert Prep, przejdź na CoddyKit PRO. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.

Co nauczysz się w „Metryki, przestrzenie nazw i wymiary CloudWatch”?

Poznać wbudowane metryki usług AWS, publikować niestandardowe metryki z aplikacji oraz filtrować je według wymiarów, aby analizować konkretne zasoby. Ćwiczysz Cloud & IT Cert Prep z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Cloud & IT Cert Prep?

Nie wymagamy żadnego doświadczenia. Cloud & IT Cert Prep w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Metryki, przestrzenie nazw i wymiary CloudWatch”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Cloud & IT Cert Prep?

Tak. Każda lekcja Cloud & IT Cert Prep zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Metryki, przestrzenie nazw i wymiary CloudWatch
  2. Alarmy CloudWatch i alarmy złożone
  3. Dzienniki CloudWatch i Log Insights
  4. Panele CloudWatch i Container Insights
← Powrót do Cloud & IT Cert Prep