I am currently working on a project where I need to monitor the response time metrics for http / network calls and storing those in elastic search now I want to add another functionality where i can raise alerts if some http call is showing anomalous behavior and taking longer than benchmark value for that call. Now suppose we have a http call with some query Params lets suppose 5 query params in a call and it has some bench mark value, so if we add another query parameter and the response time increases drastically I should detect it and alert the user that this particular query parameter increased the response time drastically. This was one problem i wanted to explore, now another problem is that suppose we are making a query for time range of 1D and it has some response time, if i query for time range of a year of course the response time will increase but is there a way to measure if it is taking longer than it should have based upon previous existing benchmarks of different time ranges. Please suggest a possible solution or tools or industry standards that are being used. I am sure this is something that people have worked on before.
I have tried of adding query fields to my document store in elastic search and searching all the documents for matching params based on my current call and then observing the response time based on that, but the main issue with this approach is that we are ignoring the payload entirely and it sure influences the response time and will give many false positive alerts.