java类com.codahale.metrics.Meter的实例源码

AnomalyDetector.java 文件源码 项目:cruise-control 阅读 37 收藏 0 点赞 0 评论 0
/**
 * Package private constructor for unit test.
 */
AnomalyDetector(LinkedBlockingDeque<Anomaly> anomalies,
                long anomalyDetectionIntervalMs,
                KafkaCruiseControl kafkaCruiseControl,
                AnomalyNotifier anomalyNotifier,
                GoalViolationDetector goalViolationDetector,
                BrokerFailureDetector brokerFailureDetector,
                ScheduledExecutorService detectorScheduler) {
  _anomalies = anomalies;
  _anomalyDetectionIntervalMs = anomalyDetectionIntervalMs;
  _anomalyNotifier = anomalyNotifier;
  _goalViolationDetector = goalViolationDetector;
  _brokerFailureDetector = brokerFailureDetector;
  _kafkaCruiseControl = kafkaCruiseControl;
  _detectorScheduler = detectorScheduler;
  _shutdown = false;
  _brokerFailureRate = new Meter();
  _goalViolationRate = new Meter();
}
TrainingFetcher.java 文件源码 项目:cruise-control 阅读 29 收藏 0 点赞 0 评论 0
TrainingFetcher(MetricSampler metricSampler,
                Cluster cluster,
                SampleStore sampleStore,
                Set<TopicPartition> assignedPartitions,
                long startTimeMs,
                long endTimeMs,
                Timer fetcherTimer,
                Meter fetcherFailureRate) {
  _cluster = cluster;
  _sampleStore = sampleStore;
  _metricSampler = metricSampler;
  _startTimeMs = startTimeMs;
  _endTimeMs = endTimeMs;
  _assignedPartitions = assignedPartitions;
  _fetcherTimer = fetcherTimer;
  _fetcherFailureRate = fetcherFailureRate;
}
SamplingFetcher.java 文件源码 项目:cruise-control 阅读 27 收藏 0 点赞 0 评论 0
SamplingFetcher(MetricSampler metricSampler,
                Cluster cluster,
                MetricSampleAggregator metricSampleAggregator,
                SampleStore sampleStore,
                Set<TopicPartition> assignedPartitions,
                long startTimeMs,
                long endTimeMs,
                boolean leaderValidation,
                boolean useLinearRegressionModel,
                Timer fetchTimer,
                Meter fetchFailureRate) {
  _metricSampler = metricSampler;
  _cluster = cluster;
  _metricSampleAggregator = metricSampleAggregator;
  _sampleStore = sampleStore;
  _assignedPartitions = assignedPartitions;
  _startTimeMs = startTimeMs;
  _endTimeMs = endTimeMs;
  _leaderValidation = leaderValidation;
  _useLinearRegressionModel = useLinearRegressionModel;
  _fetchTimer = fetchTimer;
  _fetchFailureRate = fetchFailureRate;
}
AbstractMeteredLoadProcessorTest.java 文件源码 项目:pyplyn 阅读 32 收藏 0 点赞 0 评论 0
@Test
public void testMetersRetrievedAndMarkIsDelegated() throws Exception {
    // ARRANGE
    SystemStatus systemStatus = mock(SystemStatus.class);

    Meter meter = mock(Meter.class);
    doReturn(meter).when(systemStatus).meter(anyString(), any());

    AbstractMeteredLoadProcessorImpl processor = spy(new AbstractMeteredLoadProcessorImpl(0, null, 0, null));
    processor.setSystemStatus(systemStatus);

    // ACT
    processor.succeeded();
    processor.failed();
    processor.authenticationFailure();

    // ASSERT
    verify(processor, times(3)).meterName(); // FindBugs: RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT - IGNORE
    verify(systemStatus, times(3)).meter(anyString(), any());
    verify(meter, times(3)).mark();
}
AbstractMeteredExtractProcessorTest.java 文件源码 项目:pyplyn 阅读 26 收藏 0 点赞 0 评论 0
@Test
public void testMetersRetrievedAndMarkIsDelegated() throws Exception {
    // ARRANGE
    SystemStatus systemStatus = mock(SystemStatus.class);

    Meter meter = mock(Meter.class);
    doReturn(meter).when(systemStatus).meter(anyString(), any());
    processor.setSystemStatus(systemStatus);


    // ACT
    processor.succeeded();
    processor.failed();
    processor.noData();
    processor.authenticationFailure();

    // ASSERT
    verify(processor, times(4)).meterName(); // FindBugs: RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT - IGNORE
    verify(systemStatus, times(4)).meter(anyString(), any());
    verify(meter, times(4)).mark();
}
FeignOutboundMetricsMethodHandlerTest.java 文件源码 项目:metrics-feign 阅读 35 收藏 0 点赞 0 评论 0
@Test(expected = FeignException.class)
public void exception() {
    stubFor(post(anyUrl()).willReturn(aResponse().withStatus(400)));
    MyClientWithAnnotationOnMethodLevel target = Feign.builder().invocationHandlerFactory(
            new FeignOutboundMetricsDecorator(new InvocationHandlerFactory.Default(), metricRegistry))
            .target(MyClientWithAnnotationOnMethodLevel.class,
                    String.format("http://localhost:%d", wireMockRule.port()));
    try {
        target.myMethod();
    } finally {

        assertMetrics();

        Set<Map.Entry<String, Meter>> entries = metricRegistry.getMeters().entrySet();

        entries.forEach(entry -> {
            if (entry.getKey().endsWith(ExceptionMetered.DEFAULT_NAME_SUFFIX)) {
                assertEquals(String.format("wrong number of invocations in metric %s", entry.getKey()), 1,
                        entry.getValue().getCount());
            }
        });
    }
}
FeignOutboundMetricsMethodHandlerTest.java 文件源码 项目:metrics-feign 阅读 25 收藏 0 点赞 0 评论 0
private void assertMetrics() {
    Timer timer = metricRegistry.getTimers().values().iterator().next();
    assertEquals("wrong number of invocations in metric.", 1, timer.getCount());

    assertTrue("wrong value of mean in metric.", timer.getMeanRate() > 0);

    assertEquals("wrong number of meter metrics.", 2, metricRegistry.getMeters().values().size());

    Set<Map.Entry<String, Meter>> entries = metricRegistry.getMeters().entrySet();

    entries.forEach(entry -> {
        if (entry.getKey().endsWith("Metered")) {
            assertEquals(String.format("wrong number of invocations in metric %s", entry.getKey()), 1,
                    entry.getValue().getCount());
        }
    });

}
InfluxDbMeasurementReporter.java 文件源码 项目:dropwizard-influxdb-reporter 阅读 25 收藏 0 点赞 0 评论 0
@Override
public void report(final SortedMap<String, Gauge> gauges,
                   final SortedMap<String, Counter> counters,
                   final SortedMap<String, Histogram> histograms,
                   final SortedMap<String, Meter> meters,
                   final SortedMap<String, Timer> timers) {
  final long timestamp = clock.instant().toEpochMilli();

  final ImmutableList<InfluxDbMeasurement> influxDbMeasurements = ImmutableList.<InfluxDbMeasurement>builder()
    .addAll(transformer.fromGauges(gauges, timestamp))
    .addAll(transformer.fromCounters(counters, timestamp))
    .addAll(transformer.fromHistograms(histograms, timestamp))
    .addAll(transformer.fromMeters(meters, timestamp))
    .addAll(transformer.fromTimers(timers, timestamp))
    .build();

  sender.send(influxDbMeasurements);
}
DropwizardTransformer.java 文件源码 项目:dropwizard-influxdb-reporter 阅读 35 收藏 0 点赞 0 评论 0
/**
 * Build an {@link InfluxDbMeasurement} from a meter.
 */
@VisibleForTesting InfluxDbMeasurement fromMeter(final String metricName, final Meter mt, final long timestamp) {
  final DropwizardMeasurement measurement = parser.parse(metricName);

  final Map<String, String> tags = new HashMap<>(baseTags);
  tags.putAll(measurement.tags());

  return new InfluxDbMeasurement.Builder(measurement.name(), timestamp)
    .putTags(tags)
    .putField("count", mt.getCount())
    .putField("one-minute", convertRate(mt.getOneMinuteRate()))
    .putField("five-minute", convertRate(mt.getFiveMinuteRate()))
    .putField("fifteen-minute", convertRate(mt.getFifteenMinuteRate()))
    .putField("mean-minute", convertRate(mt.getMeanRate()))
    .build();
}
MetricsElasticsearchModule.java 文件源码 项目:oneops 阅读 25 收藏 0 点赞 0 评论 0
@Override
public void serialize(JsonMeter jsonMeter,
                      JsonGenerator json,
                      SerializerProvider provider) throws IOException {
    json.writeStartObject();
    json.writeStringField("name", jsonMeter.name());
    json.writeObjectField(timestampFieldname, jsonMeter.timestampAsDate());
    Meter meter = jsonMeter.value();
    json.writeNumberField("count", meter.getCount());
    json.writeNumberField("m1_rate", meter.getOneMinuteRate() * rateFactor);
    json.writeNumberField("m5_rate", meter.getFiveMinuteRate() * rateFactor);
    json.writeNumberField("m15_rate", meter.getFifteenMinuteRate() * rateFactor);
    json.writeNumberField("mean_rate", meter.getMeanRate() * rateFactor);
    json.writeStringField("units", rateUnit);
    addOneOpsMetadata(json);
    json.writeEndObject();
}
OpenFlowControlMessageAggregator.java 文件源码 项目:athena 阅读 24 收藏 0 点赞 0 评论 0
/**
 * Generates an OpenFlow message aggregator instance.
 * The instance is for aggregating a specific OpenFlow message
 * type of an OpenFlow switch.
 *
 * @param metricsService metrics service reference object
 * @param providerService control message provider service reference object
 * @param deviceId device identification
 */
public OpenFlowControlMessageAggregator(MetricsService metricsService,
                                        ControlMessageProviderService providerService,
                                        DeviceId deviceId) {
    MetricsComponent mc = metricsService.registerComponent(deviceId.toString());

    OF_TYPE_SET.forEach(type -> {
        MetricsFeature metricsFeature = mc.registerFeature(type.toString());
        Meter rateMeter = metricsService.createMeter(mc, metricsFeature, RATE_NAME);
        Meter countMeter = metricsService.createMeter(mc, metricsFeature, COUNT_NAME);
        rateMeterMap.put(type, rateMeter);
        countMeterMap.put(type, countMeter);
    });

    this.deviceId = deviceId;
    this.providerService = providerService;
    metricsService.notifyReporters();
}
IntentEventsMetricsCommand.java 文件源码 项目:athena 阅读 22 收藏 0 点赞 0 评论 0
/**
 * Prints an Event Metric.
 *
 * @param operationStr the string with the intent operation to print
 * @param eventMetric the Event Metric to print
 */
private void printEventMetric(String operationStr,
                              EventMetric eventMetric) {
    Gauge<Long> gauge = eventMetric.lastEventTimestampGauge();
    Meter meter = eventMetric.eventRateMeter();
    TimeUnit rateUnit = TimeUnit.SECONDS;
    double rateFactor = rateUnit.toSeconds(1);

    // Print the Gauge
    print(FORMAT_GAUGE, operationStr, gauge.getValue());

    // Print the Meter
    print(FORMAT_METER, operationStr, meter.getCount(),
          meter.getMeanRate() * rateFactor,
          meter.getOneMinuteRate() * rateFactor,
          meter.getFiveMinuteRate() * rateFactor,
          meter.getFifteenMinuteRate() * rateFactor);
}
TopologyEventsMetricsCommand.java 文件源码 项目:athena 阅读 26 收藏 0 点赞 0 评论 0
/**
 * Prints an Event Metric.
 *
 * @param operationStr the string with the intent operation to print
 * @param eventMetric the Event Metric to print
 */
private void printEventMetric(String operationStr,
                              EventMetric eventMetric) {
    Gauge<Long> gauge = eventMetric.lastEventTimestampGauge();
    Meter meter = eventMetric.eventRateMeter();
    TimeUnit rateUnit = TimeUnit.SECONDS;
    double rateFactor = rateUnit.toSeconds(1);

    // Print the Gauge
    print(FORMAT_GAUGE, operationStr, gauge.getValue());

    // Print the Meter
    print(FORMAT_METER, operationStr, meter.getCount(),
          meter.getMeanRate() * rateFactor,
          meter.getOneMinuteRate() * rateFactor,
          meter.getFiveMinuteRate() * rateFactor,
          meter.getFifteenMinuteRate() * rateFactor);
}
MetricCodecTest.java 文件源码 项目:athena 阅读 24 收藏 0 点赞 0 评论 0
/**
 * Tests encoding of a Metric object.
 */
@Test
public void testMetricEncode() {
    Counter counter = new Counter();
    Meter meter = new Meter();
    Timer timer = new Timer();

    counter.inc();
    meter.mark();
    timer.update(1, TimeUnit.MILLISECONDS);

    ObjectNode counterJson = metricCodec.encode(counter, context);
    assertThat(counterJson.get("counter"), matchesMetric(counter));

    ObjectNode meterJson = metricCodec.encode(meter, context);
    assertThat(meterJson.get("meter"), matchesMetric(meter));

    ObjectNode timerJson = metricCodec.encode(timer, context);
    assertThat(timerJson.get("timer"), matchesMetric(timer));
}
AstyanaxEventReaderDAO.java 文件源码 项目:emodb 阅读 33 收藏 0 点赞 0 评论 0
private static ExecutorService defaultCleanupExecutor(String metricsGroup, LifeCycleRegistry lifeCycle, MetricRegistry metricRegistry) {
    final Meter meter = metricRegistry.meter(MetricRegistry.name(metricsGroup, "AstyanaxEventReaderDAO", "discarded_slab_cleanup"));
    String nameFormat = "Events Slab Reader Cleanup-" + metricsGroup.substring(metricsGroup.lastIndexOf('.') + 1) + "-%d";
    ExecutorService executor = new ThreadPoolExecutor(
            NUM_CLEANUP_THREADS, NUM_CLEANUP_THREADS,
            0L, TimeUnit.MILLISECONDS,
            new LinkedBlockingQueue<Runnable>(MAX_CLEANUP_QUEUE_LENGTH),
            new ThreadFactoryBuilder().setNameFormat(nameFormat).build(),
            new ThreadPoolExecutor.DiscardPolicy() {
                @Override
                public void rejectedExecution(Runnable r, ThreadPoolExecutor e) {
                    meter.mark();
                }
            });
    lifeCycle.manage(new ExecutorServiceManager(executor, Duration.seconds(5), nameFormat));
    return executor;
}
SemanticMetricRegistry.java 文件源码 项目:semantic-metrics 阅读 26 收藏 0 点赞 0 评论 0
private void notifyListenerOfRemovedMetric(
    final MetricId name, final Metric metric, final SemanticMetricRegistryListener listener
) {
    if (metric instanceof Gauge) {
        listener.onGaugeRemoved(name);
    } else if (metric instanceof Counter) {
        listener.onCounterRemoved(name);
    } else if (metric instanceof Histogram) {
        listener.onHistogramRemoved(name);
    } else if (metric instanceof Meter) {
        listener.onMeterRemoved(name);
    } else if (metric instanceof Timer) {
        listener.onTimerRemoved(name);
    } else if (metric instanceof DerivingMeter) {
        listener.onDerivingMeterRemoved(name);
    } else {
        throw new IllegalArgumentException("Unknown metric type: " + metric.getClass());
    }
}
CirconusReporterTest.java 文件源码 项目:metrics-circonus 阅读 22 收藏 0 点赞 0 评论 0
@Test
public void reportsCounters() throws Exception {
  final Counter counter = mock(Counter.class);
  when(counter.getCount()).thenReturn(100L);

  reporter.report(this.<Gauge>map(),
                  this.<Counter>map("counter", counter),
                  this.<Histogram>map(),
                  this.<Meter>map(),
                  this.<Timer>map());

  final InOrder inOrder = inOrder(transport, request);
  inOrder.verify(transport).prepare();
  inOrder.verify(request).addGauge(new CirconusGauge("counter", 100L, timestamp, HOST, tags));
  inOrder.verify(request).send();

  verify(transport).prepare();
  verify(request).send();
  verifyNoMoreInteractions(transport, request);
}
HawkularReporterITest.java 文件源码 项目:hawkular-dropwizard-reporter 阅读 22 收藏 0 点赞 0 评论 0
@Test
public void shouldUseFailoverMaxRequests() throws IOException, InterruptedException {
    String metricName = randomName();
    HawkularReporter reporter = HawkularReporter.builder(registry, defaultTenant)
            .uri("http://invalid:999")
            .failoverCacheMaxSize(3)
            .build();

    Meter meter = registry.meter(metricName);
    meter.mark(1000);
    Thread.sleep(100);
    meter.mark(1000);
    reporter.report();

    // 6 requests (6 = 5 tags + 1 metric), but majored by 3
    assertThat(((JdkHawkularHttpClient) reporter.getHawkularClient()).getFailoverCacheSize()).isEqualTo(3);
}
DefaultRateLimiter.java 文件源码 项目:fili 阅读 24 收藏 0 点赞 0 评论 0
/**
 * Creates a new RateLimitRequestToken.
 *
 * @param count  The atomic reference that holds the amount of in-flight requests the user owns
 * @param userName  The user who launched the request
 * @param isUIQuery  Whether or not this query was generated from the UI
 * @param requestLimit  The limit of requests the user is allowed to launch
 * @param requestMeter  Meter tracking the amount of requests that have been launched
 * @param rejectMeter  Meter tracking the amount of requests that have been rejected
 *
 * @return a new RateLimitRequestToken, representing an in-flight (or rejected) request that is tracked by the
 * RateLimiter
 */
protected RateLimitRequestToken createNewRateLimitRequestToken(AtomicInteger count, String userName,
        boolean isUIQuery, int requestLimit, Meter requestMeter, Meter rejectMeter) {
    if (!incrementAndCheckCount(globalCount, requestLimitGlobal)) {
        rejectRequest(rejectMeter, true, isUIQuery, userName);
        return REJECT_REQUEST_TOKEN;
    }


    // Bind to the user
    if (!incrementAndCheckCount(count, requestLimit)) {
        // Decrement the global count that had already been incremented
        globalCount.decrementAndGet();
        rejectRequest(rejectMeter, false, isUIQuery, userName);
        return REJECT_REQUEST_TOKEN;
    }

    // Measure the accepted request and current open connections
    requestMeter.mark();
    requestGlobalCounter.inc();

    // Return new request token
    RateLimitCleanupOnRequestComplete callback = generateCleanupClosure(count, userName);
    return new CallbackRateLimitRequestToken(true, callback);
}
SignalFxAwareCodahaleMetricsCollectorTest.java 文件源码 项目:riposte 阅读 28 收藏 0 点赞 0 评论 0
@DataProvider(value = {
    "null",
    "0",
    "1",
    "2"
}, splitBy = "\\|")
@Test
public void getNamedMeter_with_iterable_dimensions_creates_dimensioned_meter_using_sfx_mechanisms(
    Integer numDimensions
) {
    // given
    String meterName = UUID.randomUUID().toString();
    List<Pair<String, String>> iterableDims = generateIterableDimensions(numDimensions);

    // when
    Meter result = sfxImpl.getNamedMeter(meterName, iterableDims);

    // then
    verifyMetricCreation(MetricBuilder.METERS, meterTaggerMock, meterName, iterableDims, meterMock, result);
}
MetricsBaseTest.java 文件源码 项目:quarks 阅读 24 收藏 0 点赞 0 评论 0
private final void rateMeter(String[] data) throws Exception {
    Topology t = newTopology();
    TStream<String> s = t.strings(data);
    s = Metrics.rateMeter(s);

    waitUntilComplete(t, s, data);

    if (metricRegistry != null) {
        SortedMap<String, Meter> meters = metricRegistry.getMeters();
        assertEquals(1, meters.size());
        Collection<Meter> values = meters.values();
        for (Meter v : values) {
            assertEquals(data.length, v.getCount());
        }
    }
}
CustomMetricRegistry.java 文件源码 项目:mongoose-base 阅读 29 收藏 0 点赞 0 评论 0
private void notifyListenerOfAddedMetric(
    final MetricRegistryListener listener, final Metric metric, final String name
) {
    if(metric instanceof Gauge) {
        listener.onGaugeAdded(name, (Gauge<?>) metric);
    } else if(metric instanceof Counter) {
        listener.onCounterAdded(name, (Counter) metric);
    } else if(metric instanceof Histogram) {
        listener.onHistogramAdded(name, (Histogram) metric);
    } else if(metric instanceof Meter) {
        listener.onMeterAdded(name, (Meter) metric);
    } else if(metric instanceof Timer) {
        listener.onTimerAdded(name, (Timer) metric);
    } else {
        throw new IllegalArgumentException("Unsupported metric type: " + metric.getClass());
    }
}
CustomMetricRegistry.java 文件源码 项目:mongoose-base 阅读 36 收藏 0 点赞 0 评论 0
private void notifyListenerOfRemovedMetric(
    final String name, final Metric metric, final MetricRegistryListener listener
) {
    if(metric instanceof Gauge) {
        listener.onGaugeRemoved(name);
    } else if(metric instanceof Counter) {
        listener.onCounterRemoved(name);
    } else if(metric instanceof Histogram) {
        listener.onHistogramRemoved(name);
    } else if(metric instanceof Meter) {
        listener.onMeterRemoved(name);
    } else if(metric instanceof Timer) {
        listener.onTimerRemoved(name);
    } else {
        throw new IllegalArgumentException("Unsupported metric type: " + metric.getClass());
    }
}
MeterTimer.java 文件源码 项目:outland 阅读 23 收藏 0 点赞 0 评论 0
default <T> T metric(Timer timer, Meter meter, Supplier<T> supplier) {
  Timer.Context time = timer.time();
  try {
    meter.mark();
    return supplier.get();
  } finally {
    time.stop();
  }
}
DropwizardFunctionCounter.java 文件源码 项目:micrometer 阅读 20 收藏 0 点赞 0 评论 0
DropwizardFunctionCounter(Id id, Clock clock,
                          T obj, ToDoubleFunction<T> f) {
    super(id);
    this.ref = new WeakReference<>(obj);
    this.f = f;
    this.rate = new DropwizardRate(clock);
    this.dropwizardMeter = new Meter(new DropwizardClock(clock)) {
        @Override
        public double getFifteenMinuteRate() {
            count();
            return rate.getFifteenMinuteRate();
        }

        @Override
        public double getFiveMinuteRate() {
            count();
            return rate.getFiveMinuteRate();
        }

        @Override
        public double getOneMinuteRate() {
            count();
            return rate.getOneMinuteRate();
        }

        @Override
        public long getCount() {
            return (long) count();
        }
    };
}
FeignOutboundMetricsDecorator.java 文件源码 项目:metrics-feign 阅读 23 收藏 0 点赞 0 评论 0
public MethodHandlerDecorator(final Method method, final MethodHandler methodHandler,
        final ConcurrentMap<Method, Meter> meters,
        final ConcurrentMap<Method, ExceptionMeterMetric> exceptionMeters,
        final ConcurrentMap<Method, Timer> timers) {
    this.method = method;
    this.methodHandler = methodHandler;
    this.meters = meters;
    this.exceptionMeters = exceptionMeters;
    this.timers = timers;
}
FeignOutboundMetricsDecorator.java 文件源码 项目:metrics-feign 阅读 32 收藏 0 点赞 0 评论 0
@Override
public Object invoke(Object[] argv) throws Throwable {
    try {

        final Meter meter = this.meters.get(method);
        if (meter != null) {
            meter.mark();
        }

        final Timer timer = this.timers.get(method);
        if (timer != null) {
            this.context = timer.time();
        }

        return methodHandler.invoke(argv);

    } catch (Exception e) {

        final FeignOutboundMetricsDecorator.ExceptionMeterMetric metric =
                (method != null) ? this.exceptionMeters.get(method) : null;

        if (metric != null && (metric.cause.isAssignableFrom(e.getClass()) || (e.getCause() != null
                && metric.cause.isAssignableFrom(e.getCause().getClass())))) {
            metric.meter.mark();
        }

        throw e;
    } finally {
        if (this.context != null) {
            this.context.close();
        }
    }
}
ApptuitReporter.java 文件源码 项目:JInsight 阅读 28 收藏 0 点赞 0 评论 0
@Override
public void report(SortedMap<String, Gauge> gauges, SortedMap<String, Counter> counters,
    SortedMap<String, Histogram> histograms, SortedMap<String, Meter> meters,
    SortedMap<String, Timer> timers) {

  DataPointCollector collector = new DataPointCollector(System.currentTimeMillis() / 1000);

  buildReportTimer.time(() -> {
    debug("################");

    debug(">>>>>>>> Guages <<<<<<<<<");
    gauges.forEach(collector::collectGauge);
    debug(">>>>>>>> Counters <<<<<<<<<");
    counters.forEach(collector::collectCounter);
    debug(">>>>>>>> Histograms <<<<<<<<<");
    histograms.forEach(collector::collectHistogram);
    debug(">>>>>>>> Meters <<<<<<<<<");
    meters.forEach(collector::collectMeter);
    debug(">>>>>>>> Timers <<<<<<<<<");
    timers.forEach(collector::collectTimer);

    debug("################");
  });

  sendReportTimer.time(() -> {
    Collection<DataPoint> dataPoints = collector.dataPoints;
    dataPointsReporter.put(dataPoints);
    //dataPoints.forEach(System.out::println);
  });
}
DropwizardTransformerTest.java 文件源码 项目:dropwizard-influxdb-reporter 阅读 22 收藏 0 点赞 0 评论 0
@Test
public void testFromMeter() {
  final Set<String> fieldKeys = ImmutableSet.of(
    "count",
    "one-minute",
    "five-minute",
    "fifteen-minute",
    "mean-minute"
  );

  final DropwizardMeasurementParser parser = mock(DropwizardMeasurementParser.class);
  final DropwizardTransformer transformer = transformerWithParser(parser, true);

  when(parser.parse("some.metric.name")).thenReturn(
    DropwizardMeasurement.create("Measurement", MEASUREMENT_TAGS, Optional.empty())
  );

  final Meter meter = new Meter();
  meter.mark(50L);
  meter.mark(64L);
  meter.mark(80L);

  final InfluxDbMeasurement measurement = transformer.fromMeter("some.metric.name", meter, 90210L);
  assertEquals("should parse name from full metric key", "Measurement", measurement.name());
  assertEquals("should add global and measurement tags", ALL_TAGS, measurement.tags());
  assertEquals("should timestamp measurement", 90210L, measurement.timestamp());
  assertEquals("should add all meter fields", fieldKeys, measurement.fields().keySet());
}
MetricsUtil.java 文件源码 项目:logistimo-web-service 阅读 26 收藏 0 点赞 0 评论 0
public static Meter getMeter(Class clazz, String key) {
  Meter
      meter =
      _metrics.getMeters() != null ? _metrics.getMeters().get(MetricRegistry.name(clazz, key))
          : null;
  if (meter == null) {
    return _metrics.meter(MetricRegistry.name(clazz, key));
  }
  return meter;
}


问题


面经


文章

微信
公众号

扫码关注公众号