stagemonitor / stagemonitor-mailinglist

GitHub issues abused as a mailing list
3 stars 0 forks source link

Automatic Request Grouping #48

Closed hrzbrg closed 7 years ago

hrzbrg commented 7 years ago

Hi (again),

we have been running Stagemonitor for the past weeks in a testing environment in several services now. We have some services with routes that include URL parameters like IDs, timestamps, location names etc. With a growing number of services it becomes very annoying to configure stagemonitor.groupUrls. It would be a great feature if Stagemonitor could learn whether a route contains dynamic urlparameters and group them automatically. That would be a great benefit. Maybe I can also get my team to have a look on how to accomplish that.

felixbarny commented 7 years ago

Are you using any mvc framework? Stagemonitor has support for Spring MVC and JAX-RS. It detects requests to controller methods and names the requests after those methods. Example: requests which are processed by SearchController#doSearch are by default named Do Search. You can also configure SearchController#doSearch and SearchController.doSearch.

So if you are using a similar framework, it would actually make sense to add support for that instead. It also reduces the overhead of regex parsing. See also JaxRsRequestNameDeterminerTransformer and SpringMvcRequestNameDeterminerTransformer.

hrzbrg commented 7 years ago

Yes, we are mostly using SpringMVC. For some routes however we get the following results in Grafana: bildschirmfoto 2017-06-28 um 14 10 18

felixbarny commented 7 years ago

Is the route /driver/v1/booking/{id} also handled by Spring MVC? Is there anything special in the controller method? Did you manually map Update Booking or did stagemonitor automatically detect that?

P.S: nice response times ;)

hrzbrg commented 7 years ago

Puh well, we found the intruder. Thats awkward. Request Mapping for Sprint MVC requests works fine, but there was a misconfigured container in another environment that reported it like that. Mea culpa.