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 AWS Solutions Architect 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 AWS Solutions Architect, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AWS Solutions Architect 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 -uWymiary: 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 AverageMonitorowanie 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-linuxDział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:00ZOkresy 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 MaximumNajważ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 AWS Solutions Architect, przejdź na CoddyKit PRO. Kurs AWS Solutions Architect 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 AWS Solutions Architect 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ąć AWS Solutions Architect?
Nie wymagamy żadnego doświadczenia. AWS Solutions Architect 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 AWS Solutions Architect?
Tak. Każda lekcja AWS Solutions Architect 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
- Metryki, przestrzenie nazw i wymiary CloudWatch
- Alarmy CloudWatch i alarmy złożone
- Dzienniki CloudWatch i Log Insights
- Panele CloudWatch i Container Insights