DataDog / datadogpy

The Datadog Python library
https://datadoghq.com/
Other
609 stars 303 forks source link

Normalize namespace and metric names. #747

Open walerian777 opened 1 year ago

walerian777 commented 1 year ago

What does this PR do?

According to the documentation metric names contain only ASCII alphanumerics, underscores, and periods, while other characters are converted to underscores.

Invalid names can lead to malformed dogstatsd packets being created.

It solves #740.

Description of the Change

This commit ensures we replace all invalid characters with underscores for both namespaces and metric names.

A similar thing has been already done for tags in #489 and #517, so I followed the example.

Possible Drawbacks

Performance cost due to string manipulation - partially addressed by using cache.

Verification Process

Tested manually. Added unit tests.

Release Notes

If some metrics with invalid names were successfully pushed, this might impose backward incompatibility.

Review checklist (to be filled by reviewers)

github-actions[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had activity in the last 30 days. Note that the issue will not be automatically closed, but this notification will remind us to investigate why there's been inactivity.