cloudwatch API เพื่อดึงเมตริก TransitGatewayAttachment ผ่าน python ไม่ทำงาน

Oct 03 2020

ฉันสามารถดึงเมตริก transitgateway ได้โดยใช้รหัสด้านล่าง แต่ใช้ไม่ได้เมื่อฉันทำกับไฟล์แนบ tgw แต่ฉันรู้ว่ามีสถิติเนื่องจากแดชบอร์ดผู้จัดการเครือข่ายแสดงเมตริกสำหรับ tgw และสิ่งที่แนบมาทั้งหมดและสร้างกราฟค่าต่างๆ

โค้ดด้านล่างใช้งานได้และฉันได้รับอาร์เรย์ตอบกลับสำหรับ tgw พื้นที่ได้รับการตั้งค่าอย่างถูกต้องเป็นต้นไฟล์แนบ tgw อยู่ในภูมิภาคเดียวกันดังนั้นฉันจึงใช้วัตถุ cloudwatch เดียวกัน

ช่วงเวลาที่ถามนั้นเหมือนกันสำหรับทั้งไฟล์แนบ tgw และ tgw และทั้งคู่สร้างขึ้นพร้อมกันดังนั้นฉันค่อนข้างแน่ใจว่ามันไม่ใช่ปัญหาเรื่องช่วงเวลา

response = cloudwatch.get_metric_data(
MetricDataQueries=[
    {
        'Id': 'm1',
        'MetricStat': {
            'Metric': {
                'Namespace': 'AWS/TransitGateway',
                'MetricName': 'BytesIn',
                'Dimensions': [
                    {
                        'Name': 'TransitGateway',
                        'Value': 'tgw-0456c4c6fe596f58b',
                    },
                ]
            },
            'Period': 360,
            'Stat': 'Sum',  
            'Unit': 'None'
        },
        'ReturnData': True,
    },
],
StartTime=datetime(2020, 10, 1),
EndTime=datetime.now(),
)

โค้ดด้านล่างนำอาร์เรย์ว่างกลับมาโค้ดส่งคืนคือ 200 และไม่บ่นเกี่ยวกับไวยากรณ์ รหัสแนบ tgw ถูกต้องและแนบมากับ tgw ด้านบน ฉันรู้ว่าการรองรับเมตริกระบบคลาวด์ tgw แนบแบบละเอียดเกิดขึ้นเมื่อเร็ว ๆ นี้ดังนั้นอาจยังไม่รองรับผ่าน API

response_attach = cloudwatch.get_metric_data(
MetricDataQueries=[
    {
        'Id': 'm1',
        'MetricStat': {
            'Metric': {
                'Namespace': 'AWS/TransitGatewayAttachment',
                'MetricName': 'BytesIn',
                'Dimensions': [
                    {
                        'Name': 'TransitGatewayAttachment',
                        'Value': 'tgw-attach-08ed0e1d3e5f488d8'
                    },
                ]
            },
            'Period': 360,
            'Stat': 'Sum',
            'Unit': 'None'
        },
        'ReturnData': True,
    },
],
StartTime=datetime(2020, 10, 1),
EndTime=datetime.now(),
)

ผลลัพธ์มีลักษณะเช่นนี้ไม่มีผลลัพธ์ของค่าโดยที่โค้ดชุดแรกของ tgw จะส่งกลับอาร์เรย์ในค่า ฉันลองใช้ Stat, Period, MetricName ที่แตกต่างกัน แต่ก็ไม่มีประโยชน์

{'MetricDataResults': [{'Id': 'm1', 'Label': 'BytesIn', 'Timestamps': [], 'Values': [], 'StatusCode': 'Complete'}], 'Messages': [], 'ResponseMetadata': {'RequestId': '495f97d5-5862-49f2-b8d0-91346606c88a', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '495f97d5-5862-49f2-b8d0-91346606c88a', 'content-type': 'text/xml', 'content-length': '490', 'date': 'Sat, 03 Oct 2020 10:57:38 GMT'}, 'RetryAttempts': 0}}

มีอะไรชัดเจนว่าฉันทำผิด? ขอบคุณล่วงหน้า.

คำตอบ

Marcin Oct 03 2020 at 19:18

เนมสเปซของคุณไม่ถูกต้อง:

 'Namespace': 'AWS/TransitGatewayAttachment',

มันควรจะเป็น:

 'Namespace': 'AWS/TransitGateway',

เหตุผลก็TransitGatewayAttachmentคือมิติภายในAWS/TransitGatewayเนมสเปซดังที่อธิบายไว้ใน:

  • เมตริก CloudWatch สำหรับเกตเวย์การขนส่งของคุณ
js9999 Oct 04 2020 at 15:13

ในที่สุดสิ่งนี้ก็ใช้ได้ผลและฉันเชื่อว่ากำลังให้เมตริกไฟล์แนบกับฉัน ดูเหมือนว่าคุณต้องให้ทั้ง tgw และสิ่งที่แนบมาในมิติข้อมูล แต่จะส่งคืนอาร์เรย์ผลลัพธ์เพียง 1 รายการและดูที่มันและเปรียบเทียบเมื่อฉันขอ tgw เท่านั้นดูเหมือนว่าจะเป็นค่าที่ถูกต้องสำหรับไฟล์แนบเท่านั้น

ฉันได้เบาะแสจากการดูคอนโซล cloudwatch mgmt และดูกราฟแท็บแหล่งที่มาแสดงตัวอย่างข้อมูลนี้ด้านล่างและสังเกตเห็นว่าระบุ tgw และไฟล์แนบแม้ว่าจะเป็นเพียงการสร้างกราฟไฟล์แนบเท่านั้น

{
    "view": "timeSeries",
    "stacked": false,
    "metrics": [
        [ "AWS/TransitGateway", "BytesIn", "TransitGatewayAttachment", "tgw-attach-08ed0e1d3e5f488d8", "TransitGateway", "tgw-0456c4c6fe596f58b" ]
    ],
    "region": "us-east-1"
}

รหัสที่ใช้งานได้

response = cloudwatch.get_metric_data(
MetricDataQueries=[
    {
        'Id': 'm1',
        'MetricStat': {
            'Metric': {
                'Namespace': 'AWS/TransitGateway',
                'MetricName': 'BytesIn',
                'Dimensions': [
                    {
                        'Name': 'TransitGateway',
                        'Value': 'tgw-0456c4c6fe596f58b',
                    },
                    {
                        'Name': 'TransitGatewayAttachment',
                        'Value': 'tgw-attach-08ed0e1d3e5f488d8'
                    },
                ]
            },
            'Period': 360, # 3600,
            'Stat': 'Sum',   # 'SampleCount',
            'Unit': 'None'
        },
        'ReturnData': True,
    },
],
StartTime=datetime(2020, 10, 1),
EndTime=datetime.now(),
)