HADOOP-12348. MetricsSystemImpl creates MetricsSourceAdapter with wrong time unit parameter. (zxu via rkanter)
This commit is contained in:
parent
fba06a789c
commit
9538af0e1a
@ -1091,6 +1091,9 @@ Release 2.8.0 - UNRELEASED
|
||||
HADOOP-12388. Fix components' version information in the web page
|
||||
'About the Cluster'. (Jun Gong via zxu)
|
||||
|
||||
HADOOP-12348. MetricsSystemImpl creates MetricsSourceAdapter with
|
||||
wrong time unit parameter. (zxu via rkanter)
|
||||
|
||||
Release 2.7.2 - UNRELEASED
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
@ -61,7 +61,7 @@ class MetricsSourceAdapter implements DynamicMBean {
|
||||
|
||||
private Iterable<MetricsRecordImpl> lastRecs;
|
||||
private long jmxCacheTS = 0;
|
||||
private int jmxCacheTTL;
|
||||
private long jmxCacheTTL;
|
||||
private MBeanInfo infoCache;
|
||||
private ObjectName mbeanName;
|
||||
private final boolean startMBeans;
|
||||
@ -69,7 +69,7 @@ class MetricsSourceAdapter implements DynamicMBean {
|
||||
MetricsSourceAdapter(String prefix, String name, String description,
|
||||
MetricsSource source, Iterable<MetricsTag> injectedTags,
|
||||
MetricsFilter recordFilter, MetricsFilter metricFilter,
|
||||
int jmxCacheTTL, boolean startMBeans) {
|
||||
long jmxCacheTTL, boolean startMBeans) {
|
||||
this.prefix = checkNotNull(prefix, "prefix");
|
||||
this.name = checkNotNull(name, "name");
|
||||
this.source = checkNotNull(source, "source");
|
||||
@ -84,7 +84,7 @@ class MetricsSourceAdapter implements DynamicMBean {
|
||||
|
||||
MetricsSourceAdapter(String prefix, String name, String description,
|
||||
MetricsSource source, Iterable<MetricsTag> injectedTags,
|
||||
int period, MetricsConfig conf) {
|
||||
long period, MetricsConfig conf) {
|
||||
this(prefix, name, description, source, injectedTags,
|
||||
conf.getFilter(RECORD_FILTER_KEY),
|
||||
conf.getFilter(METRIC_FILTER_KEY),
|
||||
@ -229,7 +229,11 @@ ObjectName getMBeanName() {
|
||||
return mbeanName;
|
||||
}
|
||||
|
||||
|
||||
@VisibleForTesting
|
||||
long getJmxCacheTTL() {
|
||||
return jmxCacheTTL;
|
||||
}
|
||||
|
||||
private void updateInfoCache() {
|
||||
LOG.debug("Updating info cache...");
|
||||
infoCache = infoBuilder.reset(lastRecs).get();
|
||||
|
@ -262,7 +262,7 @@ void registerSource(String name, String desc, MetricsSource source) {
|
||||
checkNotNull(config, "config");
|
||||
MetricsConfig conf = sourceConfigs.get(name);
|
||||
MetricsSourceAdapter sa = new MetricsSourceAdapter(prefix, name, desc,
|
||||
source, injectedTags, period, conf != null ? conf
|
||||
source, injectedTags, period * 1000L, conf != null ? conf
|
||||
: config.subset(SOURCE_KEY));
|
||||
sources.put(name, sa);
|
||||
sa.start();
|
||||
@ -359,7 +359,7 @@ private synchronized void startTimer() {
|
||||
return;
|
||||
}
|
||||
logicalTime = 0;
|
||||
long millis = period * 1000;
|
||||
long millis = period * 1000L;
|
||||
timer = new Timer("Timer for '"+ prefix +"' metrics system", true);
|
||||
timer.scheduleAtFixedRate(new TimerTask() {
|
||||
@Override
|
||||
@ -550,7 +550,7 @@ static String getHostname() {
|
||||
private void registerSystemSource() {
|
||||
MetricsConfig sysConf = sourceConfigs.get(MS_NAME);
|
||||
sysSource = new MetricsSourceAdapter(prefix, MS_STATS_NAME, MS_STATS_DESC,
|
||||
MetricsAnnotations.makeSource(this), injectedTags, period,
|
||||
MetricsAnnotations.makeSource(this), injectedTags, period * 1000L,
|
||||
sysConf == null ? config.subset(SOURCE_KEY) : sysConf);
|
||||
sysSource.start();
|
||||
}
|
||||
|
@ -544,6 +544,19 @@ public void testHangOnSinkRead() throws Exception {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRegisterSourceJmxCacheTTL() {
|
||||
MetricsSystem ms = new MetricsSystemImpl();
|
||||
ms.init("TestMetricsSystem");
|
||||
TestSource ts = new TestSource("ts");
|
||||
ms.register(ts);
|
||||
MetricsSourceAdapter sa = ((MetricsSystemImpl) ms)
|
||||
.getSourceAdapter("TestSource");
|
||||
assertEquals(MetricsConfig.PERIOD_DEFAULT * 1000 + 1,
|
||||
sa.getJmxCacheTTL());
|
||||
ms.shutdown();
|
||||
}
|
||||
|
||||
@Metrics(context="test")
|
||||
private static class TestSource {
|
||||
@Metric("C1 desc") MutableCounterLong c1;
|
||||
|
Loading…
Reference in New Issue
Block a user