Небольшой вопрос об аннотации @Timed от Micrometer и о том, как ее использовать с реактивным @Repository из Spring, пожалуйста.
У меня есть интерфейс @Repository, который очень прост, даже без пользовательских запросов.
@Repository
public interface MyRepository extends ReactiveCassandraRepository<MyPojo, String> {
Здесь пример с реактивной Cassandra, но подойдет любой реактивный репозиторий.
Я хотел бы рассчитать время выполнения методов по умолчанию, сохранения, findById, findAll, в основном, всех простых методов, которые предлагает @Repository.
Под временем я имею в виду реальное время, необходимое для вставки данных или извлечения данных.
(Это особенно полезно для просмотра производительности чтения и записи с течением времени, при высокой нагрузке и т. д.)
Поэтому я попытался с большой надеждой:
@Repository
@Timed("mysupertimer")
public interface MyRepository extends ReactiveCassandraRepository<MyPojo, String> {
Но, к сожалению, это не работает. Просто, чтобы избежать путаницы, он не работает для методов репозитория. У меня есть @Timed в моем слое @Controller и в разных местах слоя @Service, я вижу все остальные показатели в порядке.
Кроме того, я очень надеюсь получить ответ на аннотацию @Repository, пожалуйста. Я понимаю, что могу просто @Timed «все места в моем проекте, вызывающие репозиторий», но у меня есть 300 вызовов в репозитории, и мне нужно будет объяснить любому будущему участнику, чтобы он также аннотировал его вызовы.
Решение непосредственно на уровне @Repository было бы потрясающим.
Большое спасибо!
Я тоже не знаю, поэтому и задаю вопрос! И, конечно же, я ищу решение, в котором «он будет создавать метрику того, сколько времени занимают ваши звонки в cassandra». Я понимаю, что в реактивном мире все по-другому (отсюда и вопрос, он отлично работает с MVC). Это уже было достигнуто на уровне @Controller для входящих запросов. Мой вопрос - просто технический вопрос для вызова БД. Надеюсь, у кого-то есть ответ!
Теперь это возможно с последней версией SpringBoot 2.5.0.
Я не знаю, возможно ли это. Но я думаю, что то, чего вы пытаетесь достичь, не имеет значения. Потому что вы ожидаете, что он создаст метрику того, сколько времени занимают ваши звонки в cassandra. Но вы используете реактивный репозиторий. Он будет следить за временем сборки spring.io/blog/2019/03/06/…