Software AG Products 10.7 | Using API Gateway | API Gateway Analytics | Runtime Events and Metrics Data Model | Elasticsearch
 
Elasticsearch
The runtime events and metrics payload generated by API Gateway at run-time is published to the configured Elasticsearch destination. The columns that make up the events and metrics data model for Elasticsearch are listed below:
Transactional Events
Column
Description
apiId
The unique identifier for the API.
Example: af70b2de-c9c5-4f40-94be-7d8622743e42
apiName
Name of the API in which the event occurred.
Example: SampleAPI
apiVersion
The system-assigned version identifier for the API.
Example: 1.0
applicationId
The unique identifier for the application associated with the API invocation.
Example: c0f84954-9732-11e5-b9f4-f159eafe47b2
applicationIp
IP address of the application associated with the API invocation.
Example: 10.60.37.42
applicationName
Name of the application associated with the API invocation.
An application name is populated as unknown when API Gateway is unable to identify the application using a security policy that is configured for the API.
Example: SampleApplication
cachedResponse
Indicates whether the response is sent to the client from the cached data present in API Gateway through the Service result caching policy or the response is received from Native service and sent to client.
Possible values are: Cached, Not-Cached
correlationID
The unique identifier that is automatically generated for every request coming to API Gateway and can be used to query the log.
Example: MED38e9cfa4-2348-408b-9462-124b2181c1a6:656
creationDate
Date and time when the event was generated in API Gateway.
Example: 1501671101509
customFields
The custom fields an API Provider can provide to log a new field and value for a transaction event.
Example: {"customfield":"customvalue"}
errorOrigin
The origin of error.
Example: Nativeserivce
eventType
The type of event that occurred.
Example: Transactional
externalCalls
List the external calls from API Gateway. These external calls can be to a native service or service registry.
Example:

[{
"externalCallType":"SERVICE_REGISTRY_CALL",
"externalURL":"http://service.registry.com",
"callDuration":49,
"callStartTime":1562244570486,
"callEndTime":1562244570535,
"responseCode": "200"
},
{
"externalCallType":"NATIVE_SERVICE_CALL",
"externalURL":
"https://petstore.swagger.io/v2/store/inventory",
"callDuration":1285,
"callStartTime":1562244569252,
"callEndTime":1562244570537,
"responseCode":"200"
}]
httpMethod
The HTTP method used to invoke the API.
Example: GET
isCallbackRequest
Indicates whether the event is generated for a callback request.
Possible values are:
*true. This denotes that the event is generated for a callback request.
*false. This denotes that the event is generated for a normal response.
messageType
This is applicable only for WebSocket APIs. This indicates the type of a WebSocket message.
Possible values are: binary, text
nativeHttpMethod
The HTTP method used to invoke the native service.
Example: GET
nativeRequestHeaders
Request header in the incoming request from the API Gateway to native service.
Example:

{
"Authorization":"**************",
"Accept": "*/*",
"Authorization": "**************",
"Accept":"*/*",
"Cache-Control": "no-cache",
"User-Agent": "PostmanRuntime/7.13.0",
"Postman-Token":
"381424fa-e3b3-4058-8df9-4abf9d72c899",
"postmanHeader": "hello",
"accept-encoding": "gzip, deflate",
"Content-Type": "application/x-www-form-urlencoded"
}
nativeReqPayload
The native service request data.
Example:

{
"param1" : "value1",
"param2" : 10
}
nativeResponseHeaders
Response header in the outgoing response from the native service to API Gateway.
Example:

{
"Server":"Jetty(9.2.9.v20150224)",
"Access-Control-Allow-Origin":"*",
"Access-Control-Allow-Methods": "GET, POST, DELETE,
PUT",
"Connection":"close",
"Date": "Fri, 07 Jun 2019 12:44:13 GMT",
"Access-Control-Allow-Headers": "Content-Type,
api_key, Authorization",
"Content-Type": "application/json"
}
nativeResPayload
The native service response data.
Example:

{
"id":2,
"category":
{
"id":2,
"name":"string"
},
"name":"pysen",
"photoUrls":["string"],
"tags":
[{
"id":0,
"name":"string"
}],
"status":"available"
}
nativeURL
URL of the native service.
Example: http://petstore.swagger.io/v2/pet/2
operationName
Name of the API operation that is invoked.
Example: /pet/{petId}
origin
This is applicable only for WebSocket APIs. The origin of the request.
Possible values are: client, server
packageId
The unique identifier for the API package.
Example: c0f84954-9732-11e5-b9f4-f159eafe47b2
packageName
Name of the API package.
Example: Travel Package
planId
The unique identifier for the API plan.
Example: d0f84954-9732-11e5-b9f4-f159eafe47b2
planName
Name of the API plan.
Example: Gold Plan
providerTime
Time in milliseconds required for API Gateway to invoke a native provider and receive a response. This time includes the overhead incurred by API Gateway. Overhead includes the time it takes for a provider to process a request and return a response, plus any network latency to or from the provider. Subtracting total time from provider time must give a rough indicator of the API Gateway overhead.
Example: 1367
queryParameteres
This is applicable only for REST APIs. Query parameters present in the incoming REST request.
Example: {"status":"available"}
reqPayload
The API request payload data.
Example: <RequestPayload>
requestHeaders
Request header in the incoming request from the client.
Example:

{
"Cache-Control":"max-age=0",
"Accept":"text/plain,application/json;
q=0.9,image/webp,image/apng,*/*;
q=0.8",
"Upgrade-Insecure-Requests":"1",
"Connection":"keep-alive",
"User-Agent":"Mozilla/5.0(Windows NT 6.1; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/65.0.3325.181Safari/537.36",
"Host":"mcdaso02:5555",
"Accept-Encoding":"gzip,deflate",
"Accept-Language":"en-US,en;q=0.9,ta;q=0.8",
"Content-Type":"application/x-www-form-urlencoded"
}
resPayload
The API response payload data.
Example: <ResponsePayload>
responseCode
The HTTP response status code that indicates success or failure of the requested operation.
Example: 404
responseHeaders
Response header in the outgoing response.
Example:

{
"Server":"Jetty(9.2.9.v20150224)",
"Access-Control-Allow-Origin":"*",
"Access-Control-Allow-Methods":"GET,POST,DELETE,
PUT",
"Connection":"close",
"Date":"Fri, 30 Mar 2018 08:25:45 GMT",
"Access-Control-Allow-Headers":"Content-Type,api_key,
Authorization",
"Content-Type":"application/xml"
}
sourceGatewayNode
Source API Gateway's IP address.
Example: 10.0.75.1
status
Status of the API request.
Possible values are: SUCCESS, FAILURE
totalDataSize
The total combined size of request and response payloads in bytes.
Example: 51
totalTime
Time in milliseconds required to invoke the API provider. This time includes the overhead incurred by API Gateway. Overhead includes security overhead for encryption, decryption, and load-balance retries.
Example: 1401
Error Events
Column
Description
apiId
The unique identifier for the API.
Example: af70b2de-c9c5-4f40-94be-7d8622743e42
apiName
Name of the API in which the event occurred.
Example: SampleAPI
apiVersion
The system-assigned version identifier for the API.
Example: 1.0
applicationId
The unique identifier for the application associated with the API invocation.
Example: c0f84954-9732-11e5-b9f4-f159eafe47b2
applicationIp
IP address of the application associated with the API invocation.
Example: 10.60.37.42
applicationName
Name of the application associated with the API invocation.
An application name is populated as unknown when API Gateway is unable to identify the application using a security policy that is configured for the API.
Example: SampleApplication
correlationID
The unique identifier that is automatically generated for every request coming to API Gateway and can be used to query the log.
Example: MED38e9cfa4-2348-408b-9462-124b2181c1a6:656
creationDate
Date and time when the event was generated in API Gateway.
Example: 1501671101509
errorDesc
Message that describes the error that occurred.
Example: Native service provider error. Code : 404
eventSource
The source where the event occurred.
Example: API_Gateway_Instance
eventType
The type of event that occurred.
Example: Error
httpMethod
The HTTP method used to invoke the API.
Example: GET
operationName
Name of the API operation that is invoked.
Example: /pet/{petId}
responseCode
The HTTP response status code that indicates success or failure of the requested operation.
Example: 404
Monitoring Events
Column
Description
alertDesc
Text of the alert message sent to a configured destination when the performance conditions are violated. The alert message is specified in the policy definition of an API.
Example: EnforcePolicy-HardLimit
alertSource
Name of the API Gateway policy that generated the alert message.
Example: Monitorpolicy
alertType
The type of alert generated for the event.
Example: Monitor
apiId
The unique identifier for the API.
Example: af70b2de-c9c5-4f40-94be-7d8622743e42
apiName
Name of the API in which the event occurred.
Example: SampleAPI
apiVersion
The system-assigned version identifier for the API.
Example: 1.0
applicationId
The unique identifier for the application associated with the API invocation.
Example: c0f84954-9732-11e5-b9f4-f159eafe47b2
applicationIp
IP address of the application associated with the API invocation.
Example: 10.60.37.42
applicationName
Name of the application associated with the API invocation.
An application name is populated as unknown when API Gateway is unable to identify the application using a security policy that is configured for the API.
Example: SampleApplication
creationDate
Date and time when the event was generated in API Gateway.
Example: 1501671101509
eventSource
The source where the event occurred.
Example: API_Gateway_Instance
eventType
The type of event that occurred.
Example: Monitor
httpMethod
The HTTP method used to request the API access.
Example: GET
monitorAttr
The monitored attribute which has breached the configured SLA.
Example: AVGRESPONSETIME GT 1.0, SUCCESSCOUNT EQ 3, REQUESTCOUNT GT 10
operationName
Name of the API operation that is invoked.
Example: /pet/{petId}
responseCode
The HTTP response status code that indicates success or failure of the requested operation.
Example: 200
Policy Violation Events
Column
Description
alertDesc
Text of the alert message sent to a configured destination when the performance conditions are violated. The alert message is specified in the policy definition of an API.
Example: A violation was detected for policy (Unknown-Policyuser ): application could not be identified. Anonymous access is not allowed for this service!
alertSource
Name of the API Gateway policy that generated the alert message.
Example: Unknown-Policy
alertType
The type of alert generated for the event.
Example: PolicyViolation
apiId
The unique identifier for the API.
Example: af70b2de-c9c5-4f40-94be-7d8622743e42
apiName
Name of the API in which the event occurred.
Example: SampleAPI
apiVersion
The system-assigned version identifier for the API.
Example: 1.0
applicationId
The unique identifier for the application associated with the API invocation.
Example: 9434e90d-65c3-4e37-8ccb-595b8df3e645
applicationIp
IP address of the application associated with the API invocation.
Example: 10.60.37.42
applicationName
Name of the application associated with the API invocation.
An application name is populated as unknown when API Gateway is unable to identify the application using a security policy that is configured for the API.
Example: SampleApplication
creationDate
Date and time when the event was generated in API Gateway.
Example: 1501671101509
eventSource
The source where the event occurred.
Example: API_Gateway_Instance
eventType
The type of event that occurred.
Example: PolicyViolation
httpMethod
The HTTP method used to request the API access.
Example: GET
operationName
Name of the API operation that is invoked.
Example: /pet/{petId}
responseCode
The HTTP response status code that indicates success or failure of the requested operation.
Example: 503
Performance Metrics
Column
Description
apiId
The unique identifier for the API.
Example: af70b2de-c9c5-4f40-94be-7d8622743e42
apiName
Name of the API in which the event occurred.
Example: SampleAPI
apiVersion
The system-assigned version identifier for the API.
Example: 1.0
availability
The percentage of time that an API was available during the current interval. A value of 100 indicates that the API was always available. If invocations fail due to policy violations, this parameter could still be as high as 100.
Example: 100.0
avgResponseTime
The average amount of time it took the API to complete each invocation in the current interval. Response time is measured from the moment API Gateway receives the request until the moment it returns the response to the caller.
Example: 1376
creationDate
Date and time when the event was generated in API Gateway.
Example: 1501671101509
eventType
The type of event that occurred.
Example: PerformanceData
faultCount
The number of failed API invocations in the current interval.
Example: 1
includeFaults
Includes failed API invocations.
Possible values are: true, false
intervalStart
The starting date and time from which you want to examine metrics.
Example: 02 Aug 2017 10:51:31 GMT
intervalStop
The ending date and time until which you want to examine metrics.
Example: 02 Aug 2017 10:52:31 GMT
maxResponseTime
The maximum amount of time (in milliseconds) it took for the API to complete an invocation in the current interval.
Example: 1401
minResponseTime
The minimum amount of time (in milliseconds) it took for the API to complete an invocation in the current interval.
Example: 1352
operationName
Name of the API operation that is invoked.
Example: /pet/{petId}
successCount
The number of successful API invocations in the current interval.
Example: 1
totalCount
The total number of API invocations (successful and unsuccessful) in the current interval.
Example: 2