API resposne time visualization in Kibana using Spring Boot Actuator

Dear Community Members,

I am stuck with the api response time visualization in Kibana dashboard. Shall be really grateful if any one can help me out, as I have to deliver the requirement within time, so it can be added to our product in the next release.

I am using spring boot actuator to collect the metrics and migrate the same to the elastic index, and viewing it in Kibana dashboard. I am able to migrate almost all performance related metrics and view it in Kibana, but I don't how to capture the response time for every apis for each request.

Thanks again,
Susmit

Hi, do you have the response time information in your metrics? What does that data look like in terms of what is indexed to Elasticsearch?

Hi Jen, I am not having response time information in the json metrics, so is there any way to send the response time by help of spring actuator?

Because kibana will only display whatever data is fed to it

In that case I think your spring actuator question is better suited for another community or forum. As it's not Kibana-specific, we don't have the knowledge to answer you :slightly_smiling_face:

Hi Jen, I am using Elastic APM features to meet my requirement. Thank you :slight_smile:

In that case I have moved your topic to our APM forum. :slightly_smiling_face:

Please elaborate more on how you are using Elastic APM-
From the initial post it seems you are indexing metrics data yourself, is that correct, or are you using the Java agent and APM server?

Firstly I used elastic micrometer and spring boot actuator dependencies to push my data to elastic index and viewed it on the kibana dashboard based on pi charts, horizaontal & vertical bars, but I was not able to find the api response time.

So I found out that APM will serve my purpose, and I started using java agent in my spring boot application it started publishing to the APM Server.

The same I did for monitoring applications in Liberty websphere server as well (here i modified the jvm.option file as was mentioned in the documentation), and it work like charm. Thanks to the all the developers in elastic for making our life so easy. Grateful!!

Hope I am able to clarify on your question

You can base your response time graphs on the transaction documents. They are stored in the apm-* index. Filter your visualization by processor.event:"transaction" and use the transaction.duration.us field. You can filter or group by (via a terms aggregation) the field transaction.name to get a graph for a specific transaction or a graph per transaction, respectively.

I hope that helps :slightly_smiling_face:

1 Like

Hi Felix, Thanks I was able to reproduce it :slight_smile:

image

1 Like

Hi @felixbarny & @Eyal_Koren There is still a problem I am not able to view the previous day data in APM dashboard, whereas the refresh interval is set to 24h from the current time. Please help me out as I may need 1 month data to monitor app performance in production environment. All the http trace exceptions api calls has been lost of yesterday

Make sure you are using the index pattern apm-* and not apm-7.1.0-transaction-2019.06.14, for example and that the previous day actually contains data.

@felixbarny Thanks but I am using the apm-* index, anyways will check and let you know