เมตริก CloudWatch

การติดตามและแก้ไขปัญหาบน AWS

John Q. Martin

Principal Consultant

โครงสร้างของเมตริก CloudWatch

 

แผนภาพจุดข้อมูลเมตริก CloudWatch แสดง namespace ชื่อ dimensions timestamp และ unit

การติดตามและแก้ไขปัญหาบน AWS

เมตริก Standard กับ Custom

Standard

  • เผยแพร่อัตโนมัติโดย AWS services
  • EC2: ฟรี 5 นาที, 1 นาทีเมื่อเปิด detailed monitoring
  • ตัวอย่าง: EC2 CPUUtilization, RDS DatabaseConnections, Lambda Invocations

Custom

  • วัดได้ทุกอย่าง: page loads, orders, cache hit rates
  • ควบคุม namespace, dimensions, unit และ resolution ได้เต็มที่
  • แต่ละชุด namespace, name และ dimension จะมีค่าใช้จ่าย
การติดตามและแก้ไขปัญหาบน AWS

ความละเอียดของเมตริก

การเปรียบเทียบความละเอียดของเมตริก CloudWatch ตั้งแต่ 1 วินาทีถึง 5 นาที

  • 1 นาทีสำหรับ production, 5 นาทีสำหรับ dev/test
  • ใช้ 1 วินาทีเมื่อจำเป็นจริงๆ เท่านั้น
  • Standard: อัตโนมัติและฟรี แต่อาจมีช่องว่างข้อมูล
  • Custom: ควบคุมได้เต็มที่ แต่มีค่าใช้จ่ายต่อเมตริก
การติดตามและแก้ไขปัญหาบน AWS

การเผยแพร่เมตริก custom

ไอคอน AWS CLI สำหรับการเผยแพร่เมตริก

  • CLI ด้วย put-metric-data สำหรับทดสอบอย่างรวดเร็ว

ไอคอนสำหรับการเผยแพร่เมตริก custom ผ่าน REST API

  • REST API ผ่าน HTTP POST สำหรับการผสานรวมโดยตรง

ไอคอน Amazon SDK สำหรับการเผยแพร่เมตริก

  • Amazon SDK

ไอคอน CloudWatch Unified Agent

  • CloudWatch Unified Agent
การติดตามและแก้ไขปัญหาบน AWS

การเผยแพร่ด้วย CLI

   


aws cloudwatch put-metric-data \
  --namespace "Pipeline/DeployDb" \
  --metric-name "stepDuration" \
  --dimensions Name=Pipeline,Value=ProdApp01 \
  --value 42 \
  --unit "Seconds"

 

ไอคอน AWS CLI สำหรับการเผยแพร่เมตริก

  • ใช้ได้กับทุกสิ่งที่เรียก CLI ได้
  • ใช้ประโยชน์จาก Dimensions
การติดตามและแก้ไขปัญหาบน AWS

การเผยแพร่ด้วย SDK

  ตัวอย่างโค้ด C# ที่ใช้ Amazon CloudWatch SDK เพื่อเผยแพร่เมตริก custom

 

ไอคอน Amazon SDK สำหรับการเผยแพร่เมตริก

  • SDK สำหรับ C#, Java, Go, Rust และอื่นๆ
  • เผยแพร่เมตริกจากโค้ดแอปพลิเคชัน
  • Dimensions ช่วยแบ่งเมตริกตามส่วนต่างๆ ของแอป
การติดตามและแก้ไขปัญหาบน AWS

Unified Agent

ไฟล์ JSON config ของ CloudWatch Unified Agent ที่กำหนดเมตริกและช่วงเวลาเก็บข้อมูล

ไอคอน CloudWatch Unified Agent

  • เก็บเมตริกและ log ระดับ OS
  • ทำงานบน EC2 instances หรือ containers
  • JSON config กำหนดสิ่งที่ต้องการเก็บ
  • ปรับช่วงเวลาเก็บข้อมูลได้แต่ละเมตริก
การติดตามและแก้ไขปัญหาบน AWS

Embedded Metric Format (EMF)

{
  "_aws": {
    "CloudWatchMetrics": [{
      "Namespace": "MyApp",
      "Dimensions": [["functionName"]],
      "Metrics": [{"Name": "latency", "Unit": "Milliseconds"}]
    }]
  },
  "functionName": "checkout",
  "latency": 56
}

 

  • เขียนเมตริกเป็น JSON แบบมีโครงสร้างใน log
  • CloudWatch ดึงเมตริกออกมาโดยอัตโนมัติ
  • เหมาะสำหรับ Lambda และ containers ไม่ต้องเรียก API เพิ่ม
  • ได้ทั้งเมตริกและ log จากการเขียนครั้งเดียว
การติดตามและแก้ไขปัญหาบน AWS

Metric streams

 

  • ส่งออกข้อมูลไปยังปลายทางภายนอกอย่างต่อเนื่อง
  • S3 หรือพาร์ทเนอร์อย่าง New Relic, Datadog
  • วิเคราะห์ข้อมูลได้ลึกกว่า CloudWatch เพียงอย่างเดียว
  • มองเห็นภาพรวม hybrid cloud ในที่เดียว

แผนภาพภาพรวมของ CloudWatch metric streams ที่ส่งออกข้อมูลไปยังปลายทางภายนอก

การติดตามและแก้ไขปัญหาบน AWS

การสตรีมไปยัง Amazon S3

แผนภาพการสตรีมเมตริกจาก CloudWatch ผ่าน Kinesis Data Firehose ไปยัง S3 bucket

การติดตามและแก้ไขปัญหาบน AWS

การสตรีมไปยัง partner solution

แผนภาพการสตรีมเมตริกผ่าน Kinesis Firehose ไปยัง endpoint ของ partner solution พร้อม S3 backup

การติดตามและแก้ไขปัญหาบน AWS

สรุป

เมตริกและ Custom Metrics

  • วัดคุณลักษณะของ workloads
  • Custom metrics สำหรับแอปพลิเคชันของคุณ
  • ใช้ประโยชน์จาก Dimensions

 

ความละเอียดสำหรับการตรวจจับ

  • Granularity มีความสำคัญ
  • ฟรี vs. มีค่าใช้จ่าย
  • ขึ้นอยู่กับแต่ละ service

การเผยแพร่ Custom Metrics

  • เพิ่ม instrumentation ให้กระบวนการและแอปพลิเคชัน
  • ใช้ Dimensions เพื่อจัดหมวดหมู่
  • เลือก SDK หรือ CLI แทน API โดยตรง

 

Metric streams

  • S3 หรือ partner solution
  • วิเคราะห์ข้อมูลแบบ custom
  • มองเห็นภาพรวมในที่เดียว
การติดตามและแก้ไขปัญหาบน AWS

มาฝึกกันเถอะ!

การติดตามและแก้ไขปัญหาบน AWS

Preparing Video For Download...