AWS CloudSearch Monitoring Extension

AWS ClouSearch Monitoring Extension

Use Case

Captures CloudSearch statistics from Amazon CloudWatch and displays them in the AppDynamics Metric Browser.

This extension works only with the standalone machine agent.

Note: By default, the Machine agent can only send a fixed number of metrics to the controller. This extension can potentially report thousands of metrics, so to change this limit, please follow the instructions mentioned here.


Before the extension is installed, the prerequisites mentioned here need to be met. Please do not proceed with the extension installation if the specified prerequisites are not met.


  1. Download and unzip AWSCloudSearchMonitor-<version>.zip into <machine_agent_dir>/monitors/
  2. Edit the file config.yaml located at <MachineAgent_Dir>/monitors/AWSCloudSearchMonitor The metricPrefix of the extension has to be configured as specified here. Please make sure that the right metricPrefix is chosen based on your machine agent deployment, otherwise this could lead to metrics not being visible in the controller.
  3. Restart the Machine Agent.



Note: Please avoid using tab (\t) when editing yaml files. You may want to validate the yaml file using a yaml validator.


accountsFields under this section can be repeated for multiple accounts config
awsAccessKeyAWS Access Key
awsSecretKeyAWS Secret Key
displayAccountNameDisplay name used in metric path"MyAppD"
regionsRegions where CloudSearch is registeredAllowed values:
enableDecryptionIf set to "true", then all aws credentials provided (access key and secret key) will be decrypted - see AWS Credentials Encryption section
decryptionKeyThe key used when encypting the credentials
hostThe proxy host (must also specify port)
portThe proxy port (must also specify host)
usernameThe proxy username (optional)
passwordThe proxy password (optional)
metricTypesFields under this section can be repeated for multiple metric types override
metricNameThe metric name"CPUUtilization"
statTypeThe statistic typeAllowed values:
excludeMetricsMetrics to exclude - supports regex"CPUUtilization",
startTimeInMinsBeforeNowThe no of mins to deduct from current time for start time of query5
endTimeInMinsBeforeNowThe no of mins to deduct from current time for end time of query.
Note, this must be less than startTimeInMinsBeforeNow
maxErrorRetrySizeThe max number of retry attempts for failed retryable requests1
noOfAccountThreadsThe no of threads to process multiple accounts concurrently3
noOfRegionThreadsPerAccountThe no of threads to process multiple regions per account concurrently3
noOfMetricThreadsPerRegionThe no of threads to process multiple metrics per region concurrently3
metricPrefixThe path prefix for viewing metrics in the metric browser."Custom Metrics|Amazon CloudSearch|"


Below is an example config for monitoring multiple accounts and regions:

  - awsAccessKey: "XXXXXXXX1"
    awsSecretKey: "XXXXXXXXXX1"
    displayAccountName: "TestAccount_1"
    regions: ["us-east-1","us-west-1","us-west-2"]

  - awsAccessKey: "XXXXXXXX2"
    awsSecretKey: "XXXXXXXXXX2"
    displayAccountName: "TestAccount_2"
    regions: ["eu-central-1","eu-west-1"]

    enableDecryption: "false"


      - metricName: "GroupInServiceInstances"
        statType: "max"

      - metricName: "GroupMinSize"
        statType: "sum"        

    excludeMetrics: ["GroupMaxSize", "GroupTotal.*"]

      startTimeInMinsBeforeNow: 5
      endTimeInMinsBeforeNow: 0

    maxErrorRetrySize: 0

  noOfAccountThreads: 3
  noOfRegionThreadsPerAccount: 3
  noOfMetricThreadsPerRegion: 3

metricPrefix: "Custom Metrics|Amazon CloudSearch|"


AWS Credentials Encryption

To set an encrypted awsAccessKey and awsSecretKey in config.yaml, follow the steps below:

  1. Download the util jar to encrypt the AWS Credentials from here.
  2. Run command:

    java -cp appd-exts-commons-1.1.2.jar com.appdynamics.extensions.crypto.Encryptor EncryptionKey CredentialToEncrypt
    For example: 
    java -cp "appd-exts-commons-1.1.2.jar" com.appdynamics.extensions.crypto.Encryptor test myAwsAccessKey
    java -cp "appd-exts-commons-1.1.2.jar" com.appdynamics.extensions.crypto.Encryptor test myAwsSecretKey
  3. Set the decryptionKey field in config.yaml with the encryption key used, as well as the resulting encrypted awsAccessKey and awsSecretKey in their respective fields.




Typical metric path: Application Infrastructure Performance|<Tier>|Custom Metrics|Amazon CloudSearch|<Account Name>|<Region>|ClientId|<ClientId> followed by the metrics defined in the link below:


Please look at the troubleshooting document and make sure that everything is followed correctly.


Always feel free to fork and contribute any changes directly via GitHub.



For any questions or feature request, please contact AppDynamics Center of Excellence.


Agent Compatibility4.5.13 or Later
Controller Compatibility4.5 or Later
Last Update10 Jun 2021


Release Notes

v2.0.1 and above - Updated to work with MachineAgent 21.x