Giter Club home page Giter Club logo

aws-autoscaling-monitoring-extension's Introduction

#AWS AutoScaling Monitoring Extension

##Use Case Captures AutoScaling statistics from Amazon CloudWatch and displays them in the AppDynamics Metric Browser.

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

##Installation

  1. Run 'mvn clean install' from aws-autoscaling-monitoring-extension
  2. Copy and unzip AWSAutoScalingMonitor-<version>.zip from 'target' directory into <machine_agent_dir>/monitors/
  3. Edit config.yaml file in AWSAutoScalingMonitor/conf and provide the required configuration (see Configuration section)
  4. Restart the Machine Agent.

##Configuration

###config.yaml

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

Section Fields Description Example
accounts Fields under this section can be repeated for multiple accounts config
awsAccessKey AWS Access Key
awsSecretKey AWS Secret Key
displayAccountName Display name used in metric path "MyAWSAutoScaling"
regions Regions where AutoScaling is registered Allowed values:
"ap-southeast-1",
"ap-southeast-2",
"ap-northeast-1",
"eu-central-1",
"eu-west-1",
"us-east-1",
"us-west-1",
"us-west-2",
"sa-east-1"
credentialsDecryptionConfig ----- ----- -----
enableDecryption If set to "true", then all aws credentials provided (access key and secret key) will be decrypted - see AWS Credentials Encryption section
decryptionKey The key used when encypting the credentials
proxyConfig ----- ----- -----
host The proxy host (must also specify port)
port The proxy port (must also specify host)
username The proxy username (optional)
password The proxy password (optional)
metricsConfig ----- ----- -----
metricTypes Fields under this section can be repeated for multiple metric types override
metricName The metric name "CPUUtilization"
statType The statistic type Allowed values:
"ave"
"max"
"min"
"sum"
"samplecount"
----- ----- -----
excludeMetrics Metrics to exclude - supports regex "CPUUtilization",
"Swap.*"
metricsTimeRange
startTimeInMinsBeforeNow The no of mins to deduct from current time for start time of query 5
endTimeInMinsBeforeNow The no of mins to deduct from current time for end time of query.
Note, this must be less than startTimeInMinsBeforeNow
0
----- ----- -----
maxErrorRetrySize The max number of retry attempts for failed retryable requests 1
concurrencyConfig
noOfAccountThreads The no of threads to process multiple accounts concurrently 3
noOfRegionThreadsPerAccount The no of threads to process multiple regions per account concurrently 3
noOfMetricThreadsPerRegion The no of threads to process multiple metrics per region concurrently 3
----- ----- -----
metricPrefix The path prefix for viewing metrics in the metric browser. "Custom Metrics|Amazon AutoScaling|"

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

accounts:
  - 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"]
    
credentialsDecryptionConfig:
    enableDecryption: "false"
    decryptionKey:
    
proxyConfig:
    host: 
    port:
    username:
    password:    

metricsConfig:
    metricTypes:
      - metricName: "GroupInServiceInstances"
        statType: "max"
        
      - metricName: "GroupMinSize"
        statType: "sum"        

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

    metricsTimeRange:
      startTimeInMinsBeforeNow: 5
      endTimeInMinsBeforeNow: 0

    maxErrorRetrySize: 0

concurrencyConfig:
  noOfAccountThreads: 3
  noOfRegionThreadsPerAccount: 3
  noOfMetricThreadsPerRegion: 3

metricPrefix: "Custom Metrics|Amazon AutoScaling|"

###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.

##Metrics Typical metric path: Application Infrastructure Performance|<Tier>|Custom Metrics|Amazon AutoScaling|<Account Name>|<Region>|Group|<group id> followed by the metrics defined in the link below:

##Contributing

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

##Community

Find out more in the AppSphere community.

##Support

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

aws-autoscaling-monitoring-extension's People

Contributors

satish-m avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.