Skip to content

Commit 92ec3b8

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

14 files changed

+129
-3
lines changed

Diff for: datadog_lambda/metric.py

+14
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+
)

Diff for: datadog_lambda/span_pointers.py

+4
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:

Diff for: tests/integration/snapshots/logs/async-metrics_python310.log

+9
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,

Diff for: tests/integration/snapshots/logs/async-metrics_python311.log

+9
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,

Diff for: tests/integration/snapshots/logs/async-metrics_python312.log

+9
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,

Diff for: tests/integration/snapshots/logs/async-metrics_python313.log

+9
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,

Diff for: tests/integration/snapshots/logs/async-metrics_python38.log

+9
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,

Diff for: tests/integration/snapshots/logs/async-metrics_python39.log

+9
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,

Diff for: tests/integration/snapshots/logs/sync-metrics_python310.log

+9
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
{

Diff for: tests/integration/snapshots/logs/sync-metrics_python311.log

+9
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
{

Diff for: tests/integration/snapshots/logs/sync-metrics_python312.log

+10-1
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,15 @@ START
207207
"dd_lambda_layer:datadog-python312_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-python312_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
{
@@ -546,7 +555,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
546555
]
547556
}
548557
HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX
549-
END Duration: XXXX ms Memory Used: XXXX MB
550558
{
551559
"traces": [
552560
[
@@ -585,6 +593,7 @@ END Duration: XXXX ms Memory Used: XXXX MB
585593
]
586594
]
587595
}
596+
END Duration: XXXX ms Memory Used: XXXX MB
588597
START
589598
{
590599
"m": "aws.lambda.enhanced.invocations",

Diff for: tests/integration/snapshots/logs/sync-metrics_python313.log

+10-1
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,15 @@ START
207207
"dd_lambda_layer:datadog-python313_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-python313_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
{
@@ -1302,7 +1311,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
13021311
]
13031312
}
13041313
HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX
1305-
END Duration: XXXX ms Memory Used: XXXX MB
13061314
{
13071315
"traces": [
13081316
[
@@ -1341,6 +1349,7 @@ END Duration: XXXX ms Memory Used: XXXX MB
13411349
]
13421350
]
13431351
}
1352+
END Duration: XXXX ms Memory Used: XXXX MB
13441353
START
13451354
{
13461355
"m": "aws.lambda.enhanced.invocations",

Diff for: tests/integration/snapshots/logs/sync-metrics_python38.log

+9
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,15 @@ START
207207
"dd_lambda_layer:datadog-python38_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-python38_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
{

Diff for: tests/integration/snapshots/logs/sync-metrics_python39.log

+10-1
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,15 @@ START
207207
"dd_lambda_layer:datadog-python39_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-python39_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
{
@@ -368,6 +377,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
368377
]
369378
}
370379
HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX
380+
END Duration: XXXX ms Memory Used: XXXX MB
371381
{
372382
"traces": [
373383
[
@@ -406,7 +416,6 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept
406416
]
407417
]
408418
}
409-
END Duration: XXXX ms Memory Used: XXXX MB
410419
START
411420
{
412421
"m": "aws.lambda.enhanced.invocations",

0 commit comments

Comments
 (0)