Skip to content

Submit metric for DynamoDB Stream Type #578

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions datadog_lambda/metric.py
Original file line number Diff line number Diff line change
Expand Up @@ -188,3 +188,17 @@ def submit_errors_metric(lambda_context):
lambda_context (object): Lambda context dict passed to the function by AWS
"""
submit_enhanced_metric("errors", lambda_context)


def submit_dynamodb_stream_type_metric(event):
stream_view_type = (
event.get("Records", [{}])[0].get("dynamodb", {}).get("StreamViewType")
)
if stream_view_type:
lambda_metric(
"datadog.serverless.dynamodb.stream.type",
1,
timestamp=None,
tags=[f"streamtype:{stream_view_type}"],
force_async=True,
)
4 changes: 4 additions & 0 deletions datadog_lambda/span_pointers.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@

from ddtrace._trace._span_pointer import _SpanPointerDirection
from ddtrace._trace._span_pointer import _SpanPointerDescription

from datadog_lambda.metric import submit_dynamodb_stream_type_metric
from datadog_lambda.trigger import EventTypes


Expand All @@ -28,6 +30,8 @@ def calculate_span_pointers(
return _calculate_s3_span_pointers_for_event(event)

elif event_source.equals(EventTypes.DYNAMODB):
# Temporary metric. TODO eventually remove(@nhulston)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Quality Violation

Suggested change
# Temporary metric. TODO eventually remove(@nhulston)
# Temporary metric. TODO(<owner>) eventually remove(@nhulston)
comments must have ownership (...read more)

When using TODO or FIXME, specify who write the annotation. It's a best practice to remind you who created the annotation and have potential context and information about this issue.

View in Datadog  Leave us feedback  Documentation

submit_dynamodb_stream_type_metric(event)
return _calculate_dynamodb_span_pointers_for_event(event)

except Exception as e:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,15 @@ START
"dd_lambda_layer:datadog-python310_X.X.X"
]
}
{
"m": "datadog.serverless.dynamodb.stream.type",
"v": 1,
"e": XXXX,
"t": [
"streamtype:NEW_AND_OLD_IMAGES",
"dd_lambda_layer:datadog-python310_X.X.X"
]
}
{
"m": "hello.dog",
"v": 1,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,15 @@ START
"dd_lambda_layer:datadog-python311_X.X.X"
]
}
{
"m": "datadog.serverless.dynamodb.stream.type",
"v": 1,
"e": XXXX,
"t": [
"streamtype:NEW_AND_OLD_IMAGES",
"dd_lambda_layer:datadog-python311_X.X.X"
]
}
{
"m": "hello.dog",
"v": 1,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,15 @@ START
"dd_lambda_layer:datadog-python312_X.X.X"
]
}
{
"m": "datadog.serverless.dynamodb.stream.type",
"v": 1,
"e": XXXX,
"t": [
"streamtype:NEW_AND_OLD_IMAGES",
"dd_lambda_layer:datadog-python312_X.X.X"
]
}
{
"m": "hello.dog",
"v": 1,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,15 @@ START
"dd_lambda_layer:datadog-python313_X.X.X"
]
}
{
"m": "datadog.serverless.dynamodb.stream.type",
"v": 1,
"e": XXXX,
"t": [
"streamtype:NEW_AND_OLD_IMAGES",
"dd_lambda_layer:datadog-python313_X.X.X"
]
}
{
"m": "hello.dog",
"v": 1,
Expand Down
9 changes: 9 additions & 0 deletions tests/integration/snapshots/logs/async-metrics_python38.log
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,15 @@ START
"dd_lambda_layer:datadog-python38_X.X.X"
]
}
{
"m": "datadog.serverless.dynamodb.stream.type",
"v": 1,
"e": XXXX,
"t": [
"streamtype:NEW_AND_OLD_IMAGES",
"dd_lambda_layer:datadog-python38_X.X.X"
]
}
{
"m": "hello.dog",
"v": 1,
Expand Down
9 changes: 9 additions & 0 deletions tests/integration/snapshots/logs/async-metrics_python39.log
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,15 @@ START
"dd_lambda_layer:datadog-python39_X.X.X"
]
}
{
"m": "datadog.serverless.dynamodb.stream.type",
"v": 1,
"e": XXXX,
"t": [
"streamtype:NEW_AND_OLD_IMAGES",
"dd_lambda_layer:datadog-python39_X.X.X"
]
}
{
"m": "hello.dog",
"v": 1,
Expand Down
9 changes: 9 additions & 0 deletions tests/integration/snapshots/logs/sync-metrics_python310.log
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,15 @@ START
"dd_lambda_layer:datadog-python310_X.X.X"
]
}
{
"m": "datadog.serverless.dynamodb.stream.type",
"v": 1,
"e": XXXX,
"t": [
"streamtype:NEW_AND_OLD_IMAGES",
"dd_lambda_layer:datadog-python310_X.X.X"
]
}
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
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
{
Expand Down
9 changes: 9 additions & 0 deletions tests/integration/snapshots/logs/sync-metrics_python311.log
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,15 @@ START
"dd_lambda_layer:datadog-python311_X.X.X"
]
}
{
"m": "datadog.serverless.dynamodb.stream.type",
"v": 1,
"e": XXXX,
"t": [
"streamtype:NEW_AND_OLD_IMAGES",
"dd_lambda_layer:datadog-python311_X.X.X"
]
}
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
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
{
Expand Down
11 changes: 10 additions & 1 deletion tests/integration/snapshots/logs/sync-metrics_python312.log
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,15 @@ START
"dd_lambda_layer:datadog-python312_X.X.X"
]
}
{
"m": "datadog.serverless.dynamodb.stream.type",
"v": 1,
"e": XXXX,
"t": [
"streamtype:NEW_AND_OLD_IMAGES",
"dd_lambda_layer:datadog-python312_X.X.X"
]
}
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
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
{
Expand Down Expand Up @@ -546,7 +555,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
]
}
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
END Duration: XXXX ms Memory Used: XXXX MB
{
"traces": [
[
Expand Down Expand Up @@ -585,6 +593,7 @@ END Duration: XXXX ms Memory Used: XXXX MB
]
]
}
END Duration: XXXX ms Memory Used: XXXX MB
START
{
"m": "aws.lambda.enhanced.invocations",
Expand Down
11 changes: 10 additions & 1 deletion tests/integration/snapshots/logs/sync-metrics_python313.log
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,15 @@ START
"dd_lambda_layer:datadog-python313_X.X.X"
]
}
{
"m": "datadog.serverless.dynamodb.stream.type",
"v": 1,
"e": XXXX,
"t": [
"streamtype:NEW_AND_OLD_IMAGES",
"dd_lambda_layer:datadog-python313_X.X.X"
]
}
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
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
{
Expand Down Expand Up @@ -1302,7 +1311,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
]
}
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
END Duration: XXXX ms Memory Used: XXXX MB
{
"traces": [
[
Expand Down Expand Up @@ -1341,6 +1349,7 @@ END Duration: XXXX ms Memory Used: XXXX MB
]
]
}
END Duration: XXXX ms Memory Used: XXXX MB
START
{
"m": "aws.lambda.enhanced.invocations",
Expand Down
9 changes: 9 additions & 0 deletions tests/integration/snapshots/logs/sync-metrics_python38.log
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,15 @@ START
"dd_lambda_layer:datadog-python38_X.X.X"
]
}
{
"m": "datadog.serverless.dynamodb.stream.type",
"v": 1,
"e": XXXX,
"t": [
"streamtype:NEW_AND_OLD_IMAGES",
"dd_lambda_layer:datadog-python38_X.X.X"
]
}
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
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
{
Expand Down
11 changes: 10 additions & 1 deletion tests/integration/snapshots/logs/sync-metrics_python39.log
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,15 @@ START
"dd_lambda_layer:datadog-python39_X.X.X"
]
}
{
"m": "datadog.serverless.dynamodb.stream.type",
"v": 1,
"e": XXXX,
"t": [
"streamtype:NEW_AND_OLD_IMAGES",
"dd_lambda_layer:datadog-python39_X.X.X"
]
}
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
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
{
Expand Down Expand Up @@ -368,6 +377,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
]
}
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
END Duration: XXXX ms Memory Used: XXXX MB
{
"traces": [
[
Expand Down Expand Up @@ -406,7 +416,6 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept
]
]
}
END Duration: XXXX ms Memory Used: XXXX MB
START
{
"m": "aws.lambda.enhanced.invocations",
Expand Down
Loading