Skip to content

feat(metrics): add Datadog observability provider #2906

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 44 commits into from
Aug 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
c940966
add datadog provider
roger-zhangg Aug 1, 2023
8c21a9b
fix poetry lock
roger-zhangg Aug 1, 2023
98f2f05
merging from develop
leandrodamascena Aug 7, 2023
7602e5e
Refactoring Datadog provider with the new BaseProvider
leandrodamascena Aug 9, 2023
68ed6a3
Adding default tags method
leandrodamascena Aug 9, 2023
7790986
Cleaning tests + adding specific comments
leandrodamascena Aug 9, 2023
4acacb7
Fix small things + improving docstring
leandrodamascena Aug 9, 2023
f60a3ba
Fixing minor bugs
leandrodamascena Aug 9, 2023
ccfc641
Merge branch 'develop' into datadog_provider
leandrodamascena Aug 10, 2023
b681d93
Addressing feedback
leandrodamascena Aug 10, 2023
9785e12
rebasing from upstream
leandrodamascena Aug 10, 2023
64e0bbb
Documentation: adding creating metrics
leandrodamascena Aug 10, 2023
84f38d5
Documentation: adding examples
leandrodamascena Aug 10, 2023
ae95c25
Documentation: fixing highlights
leandrodamascena Aug 10, 2023
cf383ac
Documentation: fixing mypy problems 💀
leandrodamascena Aug 10, 2023
a1405af
merging from develop
leandrodamascena Aug 10, 2023
4850ce5
Merge branch 'develop' into datadog_provider
leandrodamascena Aug 11, 2023
15955e7
Addressing Heitor's feedback + improving DX
leandrodamascena Aug 11, 2023
a1c3754
Fix documentantion and add python3.11 as default runtime
leandrodamascena Aug 11, 2023
228001c
Fix documentantion
leandrodamascena Aug 11, 2023
34e9f08
Merge branch 'develop' into datadog_provider
leandrodamascena Aug 14, 2023
4bdf4ff
Moving internal functions to Provider class
leandrodamascena Aug 14, 2023
d8b84de
Adding more information about partners
leandrodamascena Aug 14, 2023
724a2e7
docs(config): collapse by default given nav size
heitorlessa Aug 14, 2023
5e4593c
docs: fix yaml frontmatter issue
heitorlessa Aug 14, 2023
5e95e56
docs: auto-include abbreviations
heitorlessa Aug 14, 2023
6e841c7
docs(nav): move datadog to its own nav
heitorlessa Aug 14, 2023
0467e50
docs(datadog): provide terminologies; feat cleanup
heitorlessa Aug 14, 2023
7c39ded
docs(metrics): correct typo in terminologies
heitorlessa Aug 14, 2023
ed7a567
shorten word
heitorlessa Aug 14, 2023
eb1ee5d
docs(datadog): shorten install
heitorlessa Aug 14, 2023
de11c5c
docs(datadog): simplify add_metrics
heitorlessa Aug 14, 2023
28673c5
docs(datadog): simplify tags, mention new warning
heitorlessa Aug 14, 2023
7888c38
docs(datadog): cleanup default tags
heitorlessa Aug 14, 2023
340b446
docs(datadog): simplify code snippet
heitorlessa Aug 14, 2023
9085e9e
docs(datadog): move forwarder to advanced; cleanup
heitorlessa Aug 14, 2023
f6f20e8
docs(datadog): cleanup flush
heitorlessa Aug 14, 2023
3ed85ee
docs(datadog): correct typo in cold start
heitorlessa Aug 14, 2023
3b0812f
docs: code annotation, move env vars
heitorlessa Aug 14, 2023
f33a719
docs: recommend using Secrets for API Key
heitorlessa Aug 14, 2023
d4c5f8f
Adding tags validation + tests
leandrodamascena Aug 14, 2023
6fd7945
Reverting changes
leandrodamascena Aug 14, 2023
a78b4fc
docs(metrics): add observability providers section
heitorlessa Aug 14, 2023
400486c
Addressing Heitor's feedback
leandrodamascena Aug 14, 2023
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
2 changes: 2 additions & 0 deletions .markdownlintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
docs/core/metrics/index.md
includes/abbreviations.md
2 changes: 2 additions & 0 deletions aws_lambda_powertools/metrics/metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ def lambda_handler():
service name to be used as metric dimension, by default "service_undefined"
namespace : str, optional
Namespace for metrics
provider: AmazonCloudWatchEMFProvider, optional
Pre-configured AmazonCloudWatchEMFProvider provider

Raises
------
Expand Down
9 changes: 7 additions & 2 deletions aws_lambda_powertools/metrics/provider/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -179,8 +179,13 @@ def handler(event, context):
e
Propagate error received
"""
extra_args = {}

default_dimensions = kwargs.get("default_dimensions")
if kwargs.get("default_dimensions"):
extra_args.update({"default_dimensions": kwargs.get("default_dimensions")})

if kwargs.get("default_tags"):
extra_args.update({"default_tags": kwargs.get("default_tags")})

# If handler is None we've been called with parameters
# Return a partial function with args filled
Expand All @@ -190,7 +195,7 @@ def handler(event, context):
self.log_metrics,
capture_cold_start_metric=capture_cold_start_metric,
raise_on_empty_metrics=raise_on_empty_metrics,
default_dimensions=default_dimensions,
**extra_args,
)

@functools.wraps(lambda_handler)
Expand Down
7 changes: 7 additions & 0 deletions aws_lambda_powertools/metrics/provider/datadog/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from aws_lambda_powertools.metrics.provider.datadog.datadog import DatadogProvider
from aws_lambda_powertools.metrics.provider.datadog.metrics import DatadogMetrics

__all__ = [
"DatadogMetrics",
"DatadogProvider",
]
Loading