/** * Helper function to easily create a composite for all monitor fields and * annotated attributes of a given object. * * @param id a unique id associated with this particular instance of the * object. If multiple objects of the same class are registered * they will have the same config and conflict unless the id * values are distinct. * @param obj object to search for monitors on. All fields of type * {@link Monitor} and fields/methods with a * {@link com.netflix.servo.annotations.Monitor} annotation * will be extracted and returned using * {@link CompositeMonitor#getMonitors()}. * @return composite monitor based on the fields of the class */ public static CompositeMonitor<?> newObjectMonitor(String id, Object obj) { final TagList tags = getMonitorTags(obj); List<Monitor<?>> monitors = new ArrayList<>(); addMonitors(monitors, id, tags, obj); final Class<?> c = obj.getClass(); final String objectId = (id == null) ? DEFAULT_ID : id; return new BasicCompositeMonitor(newObjectConfig(c, objectId, tags), monitors); }
/** * Helper function to easily create a composite for all monitor fields and * annotated attributes of a given object. * * @param id a unique id associated with this particular instance of the * object. If multiple objects of the same class are registered * they will have the same config and conflict unless the id * values are distinct. * @param obj object to search for monitors on. All fields of type * {@link Monitor} and fields/methods with a * {@link com.netflix.servo.annotations.Monitor} annotation * will be extracted and returned using * {@link CompositeMonitor#getMonitors()}. * @return composite monitor based on the fields of the class */ public static CompositeMonitor<?> newObjectMonitor(String id, Object obj) { final TagList tags = getMonitorTags(obj); List<Monitor<?>> monitors = new ArrayList<>(); addMonitors(monitors, id, tags, obj); final Class<?> c = obj.getClass(); final String objectId = (id == null) ? DEFAULT_ID : id; return new BasicCompositeMonitor(newObjectConfig(c, objectId, tags), monitors); }
/** * Get the initial metrics and register with servo. */ public void initMetricsPublishing() { /* list of monitors */ List<Monitor<?>> monitors = getMetricsMonitors(); MonitorConfig commandMetricsConfig = MonitorConfig.builder("metrics").build(); BasicCompositeMonitor commandMetricsMonitor = new BasicCompositeMonitor(commandMetricsConfig, monitors); DefaultMonitorRegistry.getInstance().register(commandMetricsMonitor); }
@Override public void initialize() { /* list of monitors */ List<Monitor<?>> monitors = getServoMonitors(); // publish metrics together under a single composite (it seems this name is ignored) MonitorConfig commandMetricsConfig = MonitorConfig.builder("HystrixThreadPool_" + key.name()).build(); BasicCompositeMonitor commandMetricsMonitor = new BasicCompositeMonitor(commandMetricsConfig, monitors); DefaultMonitorRegistry.getInstance().register(commandMetricsMonitor); RollingThreadPoolEventCounterStream.getInstance(key, properties).startCachingStreamValuesIfUnstarted(); CumulativeThreadPoolEventCounterStream.getInstance(key, properties).startCachingStreamValuesIfUnstarted(); RollingThreadPoolMaxConcurrencyStream.getInstance(key, properties).startCachingStreamValuesIfUnstarted(); }
@Override public void initialize() { /* list of monitors */ List<Monitor<?>> monitors = getServoMonitors(); // publish metrics together under a single composite (it seems this name is ignored) MonitorConfig commandMetricsConfig = MonitorConfig.builder("HystrixCollapser_" + key.name()).build(); BasicCompositeMonitor commandMetricsMonitor = new BasicCompositeMonitor(commandMetricsConfig, monitors); DefaultMonitorRegistry.getInstance().register(commandMetricsMonitor); RollingCollapserBatchSizeDistributionStream.getInstance(key, properties).startCachingStreamValuesIfUnstarted(); RollingCollapserEventCounterStream.getInstance(key, properties).startCachingStreamValuesIfUnstarted(); CumulativeCollapserEventCounterStream.getInstance(key, properties).startCachingStreamValuesIfUnstarted(); }
@Override public void initialize() { /* list of monitors */ List<Monitor<?>> monitors = getServoMonitors(); // publish metrics together under a single composite (it seems this name is ignored) MonitorConfig commandMetricsConfig = MonitorConfig.builder("HystrixCommand_" + key.name()).build(); BasicCompositeMonitor commandMetricsMonitor = new BasicCompositeMonitor(commandMetricsConfig, monitors); DefaultMonitorRegistry.getInstance().register(commandMetricsMonitor); RollingCommandEventCounterStream.getInstance(key, properties).startCachingStreamValuesIfUnstarted(); CumulativeCommandEventCounterStream.getInstance(key, properties).startCachingStreamValuesIfUnstarted(); RollingCommandLatencyDistributionStream.getInstance(key, properties).startCachingStreamValuesIfUnstarted(); RollingCommandUserLatencyDistributionStream.getInstance(key, properties).startCachingStreamValuesIfUnstarted(); RollingCommandMaxConcurrencyStream.getInstance(key, properties).startCachingStreamValuesIfUnstarted(); }