Skip to content

Job File

Daniel Odievich edited this page Apr 16, 2020 · 126 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
TimeFrame MarkDate, MarkTime and Duration to specify explicit or relative range of time
TimeRange From and To to specify explicit range of time
UsersGroupsRolesPermissions
Dashboards
Events
EventSelectionCriteria Works with Events
Configuration
ConfigurationComparisonReferenceAPM Works with Configuration
ConfigurationComparisonReferenceWEB Works with Configuration
ConfigurationComparisonReferenceMOBILE Works with Configuration
ConfigurationComparisonReferenceDB Works with Configuration
DetectedEntities
Metrics
MetricsSelectionCriteria Works with Metrics
Flowmaps
EntityDashboards
EntityDashboardSelectionCriteria Works with EntityDashboards
Tiers
Tier Type
Business Transactions
Business Transaction Type
Nodes
Node Type
Backends
Backend Type
Snapshots
SnapshotSelectionCriteria
Output What reports to produce using input data
UsersGroupsRolesPermissions
Dashboards
Events
Configuration
DetectedEntities
EntityMetrics
EntityMetricGraphs
EntityDashboards
EntityDetails
Snapshots
FlameGraphs
HealthCheck
ApplicationSummary

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. LDAP or SAML credentials can not be used.

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

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

Client API Token

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

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

To use token, set UserName to BEARER value (all UPPERCASE).

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 MyAwesomeProduction 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)

If true, the value in Application should be interpreted as Regular Expression.

If false, the value in Application is treated as literal string.

Type (String)

Specifies type of Application. Can be one of these:

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

If empty, "APM" is assumed.

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

Input Section

Input section is a JSON object specifying what to extract (Logical Model - Entities, Configuration rules, Metrics, Events, Snapshots, Flame Graphs) and what time range to operate on:

    "Input": {
        "TimeFrame": {
            "MarkDate": "TODAY",
            "MarkTime": "PREVIOUS_HOUR",
            "Duration": "1:00:00"
        },
        "UsersGroupsRolesPermissions": true,
        "Dashboards": true,
        "Licenses": true,
        "Events": true,
        "EventsSelectionCriteria": [ "All" ],
        "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,
        "EntityDashboards": true,
        "EntityDashboardSelectionCriteria": {
            "Tiers": [],
            "TierType": [ " All" ],
            "BusinessTransactions": [],
            "BusinessTransactionType": [ " All" ],
            "Nodes": [],
            "NodeType": [ " All" ],
            "Backends": [],
            "BackendType": [ " All" ]
        },
        "SnapshotSelectionCriteria": {
            "Tiers": [],
            "TierType": [ " All" ],
            "BusinessTransactions": [],
            "BusinessTransactionType": [ " All" ],
            "UserExperience": {
                "Normal": true, 
                "Slow": true, 
                "VerySlow": true, 
                "Stall": true, 
                "Error": true 
            },
            "SnapshotType": { 
                "Full": true, 
                "Partial": true, 
                "None": true
            }
        }
    }

TimeFrame

TODO

TimeRange

This is deprecated in favor of using TimeFrame specifier. If TimeFrame is not provided, this setting is used as fallback.

From and To are DateTime values

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

The values 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)

For example, using local time:

        "TimeRange": {
            "From": "2020-04-22T16:00:00",
            "To": "2020-04-22T17:00:00"
        },

or here using UTC time:

        "TimeRange": {
            "From": "2020-04-22T16:00:00Z",
            "To": "2020-04-22T17:00:00Z"
        },

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.

Events (Boolean)

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

EventsSelectionCriteria (Array of Strings)

Selects which event types to extract.

Empty array [] means no events will be extracted.

Value of [ "All" ] means all known event types will be extracted. All other members of array will be ignored.

Event Types are defined in EVENT_TYPES

For example, to extract just a few event types, specify this array:

    "EventsSelectionCriteria": [
      "APPLICATION_CONFIG_CHANGE",
      "APPLICATION_ERROR",
      "APP_SERVER_RESTART",
      "POLICY_OPEN_WARNING"
    ]

Health Rule violations, Controller Audit and Controller Notifications events are always be extracted.

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

EntityDashboards (Boolean)

Specifies whether to take screenshots of the main screen for APM Entities (Application, Tier, Node, Business Transaction and Backend).

EntityDashboardSelectionCriteria

Provides filtering abilities for the taking screenshots of dashboards.

EntityDashboardSelectionCriteria\Tiers (Array of Strings)

Filters screenshot taking to only ones these Tiers.

Regular expressions are supported.

EntityDashboardSelectionCriteria\TierType (Array of Strings)

Selects which Tier types to include for screnshots.

Empty array [] means no Tiers will be processed.

Value of [ "All" ] means all types of Tiers will be processed. All other members of array will be ignored.

Valid 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

For example, to extract just a few types of Tiers, specify this array:

    "TierType": [
      "APP_AGENT",
      "NODEJS_APP_AGENT"
    ]

EntityDashboardSelectionCriteria\BusinessTransactions (Array of Strings)

Filters screenshot taking to only ones 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

EntityDashboardSelectionCriteria\BusinessTransactionType (Array of Strings)

Selects which Business Transaction types to include for screnshots.

Empty array [] means no Business Transactions will be processed.

Value of [ "All" ] means all types of Business Transactions will be processed. All other members of array will be ignored.

Valid 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

For example, to extract just a few types of Business Transactions, specify this array:

    "BusinessTransactionType": [
      "SERVLET",
      "ASP_DOTNET"
    ]

EntityDashboardSelectionCriteria\Nodes (Array of Strings)

Filters screenshot taking to only ones these Nodes.

Regular expressions are supported.

EntityDashboardSelectionCriteria\NodeType (Array of Strings)

Selects which Node types to include for screnshots.

Empty array [] means no Nodes will be processed.

Value of [ "All" ] means all types of Nodes will be processed. All other members of array will be ignored.

Valid 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

For example, to extract just a few types of Nodes, specify this array:

    "NodeType": [
      "APP_AGENT",
      "NODEJS_APP_AGENT"
    ]

EntityDashboardSelectionCriteria\Backends (Array of Strings)

Filters screenshot taking to only ones these Backends.

Regular expressions are supported.

EntityDashboardSelectionCriteria\BackendType (Array of Strings)

Selects which Backend types to include for screnshots.

Empty array [] means no Backends will be processed.

Value of [ "All" ] means all types of Backends will be processed. All other members of array will be ignored.

Valid values:

  • All
  • SOCKET
  • HTTP
  • CUSTOM
  • CUSTOM_ASYNC
  • FILE_SERVER
  • MAIL_SERVER
  • WEB_SERVICE
  • ERP
  • CACHE
  • WEBSPHERE_MQ
  • MAINFRAME
  • TIBCO_ASYNC
  • TIBCO
  • ESB
  • SAP
  • AVRO
  • THRIFT
  • CASSANDRA
  • MQ
  • JMS
  • WEBSOCKET
  • JDBC
  • RMI
  • LDAP
  • CORBA
  • RABBITMQ
  • ADODOTNET
  • DOTNETDirectoryServices
  • DOTNETRemoting
  • DOTNETMessaging
  • WCF
  • MSMQ
  • DB
  • NETWORK

For example, to extract just a few types of Backends, specify this array:

    "BackendType": [
      "HTTP",
      "WEB_SERVICE"
    ]

Snapshots (Boolean)

Specifies whether to retrieve Snapshots for APM aplications.

Used in conjunction with all settings in SnapshotSelectionCriteria.

SnapshotSelectionCriteria

Provides filtering abilities for the snapshot extraction.

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 (Array of Strings)

Selects which Tier types to include for snapshot extraction.

Empty array [] means no Tiers will be processed.

Value of [ "All" ] means all types of Tiers will be processed. All other members of array will be ignored.

Valid 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

For example, to extract just a few types of Tiers, specify this array:

    "TierType": [
      "APP_AGENT",
      "NODEJS_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 (Array of Strings)

Selects which Business Transaction types to include for snapshot extraction.

Empty array [] means no Business Transactions will be processed.

Value of [ "All" ] means all types of Business Transactions will be processed. All other members of array will be ignored.

Valid 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

For example, to extract just a few types of Business Transactions, specify this array:

    "BusinessTransactionType": [
      "SERVLET",
      "ASP_DOTNET"
    ]

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,
        "Flowmaps": true,
        "EntityDashboards": true,
        "EntityDetails": true,
        "Snapshots": true,
        "FlameGraphs": true,
        "HealthCheck": false,
        "ApplicationSummary": false
    }

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.

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.

EntityDashboards (Boolean)

Specifies whether to render Entity Dashboards 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.

HealthCheck (Boolean)

Specifies whether to render Health Check reports for Platform health and APM Applications.

ApplicationSummary (Boolean)

Specifies whether to render Application Summary report for APM Applications.

Clone this wiki locally