What best practices are recommended for naming metrics and tags?
Naming convention is an art and possibly one of the most difficult decisions to agree on. Defining a naming convention for your metrics, tags, and services is crucial to have a clean, readable, and maintainable telemetry data. Here are some recommendations:
- Provide descriptive and meaningful names: the metrics or tags clearly describe the purpose or meaning of the value.
- Adhere to the format and limitations described below.
- Avoid abbreviations that might have multiple meanings
- Maintain consistency across all teams, apps, and services.
- Avoid reserved keywords that might cause clashes with the other tags or metrics.
- In the case of metrics, prefix them with a namespace depicting the application or service generating the data.
- Avoid the use of personal and sensitive data of any kind.
Rules and best practices for naming metrics
- Metric names must start with a letter.
- Can only contain ASCII alphanumerics, underscores, and periods. Other characters are converted to underscores.
- Should not exceed 200 characters (though less than 100 is generally preferred from a UI perspective)
- Unicode is not supported.
Metrics reported by the Agent are in a pseudo-hierarchical dotted format, for example: http.nginx.response_time
. This is described as pseudo-hierarchical because a hierarchy is not actually enforced, but the structure is used to infer certain relationships, for example: “I see hostA and hostB are reporting http.nginx.*
, those must be web frontends”).
Note: Metric names are case sensitive in Datadog.
As a best practice, Datadog recommends using unified service tagging when assigning tags. Unified service tagging ties Datadog telemetry together through the use of three standard tags: env
, service
, and version
. To learn how to configure your environment with unified tagging, see Unified service tagging.
- Tags must start with a letter.
- May contain alphanumerics, underscores, minuses, colons, periods, and slashes. Other characters are converted to underscores.
- A trailing underscore is removed, whether if it originated from a converted character or if it was in the original tag value.
- Contiguous underscores are reduced to a single underscore.
- Tags can be up to 200 characters long (including both key and value) and support Unicode. Additional characters beyond this limit are truncated.
- Tags are converted to lowercase.
- For optimal functionality, it is recommended to use the
key:value
syntax.
Examples of commonly used metric tag keys are instance
, name
, and role
.
Further Reading
Additional helpful documentation, links, and articles: