Git Product home page Git Product logo

appd-integration's Introduction

SignalFx AppDynamics client agent Build Status

This repository contains agent and libraries for retrieving and reporting AppDynamics metrics to SignalFx. You will need AppDynamics username/password and host information as well as SignalFx account and organization API token to report the data.

Supported Languages

  • Java 7+

Sending metrics

appd-report-standalone module is a standalone process that parses configurations and report AppDynamics metric every specified intervals. If your environment utilizes a HTTP/HTTPS proxy then Maven needs to be configured to use it otherwise dependancies may fail to install. Please click https://maven.apache.org/guides/mini/guide-proxies.html to go to the Maven mini-guide for configuring a proxy.

To run:

$ git clone https://github.com/signalfx/appd-integration
$ cd appd-integration
$ mvn install
$ cd appd-report-standalone

Then, if using environmental variables:

$ mvn exec:java

Othewrise, if using system properties:

$ mvn exec:java -Dcom.signalfx.appd.username=<AppDynamics Username> -Dcom.signalfx.appd.password=<AppDynamics Password> -Dcom.signalfx.appd.host=<https://AppDynamics Host> -Dcom.signalfx.api.token=<SignalFx API Token>

Configurations

Configuration Variables

Environmental Variable System Property Required Description
APPD_USERNAME com.signalfx.appd.username AppDynamics Username
APPD_PASSWORD com.signalfx.appd.password AppDynamics Password
APPD_HOST com.signalfx.appd.host AppDynamics Host
SIGNALFX_TOKEN com.signalfx.api.token SignalFx API Token
SIGNALFX_APPD_METRICS com.signalfx.appd.metrics Metric configurations filename (default to metrics.json)
APPD_INTERVAL com.signalfx.appd.interval Time in minutes of metric lookup interval (default to 1 minute)

Metrics.json

Metrics.json contains configurations for list of apps, metrics inside each app and its dimensions mapping.

AppDynamics metric paths are described as a pipe-delimited string (|), for example Performance|AppServer1|Resources|CPU.

Each metric is reported to SignalFx with the last element of this path as the metric name, and each previous element mapped to a dimension according to the dimensionsPathMap.

Elements can be ignored by specifying the target dimension as - (dash) in the dimensionsPathMap.

Wild cards (asterisk *) can be used to specify that all matching AppDynamics metrics are to be collected. Mapping to dimensions through the dimensionsPathMap will still happen on the actual value of that metric path element.

Example with ignoring element:

MetricPath = Performance|AppServer1|Resources|CPU
DimensionsPathMap = category|host|-

would be mapped to
{
    metric_name : "CPU"
    dimensions {
        category: "Performance",
        host: "AppServer1"
    }
}

Example with wildcard:

MetricPath = Performance|*|Resources|CPU
DimensionsPathMap = category|host|-

If the entity at the second level matches both 'Server1' and 'Server2'. We would get 2 metric
time series as
{
    metric_name : "CPU"
    dimensions {
        category: "Performance",
        host: "Server1"
    }
},
{
    metric_name : "CPU"
    dimensions {
        category: "Performance",
        host: "Server2"
    }
}

Optional extra dimensions can also be specified for each metric paths.

Following is a working example of metrics.json configurations

[
  {
    "name": "<Your App Name>",
    "metrics": [
      {
        "metric_path": "Application Infrastructure Performance|Tier2|Individual Nodes|*|Hardware Resources|*|*",
        "dimensions_path_map": "metric_type|tier|-|node|resource_type|component_type",
        "dimensions": {
          "key1": "value1",
          "key2": "value2"
        }
      },
      {
        "metric_path": "Application Infrastructure Performance|Tier2|Individual Nodes|*|Hardware Resources|*|*|*",
        "dimensions_path_map": "metric_type|tier|-|node|resource_type|component_type|component_instance"
      },
      {
        "metric_path": "Application Infrastructure Performance|Tier2|Individual Nodes|*|Agent|*|*",
        "dimensions_path_map": "metric_type|tier|-|node|-|category",
        "dimensions": {
          "key3": "value3"
        }
      }
    ]
  }
]

Default metrics.json is provided with Application Infrastructure Performance metrics configured.

Process Status Metrics

appd-report-standalone also reports metrics pertaining to the syncing process to SignalFx.

That includes:

  • mtsReported
  • mtsEmpty
  • dataPointsReported
  • appdRequestFailure

appd-integration's People

Contributors

9park avatar almightyoatmeal avatar cep21 avatar mdubbyap avatar molner avatar mpetazzoni avatar tedoc2000 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.