Logare și metrici cu Amazon CloudWatch

Implementarea aplicațiilor pe AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Este down?

  • Un client spune că aplicația nu funcționează
  • Nu ai date care să confirme sau să infirme
  • CloudWatch transformă presupunerile în răspunsuri

Un dashboard de monitorizare cu un semn de întrebare, nesigur dacă serviciul funcționează sau este down

Implementarea aplicațiilor pe AWS

Logare vs monitorizare vs observabilitate

Diagramă cu trei coloane care distinge logarea ca înregistrări imuabile de evenimente, monitorizarea ca praguri pentru metrici cu alarme și observabilitatea ca interogare a datelor pentru întrebări noi

  • Logare: înregistrează evenimentele discrete pe măsură ce apar
  • Monitorizare: urmărește metrici cunoscute față de praguri
  • Observabilitate: adresează întrebări noi datelor tale
  • Ai nevoie de toate trei pentru a opera cu încredere
Implementarea aplicațiilor pe AWS

Log groups, log streams și retenție

  • Log group: un container cu nume pentru log-uri înrudite
  • Log stream: o secvență dintr-o singură sursă
  • Retenție: cât timp sunt păstrate log-urile
  • Log-urile costă; setează retenția cu atenție

Ierarhia CloudWatch Logs: log group care conține mai multe log stream-uri, fiecare stream afișând o secvență de evenimente ordonată cronologic, cu setarea perioadei de retenție și un indicator de cost

Implementarea aplicațiilor pe AWS

Metrici și metrici personalizate

  • Metrici: date numerice de tip serie de timp
  • AWS publică automat multe metrici de serviciu
  • Metrici personalizate: valori emise de aplicația ta
  • Dimensiunile segmentează o metrică după atribut

Metrici CloudWatch: metrici de serviciu AWS publicate automat în stânga, metrică personalizată cu dimensiuni în dreapta și un grafic de serie de timp cu linie de prag pentru alarmă

Implementarea aplicațiilor pe AWS

Formatul embedded metric

O singură linie de log structurat conține valorile metricilor și un bloc _aws care indică CloudWatch ce câmpuri sunt metrici:

{
  "_aws": {
    "CloudWatchMetrics": [
      {
        "Namespace": "OrdersApp",
        "Dimensions": [["customerTier"]],
        "Metrics": [{ "Name": "OrderLatencyMs", "Unit": "Milliseconds" }]
      }
    ]
  },
  "customerTier": "premium",
  "OrderLatencyMs": 142
}
Implementarea aplicațiilor pe AWS

Dashboard-uri și alarme

Panou widget CloudWatch dashboard în stânga și mașina de stări a alarmei cu stările OK, ALARM și INSUFFICIENT_DATA în dreapta, rutare notificări SNS către email și automatizare

  • Dashboard: un ecran cu grafice și widget-uri
  • Alarmă: se declanșează când o metrică depășește un prag
  • Alarmele sunt rutate prin SNS spre email, SMS sau automatizare
  • Configurează alarme pentru simptomele resimțite de utilizatori, nu pentru orice metrică
Implementarea aplicațiilor pe AWS

O strategie de logare structurată

  • Loghează în format JSON, nu text liber
  • Include timestamp, nivel, ID cerere, ID utilizator
  • Câmpurile structurate pot fi filtrate și interogate
  • Consecvența între servicii permite corelarea datelor

Linie de log JSON structurat cu câmpurile timestamp, level, requestId și userId, și o interogare Logs Insights care demonstrează cum câmpurile cu nume permit filtrarea și agregarea precisă

Implementarea aplicațiilor pe AWS

Hai să exersăm!

Implementarea aplicațiilor pe AWS

Preparing Video For Download...