44from typing import Callable , Optional
55
66from aws_lambda_powertools import Logger , Metrics , Tracer
7- from aws_lambda_powertools .metrics import MetricUnit
7+ from aws_lambda_powertools .metrics import MetricResolution , MetricUnit
88from src .config import ApiSettings
99
1010settings = ApiSettings ()
1414metrics .set_default_dimensions (environment = settings .stage , service = "raster-api" )
1515tracer : Tracer = Tracer ()
1616
17- version = settings .git_sha
17+ try :
18+ version = settings .git_sha [:6 ] # short git sha
19+ except TypeError :
20+ version = "unknown"
1821
1922
2023class ObservabilityMiddleware :
@@ -131,6 +134,7 @@ async def _call_downstream():
131134 }
132135 logger .append_keys (fastapi = final_ctx )
133136 logger .info ("Completed request" )
137+ tracer .put_metadata (key = "response" , value = final_ctx )
134138
135139 metrics .add_dimension ("route_template" , route_template )
136140 metrics .add_dimension ("status_family" , status_family )
@@ -140,6 +144,7 @@ async def _call_downstream():
140144 name = "http_request_duration_ms" ,
141145 value = elapsed_ms ,
142146 unit = MetricUnit .Milliseconds ,
147+ resolution = MetricResolution .High ,
143148 )
144149 metrics .add_metric (
145150 name = "http_response_size_bytes" ,
0 commit comments