public MutableSizeHistogram(MetricsInfo info) { this(info.name(), info.description()); }
@Override public String name() { return info.name(); }
@Override public String description() { return info.description(); }
@Override public String name() { return info.name(); }
@Override public String description() { return info.description(); }
public MutableHistogram(MetricsInfo info) { this(info.name(), info.description()); }
@Override public String name() { return info.name(); }
@Override public String description() { return info.description(); }
public MutableRangeHistogram(MetricsInfo info) { this(info.name(), info.description()); }
/** * Get a source name by given directory name. * * @param dirName directory name * @return the source name */ protected static String sourceName(String dirName) { StringBuilder sb = new StringBuilder(RECORD_INFO.name()); sb.append(",dir=").append(dirName); return sb.toString(); }
public MutableTimeHistogram(MetricsInfo info) { this(info.name(), info.description()); }
/** * Create a mutable integer counter * @param info metadata of the metric * @param iVal initial value * @return a new counter object */ public synchronized MutableCounterInt newCounter(MetricsInfo info, int iVal) { checkMetricName(info.name()); MutableCounterInt ret = new MutableCounterInt(info, iVal); metricsMap.put(info.name(), ret); return ret; }
@Override public boolean equals(Object obj) { if (obj instanceof MetricsInfo) { MetricsInfo other = (MetricsInfo) obj; return Objects.equal(name, other.name()) && Objects.equal(description, other.description()); } return false; }
/** * Add a tag to the metrics * @param info metadata of the tag * @param value of the tag * @param override existing tag if true * @return the registry (for keep adding tags etc.) */ public DynamicMetricsRegistry tag(MetricsInfo info, String value, boolean override) { MetricsTag tag = Interns.tag(info, value); if (!override) { MetricsTag existing = tagsMap.putIfAbsent(info.name(), tag); if (existing != null) { throw new MetricsException("Tag "+ info.name() +" already exists!"); } return this; } tagsMap.put(info.name(), tag); return this; }
MBeanAttributeInfo newAttrInfo(MetricsInfo info, String type) { return newAttrInfo(info.name(), info.description(), type); }
@Override public MetricsRecordBuilder tag(MetricsInfo info, String value) { return tuple(info.name(), value); }
@Override public boolean equals(Object obj) { if (obj instanceof MetricsInfo) { MetricsInfo other = (MetricsInfo) obj; return Objects.equal(name, other.name()) && Objects.equal(description, other.description()); } return false; }
/** * Create a mutable long integer counter * @param info metadata of the metric * @param iVal initial value * @return a new counter object */ public synchronized MutableCounterLong newCounter(MetricsInfo info, long iVal) { checkMetricName(info.name()); MutableCounterLong ret = new MutableCounterLong(info, iVal); metricsMap.put(info.name(), ret); return ret; }
@Override public synchronized <T> T register(String name, String desc, T source) { MetricsSourceBuilder sb = MetricsAnnotations.newSourceBuilder(source); final MetricsSource s = sb.build(); MetricsInfo si = sb.info(); String name2 = name == null ? si.name() : name; final String finalDesc = desc == null ? si.description() : desc; final String finalName = // be friendly to non-metrics tests DefaultMetricsSystem.sourceName(name2, !monitoring); allSources.put(finalName, s); LOG.debug(finalName +", "+ finalDesc); if (monitoring) { registerSource(finalName, finalDesc, s); } // We want to re-register the source to pick up new config when the // metrics system restarts. register(finalName, new AbstractCallback() { @Override public void postStart() { registerSource(finalName, finalDesc, s); } }); return source; }
@Override public MetricsRecordBuilder addCounter(MetricsInfo info, int value) { return tuple(info.name(), value); }