import json
def handler(event, context):
print(json.dumps({
"_aws": {
"Timestamp": 1705312200000,
"CloudWatchMetrics": [{
"Namespace": "MyApp",
"Dimensions": [["Service"]],
"Metrics": [{"Name": "ProcessingTime", "Unit": "Milliseconds"}]
}]
},
"Service": "OrderService",
"ProcessingTime": 150
}))
import boto3
cw = boto3.client('cloudwatch')
cw.put_metric_data(
Namespace='MyApp',
MetricData=[{
'MetricName': 'ActiveConnections',
'Value': 42,
'Unit': 'Count',
'Dimensions': [{'Name': 'Service', 'Value': 'WebServer'}]
}]
)
from aws_lambda_powertools import Metrics
from aws_lambda_powertools.metrics import MetricUnit
metrics = Metrics(namespace="MyApp")
@metrics.log_metrics(capture_cold_start_metric=True)
def handler(event, context):
metrics.add_metric(name="OrdersProcessed", unit=MetricUnit.Count, value=1)
StorageResolution=1 in PutMetricDataExam Tip: EMF = free custom metrics for Lambda. PutMetricData for EC2/ECS. High resolution = 1s granularity. Dimensions = filter/group metrics.