Java源码示例:io.opencensus.stats.Measure.MeasureLong

示例1
/** Constructor. */
public BatchWrite(long maxBytes, int maxMessages, Duration maxDelay,
    PubsubMessageToTemplatedString batchKeyTemplate, Executor executor) {
  this.maxBytes = maxBytes;
  this.maxMessages = maxMessages;
  this.maxDelay = maxDelay;
  this.batchKeyTemplate = batchKeyTemplate;
  this.executor = executor;

  // create OpenCensus measures with a class name prefix
  final String shortClassName = this.getClass().getName().replaceAll(".*[.]", "");
  final String batchType = shortClassName.replace('$', '_').toLowerCase();
  totalBytes = MeasureLong.create(batchType + "_total_bytes",
      "The number of bytes received in " + shortClassName, "B");
  totalMessages = MeasureLong.create(batchType + "_total_messages",
      "The number of messages received in " + shortClassName, "1");
  batchCount = MeasureLong.create(batchType + "_batch_count",
      "The number of batches closed in " + shortClassName, "1");
  batchBytes = MeasureLong.create(batchType + "_batch_bytes",
      "Distribution of the number of bytes in a batch in " + shortClassName, "B");
  batchMessages = MeasureLong.create(batchType + "_batch_messages",
      "Distribution of the number of messages in a batch in " + shortClassName, "1");
  batchDelay = MeasureLong.create(batchType + "_batch_delay",
      "Distribution of the number of milliseconds a batch waited for messages in "
          + shortClassName,
      "ms");
}
 
示例2
/**
 * Register a view for every measure.
 *
 * <p>If this is not called, e.g. during unit tests, recorded values will not be exported.
 */
public Function<InputT, CompletableFuture<Void>> withOpenCensusMetrics() {
  final ViewManager viewManager = Stats.getViewManager();
  ImmutableMap.<MeasureLong, Aggregation>builder().put(batchCount, COUNT_AGG)
      .put(batchBytes, BATCH_BYTES_AGG).put(batchMessages, BATCH_MESSAGES_AGG)
      .put(batchDelay, BATCH_DELAY_AGG).put(totalBytes, SUM_AGG).put(totalMessages, SUM_AGG)
      .build()
      .forEach((measure, aggregation) -> viewManager
          .registerView(View.create(View.Name.create(measure.getName()), measure.getDescription(),
              measure, aggregation, ImmutableList.of())));
  return this;
}
 
示例3
/**
 * Register a view for every measure.
 *
 * <p>If this is not called, e.g. during unit tests, recorded values will not be exported.
 */
private static void setupOpenCensus() {
  ViewManager viewManager = Stats.getViewManager();
  for (MeasureLong measure : ImmutableList.of(COERCED_TO_INT, NOT_COERCED_TO_INT,
      NOT_COERCED_TO_BOOL)) {
    viewManager.registerView(View.create(Name.create(measure.getName()),
        measure.getDescription(), measure, COUNT_AGGREGATION, ImmutableList.of()));
  }
}
 
示例4
@Override
public MeasureMap put(MeasureLong measure, long value) {
  if (value < 0) {
    hasUnsupportedValues = true;
  }
  return this;
}
 
示例5
@Test
public void testMeasureLongComponents() {
  Measure measurement = Measure.MeasureLong.create("Bar", "The description of Bar", "1");
  assertThat(measurement.getName()).isEqualTo("Bar");
  assertThat(measurement.getDescription()).isEqualTo("The description of Bar");
  assertThat(measurement.getUnit()).isEqualTo("1");
}
 
示例6
@Test
public void testMeasureLongEquals() {
  new EqualsTester()
      .addEqualityGroup(
          Measure.MeasureLong.create("name", "description", "bit/s"),
          Measure.MeasureLong.create("name", "description", "bit/s"))
      .addEqualityGroup(Measure.MeasureLong.create("name", "description 2", "bit/s"))
      .testEquals();
}
 
示例7
@Override
public MeasureMapImpl put(MeasureLong measure, long value) {
  if (value < 0) {
    hasUnsupportedValues = true;
  }
  builder.put(measure, value);
  return this;
}
 
示例8
@Test
public void preventRegisteringDifferentMeasureWithSameName() {
  MeasureDouble measure1 = MeasureDouble.create("measure", "description", "1");
  MeasureLong measure2 = MeasureLong.create("measure", "description", "1");
  View view1 =
      View.create(
          VIEW_NAME, VIEW_DESCRIPTION, measure1, DISTRIBUTION, Arrays.asList(KEY), CUMULATIVE);
  View view2 =
      View.create(
          VIEW_NAME_2, VIEW_DESCRIPTION, measure2, DISTRIBUTION, Arrays.asList(KEY), CUMULATIVE);
  testFailedToRegisterView(
      view1, view2, "A different measure with the same name is already registered");
}
 
示例9
@Test
public void testRecord_MeasureTypeNotMatch() {
  testRecord_MeasureNotMatch(
      MeasureLong.create(MEASURE_NAME, "measure", MEASURE_UNIT),
      MeasureDouble.create(MEASURE_NAME, "measure", MEASURE_UNIT),
      10.0);
}
 
示例10
@Test
public void testMultipleViews_DifferentMeasureTypes() {
  testMultipleViews_DifferentMeasures(
      MeasureDouble.create(MEASURE_NAME, MEASURE_DESCRIPTION, MEASURE_UNIT),
      MeasureLong.create(MEASURE_NAME_2, MEASURE_DESCRIPTION, MEASURE_UNIT),
      1.1,
      5000);
}
 
示例11
private static MeasureMap putToMeasureMap(MeasureMap measureMap, Measure measure, double value) {
  if (measure instanceof MeasureDouble) {
    return measureMap.put((MeasureDouble) measure, value);
  } else if (measure instanceof MeasureLong) {
    return measureMap.put((MeasureLong) measure, Math.round(value));
  } else {
    // Future measures.
    throw new AssertionError();
  }
}
 
示例12
/** */
private MeasureLong createMeasureLong(String name, String desc) {
    MeasureLong msr = MeasureLong.create(name, desc == null ? name : desc, "");

    addView(msr);

    return msr;
}
 
示例13
private static void recordStat(MeasureLong ml, Long n) {
  TagContext tctx = tagger.emptyBuilder().build();
  try (Scope ss = tagger.withTagContext(tctx)) {
    statsRecorder.newMeasureMap().put(ml, n).record();
  }
}
 
示例14
private static void recordTaggedStat(TagKey key, String value, MeasureLong ml, Long n) {
  TagContext tctx = tagger.emptyBuilder().put(key, TagValue.create(value)).build();
  try (Scope ss = tagger.withTagContext(tctx)) {
    statsRecorder.newMeasureMap().put(ml, n).record();
  }
}
 
示例15
private static void recordStat(MeasureLong ml, Long n) {
  TagContext empty = tagger.emptyBuilder().build();
  statsRecorder.newMeasureMap().put(ml, n).record(empty);
}
 
示例16
private static void recordTaggedStat(TagKey key, String value, MeasureLong ml, long n) {
  TagContext context = tagger.emptyBuilder().put(key, TagValue.create(value)).build();
  statsRecorder.newMeasureMap().put(ml, n).record(context);
}
 
示例17
@Override
public abstract MeasureLong getMeasure();
 
示例18
@Test
public void testMeasureDoubleIsNotEqualToMeasureLong() {
  assertThat(Measure.MeasureDouble.create("name", "description", "bit/s"))
      .isNotEqualTo(Measure.MeasureLong.create("name", "description", "bit/s"));
}
 
示例19
@Override
public MutableAggregation apply(MeasureLong arg) {
  return MutableSumLong.create();
}
 
示例20
@Override
public MutableAggregation apply(MeasureLong arg) {
  return MutableLastValueLong.create();
}
 
示例21
private static MeasureLong makeSimpleMeasureLong(String measure) {
  return Measure.MeasureLong.create(measure, measure + " description", "1");
}
 
示例22
@Override
public MeasureMap put(MeasureLong measure, long value) {
  return this;
}
 
示例23
private static void recordStat(MeasureLong ml, Long n) {
  TagContext empty = tagger.emptyBuilder().build();
  statsRecorder.newMeasureMap().put(ml, n).record(empty);
}
 
示例24
private static void recordTaggedStat(TagKey key, String value, MeasureLong ml, long n) {
  TagContext context = tagger.emptyBuilder().put(key, TagValue.create(value)).build();
  statsRecorder.newMeasureMap().put(ml, n).record(context);
}
 
示例25
public void init() {
  // Is this actually needed, not sure. Better safe than sorry!
  measures = new ConcurrentHashMap<String, MeasureLong>();
}
 
示例26
public void sendMetric(Metric metric) {
  try {
    String metricName = getOutputMetricName(metric);
    MeasureLong measure = measures.get(metricName);

    if (measure == null) {
      if (measures.size() > maxViews) {
        throw new RuntimeException("maxViews exceeded. " +
            "Please increase in configuration or decrease number of metrics.");
      }

      measure = MeasureLong.create("Events", "Number of Events", "1");
      measures.put(metricName, measure);

      // Stackdriver expects each metric to have the same set of tags so metrics
      // missing tags will be rejected. NB by default stackdriver will create
      // the metricDescription based on the first metric received so be consistant
      // from the start.
      final List<TagKey> columns = new ArrayList<TagKey>(metric.getTags().size());
      metric.getTags().keySet().forEach(tagName -> {
          columns.add(TagKey.create(sanitizeName(tagName)));
      });
      final View view =
          View.create(
              Name.create(metricName),
              metricName,
              measure,
              Sum.create(),
              columns);

      Stats.getViewManager().registerView(view);
    }
    final TagContextBuilder builder = tagger.emptyBuilder();
    metric.getTags().forEach((k, v) -> {
        builder.putPropagating(TagKey.create(sanitizeName(k)), TagValue.create(v));
    });
    final TagContext context = builder.build();

    statsRecorder.newMeasureMap().put(measure, (long) metric.getValue()).record(context);
  } catch (Exception ex) {
    log.error("Couldn't send metric %s", ex);
    throw ex;
  }
}
 
示例27
private void recordRealTimeMetric(TagContext ctx, MeasureLong measure, long value) {
  if (recordRealTimeMetrics) {
    MeasureMap measureMap = statsRecorder.newMeasureMap().put(measure, value);
    measureMap.record(ctx);
  }
}
 
示例28
/**
 * Constructs a new {@link MeasurementLong}.
 *
 * @since 0.8
 */
public static MeasurementLong create(MeasureLong measure, long value) {
  return new AutoValue_Measurement_MeasurementLong(measure, value);
}
 
示例29
/**
 * Associates the {@link MeasureLong} with the given value. Subsequent updates to the same {@link
 * MeasureLong} will overwrite the previous value.
 *
 * @param measure the {@link MeasureLong}
 * @param value the value to be associated with {@code measure}
 * @return this
 * @since 0.8
 */
public abstract MeasureMap put(MeasureLong measure, long value);
 
示例30
/**
 * Associates the {@link MeasureLong} with the given value. Subsequent updates to the same
 * {@link MeasureLong} will overwrite the previous value.
 *
 * @param measure the {@link MeasureLong}
 * @param value the value to be associated with {@code measure}
 * @return this
 */
Builder put(MeasureLong measure, long value) {
  measurements.add(Measurement.MeasurementLong.create(measure, value));
  return this;
}