extending apm using rest api's devxchange

43
Extending APM using Rest API's DevXChange Andreas Reiss – CA Technologies – APM Global SWAT Team May 2016

Upload: others

Post on 02-Oct-2021

21 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Extending APM using Rest API's DevXChange

Extending APM using Rest API'sDevXChange

Andreas Reiss – CA Technologies – APM Global SWAT Team

May 2016

Page 2: Extending APM using Rest API's DevXChange

2 © 2014 CA. ALL RIGHTS RESERVED.

Agenda

MEET JULIET

A PROBLEM APPLICATION

HAVING ALL COVERED IN TEAM CENTER

CHALLENGES AND REQUIREMENTS

REPORTING TEST RESULTS

WHAT’S MY APP VERSION?

1

2

3

4

5

6

Page 3: Extending APM using Rest API's DevXChange

Meet Juliet

Page 4: Extending APM using Rest API's DevXChange

4 © 2014 CA. ALL RIGHTS RESERVED.

Meet JulietIntroduction

• Juliet is a QA Engineer• Good knowledge 

about her testing tools• Experience in scripting

• Experience in her monitoring tools

Page 5: Extending APM using Rest API's DevXChange

5 © 2014 CA. ALL RIGHTS RESERVED.

Meet JulietTask – Nowhere Bank

• Nowhere Bank is a trouble maker• Constant problems on release changes

• Every release is a new surprise• Huge complexity because of different 

protocols

Page 6: Extending APM using Rest API's DevXChange

Problem Application

Page 7: Extending APM using Rest API's DevXChange

7 © 2014 CA. ALL RIGHTS RESERVED.

Nowhere BankOverview

Nowhere Bank Client / Test Request Simulator

Nowhere Bank Server

Portal

Mediator

Engine

HTTP Communication

Request Queues

Reply Queues

Socket Communication

Banking Web Service Nowhere DB

Page 8: Extending APM using Rest API's DevXChange

8 © 2014 CA. ALL RIGHTS RESERVED.

Nowhere BankMonitoring Results – Team Center

Business Transactions Discovered

Application InstancesDiscovered

Page 9: Extending APM using Rest API's DevXChange

Challenges and Requirements

Page 10: Extending APM using Rest API's DevXChange

10 © 2014 CA. ALL RIGHTS RESERVED.

Challenges and RequirementsTest Enrichment

It would be great to have Test Results as Metrics– Test Results– Test Times

How to link problems with tested releases?– Release information in 

Team Center nodes– Test Cases in BT’s for 

coverage

Show Test Coverage in Team Center

Special Instrumentation for Test runs

Page 11: Extending APM using Rest API's DevXChange

11 © 2014 CA. ALL RIGHTS RESERVED.

Challenges and RequirementsWhat are my options in APM 10.2 ?

App AgentsApp Agents

App AgentsApp 

AgentsEPA’s

ACC App AgentsController ACC

Web View

ATC EnterpriseManagers

Page 12: Extending APM using Rest API's DevXChange

Reporting Test Results

Page 13: Extending APM using Rest API's DevXChange

13 © 2014 CA. ALL RIGHTS RESERVED.

EPA

Test Simulator NowhereBank

EnterpriseManager

Reporting Test ResultsTarget Architecture

Juliet leverages the REST API from the Environment Performance Agent (EPA) to report metrics

RESTMetrics

Page 14: Extending APM using Rest API's DevXChange

14 © 2014 CA. ALL RIGHTS RESERVED.

Reporting Test ResultsEPA Rest API

Reference and full documentation:– https://docops.ca.com/ca‐apm/10‐2/en/implementing‐agents/ep‐

agent/configure‐the‐epagent‐restful‐interface

Metric Feed URI– URL: http://<EPA Host>:<EPA HTTP Port>/apm/metricFeed– Method: POST– Header : "Content‐Type:application/json”

Sample JSON Metric

{"metrics" : [{"type" : LongAverage",

"name" : ”Tests|Nowhere Bank|List Accounts Test:Average Test Run Time (ms)",

"value" : 5623"}]}

Page 15: Extending APM using Rest API's DevXChange

15 © 2014 CA. ALL RIGHTS RESERVED.

Reporting Test ResultsEPA Rest API

It would be great to have Test Results as Metrics– Test Results– Test Times

Page 16: Extending APM using Rest API's DevXChange

Release Information in Team Center nodes

Page 17: Extending APM using Rest API's DevXChange

17 © 2014 CA. ALL RIGHTS RESERVED.

Release Information > ATCFinding the bits and pieces

The missing link

Page 18: Extending APM using Rest API's DevXChange

18 © 2014 CA. ALL RIGHTS RESERVED.

Release Information > ATCStrategy

• Java Properties are in ACC.

• Take it from ACC and push it into ATC!!!

CollectJava Property

FromTest Agents

REST Nowhere DBAgentsACC

SearchTest AgentsVertices

RESTATC

UpdateVertices ATC

1

2 3

Page 19: Extending APM using Rest API's DevXChange

19 © 2014 CA. ALL RIGHTS RESERVED.

Reporting Test ResultsAPM Command Center ‐ Rest API

Reference and full documentation:– https://docops.ca.com/ca‐

apm/10‐2/en/administrating/ca‐apm‐command‐center/ca‐apm‐command‐center‐api

REST API– URL: https://<ACC server 

hostname>:<port>/apm/acc/<resource name>

– Methods: GET, HEAD, POST, DELETE (depends on functionality)

– Header : "Content‐Type:application/json”

Functionalities– Agent Resource– agentUpdateTask Resource– diagnosticReport Resource– diagnosticReportTask Resource– controller Resource– controllerUpgradeTask Resource– agentFileOperationTask 

Resource– File Resource– auditRecord Resource– package Resource

Page 20: Extending APM using Rest API's DevXChange

20 © 2014 CA. ALL RIGHTS RESERVED.

Reporting Test ResultsAPM Command Center – Agent Resource

Agent Resource ‐ Available Data per Agent

id

agentName

serverName

processName

status

type

version

build

logLevel

registrationTimestamp

registrationUnixTimestamp

lastContact

appServerName

appServerVersion

platformName

platformVersion

platformArch

osName

osVersion

osArch

metricCountinstallPath

agentProfile

platformProperties

environmentVariables

Page 21: Extending APM using Rest API's DevXChange

21 © 2014 CA. ALL RIGHTS RESERVED.

Reporting Test ResultsAPM Command Center – Agent Resource

Agent Resource command:– GET https://localhost:8443/apm/acc/agent/

Call to fetch all data for agents on Juliet’s test machine “WIN81‐ARE‐MAC”: 

curl ‐k ‐X GET https://172.16.100.130:8443/apm/acc/agent?q=serverName:WIN81‐MAC‐ARE ‐H "Authorization:Bearer faab8c3f‐e036‐4c9a‐89bc‐beddbb5983b6"

Page 22: Extending APM using Rest API's DevXChange

22 © 2014 CA. ALL RIGHTS RESERVED.

curl ‐k ‐X GET https://172.16.100.130:8443/apm/acc/agent?q=serverName:WIN81‐MAC‐ARE ‐H "Authorization:Bearer faab8c3f‐e036‐4c9a‐89bc‐beddbb5983b6"

Reporting Test ResultsAPM Command Center – Agent Resource

Page 23: Extending APM using Rest API's DevXChange

23 © 2014 CA. ALL RIGHTS RESERVED.

I have my test agents and the Nowhere Bank Release Version. 

Reporting Test ResultsHalf Way Results

How to update Team Center with Release 

versions?

Page 24: Extending APM using Rest API's DevXChange

24 © 2014 CA. ALL RIGHTS RESERVED.

Reporting Test ResultsAPM Team Center ‐ Rest API

Reference and full documentation:– https://docops.ca.com/ca‐apm/10‐2/en/integrating/api‐reference‐

guide/apm‐rest‐api

Team Center Access– URL: https://{{hostname}}:8443/apm/appmap/– Methods: GET, PATCH– Header : "Content‐Type:application/json”

Functionalities– Root Resource– Vertex– Vertex id

Page 25: Extending APM using Rest API's DevXChange

25 © 2014 CA. ALL RIGHTS RESERVED.

Reporting Test ResultsAPM Team Center – Vertex manipulation strategy

AgentCommandCenter(ACC)

TeamCenter(ATC)

AgentInformation RESTFind all

Vertices forAn Agent

Add a newAttributeWith

NowhereBank release

2

1

ReleaseInformation

Page 26: Extending APM using Rest API's DevXChange

26 © 2014 CA. ALL RIGHTS RESERVED.

Reporting Test ResultsAPM Team Center – Search for Vertices

Agent Resource command:– GET https://localhost:8444/apm/acc/agent/

Call to fetch all data for agents on Juliet’s test machine “WIN81‐ARE‐MAC”: 

curl ‐‐insecure ‐X GET https://172.16.100.137:8444/apm/appmap/vertex?q=attributes.hostname: win81‐mac‐are ‐H "Authorization:Bearer b16e9829‐1dfe‐4ea4‐af61‐204a823c2320"

Page 27: Extending APM using Rest API's DevXChange

27 © 2014 CA. ALL RIGHTS RESERVED.

Reporting Test ResultsAPM Team Center – Search for Vertices

Let’s collect the Vertex ID’s for our next 

step

Agent specification matching ACCinformation

Page 28: Extending APM using Rest API's DevXChange

28 © 2014 CA. ALL RIGHTS RESERVED.

Reporting Test ResultsAPM Team Center – Update Vertices with Release Information

Agent Vertex Update command command:– GET https://localhost:8443/apm/acc/agent/

Call to at the release information to individual vertices: 

curl ‐‐insecure ‐X PATCH https://172.16.100.140:8444/apm/appmap/vertex/<VertexId> ‐d "{\"attributes\":{\"Nowhere Bank Build\":\"5.6\"}}" ‐H "Authorization:Bearer b16e9829‐1dfe‐4ea4‐af61‐204a823c2320" ‐H "Content‐Type: application/json"

Page 29: Extending APM using Rest API's DevXChange

29 © 2014 CA. ALL RIGHTS RESERVED.

Reporting Test ResultsAPM Team Center – Update Vertices with Release Information

Release Information 

from Agents in Team Center Vertices.

Page 30: Extending APM using Rest API's DevXChange

Tests and Test Results on Team Center

Page 31: Extending APM using Rest API's DevXChange

31 © 2014 CA. ALL RIGHTS RESERVED.

Reporting Test ResultsAPM Team Center – Update Vertices with Release Information

I want to link failure transactions in Team Center 

with failed test cases

Test Case Result

Add Account OK

Add Money to Account

FAIL

Get Account Details

OK

List Accounts FAIL

Page 32: Extending APM using Rest API's DevXChange

32 © 2014 CA. ALL RIGHTS RESERVED.

Reporting Test ResultsAPM Team Center – Update Vertices with Test Results

LookupBT for

Test Case BT Lookup

REST

1

APMTeamCenter

UpdateTest Results

For BT

2

Page 33: Extending APM using Rest API's DevXChange

33 © 2014 CA. ALL RIGHTS RESERVED.

Reporting Test Results1. Lookup BT’s for Test Case

Type Business Transaction

Test Case: Add Money To Account

Result Vertex for BT Node

Page 34: Extending APM using Rest API's DevXChange

34 © 2014 CA. ALL RIGHTS RESERVED.

Reporting Test Results2. Update the Business Transaction with Result

Page 35: Extending APM using Rest API's DevXChange

Getting the right instrumentation for a test

Page 36: Extending APM using Rest API's DevXChange

36 © 2014 CA. ALL RIGHTS RESERVED.

The right instrumentation for a test case

Test Case: “Add Money To Account” needs special detailed metrics for test 

validation

Test Case: “Get Account Details” requires super slim instrumentation for performance reason

REST APMCommandCenter

PBDFile

ControllerAgent

Java Agent(FS)

Page 37: Extending APM using Rest API's DevXChange

37 © 2014 CA. ALL RIGHTS RESERVED.

The right instrumentation for a test case

“File Resource”

Call

Upload1

PBD File3 Agent

AgentFile operation

Task

2

Response

File id

File id

ACC

Page 38: Extending APM using Rest API's DevXChange

38 © 2014 CA. ALL RIGHTS RESERVED.

Upload PBD File1. APM Command Center – File Resource

Page 39: Extending APM using Rest API's DevXChange

39 © 2014 CA. ALL RIGHTS RESERVED.

Upload PBD File2. APM Command Center – Upload File to Agent

Upload File call

POST https://localhost:8443/apm/acc/agentFileOperationTask{"agent" : "agent/2","file" : "file/12","destination" : "core/config/hotdeploy/my‐new‐app.pbd”,"operation":"COPY"}

Immediately newinstrumentation on the Agent.No restart!!!!

Page 40: Extending APM using Rest API's DevXChange

Field Community

Page 41: Extending APM using Rest API's DevXChange

41 © 2014 CA. ALL RIGHTS RESERVED.

Github Community

https://github.com/CA‐APM

Page 42: Extending APM using Rest API's DevXChange

Q & A

Page 43: Extending APM using Rest API's DevXChange

Engineering Services Architect = APM Global SWAT [email protected]

Andreas Reiss