Для Spring Framework 5.0.1.RELEASE
и Spring Boot 2.0.0.M6
мы хотим использовать мониторинг приложений микрометра, поэтому в него включены:
compile('org.springframework.boot:spring-boot-starter-actuator')
compile('io.micrometer:micrometer-registry-prometheus')
В наш набор зависимостей и создайте контроллер со следующими конечными точками отдыха:
@RestController
@Timed
public class MyController {
@Autowired
private MyService service;
@RequestMapping(value = "/test", method = RequestMethod.GET)
public void test() {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
@RequestMapping(value = "/test/flux", method = RequestMethod.GET, produces = "application/stream+json")
public Flux<MyItem> getMyItems(@RequestParam Map<String, String> params) {
return this.service.getMyItems(params);
}
}
Итак, у нас есть конечная точка /test
, которая просто ждет две секунды, и конечная точка /test/flux
, которая возвращает список элементов.
Бот запрашивает работу. Единственная разница в том, что для конечной точки /test
я получаю метрики prometheus, а для конечной точки /test/flux
я не получаю никаких метрик:
http_server_requests_duration_seconds_count{exception="None",method="GET",status="200",uri="/get/test",} 1.0
http_server_requests_duration_seconds_sum{exception="None",method="GET",status="200",uri="/get/test",} 2.002811046
http_server_requests_duration_seconds_max{exception="None",method="GET",status="200",uri="/get/test",} 0.0
Нужно ли мне настраивать что-то еще, чтобы это работало для запросов, которые возвращают Flux
или Flux
еще не поддерживаются?