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 Tags

Server Visibility can import:

  • ServerMonitoringConfig.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
  • Cisco 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 and Configuration Options for AWS Tags.

  • 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. See Configuration Options for Microsoft Azure Tags.

  • 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. See Configuration Options for Docker Tags.

  • 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>. See Configuration Options for Kubernetes and OpenShift Tags.
  • Controller >= 20.3
  • Machine Agent >= 20.1
ServiceNow CMDB

Server Visibility can import Configuration Management Database (CMDB) server tags. These appear under Container Details > Tags as ServiceNow|<tag>.

See Configuration Options for ServiceNow CMDB Tags.

•    Controller >= 20.3
•    Machine Agent >= 23.8


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

After you import custom tags using Custom Tagging APIs, you may observe latency in viewing user-defined tags.

Define and View Tags for a Server

You can specify server 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 server tags is to specify information that is not already specified in AWS and auto-assigned tags. Before you specify server 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/conf/ServerMonitoringConfig.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 Cisco 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.

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

To enable AWS tags collection:

  1. Edit the <machine_agent_home>/extensions/ServerMonitoring/conf/ServerMonitoring.yml file.
  2. For awsTagsConfig, set enabled: true

    //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.
    
    awsTagsConfig:
     	enabled: true
    	# If enabled it reports the AWS Tags to Controller
    	# update interval in milliseconds, minimum is 6 hours
    	samplingInterval: 21600000 
    
    CODE

Configuration Options for Microsoft Azure Tags

To enable collection of Microsoft Azure tags:

  1. Edit the <machine_agent_home>/extensions/ServerMonitoring/conf/ServerMonitoring.yml file.
  2. Under the azureTagsConfig: section, set enabled: "true".

    //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.
    
    azureTagsConfig:
    	 # If enabled it reports the Azure Tags to Controller
    	 enabled: true
    	 # update interval in milliseconds, minimum is 6 hours
    	 samplingInterval: 21600000 
    CODE

Configuration Options for Kubernetes and OpenShift Tags

To enable tag collection:

  1. Edit the <machine_agent_home>/extensions/ServerMonitoring/conf/ServerMonitoring.yml file.
  2. Under the k8sTagsConfig: section, set enabled: "true".

    //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. 
    
    k8sTagsConfig:
    	#If enabled it reports the Kubernetes Container tags to Controller
    	enabled: true
    CODE
  3. (Optional) To get the Master and Worker tags, you must apply the following cluster role. Ensure to apply this cluster role before you run the Cluster Agent. This step is not applicable if you are using Cluster Agent 24.2.0 or later.

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: node-viewer
    rules:
    - apiGroups: [""]
      resources: ["nodes"]
      verbs: ["get", "list", "watch"]
    YML

    For k8sNodeTagsConfig, set enabled: true

    //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.  
    
    k8sNodeTagsConfig:
    	 # enabled indicate whether the machine agent should report the k8s Cluster Nodes
    	 # If enabled it reports whether the Node is a 'Master' node or 'Worker' node
    	 enabled: true
    CODE

Configuration Options for ServiceNow CMDB Tags

By default, the Machine Agent does not collect the ServiceNow CMDB tags even when the tag collection is enabled at a global level. To enable the CMDB tags collection:

  1. Edit the <machine_agent_home>/extensions/ServerMonitoring/conf/ServerMonitoring.yml file.
  2. Under the serviceNowTagsConfig: section, set enabled: "true".

  3. Specify the required OAuth token authentication details and the OAuth URL to query the ServiceNow cmdb_ci_server table.
//ServerMonitoring.yml
serviceNowTagsConfig:
    # the enabled flag, by default this is false, set to true to enable this tags extension
    enabled: false
    # update interval in milliseconds, minimum is 300,000 or 5 minutes, recommended(default) 1200000 or 20 minutes
    samplingInterval: 1200000
    oauthURL: "https://< site >/v1/auth/token"
    clientId: "your client id"
    clientSecret:
      encrypted: false
      value: "your client secret"
    clientScope: "the client scope"
    cmdburl: "https://< service now cmdb host >/now/table/cmdb_ci_server"
    # only override the hostname if the hostid does not match what is in the cmdb
    #hostname: "over ride host name"
CODE

Configuration Options for Smart Agent Tags

To enable reporting of all smart agent tags set in environmental variables:

  1. Edit the <machine_agent_home>/extensions/ServerMonitoring/conf/ServerMonitoring.yml file.
  2. Under the smartAgentTagsConfig: section, set enabled: "true".

//ServerMonitoring.yml 
smartAgentTagsConfig:
	# enabled indicate whether the machine agent should report the Smart agent tags
	# If enabled it reports all the smart agent variables set in environment variables (starting with APPDYNAMICS_ENTITY_TAG_ prefix)     
	enabled: true
    
CODE