2016-11-07 8 views
1

요청 당 평균 응답 시간, 요청 당 최소 응답 시간 및 요청 당 최대 응답 시간을 산출하는 방법이 있습니까? 경쟁 변수를 피하기 위해 Atomic 변수 나 요청 당 동기화를 사용할 수 있다고 생각합니다. 그러나 이것이 최선의 방법인지 확실하지 않습니다.스프링 액추에이터 맞춤 측정 기준 (평균, 최소, 최대 응답 시간)

+0

Spring CounterService와 GaugeService를 사용하여 맞춤 측정 항목을 추가 할 수 있습니다. – Isukthar

+1

고맙습니다.하지만이 개체는 메트릭 만 업데이트 할 수 있습니다. 값을 다시 업데이트하고 저장하기 전에 (메모리에서) 저장하고 이전 값에 액세스하여 (비교, 더하기, 곱하기, 나누기) 몇 가지 작업을 수행하는 확실한 방법이 없습니다. 스레드 안전 방법을 찾고 있는데, 지금까지는 이러한 작업을 적용하기 전에 응용 프로그램 범위를 잠그고 있습니다. – ampofila

답변

1

이 문제에 대한 해결책은 dropwizard metrics 타이머를 사용하는 것입니다. 불행히도 우리는 API의 한계 인 here과 똑같은 문제에 직면하고 있습니다. 그러나 전반적으로 이것은 일을 할 수 있습니다.

0

응답 시간을 기록하려면 처리기 시작과 끝에서 시간을 가져온 다음 GaugeService를 델타로 업데이트하십시오. 이 값의 기록을 저장하려는 경우 GaugeWriter를 사용하여 GaugeService에서 현재 데이터를 내보낼 수 있습니다.

+0

답변 해 주셔서 감사합니다. 불행히도 스프링 액추에이터의 이전 버전을 사용합니다. 더 많은 오버로드 된 메소드가 있다면 우리는 dropwizard 메트릭을 사용하여 수행 할 수 있습니다. – ampofila