As mentioned before, Routing DSL is basically a set of directives that you can compose to route and handle your incoming HTTP requests. Directives are small code blocks that can do things such as transform, filter, extract, or complete an incoming request.
In this recipe, we will see how to create a custom directive to measure the number of times a particular path of a route is called and also how long it took to process it. We will make use of basic directives to compose more complex ones. For this task, we will make use of Dropwizard metrics. Dropwizard metrics is a popular, stable, and simple metrics library that has an easy API to gather and report information about an application.