Skip to content

Commit 92ec3b8

Browse files
authored
Submit metric for DynamoDB Stream Type (DataDog#578)
1 parent 96a6abd commit 92ec3b8

14 files changed

+129
-3
lines changed

datadog_lambda/metric.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,3 +188,17 @@ def submit_errors_metric(lambda_context):
188188
lambda_context (object): Lambda context dict passed to the function by AWS
189189
"""
190190
submit_enhanced_metric("errors", lambda_context)
191+
192+
193+
def submit_dynamodb_stream_type_metric(event):
194+
stream_view_type = (
195+
event.get("Records", [{}])[0].get("dynamodb", {}).get("StreamViewType")
196+
)
197+
if stream_view_type:
198+
lambda_metric(
199+
"datadog.serverless.dynamodb.stream.type",
200+
1,
201+
timestamp=None,
202+
tags=[f"streamtype:{stream_view_type}"],
203+
force_async=True,
204+
)

datadog_lambda/span_pointers.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
from ddtrace._trace._span_pointer import _SpanPointerDirection
88
from ddtrace._trace._span_pointer import _SpanPointerDescription
9+
10+
from datadog_lambda.metric import submit_dynamodb_stream_type_metric
911
from datadog_lambda.trigger import EventTypes
1012

1113

@@ -28,6 +30,8 @@ def calculate_span_pointers(
2830
return _calculate_s3_span_pointers_for_event(event)
2931

3032
elif event_source.equals(EventTypes.DYNAMODB):
33+
# Temporary metric. TODO eventually remove(@nhulston)
34+
submit_dynamodb_stream_type_metric(event)
3135
return _calculate_dynamodb_span_pointers_for_event(event)
3236

3337
except Exception as e:

tests/integration/snapshots/logs/async-metrics_python310.log

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,15 @@ START
188188
"dd_lambda_layer:datadog-python310_X.X.X"
189189
]
190190
}
191+
{
192+
"m": "datadog.serverless.dynamodb.stream.type",
193+
"v": 1,
194+
"e": XXXX,
195+
"t": [
196+
"streamtype:NEW_AND_OLD_IMAGES",
197+
"dd_lambda_layer:datadog-python310_X.X.X"
198+
]
199+
}
191200
{
192201
"m": "hello.dog",
193202
"v": 1,

tests/integration/snapshots/logs/async-metrics_python311.log

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,15 @@ START
188188
"dd_lambda_layer:datadog-python311_X.X.X"
189189
]
190190
}
191+
{
192+
"m": "datadog.serverless.dynamodb.stream.type",
193+
"v": 1,
194+
"e": XXXX,
195+
"t": [
196+
"streamtype:NEW_AND_OLD_IMAGES",
197+
"dd_lambda_layer:datadog-python311_X.X.X"
198+
]
199+
}
191200
{
192201
"m": "hello.dog",
193202
"v": 1,

tests/integration/snapshots/logs/async-metrics_python312.log

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,15 @@ START
188188
"dd_lambda_layer:datadog-python312_X.X.X"
189189
]
190190
}
191+
{
192+
"m": "datadog.serverless.dynamodb.stream.type",
193+
"v": 1,
194+
"e": XXXX,
195+
"t": [
196+
"streamtype:NEW_AND_OLD_IMAGES",
197+
"dd_lambda_layer:datadog-python312_X.X.X"
198+
]
199+
}
191200
{
192201
"m": "hello.dog",
193202
"v": 1,

tests/integration/snapshots/logs/async-metrics_python313.log

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,15 @@ START
188188
"dd_lambda_layer:datadog-python313_X.X.X"
189189
]
190190
}
191+
{
192+
"m": "datadog.serverless.dynamodb.stream.type",
193+
"v": 1,
194+
"e": XXXX,
195+
"t": [
196+
"streamtype:NEW_AND_OLD_IMAGES",
197+
"dd_lambda_layer:datadog-python313_X.X.X"
198+
]
199+
}
191200
{
192201
"m": "hello.dog",
193202
"v": 1,

tests/integration/snapshots/logs/async-metrics_python38.log

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,15 @@ START
188188
"dd_lambda_layer:datadog-python38_X.X.X"
189189
]
190190
}
191+
{
192+
"m": "datadog.serverless.dynamodb.stream.type",
193+
"v": 1,
194+
"e": XXXX,
195+
"t": [
196+
"streamtype:NEW_AND_OLD_IMAGES",
197+
"dd_lambda_layer:datadog-python38_X.X.X"
198+
]
199+
}
191200
{
192201
"m": "hello.dog",
193202
"v": 1,

tests/integration/snapshots/logs/async-metrics_python39.log

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,15 @@ START
188188
"dd_lambda_layer:datadog-python39_X.X.X"
189189
]
190190
}
191+
{
192+
"m": "datadog.serverless.dynamodb.stream.type",
193+
"v": 1,
194+
"e": XXXX,
195+
"t": [
196+
"streamtype:NEW_AND_OLD_IMAGES",
197+
"dd_lambda_layer:datadog-python39_X.X.X"
198+
]
199+
}
191200
{
192201
"m": "hello.dog",
193202
"v": 1,

tests/integration/snapshots/logs/sync-metrics_python310.log

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,15 @@ START
207207
"dd_lambda_layer:datadog-python310_X.X.X"
208208
]
209209
}
210+
{
211+
"m": "datadog.serverless.dynamodb.stream.type",
212+
"v": 1,
213+
"e": XXXX,
214+
"t": [
215+
"streamtype:NEW_AND_OLD_IMAGES",
216+
"dd_lambda_layer:datadog-python310_X.X.X"
217+
]
218+
}
210219
HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX
211220
HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX
212221
{

tests/integration/snapshots/logs/sync-metrics_python311.log

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,15 @@ START
207207
"dd_lambda_layer:datadog-python311_X.X.X"
208208
]
209209
}
210+
{
211+
"m": "datadog.serverless.dynamodb.stream.type",
212+
"v": 1,
213+
"e": XXXX,
214+
"t": [
215+
"streamtype:NEW_AND_OLD_IMAGES",
216+
"dd_lambda_layer:datadog-python311_X.X.X"
217+
]
218+
}
210219
HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX
211220
HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX
212221
{

0 commit comments

Comments
 (0)