Skip to content
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

Normalize namespace and metric names. #747

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

walerian777
Copy link

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)

  • Feature or bug fix MUST have appropriate tests (unit, integration, etc...)
  • PR title must be written as a CHANGELOG entry (see why)
  • Files changes must correspond to the primary purpose of the PR as described in the title (small unrelated changes should have their own PR)
  • PR must have one changelog/ label attached. If applicable it should have the backward-incompatible label attached.
  • PR should not have do-not-merge/ label attached.
  • If Applicable, issue must have kind/ and severity/ labels attached at least.

According to the documentation
https://docs.datadoghq.com/metrics/custom_metrics/#naming-custom-metrics
metric names contain only ASCII alphanumerics, underscores,
and periods, while other characters are converted to underscores.

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 DataDog#489 and DataDog#517,
so I followed the example.

It solves DataDog#740.
@walerian777 walerian777 requested review from a team as code owners December 12, 2022 08:30
@github-actions
Copy link

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.

@github-actions github-actions bot added the stale Stale - Bot reminder label Jan 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stale Stale - Bot reminder
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant