@Override public void gauge(String metricName, long value) { metricsContext.gauge(metricName, value); } }
@Override public MetricsContext load(Map<String, String> key) throws Exception { return metricsContext.childContext(key); } });
if (newWeight > limits.get().getHardLimit()) { reduceWeight(); metricsContext.increment(METRICS_ADD_REDUCE_WEIGHT, 1L); newWeight = currentWeight.get(); metricsContext.increment(METRICS_ADD_REQUESTS, 1L); metricsContext.increment(METRICS_ENTRIES_ADDED, entriesAdded); metricsContext.gauge(METRICS_WEIGHT, newWeight); metricsContext.increment(METRICS_ADD_REDUCE_WEIGHT, 1L); } else if (newWeight > limits.get().getReduceTrigger()) { needReduceWeight.compareAndSet(false, true);
@Override protected void append(ILoggingEvent eventObject) { // increment metrics for logging event Map<String, String> metricsTags = getMetricsTagsMap(eventObject.getMDCPropertyMap()); if (!metricsTags.isEmpty()) { String metricName = getMetricName(metricsTags.get(Constants.Metrics.Tag.NAMESPACE), eventObject.getLevel().toString().toLowerCase()); // Don't increment metrics for logs from MetricsProcessor to avoid possibility of infinite loop if (!(metricsTags.containsKey(Constants.Metrics.Tag.COMPONENT) && metricsTags.get(Constants.Metrics.Tag.COMPONENT).equals(Constants.Service.METRICS_PROCESSOR))) { // todo this is inefficient as childContext implementation creates new map should use metricsCollectionService MetricsContext childContext = metricsContext.childContext(metricsTags); childContext.increment(metricName, 1); } } }
@Override public Map<String, String> getTags() { return metricsContext.getTags(); }
if (newWeight > limits.get().getHardLimit()) { reduceWeight(); metricsContext.increment(METRICS_ADD_REDUCE_WEIGHT, 1L); newWeight = currentWeight.get(); metricsContext.increment(METRICS_ADD_REQUESTS, 1L); metricsContext.increment(METRICS_ENTRIES_ADDED, entriesAdded); metricsContext.gauge(METRICS_WEIGHT, newWeight); metricsContext.increment(METRICS_ADD_REDUCE_WEIGHT, 1L); } else if (newWeight > limits.get().getReduceTrigger()) { needReduceWeight.compareAndSet(false, true);
@Override protected void append(ILoggingEvent eventObject) { // increment metrics for logging event Map<String, String> metricsTags = getMetricsTagsMap(eventObject.getMDCPropertyMap()); if (!metricsTags.isEmpty()) { String metricName = getMetricName(metricsTags.get(Constants.Metrics.Tag.NAMESPACE), eventObject.getLevel().toString().toLowerCase()); // Don't increment metrics for logs from MetricsProcessor to avoid possibility of infinite loop if (!(metricsTags.containsKey(Constants.Metrics.Tag.COMPONENT) && metricsTags.get(Constants.Metrics.Tag.COMPONENT).equals(Constants.Service.METRICS_PROCESSOR))) { // todo this is inefficient as childContext implementation creates new map should use metricsCollectionService MetricsContext childContext = metricsContext.childContext(metricsTags); childContext.increment(metricName, 1); } } }
@Override public Map<String, String> getTags() { return metricsContext.getTags(); }
@Override public MetricsContext load(Map<String, String> key) throws Exception { return metricsContext.childContext(key); } });
metricsContext.gauge("tms.fetch.time.ms", System.currentTimeMillis() - startTime); metricsContext.increment("tms.fetch.messages", messages.size()); metricsContext.gauge("process.duration.ms", endTime - startTime); metricsContext.increment("process.notifications", iterator.getConsumedCount()); metricsContext.gauge("process.delay.ms", endTime - getMessagePublishTime(messageId));
this.queueSize = cConf.getInt(Constants.Metrics.QUEUE_SIZE); this.fetcherLimit = Math.max(1, queueSize / topicNumbers.size()); // fetcherLimit is at least one this.metricsContextMap = metricsContext.getTags(); this.processMetricsThreads = new ArrayList<>(); this.metricsFromAllTopics = new LinkedBlockingDeque<>(queueSize);
@Override public void gauge(String metricName, long value) { metricsContext.gauge(metricName, value); } }
@Override public void count(String metricName, int delta) { metricsContext.increment(metricName, delta); }
public WorkflowMetrics(MetricsContext programMetricsContext, MetricsContext workflowMetricsContext) { this.programMetricsContext = programMetricsContext.childContext(Constants.Metrics.Tag.SCOPE, "user"); this.workflowMetricsContext = workflowMetricsContext.childContext(Constants.Metrics.Tag.SCOPE, "user"); }
this.queueSize = cConf.getInt(Constants.Metrics.QUEUE_SIZE); this.fetcherLimit = Math.max(1, queueSize / topicNumbers.size()); // fetcherLimit is at least one this.metricsContextMap = metricsContext.getTags(); this.processMetricsThreads = new ArrayList<>(); this.metricsFromAllTopics = new LinkedBlockingDeque<>(queueSize);
@Override public void count(String metricName, int delta) { metricsContext.increment(metricName, delta); }