@Inject public ExecutorServiceMonitor() { this.metricEmitters = Lists.newArrayList(); this.metricBuilder = new ServiceMetricEvent.Builder(); }
@Override public boolean doMonitor(ServiceEmitter emitter) { final ServiceMetricEvent.Builder builder = new ServiceMetricEvent.Builder(); Map<String, Long> diff = keyedDiff.to( "queryCountStats", ImmutableMap.of("query/success/count", statsProvider.getSuccessfulQueryCount(), "query/failed/count", statsProvider.getFailedQueryCount(), "query/interrupted/count", statsProvider.getInterruptedQueryCount() ) ); if (diff != null) { for (Map.Entry<String, Long> diffEntry : diff.entrySet()) { emitter.emit(builder.build(diffEntry.getKey(), diffEntry.getValue())); } } return true; }
@Override public boolean doMonitor(ServiceEmitter emitter) { final ServiceMetricEvent.Builder builder = new ServiceMetricEvent.Builder(); MonitorUtils.addDimensionsToBuilder( builder, dimensions ); emitter.emit(builder.build("jetty/numOpenConnections", activeConnections.get())); return true; } }
new ServiceMetricEvent.Builder().build( "segment/overShadowed/count", stats.getGlobalStat("overShadowedCount") .forEach((final String serverName, final LoadQueuePeon queuePeon) -> { emitter.emit( new ServiceMetricEvent.Builder() .setDimension(DruidMetrics.SERVER, serverName).build( "segment/loadQueue/size", queuePeon.getLoadQueueSize() new ServiceMetricEvent.Builder() .setDimension(DruidMetrics.SERVER, serverName).build( "segment/loadQueue/failed", queuePeon.getAndResetFailedAssignCount() new ServiceMetricEvent.Builder() .setDimension(DruidMetrics.SERVER, serverName).build( "segment/loadQueue/count", queuePeon.getSegmentsToLoad().size() new ServiceMetricEvent.Builder() .setDimension(DruidMetrics.SERVER, serverName).build( "segment/dropQueue/count", queuePeon.getSegmentsToDrop().size() final long count = entry.getLongValue(); emitter.emit( new ServiceMetricEvent.Builder() .setDimension(DruidMetrics.DATASOURCE, dataSource).build( "segment/unavailable/count", count new ServiceMetricEvent.Builder()
new ServiceMetricEvent.Builder().build( "coordinator/merge/count", stats.getGlobalStat("mergedCount")
final ServiceMetricEvent.Builder metricBuilder = new ServiceMetricEvent.Builder() .setDimension("dataSource", task.getDataSource()) .setDimension("taskType", task.getType());
@Override public boolean doMonitor(ServiceEmitter emitter) emitter.emit(new ServiceMetricEvent.Builder().build("segment/max", serverConfig.getMaxSize())); final long pendingDeleteSize = entry.getLongValue(); emitter.emit( new ServiceMetricEvent.Builder() .setDimension(DruidMetrics.DATASOURCE, dataSource) .setDimension("tier", serverConfig.getTier()) new ServiceMetricEvent.Builder().setDimension(DruidMetrics.DATASOURCE, dataSource) .setDimension("tier", serverConfig.getTier()) .setDimension("priority", String.valueOf(serverConfig.getPriority())); long count = entry.getValue(); final ServiceMetricEvent.Builder builder = new ServiceMetricEvent.Builder().setDimension(DruidMetrics.DATASOURCE, dataSource) .setDimension("tier", serverConfig.getTier()) .setDimension(
final ServiceMetricEvent.Builder metricBuilder = new ServiceMetricEvent.Builder() .setDimension(DruidMetrics.DATASOURCE, task.getDataSource()) .setDimension(DruidMetrics.TASK_TYPE, task.getType());
final ServiceMetricEvent.Builder builder = new ServiceMetricEvent.Builder(); final DataSegment mergedSegment = computeMergedSegment(getDataSource(), myLock.getVersion(), segments); final File mergeDir = toolbox.getMergeDir();
final ServiceMetricEvent.Builder metricBuilder = new ServiceMetricEvent.Builder() .setDimension(DruidMetrics.DATASOURCE, task.getDataSource()) .setDimension(DruidMetrics.TASK_TYPE, task.getType());
final ServiceMetricEvent.Builder builder = new ServiceMetricEvent.Builder() .setDimension(DruidMetrics.DATASOURCE, fireDepartment.getDataSchema().getDataSource()); MonitorUtils.addDimensionsToBuilder(builder, dimensions);
final ServiceMetricEvent.Builder metricBuilder = new ServiceMetricEvent.Builder() .setDimension(DruidMetrics.DATASOURCE, task.getDataSource()) .setDimension(DruidMetrics.TASK_TYPE, task.getType());
@Override public void doAudit(AuditEntry auditEntry, Handle handle) throws IOException { emitter.emit( new ServiceMetricEvent.Builder() .setDimension("key", auditEntry.getKey()) .setDimension("type", auditEntry.getType()) .setDimension("author", auditEntry.getAuditInfo().getAuthor()) .build("config/audit", 1) ); handle.createStatement( StringUtils.format( "INSERT INTO %s ( audit_key, type, author, comment, created_date, payload) VALUES (:audit_key, :type, :author, :comment, :created_date, :payload)", getAuditTable() ) ) .bind("audit_key", auditEntry.getKey()) .bind("type", auditEntry.getType()) .bind("author", auditEntry.getAuditInfo().getAuthor()) .bind("comment", auditEntry.getAuditInfo().getComment()) .bind("created_date", auditEntry.getAuditTime().toString()) .bind("payload", jsonMapper.writeValueAsBytes(auditEntry)) .execute(); }
@Override public boolean doMonitor(ServiceEmitter emitter) { if (cache != null) { final CacheStats currCacheStats = cache.getStats(); final CacheStats deltaCacheStats = currCacheStats.delta(prevCacheStats); final ServiceMetricEvent.Builder builder = new ServiceMetricEvent.Builder(); emitStats(emitter, "query/cache/delta", deltaCacheStats, builder); emitStats(emitter, "query/cache/total", currCacheStats, builder); prevCacheStats = currCacheStats; // Any custom cache statistics that need monitoring cache.doMonitor(emitter); } return true; }
private void emitTieredStat( final ServiceEmitter emitter, final String metricName, final String tier, final double value ) { emitter.emit( new ServiceMetricEvent.Builder() .setDimension(DruidMetrics.TIER, tier) .build(metricName, value) ); }
public static Builder builder() { return new Builder(); }