Отслеживание звонков через веб-сервис - PullRequest
1 голос
/ 15 мая 2019

У меня есть метод веб-сервиса JAXWS, который имеет 2 миллиона звонков в день. Это развернуто на wildfly. Длительность этих вызовов очень важна с точностью до миллисекунды.

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

12:00:00,100 INFO  [com.myapp] (default task-19) Request:mymethod started, id=25
12:00:00,150 INFO  [com.myapp] (default task-19) Request:mymethod ended, id=25

Когда мы позвонили нашим, мы увидели, что в некоторых случаях продолжительность, рассчитанная по журналам, отличается от продолжительности, рассчитанной службой вызывающего абонента (звонки были сделаны с одной и той же дикой бабочки). Для 10000 вызовов средняя разница составляла 2 мс, но для 25 операций разница составляла около 100 мс.

public void myMethod() {
    long startTime = System.nanoTime();
    /* some code here */
    long endTime = System.nanoTime();

    lgg.info("myMethod ended, duration=" + endTime - startTime );
}

Это будет более точная длительность, но мне нужна точная обработка операций полный рабочий день. Со всеми запросами на сериализацию и т. Д.

Как рассчитать реальную продолжительность работы веб-службы? Время между получением вызова на моем сервере и ответным вызовом с сервера. (без сетевого времени)

...