Как узнать, сколько звонков на отдых занимает время службы отдыха springboot? - PullRequest
0 голосов
/ 05 февраля 2020

Я делаю тестирование производительности, используя jmeter для службы весенней загрузки.

Внутри этого сервиса некоторые звонки покоя с использованием RestTemplate. Я могу получить время отклика для службы весенней загрузки с использованием JMeter, но я хочу знать , сколько вызовов переходит в течение времени, требующего обслуживания, поэтому как мне это выяснить?

Причина, по которой я Прошу этого bcoz, я должен быть очень уверен, что реальная служба загрузки не займет много времени, вместо этого ее вызов rest занимает слишком много времени, чтобы дать ответ (в случае, если ответ очень медленный)

EDITED : Есть ли какой-нибудь инструмент, показывающий, что фактический запрос занимает 500 мс , а вызов покоя занял 300 мс , есть идеи? Я на самом деле не спрашиваю о том, чтобы сохранить что-то в коде как t1 и t2 , а в конце t2 - t1 , я не спрашиваю об этом.

Ответы [ 4 ]

2 голосов
/ 05 февраля 2020

Опция № 1: Добавить аспект (вокруг рекомендации) для перехвата вызова restTemplate и запустить таймер перед выполнением вызова покоя, завершить таймер, как только вы получите ответ, и затем рассчитать разницу во времени.

Опция № 2: Библиотека инструментов:
Для тех, кто ищет какую-либо существующую библиотеку инструментов с открытым исходным кодом, вы можете использовать смелый . Кроме того, если вы используете zipkin , вы также получите панель инструментов.
См .: https://zipkin.io/pages/tracers_instrumentation


Опция № 3: Коммерческие инструменты

Новые Reli c, Dynatrace

0 голосов
/ 05 февраля 2020

С точки зрения JMeter время отклика можно разделить на:

  1. Время соединения
  2. Задержка или TTFB
  3. TTLB

Вы также можете принять дополнительные меры, например, использование кучи JVM или число G C, используя PerfMon или JMXMon plugins


Что касается самого приложения, вы можете определить, сколько времени заняла та или иная функция, «самые медленные» функции, самые большие объекты и т. д. c. с помощью инструмента профилирования, например JProfiler или YourKit

0 голосов
/ 05 февраля 2020

Перефразируя ваш вопрос, вы спрашиваете, как измерить различные внутренние части приложения с пружинной загрузкой: - RestTemplate вызовов с точки зрения количества запросов, запросов в секунду и т. Д. - Некоторые части занимающих много времени внутренние логики приложений c (например, запуск некоторого алгоритма) - база данных вызывает пул соединений и т. д.

Для этой весенней загрузки предусмотрена интеграция с решением для мониторинга: если вы используете весеннюю загрузку 2. x или 1.5.x вы можете использовать Микрометр В противном случае для более старых версий весенней загрузки используйте Метрики Dropwizard

В двух словах это позволяет указать некоторые "метрики", которые могут быть выставлены для мониторинга таких систем, как DataDog, Prometheus и т. д. Таким образом, вы можете подключить их и получить доступ к «номерам снимков» через привод или экспортировать в вышеупомянутые системы, чтобы видеть графики с течением времени, создавать запросы, поддерживать информационные панели и т. Д.

0 голосов
/ 05 февраля 2020

Вы можете использовать простой фильтр.

@Component
public class LogTimeFilter implements Filter {

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        long startTime = System.currentTimeMillis();
        chain.doFilter(request, response);
        long duration = System.currentTimeMillis() - startTime;
        System.out.println("Request take " + duration + " ms");
    }
}

Ссылка: здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...