我在 JSON 檔案中有指標回應,我想將指標“Size”和“fileCreatedAt”發送到 Cloudwatch。將來,我想從 AWS 的 S3 存盤桶中獲取指標,但現在我想撰寫一個示例代碼。
這是 JSON 檔案
{
"nextToken": "sample-token",
"files": [
{
"id": "xxxa",
"fileCreatedAt": "2021",
"size": 1234,
"dataSourceId": "xx32"
},
{
"id": "xxxb",
"fileCreatedAt": "2022",
"size": 3560,
"dataSourceId": "xx33"
},
{
"id": "xxxa",
"fileCreatedAt": "2021",
"size": 1234,
"dataSourceId": "xx32"
},
{
"id": "xxxb",
"fileCreatedAt": "2022",
"size": 3560,
"dataSourceId": "xx33"
}
]
}
boto3 示例代碼
import json
import boto3
import botocore
import logging
from datetime import datetime
from datetime import timedelta
def lambda_handler(event, context):
# TODO implement
s3_client = boto3.client('s3')
cw_client = boto3.client('cloudwatch')
response = s3_client.get_object(Bucket='myawsjsonbucket',Key='sample.json')
metric_response = cw_client.put_metric_data( Namespace='JSON/AWS',
MetricData=[
{
'MetricName': 'filesize',
'Dimensions': [
{
"Name": "size",
"Value": "some unique value"
},
],
'Value': size,
'Timestamp': datetime.now()
},
{
'MetricName': 'fileCreatedAt',
'Dimensions': [
{
"Name": "fileCreatedAt",
"Value": "some unique value"
},
],
'Value': fileCreatedAt,
'Timestamp': datetime.now()
},
]
)
print(response)
我嘗試撰寫代碼以從 JSON 檔案中的指標回應中讀取指標,并使用 boto3 傳輸指標。不幸的是,我被 boto 代碼卡住了,我不知道如何繼續。
uj5u.com熱心網友回復:
如docs中所述,您可以在單個請求和多個請求中發送指標,根據輸入頻率您覺得有效率
您可以使用 MetricDatum 結構中的 Values 和 Counts 欄位來發布 Value 欄位中的單個資料點或值陣列以及每個值在該期間出現的次數。使用 Values and Counts 方法,您可以通過一個 PutMetricData 請求為每個指標發布最多 150 個值,并支持檢索此資料的百分位數統計資訊。
對于 HTTP POST 請求,每個 PutMetricData 請求的大小限制為 1 MB。您可以發送通過 gzip 壓縮的有效負載。每個請求也限制為不超過 1000 個不同的指標。
根據您的代碼段,您必須像這樣提出請求
client.put_metric_data(
Namespace='JSON/AWS',
MetricData=[
{
'MetricName': 'filesize',
'Dimensions': [
{
"Name": "Size",
"Value": "some unique value"
},
],
'Value': size,
'Timestamp': datetime.datetime.now()
},
{
'MetricName': 'fileCreatedAt',
'Dimensions': [
{
"Name": "fileCreatedAt",
"Value": "some unique value"
},
],
'Value': fileCreatedAt,
'Timestamp': datetime.datetime.now()
},
]
)
有dimension2 個屬性name,value用作維度的唯一識別符號(我保留some unique value它以便可以為某些分組邏輯制作,否則對于每個檔案大小,您將有多個維度)。為了傳遞value維度,您必須在Value屬性中傳遞它。
dimension檔案中存在的解釋
維度是一個名稱/值對,它是度量標識的一部分。因為維度是指標唯一識別符號的一部分,所以每當您向其中一個指標添加唯一名稱/值對時,您就是在創建該指標的新變體。例如,許多 Amazon EC2 指標將 InstanceId 發布為維度名稱,并將實際實體 ID 發布為該維度的值。
您最多可以為一個指標分配 30 個維度。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/515178.html
