Jak doskonale wiecie z poprzedniej serii wpisów Amazon udostępnia narzędzie CloudWatch pozwalające na agregowanie i analizowanie wydajności elementów naszej infrastruktury. Wprawni użytkownicy mogą wykorzystać konsole/wiersz poleceń/interfejs API CloudWatch do ustawiania alarmów i wykonywania różnych zadań – te ostatnie wykonują się na określonych zdarzeniach.
CloudWatch
Korzystanie z Cloudwatch jest niezwykle proste. Przechodzimy do konsoli zarządzania a następnie otwieramy konsolę CloudWatch dostępną również bezpośrednio pod adresem: https://console.aws.amazon.com/cloudwatch/:
Będąc na powyższym ekranie wykonajcie poniższe czynności:
wybierzcie metryki (All metrics) z panelu nawigacji;
na kolejnym ekranie skierujcie się w obszar DynamoDB celem wybrania metryk dla tabeli:
z poziomu panelu może sprawdzić metryki dla wszystkich tabel (Table Metrics) – wybrane metryki możecie zaznaczyć celem np. analizy ruchu i dopasowania jednostek odczytu/zapisu tak, aby nie dochodziło do wspomnianego już kilkukrotnie throttlingu.
Interfejs API
Na tym poziomie zupełnie dla nas wystarczające jest wykorzystanie konsoli CloudWatch. Pamiętajmy jednak, że dostęp do metryk jest również możliwy z poziomu interfejsu API - dzięki temu dostajemy dostęp do szeregu metryk, które opisze już za chwilkę. Tutaj warto zatrzymać się na chwilę i zwrócić uwagę na fakt, że DynamoDB nie wyśle nam metryk z wartością zero – takie wartości zostaną pominięte.
Spójrzmy na najczęściej używane metryki:
ConditionalCheckFailedRequests - metryka zlicza liczbę nieudanych prób zapisu warunkowego do których zaliczamy m.in zapis PutItem. Nieudane zapisy zwiększają tę metrykę o jeden a jednocześnie powoduje błąd zapisu HTTP 400;
ConsumedReadCapacityUnits - metryka określa ilościowo jednostki pojemności odczytu zużywane w określonym przedziale czasu. Ich analiza może być przydatna do zbadania zużycia jednostek odczytu dla poszczególnych tabel i indeksów;
ConsumedWriteCapacityUnits - metryka określa ilościowo jednostki zapisu zużywane w określonym przedziale czasu. Podobnie jak w poprzednim przypadku analiza może posłużyć do zbadania jednostek zapisu poszczególnych tabel czy indeksów;
ReadThrottleEvents - metryka określa ilościowo żądania przekraczające udostępnione jednostki przepustowości w odczytach tabel/indeksów. Wartość metryki przyrasta przy każdej operacji powodującej throttling (przekrocznie jednostek). Warto pamiętać, że do statystyk zaliczają się operacje wsadowe (batch) z każdorazowym przekroczeniem;
ReturnedBytes - metryka zwraca ilość bajtów zwróconych w operacjach pobierania danych w określonym przedziale czasu;
ReturnedItemCount - metryka określa ilościowo elementy zwrócone w operacjach Query oraz Scan w określonym przedziale czasu. Metryka odnosi się tylko do elementów zwróconych a nie zewaluowanych – ta wartośc jest zwykle zupełnie inna.