Use Server Tagging to query, filter, and compare related servers using custom metadata. You can tag related servers based on OS, location, tier, owner, or any other relevant criteria. Server tags provide additional context to server metrics.

For example, you may want to specify deployment-version tags to the servers in a specific cluster, and then use those tags to identify anomalies in server metrics during a new deployment. 

Server Tagging requires a Server Visibility license. Server Tagging is currently available for Linux, Windows, and Solaris. 

Server Visibility can import the tags (described in the table) automatically.

SourceTagsController and Agent Requirements
Custom

Server Visibility can import:

  • ServerMonitoring.yml and Amazon EC2:
    • Controller >= 20.3
    • Machine Agent >= 20.1
  • Azure VM:
    • Controller >= 20.3
    • Machine Agent >= 22.12
Machine Agent

These tags display in the Server Dashboard under Tags:

  • OS Architecture
  • OS Kernel
  • AppDynamics Agent Version
  • Controller >= 20.3
  • Machine Agent >= 20.1
Amazon Web Services

These tags display in the Server Dashboard under Tags as AWS|<tag>. See Importing Tags from Amazon Web Services.

  • resource-id
  • availability-zone
  • region
  • ami-id
  • instance-type
  • security-group
  • Controller >= 20.3
  • Machine Agent >= 20.1
Microsoft Azure

These tags display in the Server Dashboard under Tags as Azure|<tag>. Microsoft Azure tags are enabled by default and do not have Controller or Agent configuration options.

  • vmId
  • location
  • Controller >= 20.3
  • Machine Agent >= 22.12
Docker

Server Visibility can import user-defined tags and system container-level tags. These display under Container Details > Tags as Docker|<tag>.

The exact set of tags imported can vary depending on the system on which the container is running.

  • Controller >= 20.3
  • Machine Agent >= 20.1

Kubernetes

OpenShift

Server Visibility can import ReplicaSet and pod tags. These appear under Container Details > Tags as K8s|<tag>.
  • Controller >= 20.3
  • Machine Agent >= 20.1


View Servers by Tag in the Controller UI

To view filter servers by tag in the Servers list, select Filters and add the criteria you want for the tag filter. If you specify multiple criteria, the filter performs an AND search (for criteria with different keys) and an OR search (for criteria with the same key). This example shows the tag criteria filters for all servers with:

  1. Tier tag that equals ECommWeb OR ECommInventory, AND
  2. An OS Architecture tag that equals x86_64.

Filters and Servers by Tagging

Define and View Tags for a Server

You can specify custom tags as a set of key-value strings in the Agent config directory. Each Agent can support up to 50 tags by default.

Follow these suggested best practices to define server tags:

If an Agent is deployed in Amazon Web Services, the Agent can auto-detect and import tags defined in AWS. The Controller also auto-assigns a set of default tags to each server.
The primary use case for custom tags is to specify information that is not already specified in AWS and auto-assigned tags. Before you specify custom tags in the Agent config directory, you should review the current set of tags. Access the Server Dashboard and view the Tags pane at the bottom of the page:
Tags Pane

Be careful not to define duplicate tags in the YML file.

Configure the following option in <machine_agent_home>/extensions/ServerMonitoring/ServerMonitoring.yml:

SettingDescription

tag

A list of user-defined tags for the individual server. You can use these tags to query, filter, aggregate, and compare related servers.
Each tag is specified by a key-value pair. You can define tag names up to 127 Unicode characters and tag values up to 255 Unicode characters. Define each key on a separate line. All key-value strings should be within single quotes. If a key has multiple values, delineate the list with commas:
<key>: [ <value> ]  
tags:
    'Location': ['NYC', 'Data Center', 'Server Room 7']
    'Environment': ['preProduction']


Import Tags from Amazon Web Services

Detailed information about Amazon Web Services is outside the scope of AppDynamics documentation.

Before Server Visibility can import tags from AWS, you must set up IAM roles:

  1. Log in to the AWS console: https://console.aws.amazon.com/iam/
  2. Create a role with read access to EC2 tags.
    Specifically, the role must have an AWS Managed Policy with the required permissions (such as, AmazonEC2ReadOnlyAccess) attached. 
  3. Add this role to your EC2 instance.
    For information about these steps, search for "To create an IAM role using the IAM console" and "Attaching an IAM Role to an Instance" in this page
  4. Run the Machine Agent with Amazon Web Services enabled.

Configuration Options for Server Tagging

To edit these settings, log in to the Controller administration console using the root user password. See Access the Administration Console.

Server Visibility PropertyDescriptionDefault
sim.machines.tags.enabled

Enable or disable server tags for all servers

True
sim.machines.tags.aws.enabledEnable or disable the collection of AWS tags for all serversTrue
sim.machines.tags.aws.pollingInterval

Length of time in milliseconds between each polling of AWS tags

21600000
(6 hours)  

sim.machines.tags.maxPerMachineMaximum number of unique tags per account 50
sim.machines.tags.maxPerAccount

Maximum number of unique tags per account

 500

Configuration Options for Docker Tags

You can configure the Machine Agent to collect different types of tags. By default, all tags are collected. To turn off tag collection, set dockerTagsEnabled to "false".

  1. Edit the <machine_agent_home>/extensions/DockerMonitoring/DockerMonitoringConfig.yml file.
  2. Under the containerMonitoringConfig section, set dockerTagsEnabled: "false"

    # WARNING: Before making any changes to this file read the following section carefully
    # 
    # After editing the file, make sure the file follows the yml syntax. Common issues include
    # - Using tabs instead of spaces
    # - File encoding should be UTF-8
    #
    # The safest way to edit this file is to copy paste the examples provided and make the
    # necessary changes using a plain text editor instead of a WYSIWYG editor.
    #
    
    # samplingInterval indicates how often to gather metric data. Units in milliseconds.
    samplingInterval: 30000
    
    containerMonitoringConfig:
        # containerProcessSelectorRegex defines regular expression to evaluate the processes in
        # each running container to be monitored by the machine agent. The regular expression is
        # compared against each process full command line within running
        # If the pattern matches, then the machine agent start monitoring it.
        containerProcessSelectorRegex: ".*[ ]-Dappdynamics.*"
        dockerTagsEnabled: "false" 
    CODE

Configuration Options for AWS Tags

You can configure the Machine Agent to collect different types of tags. By default, all tags are collected. To turn off tag collection, set awsTagsEnabled to "false".

  1. Edit the <machine_agent_home>/extensions/ServerMonitoring/conf/ServerMonitoring.yml file.
  2. Set awsTagsEnabled: "false" 

    //ServerMonitoring.yml
    # WARNING: Before making any changes to this file read the following section carefully
    # 
    # After editing the file, make sure the file follows the yml syntax. Common issues include
    # - Using tabs instead of spaces
    # - File encoding should be UTF-8
    #
    # The safest way to edit this file is to copy paste the examples provided and make the
    # necessary changes using a plain text editor instead of a WYSIWYG editor.
    #
    awsTagsEnabled: "false"
    # samplingInterval indicates how often to gather metric data. Units in milliseconds.
    samplingInterval: 30000
    ...
    CODE

Configuration Options for Kubernetes and OpenShift Tags

You can configure the Machine Agent to collect different types of tags. By default, all tags are collected. To turn off tag collection, set k8sTagsEnabled to "false".

  1. Edit the <machine_agent_home>/extensions/ServerMonitoring/conf/ServerMonitoring.yml file.
  2. Set k8sTagsEnabled: "false"

    //ServerMonitoring.yml
    # WARNING: Before making any changes to this file read the following section carefully
    # 
    # After editing the file, make sure the file follows the yml syntax. Common issues include
    # - Using tabs instead of spaces
    # - File encoding should be UTF-8
    #
    # The safest way to edit this file is to copy paste the examples provided and make the
    # necessary changes using a plain text editor instead of a WYSIWYG editor.
    #
    k8sTagsEnabled: "false"
    # samplingInterval indicates how often to gather metric data. Units in milliseconds.
    samplingInterval: 30000
    ...
    CODE