Przedstawienie wskaźników sprzedaży dla usługi zarządzanej przez Amazon dla firmy Prometheus

3 czerwca 2022

Autorzy mają przyjemność ogłosić, że Amazon Managed Service for Prometheus udostępnia teraz metryki użytkowania Amazon CloudWatch.

Te metryki mogą pomóc w uzyskaniu lepszego wglądu w obszar roboczy Amazon Managed Service for Prometheus. Pora przyjrzeć się, jak możesz wykorzystać te nowe metryki użytkowania Prometheus w CloudWatch.

Skonfigurowano nowe obciążenie składające się z dwóch instancji Amazon EC2, z których każda działa w Prometheusie i zdalnie zapisuje metryki do obszaru roboczego Amazon Managed Service for Prometheus. Ponadto w wybranym obszarze roboczym ustalono pewne reguły, aby ostrzegać o wysokim lub niskim wykorzystaniu procesora. Reguły alertów, które są używane, prezentują się następująco:

YAML:

groups:
- name: example
  rules:
  - alert: HostHighCpuLoad
    expr: 100 - (avg(rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) > 60
    for: 5m
    labels:
      severity: warning
      event_type: scale_up
    annotations:
      summary: Host high CPU load (instance {{ $labels.instance }})
      description: "CPU load is > 60%\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"
  - alert: HostLowCpuLoad
    expr: 100 - (avg(rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) < 30
    for: 5m
    labels:
      severity: warning
      event_type: scale_down
    annotations:
      summary: Host low CPU load (instance {{ $labels.instance }})
      description: "CPU load is < 30%\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"

Dodatkowo skonfigurowano managera alertów do wysyłania alertów do tematu Amazon Simple Notification Service (Amazon SNS). Konfiguracja managera alertów wygląda tak:

YAML:

alertmanager_config: |
  route: 
    receiver: default_receiver
    repeat_interval: 5m
        
  receivers:
    - name: default_receiver
      sns_configs:
        - topic_arn: <arn of SNS topic goes here>
          send_resolved: false
          sigv4:
            region: us-east-2
          message: |
            alert_type: {{ .CommonLabels.alertname }}
            event_type: {{ .CommonLabels.event_type }}

Przyglądając się przestrzeni nazw metryki CloudWatch Usage, wybierz IngestionRate i ActiveSeries, aby weryfikować i monitorować użycie względem limitów usług, jak pokazano na poniższym rysunku. Jeśli zauważysz, że którykolwiek z tych wskaźników zbliża się do limitu Twojego konta, możesz poprosić o zwiększenie limitu za pomocą konsoli wsparcia AWS.

Figure 1: CloudWatch metrics for IngestionRate and ActiveSeries for an Amazon Managed Service for Prometheus workspace.

Rysunek 1: Wskaźniki CloudWatch dla wskaźnika pozyskiwania i aktywnych serii dla usługi zarządzanej przez Amazon dla obszaru roboczego Prometheus.

Mógłbyś również przejrzeć metrykę DiscardedSamples w przestrzeni nazw AWS/Prometheus. Wyświetlenie wartości niezerowych w metryce DiscardedSamples może wskazywać, że obciążenie jest ograniczane z powodu przydziału usługi Amazon Managed Service for Prometheus.

Następny krok polega na przeanalizowaniu metryki, aby upewnić się, że reguły i alerty usługi Amazon Managed Service for Prometheus działają prawidłowo. Możesz przejrzeć RuleEvaluationFailures i RuleGroupInterationsMissed w przestrzeni nazw AWS/Prometheus, aby sprawdzić, czy występują jakiekolwiek problemy z utworzonymi regułami. Po przejrzeniu tych metryk spójrz na wskaźniki AlertManagerAlertsReceived i AlertManagerNotificationsFailed w przestrzeni nazw AWS/Prometheus.

Możesz zauważyć, że Twój obszar roboczy nie wysyła alertów. Faktycznie, patrząc na wskaźniki AlertManagerAlertsReceived i AlertManagerNotificationsFailed, nietrudno zauważyć, że manager alertów otrzymał alerty (niebieska linia), ale miał problemy z ich przetwarzaniem (czerwona linia), jak pokazano na poniższym rysunku.

Rysunek 2: Wskaźniki CloudWatch dla AlertManagerAlertsReceived i AlertManagerNotificationsFailed dla obszaru roboczego Amazon Managed Service for Prometheus.

Rysunek 2: Wskaźniki CloudWatch dla AlertManagerAlertsReceived i AlertManagerNotificationsFailed dla obszaru roboczego Amazon Managed Service for Prometheus.

Przeglądając definicję managera alertów dla obszaru roboczego z pewnością odkryjesz, że temat SNS nie pozwala na publikowanie wiadomości w obszarze roboczym. Po naprawieniu problemu z uprawnieniami przez przyznanie usłudze Amazon Managed Service dla usługi Prometheus uprawnień sns:Publish i sns:GetTopicAttributes w temacie SNS, wskaźnik AlertManagerNotificationsFailed spada do zera. Oznacza to, że alerty są teraz pomyślnie przetwarzane.

W powyższym artykule zademonstrowano wykorzystanie metryk sprzedaży w ramach Amazon Managed Service for Prometheus. Pokazano, jak monitorować wykorzystanie obszaru roboczego pod kątem przydziałów usług i jednocześnie przedstawiono, w jaki sposób te metryki pomogły w identyfikacji problemu dotyczącego konfiguracji menedżera alertów. Wskaźniki sprzedaży są udostępniane bezpłatnie.

Możesz użyć tych wskaźników, aby zweryfikować i monitorować swoje użycie pod kątem przydziałów, a także sprawdzić, czy reguły i alerty działają zgodnie z oczekiwaniami. W następnym kroku przejrzyj metryki w konsoli CloudWatch, aby upewnić się, że stos monitorowania działa poprawnie.

źródło: AWS

Case Studies
Referencje

Firma Hostersi pozwoliła nam osadzić ogólne zagadnienia programu Well Architected Framework w kontekście naszej firmy. Oszczędziło nam to wiele czasu i pozwoliło znaleźć lepiej dopasowane rozwiązania do specyfiki naszego biznesu. WAF był świetnym katalizatorem do wprowadzenie szeregu zmian w obszarze niezawodności, szybkości i bezpieczeństwa edrone. 

Piotr Stachowicz
CTO
W skrócie o nas
Specjalizujemy się w dostarczaniu rozwiązań IT w obszarach projektowania infrastruktury serwerowej, wdrażania chmury obliczeniowej, opieki administracyjnej i bezpieczeństwa danych.