How Can We Help?

This section describes the Topology API for adding different types of Standard Agents and also adding customized
agent.

Heal Agents

You can add standard and customized agents using HEAL’s ‘agents’ API. Different types of Agents supported include:

  1. Component Agent
  2. Custom Agent
  3. Forensic Agent
  4. Java Agent
  5. Log Agent
  6. PS Agent

API Name – agents

Format – POST /api/agents

JSON Format

The common format for the Agent is as follows. Format changes for different agents are provided in the Sample JSON.

{ “mode”: “<Mode of the Agent>”, “uniqueToken”: “<Unique identifier token for the Agent>”, “physicalAgentIdentifier”: “<Unique identifier of the Physical Agent>”, “name”: “<Name of the Agent>”, “description”: “<Describe the Agent>”, “subType”: “<Type of the Agent>”, “hostAddress”: “<Server detail where the agent resides>”, “status”: 1, “accountMappings”: [ { “accountIdentifier”: “<Identifier of the Account>”, “tags”: [ { “identifier”: “<Service Identifier>”, “subTypeName”: “Services”, “name”: “Controller”, “layer”: “<layer of the Service>” } ] } ], “agentMappingDetails”: { “timeoutMultiplier”: <Time-out value calculator parameter>, “configOperationMode”: “<Mode of Configuration operation>”, “dataOperationMode”: “<Mode of Data operation>”, “status”: 1, “dataCommunication”: { “protocol”: “GRPC”, “port”: <GRPC Port>, “name”: “GRPC”, “host”: “<Server where GRPC module resides>”, “description”: “<Describe your GRPC>”, “type”: “Communication_Endpoint”, “status”: 1 } }, “compInstIdentifiers”: [ { “accountId”: “<Account’s Identifier>”, “compInstIds”: [ “<CompInstanceIdentifier_1>”, “<CompInstanceIdentifier_2>, “<CompInstanceIdentifier_14>” ], “tags”: [ { “identifier”: “(GMT+08:00) Kuala Lumpur, Singapore”, “subTypeName”: “Account”, “name”: “Timezone” } ] } ] }

Input Required

NameDescriptionDefault ValuePredefined ValuesMandatoryMore Info
modeMode of the AgentMonitorMonitorYesDo not change the value.
uniqueTokenUnique identifier token for the AgentYes
physicalAgentIdentifierUnique identifier of the Physical AgentYesMultiple agents of same type or different types configured for same host or different
hosts can be mapped to either single physicalAgentIdentifier or multiple physicalAgentIdentifiers.
If multiple logical agents must be grouped together, use the same identifier of the Physical agent.
Name of the AgentYesUnique name for the agent in the account.
descriptionDescription for the AgentYes
subTypeAgent typeComponentAgent, JIMAgent, LogForwarder, ForensicAgent, CustomYesUse only the values from the Predefined list.
hostAddressIP Address or Hostname of the server where the Agent is deployed.Yes
statusFlag to identify the status of the Agent10, 1Yes0 – Inactive, 1 – Active
Object – accountMappings
accountIdentifierIdentifier of the Account to which the agent belongsYesSingle-agent can be mapped to multiple Accounts.
tags
identifierIdentifier of the Application or ServiceYes
subTypeNameType of the TagApplication, ServicesYesUse only the values from the Predefined list.
nameControllerControllerControllerYesDo not change the value.
layerLayer to which the Service belonguser, app_server, web_server, db_serverNo
Object – agentMappingDetails (Applicable only to Component Agent)
timeoutMultiplierValue to be calculated for the Producer to timeout2YesThe value provided here will be multiplied with the Collection interval of KPI to get
the actual timeout value.
configOperationModeOperating mode for the Configuration detailsLocalYes
dataOperationModeOperating mode for the Data CollectedRemoteLocal, RemoteYes
statusFlag to indicate the Data Communication should be used.11Yes1 – Active. Do not change the value
dataCommunication
protocolProtocol to be used for the Data CommunicationGRPCGRPCYesDo not change the value.
portPort number of the GRPC ServerYes
nameName for this Communication channelYes
hostIP Address or Hostname of the server where the GRPC Server is deployed.Yes
descriptionDescription of the GRPC ServerYes
typeType of data communicationCommunication_EndpointCommunication_EndpointYes
statusFlag to identify if this data communication must be used.11Yes1 – Active. Do not change the value
Object – compInstIdentifiers
accountIdIdentifier of the Account to which the component instance belongs.Yes
compInstIdsList of Component instance identifiers belonging to this agentYesList to be separated by ‘,’
tags (Optional)
identifierIdentifier of the AccountYes
subTypeNameType of the tagAccountAccountYesDo not change the value.
nameTimezoneTimezoneTimezoneYes

Component Agent

Sample JSON, Success and Failure response to add Component Agents is as follows.

Sample JSON.

[ { “mode”:”MONITOR”, “uniqueToken”:”e570de02-c585-4917-bbb7-5c97b35e-13″,”physicalAgentIdentifier”:”c270ae02-c575-2117-aaa7-3d97b35e-53″, “name”:”XR_CompAgent_Web_Node2″, “description”:””, “subType”:”ComponentAgent”, “hostAddress”:”xrwebserver.node2″, “status”:1, “accountMappings”:[ { “accountIdentifier”:”01c7a0ef-a3d5-47ca-b16f-3a1afe2821a7″, “tags”:[ { “identifier”:”Travel_Web”, “subTypeName”:”Services”, “name”:”Controller”, “layer”:”web_service” } ] } ], “agentMappingDetails”:{ “dataCommunication”:{ “protocol”:”GRPC”, “port”:9999, “name”:”GRPC”, “host”:”servernode1.appnomic”, “description”:””, “type”:”Communication_Endpoint”, “status”:1 }, “timeoutMultiplier”:2, “configOperationMode”:”Local”, “dataOperationMode”:”Remote”, “status”:1 }, “compInstIdentifiers”:[ { “accountId”:”01c7a0ef-a3d5-47ca-b16f-3a1afe2821a7″, “compInstIds”:[], “tags”:[ { “identifier”:”Travel_DB”, “subTypeName”:”Services”, “name”:”Controller”, “layer”:”db_service” } ] } ] } ]

Success Rest Response { “message”: “Successfully Created”, “responseStatus”: “SUCCESS”, }
Failure Rest Response { “message”: “Invalid Application Identifier.”, “responseStatus”:
“FAILURE”, }

Custom Agent

Sample JSON, Success and Failure response to add a Custom Agent is as follows.

Sample JSON

[

{

“uniqueToken”: “e570de02-c585-4917-bbb7-5c97b35e-14”,

“physicalAgentIdentifier”:”h270we02-c575-2117-def9-3d97b36e-53″,

“name”: “XRCustomTravel”,

“subType”: “Custom”,

“status”: 1,

“hostAddress”: “xrwebserver.node2”,

“mode”: “MONITOR”,

“description”: “Custom Agent to send the Error Code”,

“compInstIdentifiers”: [

{

“accountId”: “01c7a0ef-a3d5-47ca-b16f-3a1afe2821a7”,

“compInstIds”: null,

“tags”: []

}

],

“agentMappingDetails”: null

}

]

Success Rest Response “message”: “Successfully Created”, “responseStatus”: “SUCCESS”, }
Failure Rest Response { “message”: “Invalid Application Indentifier.”, “responseStatus”:
“FAILURE”, }

Forensic Agent

Sample JSON, Success and Failure response to add a Forensic Agent is as follows. Only one Forensic Agent must be
added per account.

Sample JSON

[

{

“uniqueToken”: “e570de02-c585-4917-bbb7-5c97b35e”,

“physicalAgentIdentifier”:”c270de02-d585-2887-7-3d97a35d-53″,

“name”: “XR_ForensicAgent”,

“subType”: “ForensicAgent”,

“status”: 1,

“hostAddress”: “xrappnode1.com”,

“mode”: “MONITOR”,

“description”: “Forensic Agent for the XR Travel”,

“compInstIdentifiers”: [

{

“accountId”: “01c7a0ef-a3d5-47ca-b16f-3a1afe2821a7”,

“compInstIds”: null,

“tags”: []

}

],

“agentMappingDetails”: null

}

]

Success Rest Response { “message”: “Successfully Created”, “responseStatus”: “SUCCESS”, }
Failure Rest Response { “message”: “Invalid tag”, “responseStatus”: “FAILURE”, }

Java Agent

Sample JSON, Success and Failure response to add a Java Agent is as follows.

Sample JSON

[

{

“uniqueToken”: “e570de02-c585-4917-bbb7-5c97b35e-18”,

“physicalAgentIdentifier”:”c270be02-d575-2117-bbc7-6d97b35e-43″,

“name”: “XR_JAgent_App_Node1”,

“subType”: “JIMAgent”,

“status”: 1,

“hostAddress”: “xrappserver.node2”,

“mode”: “MONITOR”,

“description”: “Java Agent for XR AppServer Node 1”,

“accountMappings”: [

{

“accountIdentifier”: “01c7a0ef-a3d5-47ca-b16f-3a1afe2821a7”,

“tags”: [

{

“identifier”: “Flights”,

“subTypeName”: “Services”,

“layer”: “app_service”,

“name”: “Controller”

}

]

}

],

“compInstIdentifiers”: [

{

“accountId”: “01c7a0ef-a3d5-47ca-b16f-3a1afe2821a7”,

“compInstIds”: [

“XR_WAS_App_Node1_Instance1”

],

“tags”: [

{

“identifier”: “(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi”,

“subTypeName”: “Account”,

“name”: “Timezone”

}

]

}

],

“agentMappingDetails”: null

}

]

Success Rest Response { “message”: “Successfully Created”, “responseStatus”: “SUCCESS”, }
Failure Rest Response { “message”: “Invalid tag”, “responseStatus”: “FAILURE”, }

Log Agent

Sample JSON, Success and Failure response to add a Log Agent is as follows.

Sample JSON

[

{

“uniqueToken”: “e570de02-c585-4917-bbb7-5c97b35e-18”,

“physicalAgentIdentifier”:”c280de02-c575-2667-bcb7-4d97b35d-63″,

“name”: “XR_LAgent_App_Node1”,

“subType”: “LogForwarder”,

“status”: 1,

“hostAddress”: “xrappserver.node2”,

“mode”: “MONITOR”,

“description”: “Log Agent for XR AppServer Node 1”,

“accountMappings”: [

{

“accountIdentifier”: “01c7a0ef-a3d5-47ca-b16f-3a1afe2821a7”,

“tags”: [

{

“identifier”: “Flights”,

“subTypeName”: “Services”,

“layer”: “app_service”,

“name”: “Controller”

}

]

}

],

“compInstIdentifiers”: [

{

“accountId”: “01c7a0ef-a3d5-47ca-b16f-3a1afe2821a7”,

“compInstIds”: [

“XR_WAS_App_Node1_Instance1”

],

“tags”: [

{

“identifier”: “(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi”,

“subTypeName”: “Account”,

“name”: “Timezone”

}

]

}

],

“agentMappingDetails”: null

}

]

Success Rest Response { “message”: “Successfully Created”, “responseStatus”: “SUCCESS”, }
Failure Rest Response{ “message”: “Invalid tag”, “responseStatus”: “FAILURE”, }

PS Agent

Sample JSON, Success and Failure response to add a PS Agent is as follows.

Sample JSON

[

{ “uniqueToken”: “e570de02-c585-4917-bbb7-5c97b35e-18”,

“physicalAgentIdentifier”:”c270ae02-c575-2117-dda9-3e97b65e-63″,

“name”: “XR_PSA_App_Node1”,

“subType”: “PSAgent”,

“status”: 1,

“hostAddress”: “xrappserver.node2”,

“mode”: “MONITOR”,

“description”: “PS Agent for XR AppServer Node 1”,

“accountMappings”: [

{

“accountIdentifier”: “01c7a0ef-a3d5-47ca-b16f-3a1afe2821a7”,

“tags”: [

{

“identifier”: “Flights”,

“subTypeName”: “Services”,

“layer”: “app_service”,

“name”: “Controller”

}

]

}

],

“compInstIdentifiers”: [

{

“accountId”: “01c7a0ef-a3d5-47ca-b16f-3a1afe2821a7”,

“compInstIds”: [

“XR_WAS_App_Node1_Instance1”

],

“tags”: [

{

“identifier”: “(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi”,

“subTypeName”: “Account”,

“name”: “Timezone”

}

]

}

],

“agentMappingDetails”: null

}

]

Success Rest Response { “message”: “Successfully Created”, “responseStatus”: “SUCCESS”, }
Failure Rest Response { “message”: “Invalid tag”, “responseStatus”: “FAILURE”, }

Table of Contents