เมตริก CloudWatch เนมสเปซ และมิติข้อมูล
ทำความเข้าใจเมตริกบริการ AWS ในตัว เผยแพร่เมตริกแบบกำหนดเองจากแอปพลิเคชัน และกรองด้วยมิติข้อมูลเพื่อเจาะจงทรัพยากรที่ต้องการ
เมตริก CloudWatch เนมสเปซ และมิติข้อมูล เป็นบทเรียน Cloud & IT Cert Prep ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cloud & IT Cert Prep และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cloud & IT Cert Prep มีบทเรียนทั้งหมด 4 บทเรียน
Amazon CloudWatch คืออะไร
Amazon CloudWatch เป็นบริการสังเกตการณ์แบบรวมศูนย์ของ AWS ที่รวบรวมตัวชี้วัด บันทึก และร่องรอยจากทรัพยากรและแอปพลิเคชัน AWS ของคุณ บริการนี้ช่วยให้เห็นภาพสถานะโดยรวมของโครงสร้างพื้นฐาน ตรวจจับความผิดปกติ ตั้งการแจ้งเตือน และตอบสนองต่อการเปลี่ยนแปลงด้านการปฏิบัติการโดยอัตโนมัติ CloudWatch ผสานรวมกับบริการ AWS เกือบทุกบริการอย่างลึกซึ้ง และเป็นเครื่องมือตรวจสอบหลักที่ใช้ทดสอบในข้อสอบ SAA-C03
ทำความเข้าใจตัวชี้วัดของ CloudWatch
ตัวชี้วัดของ CloudWatchคือชุดจุดข้อมูลที่เรียงตามเวลา ซึ่งแสดงค่าของคุณสมบัติที่วัดได้ของทรัพยากรในช่วงเวลาหนึ่ง เช่น CPUUtilization ของอินสแตนซ์ EC2 ที่วัดทุกนาที ตัวชี้วัดจะถูกระบุด้วยเนมสเปซ ชื่อ และมิติ AWS เผยแพร่ตัวชี้วัดในตัวหลายร้อยรายการโดยอัตโนมัติ และคุณสามารถเผยแพร่ตัวชี้วัดแบบกำหนดเองจากโค้ดแอปพลิเคชันหรือสคริปต์ของคุณได้
เนมสเปซ: การจัดระเบียบตัวชี้วัด
เนมสเปซคือพื้นที่จัดเก็บตัวชี้วัดของ CloudWatch ซึ่งป้องกันชื่อซ้ำกันระหว่างตัวชี้วัดจากแหล่งต่าง ๆ บริการ AWS ใช้เนมสเปซ เช่น AWS/EC2, AWS/RDS, AWS/Lambda และ AWS/S3 เมื่อเผยแพร่ตัวชี้วัดแบบกำหนดเอง คุณสามารถเลือกเนมสเปซของตนเองได้ เช่น MyApp/OrderService ตัวชี้วัดในเนมสเปซต่างกันจะแยกออกจากกันอย่างสมบูรณ์ แม้จะใช้ชื่อตัวชี้วัดเดียวกัน
# List all namespaces in your account
aws cloudwatch list-metrics \
--query 'Metrics[].Namespace' \
--output text | tr '\t' '\n' | sort -u
# List metrics in the AWS/EC2 namespace
aws cloudwatch list-metrics \
--namespace AWS/EC2 \
--query 'Metrics[].MetricName' \
--output text | tr '\t' '\n' | sort -uมิติ: การกรองตัวชี้วัด
มิติคือคู่คีย์และค่าที่ใช้ระบุตัวชี้วัดหนึ่ง ๆ ภายในเนมสเปซได้โดยไม่ซ้ำกัน ตัวอย่างเช่น ในเนมสเปซ AWS/EC2 คุณสามารถกรอง CPUUtilization ด้วยมิติ InstanceId=i-0123456789abcdef0 เพื่อดูอินสแตนซ์หนึ่งโดยเฉพาะ หรือกรองด้วย AutoScalingGroupName=my-asg เพื่อดูตัวชี้วัดรวมของกลุ่มอินสแตนซ์ทั้งหมด ตัวชี้วัดหนึ่งรายการมีมิติได้สูงสุด 30 รายการ และ AWS จะกำหนดมิติที่ใช้ได้สำหรับตัวชี้วัดของแต่ละบริการไว้ล่วงหน้า
# Get CPU utilization for a specific EC2 instance
aws cloudwatch get-metric-statistics \
--namespace AWS/EC2 \
--metric-name CPUUtilization \
--dimensions Name=InstanceId,Value=i-0123456789abcdef0 \
--start-time 2024-01-01T00:00:00Z \
--end-time 2024-01-01T01:00:00Z \
--period 300 \
--statistics Averageการตรวจสอบแบบมาตรฐานเทียบกับแบบละเอียด
โดยค่าเริ่มต้น บริการ AWS จะเผยแพร่ตัวชี้วัดไปยัง CloudWatch ทุกช่วงเวลา 5 นาที (การตรวจสอบแบบมาตรฐาน) โดยไม่มีค่าใช้จ่ายเพิ่มเติม สำหรับงานที่ต้องการข้อมูลทันเวลา คุณสามารถเปิดใช้การตรวจสอบแบบละเอียดเพื่อรับความละเอียดระดับ 1 นาที การตรวจสอบแบบละเอียดใช้ได้กับ EC2, Auto Scaling, ELB, RDS และบริการอื่น ๆ แต่มีค่าใช้จ่าย CloudWatch เพิ่มเติม สำหรับ SAA-C03 โปรดจำไว้ว่านโยบาย Auto Scaling ที่ใช้การปรับขนาดแบบขั้นบันไดอาศัยการแจ้งเตือนของ CloudWatch ซึ่งทำงานได้ดีกว่าด้วยตัวชี้วัดทุก 1 นาที
# Enable detailed (1-minute) monitoring for an EC2 instance
aws ec2 monitor-instances \
--instance-ids i-0123456789abcdef0
# Verify monitoring state
aws ec2 describe-instance-status \
--instance-ids i-0123456789abcdef0 \
--query 'InstanceStatuses[].Monitoring'การเผยแพร่ตัวชี้วัดแบบกำหนดเอง
คุณสามารถส่งตัวชี้วัดแบบกำหนดเองไปยัง CloudWatch จากแอปพลิเคชันใดก็ได้โดยใช้ API put-metric-data หรือตัวแทน CloudWatch ตัวชี้วัดแบบกำหนดเองที่พบบ่อย ได้แก่ ตัวชี้วัดประสิทธิภาพทางธุรกิจ (จำนวนคำสั่งซื้อต่อนาที) เวลาแฝงระดับแอปพลิเคชัน ความลึกของคิว และอัตราความผิดพลาด ตัวชี้วัดแบบกำหนดเองจะเก็บรักษาไว้ 15 เดือนด้วยความละเอียดที่ปรับเปลี่ยนได้ และคิดค่าบริการต่อตัวชี้วัดต่อเดือน นอกจากนี้ยังรองรับตัวชี้วัดความละเอียดสูง (ความละเอียดระดับ 1 วินาที) โดยมีค่าใช้จ่ายสูงกว่า
# Publish a custom metric from the CLI
aws cloudwatch put-metric-data \
--namespace 'MyApp/OrderService' \
--metric-name 'OrdersProcessedPerMinute' \
--value 47 \
--unit Count \
--dimensions Environment=Production,Region=us-east-1
# Publish from application code (Python boto3)
# cloudwatch.put_metric_data(
# Namespace='MyApp/OrderService',
# MetricData=[{'MetricName': 'ErrorRate', 'Value': 0.5, 'Unit': 'Percent'}]
# )ตัวแทน CloudWatch สำหรับตัวชี้วัด EC2
ตัวแทน CloudWatchคือซอฟต์แวร์ที่คุณติดตั้งบนอินสแตนซ์ EC2 (รวมถึงเซิร์ฟเวอร์ภายในองค์กร) เพื่อรวบรวมตัวชี้วัดที่ไม่มีให้ผ่านไฮเปอร์ไวเซอร์ EC2 ในตัว เช่น การใช้หน่วยความจำ พื้นที่ดิสก์ และการเชื่อมต่อเครือข่าย ตัวแทนยังรวบรวมบันทึกและส่งไปยัง CloudWatch Logs ด้วย การใช้หน่วยความจำเป็นกรณีที่พบบ่อยในข้อสอบ ซึ่งไม่ใช่ตัวชี้วัด EC2 เริ่มต้น และต้องรวบรวมผ่านตัวแทน CloudWatch
# Install and start the CloudWatch Agent on Amazon Linux 2
sudo yum install -y amazon-cloudwatch-agent
# Use the wizard to generate a config
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
# Start the agent with the generated config
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
-a fetch-config \
-m ec2 \
-s \
-c ssm:/AmazonCloudWatch-linuxคณิตศาสตร์ของตัวชี้วัดและการตรวจจับความผิดปกติ
คณิตศาสตร์ของตัวชี้วัดช่วยให้คุณสร้างอนุกรมเวลาใหม่โดยคำนวณทางคณิตศาสตร์กับตัวชี้วัดที่มีอยู่ โดยไม่ต้องจัดเก็บผลลัพธ์เป็นตัวชี้วัดแยกต่างหาก ตัวอย่างเช่น คุณสามารถคำนวณอัตราความผิดพลาดเป็น Errors / Requests * 100 ได้โดยตรงในนิพจน์ของแดชบอร์ด CloudWatch การตรวจจับความผิดปกติใช้การเรียนรู้ของเครื่องกับข้อมูลตัวชี้วัดในอดีตเพื่อสร้างช่วงค่าที่คาดหมาย และคุณสามารถสร้างการแจ้งเตือนให้ทำงานเมื่อตัวชี้วัดเบี่ยงเบนออกนอกช่วงดังกล่าวได้ แม้จะไม่มีค่าขีดจำกัดตายตัว
# Get metric data using metric math
aws cloudwatch get-metric-data \
--metric-data-queries '[
{"Id":"e1","Expression":"m1/m2*100","Label":"ErrorRate%"},
{"Id":"m1","MetricStat":{"Metric":{"Namespace":"MyApp","MetricName":"Errors"},"Period":60,"Stat":"Sum"}},
{"Id":"m2","MetricStat":{"Metric":{"Namespace":"MyApp","MetricName":"Requests"},"Period":60,"Stat":"Sum"}}
]' \
--start-time 2024-01-01T00:00:00Z \
--end-time 2024-01-01T01:00:00Zช่วงเวลาการเก็บรักษาตัวชี้วัด
CloudWatch จัดเก็บตัวชี้วัดโดยมีระยะเวลาเก็บรักษาแตกต่างกันตามความละเอียด: จุดข้อมูลที่มีความละเอียด 1 วินาทีจะเก็บไว้ 3 ชั่วโมง, ข้อมูลทุก 1 นาทีเก็บไว้15 วัน, ข้อมูลทุก 5 นาทีเก็บไว้63 วัน และข้อมูลทุก 1 ชั่วโมงเก็บไว้15 เดือน CloudWatch จะรวมข้อมูลความละเอียดสูงเป็นข้อมูลความละเอียดต่ำลงโดยอัตโนมัติเมื่อเวลาผ่านไป ดังนั้น หากคุณต้องการวิเคราะห์แนวโน้มระยะยาว คุณจะเห็นค่าเฉลี่ยรายชั่วโมง ไม่ใช่ค่าที่วัดทุก 1 นาทีดั้งเดิมจากหลายเดือนก่อน
การดูตัวชี้วัดในคอนโซล CloudWatch
คอนโซล CloudWatch มีMetrics Explorerและเบราว์เซอร์ตัวชี้วัด ซึ่งให้คุณเลือกชุดเนมสเปซ ตัวชี้วัด และมิติใดก็ได้ แล้วแสดงข้อมูลเป็นภาพตามเวลา คุณสามารถวางตัวชี้วัดหลายรายการซ้อนกันในกราฟเดียว เปลี่ยนช่วงเวลาการรวมข้อมูล และเพิ่มรายการเหล่านั้นลงในแดชบอร์ดได้ สำหรับการเข้าถึงด้วยโปรแกรม API GetMetricStatistics และ GetMetricData จะส่งคืนจุดข้อมูลดิบหรือสถิติรวม (Average, Sum, Minimum, Maximum, SampleCount)
# Get average CPU for all instances in an ASG over the last hour
aws cloudwatch get-metric-statistics \
--namespace AWS/EC2 \
--metric-name CPUUtilization \
--dimensions Name=AutoScalingGroupName,Value=my-asg \
--start-time $(date -u -d '1 hour ago' +%Y-%m-%dT%H:%M:%SZ) \
--end-time $(date -u +%Y-%m-%dT%H:%M:%SZ) \
--period 300 \
--statistics Average Maximumตัวชี้วัดสำคัญของ EC2 และ RDS
สำหรับข้อสอบ SAA-C03 โปรดรู้จักตัวชี้วัดสำคัญเหล่านี้: EC2 — CPUUtilization, NetworkIn/Out, DiskReadOps/WriteOps (เฉพาะพื้นที่จัดเก็บของอินสแตนซ์); สิ่งที่ไม่มีใน EC2 โดยค่าเริ่มต้น: หน่วยความจำและพื้นที่ดิสก์ (ให้ใช้ตัวแทน CloudWatch) RDS — DatabaseConnections, FreeStorageSpace, ReadLatency, WriteLatency, ReplicaLag ELB — RequestCount, TargetResponseTime, UnHealthyHostCount Lambda — Invocations, Errors, Duration, Throttles, ConcurrentExecutions
ตรวจสอบความเข้าใจ
ทดสอบความเข้าใจแนวคิด AWS Solutions Architect (SAA-C03) จากบทเรียนนี้
สรุปบทเรียน
ในบทเรียนนี้ คุณได้เรียนรู้ว่า เนมสเปซจัดระเบียบตัวชี้วัดตามบริการและป้องกันชื่อซ้ำกัน, มิติใช้กรองตัวชี้วัดไปยังทรัพยากรเฉพาะ เช่น อินสแตนซ์ EC2 เดียวหรือ ASG และการใช้หน่วยความจำไม่ใช่ตัวชี้วัด EC2 โดยค่าเริ่มต้น คุณต้องใช้ตัวแทน CloudWatch เพื่อรวบรวมข้อมูลนี้ บทถัดไปเราจะสำรวจการแจ้งเตือนของ CloudWatch และการแจ้งเตือนแบบผสมสำหรับการแจ้งเตือนอัตโนมัติ
คำถามที่พบบ่อย
บทเรียน “เมตริก CloudWatch เนมสเปซ และมิติข้อมูล” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “เมตริก CloudWatch เนมสเปซ และมิติข้อมูล” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cloud & IT Cert Prep ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cloud & IT Cert Prep มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “เมตริก CloudWatch เนมสเปซ และมิติข้อมูล”
ทำความเข้าใจเมตริกบริการ AWS ในตัว เผยแพร่เมตริกแบบกำหนดเองจากแอปพลิเคชัน และกรองด้วยมิติข้อมูลเพื่อเจาะจงทรัพยากรที่ต้องการ คุณปฏิบัติ Cloud & IT Cert Prep ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cloud & IT Cert Prep หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cloud & IT Cert Prep บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “เมตริก CloudWatch เนมสเปซ และมิติข้อมูล” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cloud & IT Cert Prep นี้ได้ไหม
ได้ บทเรียน Cloud & IT Cert Prep ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เมตริก CloudWatch เนมสเปซ และมิติข้อมูล
- การแจ้งเตือน CloudWatch และการแจ้งเตือนแบบผสม
- บันทึก CloudWatch และ Log Insights
- แดชบอร์ด CloudWatch และ Container Insights