Skip to content

Job File

Daniel Odievich edited this page Jun 6, 2019 · 84 revisions

Job File Location

To give DEXTER instructions on what to report, you create a job parameter file in simple JSON format.

DEXTER comes with DefaultJob.json job file in the folder with the binaries. Make a copy and edit that to produce job file suitable for your needs.

You can also use visual creator tool called DEXTER-UI to create job files.

Here are some Job File Examples for reference.

You can also watch this training video:

AppDynamics DEXTER - How to Create Job File

Job File Sections

AppDynamics DEXTER job input file contains 3 sections:

Section Element Purpose
Target What Controller(s) and Applications(s) to query
Controller
UserName
UserPassword
Application
NameRegex
Type
Input What to get, including time range and what to select, and what to convert to data warehouse CSVs
TimeRange From and To
UsersGroupsRolesPermissions
Dashboards
Licenses
Events
Configuration
ConfigurationComparisonReferenceAPM
ConfigurationComparisonReferenceWEB
ConfigurationComparisonReferenceMOBILE
ConfigurationComparisonReferenceDB
DetectedEntities
Metrics
MetricsSelectionCriteria
Flowmaps
Snapshots
SnapshotSelectionCriteria
Output What reports to produce using input data
UsersGroupsRolesPermissions
Dashboards
Licenses
Events
Configuration
DetectedEntities
EntityMetrics
EntityMetricGraphs
EntityDetails
Snapshots
FlameGraphs

Target Section

Target parameter is a JSON array of custom JSON object pointing at Controller and specifying types and names of Applications to process.

Here is an example pointing at 2 Controllers to extract all APM Applications:

    "Target": [
        {
            "Controller": "http://demo1.appdynamics.com/",
            "UserName": "username@customer1",
            "UserPassword": "",
            "Application": ".*",
            "NameRegex": true,
            "Type": "APM"
        },
        {
            "Controller": "http://demo2.appdynamics.com/",
            "UserName": "username@customer1",
            "UserPassword": "",
            "Application": ".*",
            "NameRegex": true,
            "Type": "APM"
        }
    ]

Here is an example extracting only SIM Application information:

    "Target": [
        {
            "Controller": "http://demo1.appdynamics.com/",
            "UserName": "username@customer1",
            "UserPassword": "",
            "Application": "DOES NOT MATTER",
            "NameRegex": false,
            "Type": "SIM"
        }
    ]

Here is an example extracting only DB Collector for "MyDatabaseCollector" collector:

    "Target": [
        {
            "Controller": "http://demo1.appdynamics.com/",
            "UserName": "username@customer1",
            "UserPassword": "",
            "Application": "MyDatabaseCollector",
            "NameRegex": false,
            "Type": "DB"
        }
    ]

Controller (String)

URL of the controller, like https://yourcontroller.saas.appdynamics.com/.

If your controller is using port number, append it after : like that: http://yourcontroller.yourdomain.com:8090/.

Do not put /controller after the host portion https://yourcontroller.saas.appdynamics.com /controller

UserName (String)

Local User

Username of of the user to use to connect to Controller in <username>@<tenant> format. Only AppDynamics authentication is supported, no LDAP or SAML.

appdexter@customer1 for user named appdexter and for single-tenant on-premises Controller

appddexter@saastenant for user named appdexter in SaaS Controller saastenant.saas.appdynamics.com

Client API Token

Client API tokens (https://docs.appdynamics.com/display/latest/API+Clients) are supported.

You must issue a token first through either API or UI.

To use token, set UserName to value of BEARER.

UserPassword (String)

Local User

Password of the user to connect to Controller

Leave blank to be prompted for password when extraction begins.

Client API Token

Specify access token here.

Application (String)

Application or Applications to query in the Controller

If NameRegex is "false", interpreted as text.

If NameRegex is "true", interpreted as Regular Expression.

  • MyAwesomeProduction == Matches just that Application
  • ECommerce|Movie.* == Matches ECommerce, ECommerce-Fulfillment and Movie Tickets Online Applications
  • SOMETHING-NAM-S(G|B)69*|SOMETHING-NAM-SW == Matches SOMETHING-NAM-SW, SOMETHING-NAM-SB690 and SOMETHING-NAM-SG690 Applications
  • .* or * == Matches all applications in Controller

NameRegex (Boolean)

Specifies whether Application is interpreted as Regular Expression or not.

Type (String)

Specifies type of Application. Can be:

  • APM
  • SIM
  • WEB
  • MOBILE
  • DB
  • BIQ

If empty, "APM" is assumed.

If type is "SIM" or "BIQ", value in ApplicationName and NameRegex are ignored.

Input Section

Input section is a JSON object specifying what to extract (logical model, Configuration rules, Metrics, Events, Snapshots, Flame Graphs) and what time range to operate on. Here is an example that specifies 2 hour time range and extracts everything:

    "Input": {
        "TimeRange": {
            "From": "2018-01-31T19:00:00",
            "To": "2018-01-31T21:00:00"
        },
        "UsersGroupsRolesPermissions": true,
        "Dashboards": true,
        "Licenses": true,
        "Events": true,
        "Configuration": true,
        "ConfigurationComparisonReferenceAPM": { "Controller": "", "Application": "" },
        "ConfigurationComparisonReferenceWEB": { "Controller": "", "Application": "" },
        "ConfigurationComparisonReferenceMOBILE": { "Controller": "", "Application": "" },
        "ConfigurationComparisonReferenceDB": { "Controller": "", "Application": "" },
        "DetectedEntities": true,
        "Metrics": true,
        "MetricsSelectionCriteria": [ "TransactionApplication", "TransactionTier", "TransactionNode", "TransactionBackend", "TransactionBT", "TransactionSEP", "TransactionError", "TransactionIP", "AgentStats", "OSHardware", "CLRStats", "IISStats", "JVMStats", "BusinessTransactionPercentiles" ],
        "Flowmaps": true,
        "Snapshots": true,
        "SnapshotSelectionCriteria": {
            "Tiers": [],
            "TierType": {
                "All": true, 
                "APP_AGENT": false, "DOT_NET_APP_AGENT": false, "NATIVE_APP_AGENT": false, "NATIVE_DYNAMIC": false, "NATIVE_SDK": false,
                "NATIVE_WEB_SERVER": false, "NODEJS_APP_AGENT": false, "PHP_APP_AGENT": false, "PYTHON_APP_AGENT": false, "RUBY_APP_AGENT": false
            },
            "BusinessTransactions": [],
            "BusinessTransactionType": {
                "All": true,
                "SERVLET": false, "HTTP": false, "WEB_SERVICE": false, "POJO": false, "JMS": false, "EJB": false, "SPRING_BEAN": false, "STRUTS_ACTION": false, "ASP_DOTNET": false, "ASP_DOTNET_WEB_SERVICE": false, "DOTNET_REMOTING": false, "WCF": false, "DOTNET_JMS": false, "POCO": false,
                "PHP_WEB": false, "PHP_MVC": false, "PHP_DRUPAL": false, "PHP_WORDPRESS": false, "PHP_CLI": false, "PHP_WEB_SERVICE": false, "NODEJS_WEB": false, "NATIVE": false, "WEB": false, "PYTHON_WEB": false, "RUBY_WEB": false, "RUBY_RAILS": false, "BINARY_REMOTING": false
            },
            "UserExperience": {
                "Normal": true, 
                "Slow": true, 
                "VerySlow": true, 
                "Stall": true, 
                "Error": true 
            },
            "SnapshotType": { 
                "Full": true, 
                "Partial": true, 
                "None": true
            }
        }
    }

TimeRange\From and TimeRange\To (DateTime)

Specifies beginning and end of the time range to retrieve data from.

The value must conform to any standard .NET DateTime string https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings

Both local or GMT times are supported:

2017-09-19T07:00:00 == September 19, 7:00 AM local time
2017-09-19T07:00:00-04:00 == September 19, 7:00 AM Eastern Time (-4 hour offset)
2017-09-19T14:00:00Z == September 19, 14:00 PM GMT (same as 7am Pacific)

UsersGroupsRolesPermissions (Boolean)

Specifies whether to extract and index Users, Groups, Roles and Permissions for the Controller.

Dashboards (Boolean)

Specifies whether to extract and index Dashboards, Widgets and Time Series used by Widgets for the Controller.

Licenses (Boolean)

Specifies whether to extract and index License Rules and License consumption for the Controller.

Events (Boolean)

Specifies whether to extract and index Events and Health Rule Violations for All Applications, Controller Notifications and Controller Audit Events.

Configuration (Boolean)

Specifies whether to extract and index configuration (BT rules, Backend rules, Data Collectors for APM, Web Page Rules for Web, and so on).

ConfigurationComparisonReferenceAPM\Controller and ConfigurationComparisonReferenceAPM\Application (String)

Specifies which APM Application to use as reference during configuration comparison. This Application must also be specified in Input criteria

If Controller and Application are blank, then configuration comparison is performed against a blank template application.

ConfigurationComparisonReferenceWEB\Controller and ConfigurationComparisonReferenceWEB\Application (String)

Specifies which WEB Application to use as reference during configuration comparison. This Application must also be specified in Input criteria

If Controller and Application are blank, then configuration comparison is performed against a blank template application.

ConfigurationComparisonReferenceMOBILE\Controller and ConfigurationComparisonReferenceMOBILE\Application (String)

Specifies which MOBILE Application to use as reference during configuration comparison. This Application must also be specified in Input criteria

If Controller and Application are blank, then configuration comparison is performed against a blank template application.

ConfigurationComparisonReferenceDB\Controller and ConfigurationComparisonReferenceDB\Application (String)

Specifies which DB Application to use as reference during configuration comparison. This Application must also be specified in Input criteria

If Controller and Application are blank, then configuration comparison is performed against a blank template application.

DetectedEntities (Boolean)

Specifies whether to extract and index list of detected entities (Business Transactions, Tiers, Nodes for APM, Web pages for EUM and so on).

Metrics (Boolean)

Specified whether to extract and index summary and detail metrics for all APM Entities, which are used in Entity Metrics, Entity Metric Graphs and Entity Details report

Used in conjunction with MetricsSelectionCriteria.

MetricsSelectionCriteria (Array of Strings)

Selects which sets of metrics export for APM Entities.

Empty array [] means no metrics will be extracted.

Metric sets are defined in EntityMetricsExtractMapping.csv, column "MetricSet". See Metric Sets for details on how to add your own metrics and customize graphs.

Flowmaps (Boolean)

Specifies whether to extract and index flow maps for APM Entities (Application, Tier, Node, Business Transaction and Backend)

Snapshots (Boolean)

Specifies whether to retrieve Snapshots for APM aplications.

Used in conjunction with all settings in SnapshotSelectionCriteria.

SnapshotSelectionCriteria\Tiers (Array of Strings)

Filters Snapshots to be extracted to only ones originating from these Tiers.

Regular expressions are supported>

  • [] - Empty array means all Tiers will be matched
  • ["ECommerce"] - specifies that ECommerce Tier will match
  • ["ECommerce.*"] - specifies that any Tiers that match specified Regex will match, such as ECommerce and ECommerce-Inventory
  • ["Web", "App", "Middle.*"] – array of settings mixing exact match and Regex match, such as Web, App and Middleware

SnapshotSelectionCriteria\TierType[Setting] (Boolean)

Contains settings for filtering by Tier Type. Each of the settings specifies the type of Tier which will be included.

If All is set to true, all the other settings are ignored. If All is set to false, other settings for specific Tier Types are checked.

Values:

  • All
  • APP_AGENT
  • DOT_NET_APP_AGENT
  • NATIVE_APP_AGENT
  • NATIVE_DYNAMIC
  • NATIVE_SDK
  • NATIVE_WEB_SERVER
  • NODEJS_APP_AGENT
  • PHP_APP_AGENT
  • PYTHON_APP_AGENT
  • RUBY_APP_AGENT

SnapshotSelectionCriteria\BusinessTransactions (Array of Strings)

Filters Snapshots to be extracted to only ones originating from these Business Transactions.

Regular expressions are supported.

  • [] - Empty array means all Business Transactions will be matched
  • ["Web-Main"] - specifies that only "Web-Main" Business Transaction will match
  • ["Web-.*"] – specified that any Business Transactions that match specified Regex will match
  • ["Web.*", "SomeService", "XYX.*"] – array of settings mixing exact match and Regex match

SnapshotSelectionCriteria\BusinessTransactionType[Setting] (Boolean)

Contains settings for filtering by Business Transaction Type. Each of the settings specifies the type of Business Transaction which will be included.

If All is set to "true", all the other settings are ignored. If All is set to "false", other settings for specific Tier Types are checked.

Values:

  • All
  • SERVLET
  • HTTP
  • WEB_SERVICE
  • POJO
  • JMS
  • EJB
  • SPRING_BEAN
  • STRUTS_ACTION
  • ASP_DOTNET
  • ASP_DOTNET_WEB_SERVICE
  • DOTNET_REMOTING
  • WCF
  • DOTNET_JMS
  • POCO
  • PHP_WEB
  • PHP_MVC
  • PHP_DRUPAL
  • PHP_WORDPRESS
  • PHP_CLI
  • PHP_WEB_SERVICE
  • NODEJS_WEB
  • NATIVE
  • WEB
  • PYTHON_WEB
  • RUBY_WEB
  • RUBY_RAILS
  • BINARY_REMOTING

SnapshotSelectionCriteria\UserExperience[Setting] (Boolean)

Contains settings for filtering by Snapshot User Experience:

  • Normal
  • Slow
  • VerySlow
  • Stall
  • Error

SnapshotSelectionCriteria\SnapshotType[Setting] (Boolean)

Contains settings for filtering by Snapshot Type:

  • Full
  • Partial
  • None

Output Section

Output section is a JSON object specifying what reports to render (logical model, Configuration rules, Metrics, Events, Snapshots, Flame Graphs).

    "Output": {
        "UsersGroupsRolesPermissions": true,
        "Dashboards": true,
        "Licenses": false,
        "Events": true,
        "Configuration": true,
        "DetectedEntities": true,
        "EntityMetrics": true,
        "EntityMetricGraphs": true,
        "EntityDetails": true,
        "Snapshots": true,
        "FlameGraphs": true
    }

UsersGroupsRolesPermissions (Boolean)

Specifies whether to render Users and Permissions report for Users, Groups, Roles and Permissions in Controller

Dashboards (Boolean)

Specifies whether to render Dashboards Report report for Controller Dashboards, Widgets and Time Series used by Widgets.

Licenses (Boolean)

Specifies whether to render Licenses Report report for License Rules and License consumption.

Events (Boolean)

Specifies whether to render Events and Health Rule Violations report.

Configuration (Boolean)

Specifies whether to render Configuration report.

DetectedEntities (Boolean)

Specifies whether to render:

EntityMetrics (Boolean)

Specifies whether to render Entity Metrics report.

EntityMetricGraphs (Boolean)

Specifies whether to render Entity Metrics Graphs report.

EntityDetails (Boolean)

Specifies whether to render Entity Details report for Entities that have some metric or snapshot activity.

Snapshots (Boolean)

Specifies whether to render Snapshots and Snapshots Method Calls reports.

FlameGraphs (Boolean)

Specifies whether to render Flame Graphs and Flame Charts reports for APM Applications, Tiers, Nodes and Business Transactions.

Clone this wiki locally
You can’t perform that action at this time.