정적 메서드로 액세스 할 수있는 단일 캐시의 경우 매우 쉽습니다. 사용자 정의 프로브 마법사에서 CacheTest.getSingleCache()
는 캐시에서 얻을 수있는 후크입니다
import test.CacheTest;
import com.google.common.cache.*;
Cache cache = CacheTest.getSingleCache();
if (cache == null) {
return;
}
CacheStats stats = cache.stats();
data[0] = (int)stats.requestCount();
data[1] = (int)stats.hitCount();
data[2] = (int)(stats.hitRate() * 100);
data[3] = (int)stats.missCount();
data[4] = (int)(stats.missRate() * 100);
data[5] = (int)stats.loadSuccessCount();
data[6] = (int)stats.loadExceptionCount();
data[7] = (int)(stats.loadExceptionRate() * 100);
data[8] = (int)stats.evictionCount();
data[9] = (int)stats.totalLoadTime()/1000;
data[10] = (int)stats.averageLoadPenalty()/1000;
에
metaData.recordOnStartup(true);
metaData.telemetry(true);
metaData.addCustomTelemetry("Request count", Unit.PLAIN, 1f);
metaData.addCustomTelemetry("Hit count", Unit.PLAIN, 1f);
metaData.addCustomTelemetry("Hit rate", Unit.PERCENT, 1f);
metaData.addCustomTelemetry("Miss count", Unit.PLAIN, 1f);
metaData.addCustomTelemetry("Miss rate", Unit.PERCENT, 1f);
metaData.addCustomTelemetry("Load success count", Unit.PLAIN, 1f);
metaData.addCustomTelemetry("Load exception count", Unit.PLAIN, 1f);
metaData.addCustomTelemetry("Load exception rate", Unit.PERCENT, 1f);
metaData.addCustomTelemetry("Eviction count", Unit.PLAIN, 1f);
metaData.addCustomTelemetry("Total load time", Unit.MICROSECONDS, 1f);
metaData.addCustomTelemetry("Average load penalty", Unit.MICROSECONDS, 1f);
과 원격 스크립트에 메타 데이터 스크립트를 설정합니다.
이 모든 캐시 통계 측정을 위해 원격 조정 얻을 것이다, 화면에 표시된 것처럼 아래 촬영 :
![enter image description here](https://i.stack.imgur.com/CoIti.png)
감사합니다! 여러 캐시에 대해 무엇을 제안합니까? –
CacheBuilder 문서에 표시된 그래프 변수를 갖는 GraphTest 클래스라고합니다. http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/cache/CacheBuilder.html –
동일한 방식으로 원격 측정을위한 여러 캐시를 병합 할 수 있습니다. 캐시 별보기는 컨트롤 개체보기에 대한 것이지만 컨트롤 개체는 이벤트에 의해서만 업데이트 될 수 있으므로 주기적으로 업데이트 할 수 없으므로 현재 불가능합니다. 전용 Guava 캐시 프로브는 JProfiler 문제 추적기에 있으며 7.1 또는 8.0에서 사용할 수 있습니다. –