Skip to content

Phases and Job Steps

Daniel Odievich edited this page Sep 24, 2018 · 49 revisions

Phases

AppDynamics DEXTER has 4 phases:

Phase Purpose
Validation Validate input, request and folder list of Applications
Extract Data is retrieved from Controller(s) and Application(s)
Index Data is converted into data warehouse format (mostly CSV files)
Report Excel, Flame Graph and other reports are generated

The phases run sequentially Validate->Extract>Index->Report.

The phases are broken out into multiple steps, also ran in certain sequence.

Some steps run multiple threads in parallel to speed things up.

Only Extract phase requires access to the Controller. Index and Report phase work on downloaded data.

Validation Phase

Validates job file for validity Prompts for Controller credentials Connects to Controller(s) and retrieves list of Applications Chooses Applications from the list based on what is asked for in Job File Saves results in an expanded copy of job file in output folder called jobparameters.json

REST API used:

controller/rest/applications

Extract Phase

ExtractControllerApplicationsAndEntities (1)

Extracts list of Applications in each Controller and Entities in each Application for APM Applications

Runs always on the applications of Type="APM"

Runs sequentially on 1 thread.

REST API used:

  • controller/rest/serverstatus
  • controller/rest/applications
  • controller/rest/applications/{0}
  • controller/rest/applications/{0}/tiers
  • controller/rest/applications/{0}/nodes
  • controller/rest/applications/{0}/business-transactions
  • controller/rest/applications/{0}/backends
  • controller/rest/applications/{0}/metric-data

RESTUI API used:

  • controller/auth?action=login
  • controller/restui/backendUiService/backendListViewData/{0}/false
  • controller/restui/serviceEndpoint/list2/{0}/{0}/APPLICATION
  • controller/restui/informationPointUiService/getAllInfoPointsListViewData

ExtractControllerSIMApplicationsAndEntities (2)

Extracts list of Applications in each Controller and Entities in each Application for Server Monitoring Applications

Runs always on the applications of Type="SIM"

Runs sequentially on 1 thread.

REST API used:

  • controller/sim/v2/user/app
  • controller/sim/v2/user/app/nodes
  • controller/sim/v2/user/app/tiers
  • controller/sim/v2/user/machines
  • controller/sim/v2/user/groups
  • controller/sim/v2/user/machines/{0}
  • controller/sim/v2/user/machines/{0}/docker/containers
  • controller/sim/v2/user/sam/targets/http
  • controller/sim/v2/user/sam/targets/http/{0}
  • controller/sim/v2/user/machines/{0}/processes
  • controller/sim/v2/user/sam/target/{0}/events

ExtractControllerDBApplicationsAndEntities (3)

Extracts list of Applications in each Controller and Entities in each Application for Database Monitoring Applications

Runs always on the applications of Type="DB"

Runs parallel on 4 threads.

REST API used:

  • controller/rest/databases/collectors
  • controller/databasesui/databases/list
  • controller/restui/databases/list
  • controller/databasesui/waitStateFiltering/getAllWaitStatesForDBServer/{0}
  • controller/restui/databases/reports/waitReportData?dbId={0}
  • controller/restui/databases/queryListData
  • controller/restui/databases/clientListData
  • controller/restui/databases/getBlockingTreeData?dbId={0}
  • controller/restui/databases/getBlockingTreeChildrenData?dbId={0}
  • controller/databasesui/snapshot/getBTListViewData

ExtractControllerAndApplicationConfiguration (4)

Extracts Controller settings, and configuration of each Application in each Controller

Runs only if Input\Configuration=true

Runs sequentially on 1 thread.

REST API used:

  • controller/rest/configuration
  • controller/ConfigObjectImportExportServlet?applicationId={0}

ExtractApplicationAndEntityMetrics (5)

Extracts metrics for each Entity in each of the time ranges, with rollup true and false for each of the time ranges

Runs only if Input\Metrics=true

Runs parallel with 1 thread per entity type, 8 threads total.

REST API used:

  • controller/rest/applications/{0}/metric-data

ExtractApplicationAndEntityFlowmaps (6)

Extracts Flowmaps for each Entity in each of the time ranges

Runs only if Input\Flowmaps=true

Runs parallel with 1 thread per entity type, 5 threads total.

RESTUI API used:

  • controller/restui/applicationFlowMapUiService/application/{0}
  • controller/restui/componentFlowMapUiService/component/{0}
  • controller/restui/nodeFlowMapUiService/node/{0}
  • controller/restui/btFlowMapUiService/businessTransaction/{0}
  • controller/restui/backendFlowMapUiService/backend/{0}

ExtractEventsAndHealthRuleViolations (7)

Extracts all Events and Health Rule Violations in each Application in each of the time ranges

Runs only if Input\Events=true

Runs sequentially on 1 thread for Health Rules

Runs parallel for Events with 1 thread per event type, max 5 at a time.

These subsets of events are supported: EVENT_TYPES

REST API used:

  • controller/rest/applications/{0}/problems/healthrule-violations
  • controller/rest/applications/{0}/events

ExtractSnapshots (8)

Extracts all snapshots in each Application in each of the time ranges

Runs only if Input\Snapshot=true

Runs parallel with 8 threads extracting data. Can be overridden with --sequential command line switch

RESTUI API used:

  • controller/restui/snapshot/snapshotListDataWithFilterHandle (list of snapshots)
  • controller/restui/snapshot/getFilteredRSDListData (list of segments)
  • controller/restui/snapshot/getRequestSegmentById (segment detail)
  • controller/restui/snapshot/getErrorsForRsd (segment error detail
  • controller/restui/snapshot/getCallGraphRoot (segment call graph)

Index Phase

IndexControllersApplicationsAndEntities (11)

Converts lists of Entities into data warehouse CSV format

Runs always for applications of Type="APM"

Runs sequentially on 1 thread.

IndexControllerSIMApplicationsAndEntities (12)

Converts lists of Entities into data warehouse CSV format

Runs always for applications of Type="SIM"

Runs sequentially on 1 thread.

IndexControllerDBApplicationsAndEntities (13)

Converts lists of Entities into data warehouse CSV format

Runs always for applications of Type="DB"

Runs sequentially on 1 thread.

IndexControllerAndApplicationConfiguration (14)

Converts Controller and Application configuration into data warehouse CSV format

Runs only if Input\Configuration=true

Runs sequentially on 1 thread.

IndexApplicationConfigurationComparison (15)

Compares all Application configuration against reference application

Runs only if Input\Configuration=true

Runs sequentially on 1 thread.

IndexApplicationAndEntityMetrics (16)

Converts Metric data for all Entities into data warehouse CSV format

Runs only if Input\Metrics=true

Runs parallel with 1 thread per entity type, 8 threads total.

IndexApplicationAndEntityFlowmaps (17)

Converts flowmap data for all Entities into data warehouse CSV format

Runs only if Input\Flowmaps=true

Runs parallel with 1 thread per entity type, 5 threads total.

IndexEventsAndHealthRuleViolations (18)

Converts Event data for all Entities into data warehouse CSV format

Runs only if Input\Events=true

Runs sequential.

IndexSnapshots (19)

Converts Snapshot data (Segments, Exits, Backends, Business Data Collectors, Errors, Service Endpoints, Method Calls) for all Snapshots into data warehouse CSV format, enriching data along the way

Runs only if Input\Snapshot=true

Runs sequentially for each Business Transaction in Application. Then either runs sequentially if number of Snapshots<100, or breaks list of Snapshots into chunks of 100 for parallel processing. Can be overridden with --sequential command line switch

Report Phase

ReportControlerApplicationsAndEntities (21)

Creates "Detected Entities" report for all Entities in each Application of Type="APM"

Runs only if Output\DetectedEntities=true

Runs sequential.

ReportControlerSIMApplicationsAndEntities (22)

Creates "Detected Entities" report for all Entities in each Application of Type="SIM"

Runs only if Output\DetectedEntities=true

Runs sequential.

ReportControlerDBApplicationsAndEntities (23)

Creates "Detected Entities" report for all Entities in each Application of Type="DB"

Runs only if Output\DetectedEntities=true

Runs sequential.

ReportControllerAndApplicationConfiguration (24)

Creates "Detected Configuration" report for all Applications

Runs only if Input\Configuration=true and Output\Configuration=true

Runs sequential.

ReportApplicationAndEntityMetrics (25)

Creates "Entity Metrics" report with Calls Per Minute/Average Response Time/Errors Per Minute information for all time range and hourly breakdowns for all Entities in each Application

Runs only if Input\Metrics=true and Output\EntityMetrics=true

Runs sequential.

ReportApplicationAndEntityMetricGraphs (26)

Created "Entity Metric Graphs" Report with Calls Per Minute/Average Response Time/Errors Per Minute information as well as all other metric information for all time ranges and hourly breakdowns for all Entities in each Application, including metric detail and visual graphs

Runs only if Input\Metrics=true and Output\EntityMetricGraphs=true

Runs parallel with 1 thread per entity type, 8 threads total.

ReportEventsAndHealthRuleViolations (27)

Creates "Detected Events" report for all Applications

Runs only if Input\Events=true and Output\Events=true

Runs sequential.

ReportSnapshots (28)

Creates "Snapshots" report for all Applications, including Snapshot, Segment, Exit Call, Service Endpoint, Business Data and Error data

Runs only if Input\Snapshot=true and Output\Snapshot=true

Runs sequential.

ReportSnapshotsMethodCallLines (29)

Creates "Snapshot Method Calls" report for all Applications, including including Method Call and Method Call Frequency sheets

Runs only if Input\Snapshot=true and Output\Snapshot=true

Runs sequential.

ReportIndividualApplicationAndEntityDetails (30)

Creates "Entity Details" Report for each Entity in each Application

Runs only if (Input\Flowmaps=true, Input\Metrics=true, Input\Snapshots or Input\Events=true) and Output\EntityDetails=true

Runs parallel with 1 thread per entity type, 7 threads total.

ReportFlameGraphs (31)

Creates "Flame Graphs" Report for Application, Tiers, Nodes, Business Transactions and all Snapsthos

Runs only if Input\Snapshots=true and Output\FlameGraphs =true

Runs parallel with 1 thread per entity type, 5 threads total.

End

##Done (50) This is the final status if no errors occur

Error (100)

This is the final status if errors occur

Clone this wiki locally