final String prefix = name(cache.getClass(), cache.getName()); Metrics.register(name(prefix, "hits"), new Gauge<Long>() { @Override public Long getValue() { Metrics.register(name(prefix, "in-memory-hits"), new Gauge<Long>() { @Override public Long getValue() { Metrics.register(name(prefix, "misses"), new Gauge<Long>() { @Override public Long getValue() { Metrics.register(name(prefix, "in-memory-misses"), new Gauge<Long>() { @Override public Long getValue() { Metrics.register(name(prefix, "objects"), new Gauge<Long>() { @Override public Long getValue() { Metrics.register(name(prefix, "in-memory-objects"), new Gauge<Long>() { @Override public Long getValue() { Metrics.register(name(prefix, "mean-get-time"), new Gauge<Double>() { @Override public Double getValue() {
public void update(Record record) { for (String registerName : activeReservoirPointers) { Metrics.activeReservoir(registerName).update(record); } }
@Override public void addCounter(String name) { if (!counters.containsKey(name)) { counters.put(name, Metrics.counter(name)); } }
private ActiveReservoir getOrAddActiveReservoir(String name) { ActiveReservoir activeReservoir = activeReservoirs.get(name); if (activeReservoir != null) { return activeReservoir; } else { String defaultActiveReservoirClass = KylinConfig.getInstanceFromEnv() .getKylinMetricsActiveReservoirDefaultClass(); try { activeReservoir = (ActiveReservoir) Class.forName(defaultActiveReservoirClass).getConstructor() .newInstance(); } catch (Exception e) { logger.warn( "Failed to initialize the " + defaultActiveReservoirClass + ". The StubReservoir will be used"); activeReservoir = new StubReservoir(); } return register(name, activeReservoir); } }
@Override public void addHistogram(String name) { if (!histograms.containsKey(name)) { histograms.put(name, Metrics.histogram(name)); } }
public ActiveReservoir register(String name, ActiveReservoir activeReservoir) { if (name == null || activeReservoir == null) { throw new IllegalArgumentException("neither of name or ActiveReservoir can be null"); } final ActiveReservoir existingReservoir = activeReservoirs.putIfAbsent(name, activeReservoir); if (existingReservoir == null) { onActiveReservoirAdded(activeReservoir); } else { throw new IllegalArgumentException("An active reservoir named " + name + " already exists"); } return activeReservoir; }
@Override public void addMeter(String name) { if (!meters.containsKey(name)) { meters.put(name, Metrics.meter(name)); } }
/** * Returns a map of all the active reservoirs in the metrics system and their names. * * @return all the active reservoirs in the metrics system */ public SortedMap<String, ActiveReservoir> getActiveReservoirs() { return getActiveReservoirs(ActiveReservoirFilter.ALL); }
/** * Removes the active reservoir with the given name. * * @param name the name of the active reservoir * @return whether or not the active reservoir was removed */ public boolean removeActiveReservoir(String name) { final ActiveReservoir recordReservoir = activeReservoirs.remove(name); if (recordReservoir != null) { onActiveReservoirRemoved(recordReservoir); return true; } return false; }
public ActiveReservoir activeReservoir(String name) { return getOrAddActiveReservoir(name); }
private ActiveReservoir getOrAddActiveReservoir(String name) { ActiveReservoir activeReservoir = activeReservoirs.get(name); if (activeReservoir != null) { return activeReservoir; } else { String defaultActiveReservoirClass = KylinConfig.getInstanceFromEnv() .getKylinMetricsActiveReservoirDefaultClass(); try { activeReservoir = (ActiveReservoir) Class.forName(defaultActiveReservoirClass).getConstructor() .newInstance(); } catch (Exception e) { logger.warn( "Failed to initialize the " + defaultActiveReservoirClass + ". The StubReservoir will be used"); activeReservoir = new StubReservoir(); } return register(name, activeReservoir); } }
@Override public void addHistogram(String name) { if (!histograms.containsKey(name)) { histograms.put(name, Metrics.histogram(name)); } }
public ActiveReservoir register(String name, ActiveReservoir activeReservoir) { if (name == null || activeReservoir == null) { throw new IllegalArgumentException("neither of name or ActiveReservoir can be null"); } final ActiveReservoir existingReservoir = activeReservoirs.putIfAbsent(name, activeReservoir); if (existingReservoir == null) { onActiveReservoirAdded(activeReservoir); } else { throw new IllegalArgumentException("An active reservoir named " + name + " already exists"); } return activeReservoir; }
@Override public void addMeter(String name) { if (!meters.containsKey(name)) { meters.put(name, Metrics.meter(name)); } }
/** * Returns a map of all the active reservoirs in the metrics system and their names. * * @return all the active reservoirs in the metrics system */ public SortedMap<String, ActiveReservoir> getActiveReservoirs() { return getActiveReservoirs(ActiveReservoirFilter.ALL); }
/** * Removes the active reservoir with the given name. * * @param name the name of the active reservoir * @return whether or not the active reservoir was removed */ public boolean removeActiveReservoir(String name) { final ActiveReservoir recordReservoir = activeReservoirs.remove(name); if (recordReservoir != null) { onActiveReservoirRemoved(recordReservoir); return true; } return false; }
public ActiveReservoir activeReservoir(String name) { return getOrAddActiveReservoir(name); }
private void init() { if (KylinConfig.getInstanceFromEnv().isKylinMetricsMonitorEnabled()) { logger.info("Kylin metrics monitor is enabled."); int nameIdx = 0; for (ActiveReservoir activeReservoir : sourceReporterBindProps.keySet()) { String registerName = MetricsSystem.name(MetricsManager.class, "-" + nameIdx + "-" + activeReservoir.toString()); activeReservoirPointers.add(registerName); List<Pair<Class<? extends ActiveReservoirReporter>, Properties>> reportProps = sourceReporterBindProps .get(activeReservoir); for (Pair<Class<? extends ActiveReservoirReporter>, Properties> subEntry : reportProps) { try { Method method = subEntry.getFirst().getMethod(METHOD_FOR_REGISTRY, ActiveReservoir.class); ((ReporterBuilder) method.invoke(null, activeReservoir)).setConfig(subEntry.getSecond()).build() .start(); } catch (Exception e) { logger.warn("Cannot initialize ActiveReservoirReporter: Builder class - " + subEntry.getFirst() + ", Properties - " + subEntry.getSecond()); } } Metrics.register(registerName, activeReservoir); } Preconditions.checkArgument(activeReservoirPointers.size() == sourceReporterBindProps.keySet().size(), "Duplicate register names exist!!!"); } else { logger.info("Kylin metrics monitor is not enabled"); } }
@Override public void addCounter(String name) { if (!counters.containsKey(name)) { counters.put(name, Metrics.counter(name)); } }
public void update(Record record) { for (String registerName : activeReservoirPointers) { Metrics.activeReservoir(registerName).update(record); } }