Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: https://wso2.org/jira/browse/DOCUMENTATION-7453

...

The data analyzer is a summary data generator based on the received event. WSO2 API-M uses WSO2 APIM Analytics to perform analytics tasks. APIM Analytics uses Apache Spark as a processing language. The <APIM-ANALYITCS_HOME>/repository/deployment/server/carbonapps/org_wso2_carbon_analytics_apim-1.0.0.car CAR file (which is deployed in the APIM Analytics server by default) contains details of all summarized data and their destination.

API Manager event streams

API-M 2.0.0 provides six types of event streams as listed below.

org.wso2.apimgt.statistics.request

This stream tracks information for the API request.

...

titleorg.wso2.apimgt.statistics.request

...

Info

A Carbon Application (C-App) or a CAR file is a collection of artifacts deployable on a WSO2 product instance. These artifacts are usually JAVA-based or XML configurations, designed differently for each product in the WSO2 Carbon platform. You can deploy these artifacts to generate services.

A single WSO2 product can have numerous artifacts such as Axis2 services, dataservices, synapse configurations, endpoints, proxy services, mediators, registry resources, BPEL workflows etc. Usually, these artifacts are created in a development environment and then moved one by one into staging/production environments. Manually configuring artifacts to build up the entire solution this way is a time-consuming task. Instead, you can bundle configuration files and artifacts in a C-App and port Web service based solutions across environments more easily. C-Apps allow you to export your entire solution as a single archive file.


API Manager event streams

API-M 2.0.0 provides six types of event streams as listed below.

  • org.wso2.apimgt.statistics.request

    This stream tracks information for the API request.

    Code Block
    titleorg.wso2.apimgt.statistics.request
    meta_ClientType :       STRING          :           Meta information of Client Type
    consumerKey     :       STRING			: 			Consumer key of API invoked client application	
    context         :       STRING			: 			API context depending on the user's request
    api_version     :       STRING			: 			API synapse artifact contained name [API Provider +"--"+API Name]
    api             :       STRING			: 			API Name
    resourcePath    :       STRING			: 			API resource URL pattern of API request
    resourceTemplate:       STRING          :           API resource URL template of API request
    method          :       STRING			: 			HTTP Verb of API request [e.g.:GET/POST]
    version         :       STRING			: 			API version
    request         :       INT				: 			Request count (e.g. 1)
    requestTime     :       STRINGLONG			: 			Consumer key of API invoked client application	
    context     API request hit time in APIM
    userId          :       STRING			: 			API invoked end user name
    tenantDomain    :       STRING			: 			API context depending on the user's request
    api_version	Tenant domain of API provider
    hostName        :       STRING			: 			API synapseManager artifactserver containedhost
    nameapiPublisher [API Provider +"--"+API Name]
    api :       STRING			: 			API provider
      applicationName  :       STRING			: 			API Name
    resourcePath Name of the client application
    applicationId   :       STRING			: 			API resource URL patternID of APIthe requestclient methodapplication
    userAgent         :       STRING			: 			HTTPUser Verbagent of APIthe user
    tier request [e.g.:GET/POST] version         :       STRING			: 			API version
    request     Name of the throttling policy assigned to the request	
    throttledOut    :       INTBOOL				: 			RequestDescribes whether count (e.g. 1)
    requestTime     :this is a throttled request or not
    clientIp        LONG			: 			API request hit time in APIM userIdSTRING          :       STRING			: 			API invoked end user nameIP tenantDomainAddress of the Client
    applicationOwner:       STRING			: 			Tenant domain ofSTRING API provider host       :     :      Name STRING			: 			API Manager server host
    apiPublisher    of the owner of the Application
  • org.wso2.apimgt.statistics.response

    This stream tracks information for the API response. It includes the time taken for the response to get back, the received time etc.
     
    Code Block
    titleorg.wso2.apimgt.statistics.response
    meta_ClientType :       STRING			: 			API provider application     :       STRING			: 			Name of the client application applicationId   :       STRING			: 			IDMeta information of theClient clientType
    applicationconsumerKey userAgent       :       STRING			: 			UserConsumer agentkey of the userclient application tierinvoking the API
    context         :       STRING			: 			NameAPI ofcontext thedepending throttlingon policy assigned to the request	
    throttledOutthe user's request
    api_version     :       BOOLSTRING			: 			Describes whether this is a throttled request or not

    org.wso2.apimgt.statistics.response

    This stream tracks information for the API response. It includes the time taken for the response to get back, the received time etc.
     
    Code Block
    titleorg.wso2.apimgt.statistics.response
    consumerKeyAPI synapse artifact contained name [API Provider +"--"+API Name]	
    api             :       STRING			: 			Consumer key of the client application invoking the API contextName
       resourcePath     :       STRING			: 			API contextresource dependingURL onpattern theof user'sAPI request
    api_version
    resourceTemplate:       STRING   :       STRING			: 			API synapse artifact contained name [API Provider +"--"+API Name]	
    api   :           API resource URL template of API request
    method          :       STRING			: 			HTTP Verb of API Name
    resourcePath request [e.g.:GET/POST]
    version         :       STRING			: 			API resource URL pattern of API request
    method       version
    response        :       INT				: 			Response count (e.g. 1)
    responseTime    :       STRINGLONG			: 			HTTPTotal Verbtime oftaken APIfor request/response [e.g.:GET/POST]
    version   flow[serviceTime+backendTime]
    serviceTime      :       STRINGLONG			: 			Time taken to serve the API versionrequest responsein APIM side
    backendTime     :       INT	LONG			: 			Response count (e.g. 1)
    responseTimeTime taken process the request at the backend	
    username        :       LONGSTRING			: 			TotalAPI timeinvoked takenend for request/response flow[serviceTime+backendTime]
    serviceTimeuser	
    eventTime       :       LONG			: 			TimeTimestamp taken to serve the API request in APIM side
    backendTime of response event published
    tenantDomain    :       LONGSTRING			: 			TimeTenant takendomain processof theAPI request at the backend	
    user    provider
    hostName        :       STRING			: 			API invokedManager endserver user	hostname
    eventTimeapiPublisher       :       LONGSTRING			: 			TimestampAPI of response event published
    tenantDomain    provider
    applicationName :       STRING			: 			Tenant domainName of APIthe providerclient host         application
    applicationId   :       STRING			: 			API Manager server hostname
    apiPublisherID of the client application
    cacheHit        :       STRINGBOOL			: 			API provider
    application Describes if response caching is enabled or not
    responseSize    :       STRINGLONG			: 				Name of the client application
    applicationIdResponse message size in bytes	
    protocol        :       STRING 			: 			ID of the client application
    cacheHitProtocol used to send the response (HTTP/HTTPS) and the port
    responseCode    :       STRING   :       BOOL			: 			Describes if response caching is enabled or not responseSize  Http Response :Code 
    destination     LONG			: 			Response message size in bytes	 protocol STRING       :   :    STRING 			: 			Protocol used to send the response (HTTP/HTTPS) andDestination URL of the portAPI
  • org.wso2.apimgt.statistics.fault

    This stream contains the fault API invocations. It includes the API with back end errors, timeout etc
     
    Code Block
    titleorg.wso2.apimgt.statistics.fault

     
    Code Block
    titleorg.wso2.apimgt.statistics.fault
    meta_ClientType :       STRING          :           Meta information of Client Type
    consumerKey     :       STRING			: 			Consumer key of the client application invoking the API	
    context         :       STRING			: 			API context depending on the user's request	
    api_version     :       STRING			: 			API version
    api             :       STRING			: 			API Name
    resourcePath    :       STRING			: 			API resource url pattern of API request
    method          :       STRING			: 			HTTP Verb of API request [e.g.:GET/POST]
    version         :       STRING			: 			API version
    errorCode       :       STRING			: 			HTTP error code
    errorMessage    :       STRING			: 			Description of error message
    requestTime     :       LONG			: 			API request time in millisecond
    userId          :       STRING			: 			API invoked end user name
    tenantDomain    :       STRING			: 			Tenant domain of API provider
    hosthostName            :       STRING			: 			API Manager server host
    apiPublisher    :       STRING     		: 			API provider
    applicationapplicationName     :       STRING			: 			Name of the client application
    applicationId   :       STRING			: 			ID of the client application 
    protocol        :       STRING			: 			Protocol used to send the response (HTTP/HTTPS) and the port 
  • org.wso2.apimgt.statistics.throttle

    This stream contains the API invocation with throttle information. Throttling can happen due to any of the following reasons:

    The application limit has exceeded.
    The 
    resource limit has exceeded.
    The API limit has exceeded.
    The hard level limit has exceeded.
     

    Code Block
    titleorg.wso2.apimgt.statistics.throttle

    .
     

    Code Block
    titleorg.wso2.apimgt.statistics.throttle
    meta_ClientType     :       STRING          :           Meta information of Client Type
    accessToken         :       STRING			: 			Access token of the request
    userId              :       STRING			: 			API invoked end user name
    tenantDomain        :       STRING			: 			Tenant domain of API provider
    api                 :       STRING			: 			API Name
    api_version         :       STRING			: 			API synapse artifact contained name [API Provider +"--"+API Name]
    context             :       STRING			: 			API context depending on the user's request
    apiPublisher        :       STRING			: 			API provider
    throttledTime       :       LONG			: 			The timestamp which throttle out event triggers
    application applicationName        :       STRING			: 			Name of the client application
    applicationId       :       STRING			: 			ID of the client application
    throttledOutReason  :       STRING 			: 			The reason describing why the request has been throttled out 
  • org.wso2.apimgt.statistics.workflow

    This event stream creates events based on the API Manager workflow and publishes them to the analyzer.
     
    Code Block
    titleorg.wso2.apimgt.statistics.workflow
    publishes them to the analyzer.
     
    Code Block
    titleorg.wso2.apimgt.statistics.workflow
    meta_ClientType     :       STRING          :           Meta information of Client Type
    workflowReference   :       STRING			: 			Holds the workflow reference ID	
    workflowStatus      :       STRING			: 			Status of the workflow e.g.: CREATED, APPROVED, REJECTED, REGISTERED
    tenantDomain        :       STRING			: 			Tenant domain of subscriber who triggers the workflow in APIStore
    workflow            :       STRING			: 			Type of the workflow e.g.:AM_APPLICATION_CREATION,
    createdTime         :       LONG			: 			The workflow was creation time in milliseconds
    updatedTime         :       LONG			: 			The last updated time of the workflow in milliseconds
  • org.wso2.apimgt.statistics.execution.time

    This stream contains information relating to API invocation including time stamps and the time taken by the API at different stages of invocation (e.g., time taken to backend, time taken to mediation flow, response time etc.).

    Code Block
    titleorg.wso2.apimgt.statistics.execution.time
    meta_ClientType         :       STRING      :           Meta information of Client Type
    api						:		STRING		:			API Name	
    api_version				:		STRING		:			API Version
    tenantDomain			:		STRING		:			Tenant domain of subscriber who triggers the workflow in APIStore
    apiPublisher			:		STRING		:			API Provider
    apiResponseTime			:		LONG		:			Total time taken for request/response flow
    context					:		STRING		:			API context depending on the user's request
    securityLatency			:		LONG		:			Time taken for authentication
    throttlingLatency 		:		LONG		:			Time taken for throttling the request/response
    requestMediationLatency	:		LONG		:			Time taken to mediate the request
    responseMediationLatency:		LONG		:			Time taken to mediate the response
    backendLatency			:		LONG		:			Time taken by the backend to return the response
    otherLatency			:		LONG		:			Time taken to process tasks other than mentioned above
    eventTime				:		LONG		:			Timestamp of the sent event

...