Logging en metrics met Amazon CloudWatch

Applicaties implementeren op AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Is hij down?

  • Een klant zegt dat de app stuk is
  • Je hebt geen data om het te bevestigen of ontkrachten
  • CloudWatch maakt giswerk tot antwoorden

Een monitoringdashboard met een vraagteken: is de service gezond of down?

Applicaties implementeren op AWS

Logging vs monitoring vs observability

Diagram met drie kolommen: logging als onveranderlijke gebeurtenissen, monitoring als metriekdrempels met alarms, en observability als het correleren van data om nieuwe vragen te beantwoorden

  • Logging: leg losse events vast terwijl ze gebeuren
  • Monitoring: volg bekende metrics versus drempels
  • Observability: stel nieuwe vragen aan je data
  • Je hebt alle drie nodig om met vertrouwen te opereren
Applicaties implementeren op AWS

Log groups, log streams en retention

  • Log group: benoemde container voor gerelateerde logs
  • Log stream: een reeks uit één bron
  • Retention: hoe lang logs bewaard blijven
  • Logs kosten geld; stel retention bewust in

CloudWatch Logs-hiërarchie: log group met meerdere log streams; elke stream toont tijdgeordende events; met retention-instelling en kostenvermelding

Applicaties implementeren op AWS

Metrics en custom metrics

  • Metrics: tijdreeksen met numerieke data
  • AWS publiceert veel servicemetrics automatisch
  • Custom metrics: cijfers die je app uitstuurt
  • Dimensions snijden een metric op attribuut

CloudWatch-metrics: links automatisch gepubliceerde AWS-servicemetrics, rechts custom metric met dimensions, en een tijdreeksdiagram met drempellijn voor alarm

Applicaties implementeren op AWS

Het embedded metric format

Eén gestructureerde logregel bevat je metriekwaarden plus een _aws-blok dat CloudWatch vertelt welke velden metrics zijn:

{
  "_aws": {
    "CloudWatchMetrics": [
      {
        "Namespace": "OrdersApp",
        "Dimensions": [["customerTier"]],
        "Metrics": [{ "Name": "OrderLatencyMs", "Unit": "Milliseconds" }]
      }
    ]
  },
  "customerTier": "premium",
  "OrderLatencyMs": 142
}
Applicaties implementeren op AWS

Dashboards en alarms

CloudWatch-dashboard met widgetpaneel links en alarm-toestandsmachine met OK, ALARM en INSUFFICIENT_DATA rechts; SNS stuurt meldingen door naar e-mail en automation

  • Dashboard: één scherm met grafieken en widgets
  • Alarm: triggert als een metric een drempel kruist
  • Alarms gaan naar SNS, daarna e-mail, SMS of automation
  • Alarmeer op symptomen die gebruikers voelen, niet op elke metric
Applicaties implementeren op AWS

Een gestructureerde loggingstrategie

  • Log als JSON, niet als vrije tekst
  • Neem timestamp, level, request ID, user ID op
  • Gestructureerde velden zijn te filteren en te bevragen
  • Consistentie tussen services maakt correlatie mogelijk

Gestructureerde JSON-logregel met timestamp-, level-, requestId- en userId-velden, en een Logs Insights-query die laat zien hoe benoemde velden precies filteren en aggregeren mogelijk maken

Applicaties implementeren op AWS

Laten we oefenen!

Applicaties implementeren op AWS

Preparing Video For Download...