Using the Analytics Dashboard
The Analytics profile of WSO2 Enterprise Integrator (WSO2 EI) allows you to analyze the statistics related to the message mediation that is carried out in the ESB profile of WSO2 EI. Once the data from the mediation artifacts in the ESB profile are published to the Analytics profile, the dashboard will display the statistics.
In this tutorial, you will use the Analytics dashboard to view and analyze the statistics that are carried out in Exposing Several Services as a Single Service tutorial.
Before you begin,
- Install Oracle Java SE Development Kit (JDK) version 1.8.* and set the JAVA_HOME environment variable.
- Go to the product page of WSO2 Enterprise Integrator, select Other Installation Options, and download the Binary distribution. Extract the ZIP file of the binary. This will be your
<EI_HOME>
directory. Select and download the relevant WSO2 Integration Studio ZIP file based on your operating system from here and then extract the ZIP file.
The path to this folder will be referred to as<EI_TOOLING>
throughout this tutorial.Getting an error message? See the troubleshooting tips given under Installing WSO2 Integration Studio.
- If you did not try the Exposing Several Services as a Single Service tutorial yet, open WSO2 Integration Studio, click File, and then click Import. Next, select Existing WSO2 Projects into workspace under the WSO2 category, click Next and upload the pre-packaged project. This contains the configurations of the Exposing Several Services as a Single Service tutorial so that you do not have to repeat those steps.
- Download the MSF4J service from here and copy the JAR file to
<EI_HOME>/wso2/msf4j/deployment/microservices
folder. The back-end service is now deployed in the MSF4J profile of WSO2 EI. - If you are running on Windows, download the
snappy-java_1.1.1.7.jar
from here and copy the JAR file to<EI_HOME>\lib
directory.
Let's get started!
Setting up Analytics
Set the following properties in the <EI-HOME>/conf/synapse.properties
file to true
so that the ESB profile can publish mediation statistics:
... mediation.flow.statistics.enable=true mediation.flow.statistics.tracer.collect.payloads=true mediation.flow.statistics.tracer.collect.properties=true ...
Starting the servers
Let's start the Analytics, ESB, and MSF4J profiles as follows:
Be sure to start the Analytics profile first and then start the ESB profile.
Start the Analytics profile:
Open a terminal and navigate to the
<EI_HOME>/wso2/analytics/bin
directory.Start the runtime by executing the Analytics profile's startup script as shown below.
- Start the ESB runtime from within WSO2 Integration Studio. For instructions, see Starting the Integrator runtime and deploying the artifacts.
Start the back-end service (which is an MSF4J service):
Open a terminal and navigate to the
<EI_HOME>/wso2/msf4j/bin
directory.Start the runtime by executing the message broker startup script as shown below.
Enabling statistics and tracing for the artifacts
Follow the steps below to enable statistics and tracing for the REST API:
- Go to the management console of the ESB profile:
https://localhost:9443/carbon
- On the Main tab of the management console, go to Manage -> Service Bus and click APIs.
The Deployed APIs screen appears, and you will see theHealthcareAPI
listed as follows: - To enable the collection of mediation statistics for the REST API, click Enable Statistics.
To enable mediation tracing for the REST API, click Enable Tracing.
Note that it is not recommended to enable tracing in production environments as it generates a large number of events that reduces the performance of the analytics profile. Therefore, tracing should only be enabled in development environments.
Follow the steps below to enable statistics for the endpoints:
- On the Main tab of the management console, go to Manage -> Service Bus, and click Endpoints.
The Manage Endpoints screen appears, and you will see several endpoints listed. - To enable the collection of mediation statistics for the endpoints, click Enable Statistics for each endpoint.
Sending a message
Now that you have the artifacts deployed and configured for statistics monitoring, let's send 8 requests to the ESB profile as explained below.
For the purpose of demonstrating how successful messages and message failures are illustrated in the dashboard, let's send 2 of the requests while the back-end service is not running. This should generate a success rate of 75%.
Create a JSON file called
request.json
with the following request payload.{ "name": "John Doe", "dob": "1940-03-19", "ssn": "234-23-525", "address": "California", "phone": "8770586755", "email": "johndoe@gmail.com", "doctor": "thomas collins", "hospital": "grand oak community hospital", "cardNo": "7844481124110331", "appointment_date": "2025-04-02" }
- Open a command line terminal and execute the following command (six times) from the location where you save the request.json file:
curl -v -X POST --data @request.json http://localhost:8280/healthcare/categories/surgery/reserve --header "Content-Type:application/json"
If the messages are sent successfully, you will receive the following response for each request.
{"appointmentNo":1, "doctorName":"thomas collins", "patient":"John Doe", "actualFee":7000.0, "discount":20, "discounted":5600.0, "paymentID":"e1a72a33-31f2-46dc-ae7d-a14a486efc00", "status":"Settled"}
- Now, shut down the MSF4J server (to ensure that the back-end service is inactive) and send two more requests.
Analyze the mediation statistics
Now, let's analyze the statistics generated from the message mediation:
Start the Analytics dashboard:
Open a terminal and navigate to the
<EI_HOME>/wso2/analytics/bin
directory.Start the runtime by executing the message broker startup script as shown below
In a new browser window or tab, open the Analytics dashboard using the following URL: https://localhost:9643/portal. Use
admin
for both the username and password.Note: Users should include certificates with SAN fields, otherwise an SSLHandshakeException will occur when they try to open the Analytics dashboard.
- Click the Enterprise Integrator Analytics icon shown below to open the dashboard.
View the statistics overview for all the ESB artifacts that have published statistics:
The number of transactions handled by the ESB per second is mapped on a graph as follows.
The success rate and the failure rate of the messages received by the ESB profile during the last hour are mapped in a graph as follows.
The
HealthcareAPI
REST API is displayed under TOP APIS BY REQUEST COUNT as follows.- The three endpoints used for the message mediation are displayed under Top Endpoints by Request Count as shown below.
- In the Top APIS BY Request COUNT gadget, click
HealthcareAPI
to open the OVERVIEW/API/HealthcareAPI page. The following is displayed.- The API Request Count gadget shows the total number of requests handled by the
StockQuoteAPI
REST API during the last hour: - The API Message Count gadget maps the number of successful messages as well as failed messages at different times within the last hour in a graph as shown below.
- The API Message Latency gadget shows the speed with which the messages are processed by mapping the amount of time taken per message at different times within the last hour as shown below.
- The Messages gadget lists all the the messages handled by the
StockQuoteAPI
REST API during the last hour with the following property details as follows. - The Message Flow gadget illustrates the order in which the messages handled by the
StockQuoteAPI
REST API within the last hour passed through all the mediation sequences, mediators and endpoints that were included in the message flow as shown below.
- The API Request Count gadget shows the total number of requests handled by the
In the Top Endpoints by Request Count gadget, click one of the endpoints to view simillar statistics per endpoint.
ChannelingFeeEP
SettlePaymentEP
GrandOaksEP
- You can also navigate to any of the artifacts by using the top-left menu as shown below. For example, to view the statistics of a specific endpoint, click Endpoint and search for the required endpoint.