How Can We Help?

Introduction

You can ingest KPIs and transactions to HEAL using HNF REST APIs. Input to the APIs has to be in a specific JSON format.

Ingesting KPIs

API Name: raw-kpi-data

Format: POST raw-kpi-data

Input JSON Format

{ “agentIdentifier”: “<Unique Identifier of the Agent>”, “instanceData”: [{ “identifier”: “<Identifier of HEAL host or component instance>”, “kpiData”: [{ “kpiUid”: <Unique Identifier of the KPI>, “timeInGMT”: “<Time in GMT format>”, “kpiType”: “<Type of the KPI>”, “kpiName”: “<Name of the KPI>”, “collectionInterval”: <Data collection frequency>, “val”: “<Value of the KPI>”, “errorCode”: “<Error code>”, “kpiGroupName”: “<Name of the Group KPI>”, “isKpiGroup”: <Flag to know if the KPI belongs to a group>, “groupKpi”: { “<name of the attribute>”: “<value of the attribute>”, “<name of the attribute>”: “<value of the attribute>” } “watcherKpiValue”: { “<name of the file>”: { “<key name>”: “<value of the key>”, “<key name>”: “<value of the key>” }, “<name of the file>”: { “<key name>”: “<value of the key>”, “<key name>”: “<value of the key>” } }

}

Input Parameters

NameDescriptionMandatoryMore Information
agentIdentifierUnique Identifier of the Agent. Configure agent in HEAL. Agent can be standard or custom. It should be either Component or Log agent.YesThe identifier for the agent must be present in HEAL database.
IdentifierIdentifier of HEAL host or component instanceYesIdentifier of the instance from HEAL database.
kpiUidUnique Identifier of the KPIYesIdentifier of the KPI from HEAL database.
timeInGMTTime in GMT formatYesTime when KPI collection done.
kpiTypeType of the KPIYesIt should be one of the following –

Core = 0; Availability = 1; Forensic = 2; ConfigWatch = 3; FileWatch = 4; ComputedAvailability = 5

kpiNameName of the KPIYes
collectionIntervalData collection frequencyYesData collection interval configured for the KPI from HEAL database.
valValue of the KPINoIn case of an error, there will not be any value for the KPI.
errorCodeError codeNoError code from HEAL database.
kpiGroupNameName of the Group KPINoThis is applicable only in case of a group KPI.
isKpiGroupFlag to know if the KPI belongs to a groupNoThis is applicable only in case of a group KPI.

 

Sample Input

Path:

http://<grpc_host>:<grpc_port>/raw-kpi-data

Command:

{ “agentIdentifier”: “1234-sdff-343”, “instanceData”: [{ “identifier”: “instan1”, “kpiData”: [{ “kpiUid”: 123, “timeInGMT”: “2021-10-30 00:00:00”, “kpiType”: “Core”, “kpiName”: “cpu_util”, “collectionInterval”: 60, “val”: “32.59” }, { “kpiUid”: 124, “timeInGMT”: “2021-10-30 00:00:00”, “kpiType”: “Core”, “kpiName”: “Free_Size_MB”, “kpiGroupName”: “Diskspace”, “isKpiGroup”: true, “collectionInterval”: 60, “groupKpi”: { “C”: “5201”, “D”: “3000”, “E”: “3000” } }, { “kpiUid”: 126, “timeInGMT”: “2021-10-30 00:00:00”, “kpiType”: “Core”, “kpiName”: “MEM_UTIL”, “collectionInterval”: 60, “errorCode”: “E1234” }, { “kpiUid”: 124, “timeInGMT”: “2021-10-30 00:00:00”, “kpiType”: “Core”, “kpiName”: “AVAIL_Size_MB”, “kpiGroupName”: “Diskspace”, “isKpiGroup”: true, “collectionInterval”: 60, “groupKpi”: { “C”: “5201”, “D”: “E1234” }, “errorCode”: “E1234” }, { “kpiUid”: 122, “timeInGMT”: “2021-10-30 00:00:00”, “kpiType”: “Availability”, “kpiName”: “port22”, “collectionInterval”: 60, “val”: “1” }, { “kpiUid”: 125, “timeInGMT”: “2021-10-30 00:00:00”, “kpiType”: “Availability”, “kpiName”: “URLSTATUS”, “kpiGroupName”: “CheckStatus”, “isKpiGroup”: true, “collectionInterval”: 60, “groupKpi”: { “http://localhost”: “1”, “http://localhost1:132”: “0” } }, { “kpiUid”: 127, “timeInGMT”: “2021-10-30 00:00:00”, “kpiType”: “ConfigWatch”, “kpiName”: “KeyValuePair”, “kpiGroupName”: “ConfigProperties”, “isKpiGroup”: true, “collectionInterval”: 600, “watcherKpiValue”: { “file1”: { “f1Key1” : “f1Value1”, “f1Key2” : “f1Value2” }, “file2”: { “f2Key1” : “f2Value1”, “f2Key2” : “f2Value2” }, “file3”: { }, “file4”: null } } ] }] }

Ingesting Transactions

API Name: raw-txn-data

Format: POST raw-txn-data

Input JSON Format

{ “agentIdentifier”: “<Unique Identifier of the Agent>”, “serverIp”: “<Server IP serving the request>” , “clientIp”: “<Client IP sending the request>”, “serverPort”: “<Server port number>”, “clientPort”: “<Client port number>”, “httpDetails”: [{ “responseTimeType”: “<Value of the response time type>”, “responseStatusTag”: “<Value of the response tag>”, “method”: “<HTTP Transaction Method>”, “startTimeInGMT”: “<Start time of the transaction in GMT>”, “endTimeInGMT”: “<End time of the transaction in GMT>”, “responseInMicroseconds”: “<Transaction response time in microseconds>”, “url”: “<HTTP Transaction URI>”, “header”: “<HTTP Transaction Header details>”, “responseCode”: “<HTTP Response Code>”, “requestBody”: “<HTTP Transaction Request Body details>”, “requestSizeInBytes”: “<Size of the request in bytes>”, “responseBody”: “<HTTP Transaction Response Body details>”, “responseSizeInBytes”: “<Size of the response in bytes>” }

Input Parameters

NameDescriptionMandatoryMore Information
agentIdentifierUnique Identifier of the Agent. Configure agent in HEAL. Agent can be standard or custom. It should be either PSAgent or Log agent.YesThe identifier for the agent must be present in HEAL database.
serverIpIP Address or Hostname of the server which serves the requestYes
clientIpIP Address or Hostname of the server which sends the requestYes
serverPortPort number on which the server listensYes
clientPortPort number from which client sends the requestYes
responseTimeTypeValue of the response time typeYesenum ResponseTimeType {

RENDER = 0;

DC = 1;

EUE0 = 2;

EUE1 = 3;

EUE2 = 4;

L0 = 5;

L1 = 6;

L2 = 7;

L3 = 8;

L4 = 9;

}

responseStatusTagValue of the response tagYesenum ResponseStatusTag {

UNKNOWN = 0;

GOOD = 1;

FAIL = 2;

TIMEOUT = 3;

SLOW = 4;

}

methodHTTP Transaction MethodYesenum Method {

OTHER = 0;

GET = 1;

HEAD = 2;

POST = 3;

PUT = 4;

DELETE = 5;

CONNECT = 6;

OPTIONS = 7;

TRACE = 8;

}

startTimeInGMTStart time of the transaction in GMTYes
endTimeInGMTEnd time of the transaction in GMTYes
responseInMicrosecondsTransaction response time in microsecondsYes
urlHTTP Transaction URIYes
headerHTTP Transaction Header detailsYes
responseCodeHTTP Response CodeYes
requestBodyHTTP Transaction Request Body detailsNo
requestSizeInBytesSize of the request in bytesNo
responseBodyHTTP Transaction Response Body detailsNo
responseSizeInBytesSize of the response in bytesNo

 

Sample Input

Path:

http://<grpc_host>:<grpc_port>/raw-txn-data

Command:

{

“agentIdentifier”: “345l-435l435-345”, “serverIp”: “127.0.0.1”, “clientIp”: “10.0.0.1”, “serverPort”: 8008, “clientPort”: 8181, “httpDetails”: [{ “responseTimeType”: “DC”, “responseStatusTag”: “GOOD”, “method”: “GET”, “startTimeInGMT”: “2021-10-19 16:00:00”, “endTimeInGMT”: “2021-10-19 16:00:20”, “responseInMicroseconds”: 200000, “url”: “/UISERVICE/index.html”, “header”: “test123=12&test321=321”, “responseCode”: 200 }, { “responseTimeType”: “DC”, “responseStatusTag”: “GOOD”, “method”: “POST”, “startTimeInGMT”: “2021-10-19 16:00:00”, “endTimeInGMT”: “2021-10-19 16:00:20”, “responseInMicroseconds”: 200000, “url”: “/UISERVICE/index2.html”, “header”: “test123=12&test321=321”, “responseCode”: 200, “requestBody” : “abc=123&bca=ere”, “requestSizeInBytes” : 15, “responseBody”: “”, “responseSizeInBytes”: 0 }] }

Table of Contents