Best practices and recommendations for tagging

Tagging is a powerful mechanism. However, to reap its benefits, tagging should be used carefully and in a meaningful way. To guide you towards this end, we provide you with specific recommendations and best practices, which are described below. With auto-tagging based on metadata, tags can be generated automatically and assigned to monitored entities with the specific metadata values that Dynatrace detects automatically.

It's strongly recommended that you use tags rather than specific entity names when setting up custom charts, filtered service or host lists, and alerting profiles. Basically, anywhere that you might want to refer to a set of entities, you should use a tag instead of defining a direct reference. This ensures easier maintenance of your system configuration and integrations. Even within highly dynamic environments where new components are added and removed frequently, you can use this approach to ensure that your entity filters (for example, custom-filtered dashboard tiles) remain current even when entities are added and removed from your monitoring environment. Tagging also makes it easier to transport custom configurations from one environment to another.

Whenever you create a dashboard, a chart, or an alerting profile, consider defining tags to refer to the relevant entities. This doesn't mean that you should define generic tags for everything upfront. Tags should be use-case based. However, you should add or define metadata for anything that you think could become important as a basis for tags.

Host metadata and tagging

It's possible to define tags as well as additional metadata for each of the hosts.

It's recommended that you define additional metadata at the deployed system of a host. You should send as much extra metadata as you can. This extra data can be used by Dynatrace to define tags, management zones, or dynamically within charts, dashboards, and more. It's recommended also that you standardize some metadata about your organization. You can save them into the respective config file in an automated fashion during the deployment procedure.

Important aspects to standardize are:

  • Owner/team/business unit/line of business
  • Environment: staging/production
  • Version (if applicable)
  • Importance/severity (relevant for alerting profiles)

For host tags, it's recommended that you not define tags at the deployed system. The reason is that this is cumbersome and requires a lot of preplanning. It's also hard to change. Only do this when what you want to tag rarely changes and you need to create a filter globally (possible example: importance/severity). Another case would be if your way of working requires you to define tags during deployment time in an automated fashion.

Application metadata and tagging

What's recommended for hosts is also valid for applications and processes. Typically, you should think about additional metadata and standard metadata and not about tags.

For applications like WebSphere or Tomcat, you should use the environment variable DT_CUSTOM_PROP to define your metadata. This variable needs to be present at the application startup. For WebSphere, you can do this in the WebSphere console in the JVM section. For Tomcat and others, simply define it as part of the startup script.

With Kubernetes, use Kubernetes annotations to define your metadata. Dynatrace will pick up all annotations automatically. The same is true for AWS. Dynatrace will also pick up AWS tags, but in this case as tags not as metadata. Of course, you can still use them to define additional tags or use them for any other purpose.

To define Dynatrace tags for Cloud Foundry, you can leverage one or more Cloud Foundry service instances that have the name dynatrace as a substring.

Automated tagging

It's recommended that you configure automated tagging rules, based on existing or custom metadata, to define your filter sets for charts, alerting, and more. These tags and rules can be changed and adapted any time and will apply almost immediately without any change to the monitored environment or applications.

CMDB, API and automation

If you have a CMDB where you want to define and maintain your tags, you can do so and use the API to synchronize those tags with Dynatrace. This means you can define tags and assign them to entities via the API. This should be used for common tags that you already maintain in a location outside of Dynatrace.

Management zones

Management zones are an important concept in Dynatrace and of high importance in large environments, as they can make large organizations work. Management zones are based on the same idea as automated tags, but designed for the explicit purpose of defining groups of entities that either belong together or have common security levels.

It's recommended that you define zones for all teams that specify what they are supposed to view and the different lines of business. It also makes sense to add different zones for different support teams, so that the large amount of data is consumable and so that security layers are introduced. Every user can have access to multiple zones. Zones can overlap, so you don't need to worry about assigning one entity to a specific zone. Shared entities can therefore be in many or all zones.

The best way to create management zones is to define rules based on your entities metadata (including custom metadata). However, if you want to maintain your management zones outside of Dynatrace, you can also base them on tags.

Problems, management zones, and tags

Problems can also be filtered by tags. This basically means that one can focus on problems related to entities with a specific tag. This is also how notification integration can leverage tags. One can define to only send problems that concern entities with a certain tag to a specific notification integration.

Naming rules and naming conventions

Dynatrace automatically provides names, but they don’t enable you to quickly identify where an application or service belongs to. To achieve this, it's recommended that you use service naming rules and process group naming rules. This can be done in Dynatrace using metadata imported from the monitored applications.

It's highly recommended that you prefix process groups and applications with a designation related to business units (BU or LOB) or other owner designation. Such naming standard will be applied automatically to new and existing entities and can be enhanced in the future based on newly arising needs. This is also one of the reasons why it makes sense to define a minimal set of metadata that every application can provide.