@Test public void create_WithUnprintableChars() { String key = "\2ab\3cd"; String description = "\4ef\5gh"; LabelKey labelKey = LabelKey.create(key, description); assertThat(labelKey.getKey()).isEqualTo(key); assertThat(labelKey.getDescription()).isEqualTo(description); }
private static LabelKey toLabelKeyProto(io.opencensus.metrics.LabelKey labelKey) { return LabelKey.newBuilder() .setKey(labelKey.getKey()) .setDescription(labelKey.getDescription()) .build(); }
@Test public void create_NoLengthConstraint() { // We have a length constraint of 256-characters for TagKey. That constraint doesn't apply to // LabelKey. char[] chars = new char[300]; Arrays.fill(chars, 'k'); String key = new String(chars); assertThat(LabelKey.create(key, "").getKey()).isEqualTo(key); }
static AbstractMap.SimpleImmutableEntry<List<LabelKey>, List<LabelValue>> generateLabels( MetricName dropwizardMetric) { List<LabelKey> labelKeys = new ArrayList<>(); List<LabelValue> labelValues = new ArrayList<>(); for (Map.Entry<String, String> tag : dropwizardMetric.getTags().entrySet()) { labelKeys.add(LabelKey.create(tag.getKey(), tag.getKey())); labelValues.add(LabelValue.create(tag.getValue())); } return new AbstractMap.SimpleImmutableEntry<>(labelKeys, labelValues); }
@VisibleForTesting static List<String> convertToLabelNames(List<LabelKey> labelKeys) { final List<String> labelNames = new ArrayList<String>(labelKeys.size()); for (LabelKey labelKey : labelKeys) { labelNames.add(Collector.sanitizeMetricName(labelKey.getKey())); } return labelNames; }
@Test public void testGetDescription() { assertThat(KEY.getDescription()).isEqualTo("description"); }
@VisibleForTesting static LabelDescriptor createLabelDescriptor(LabelKey labelKey) { LabelDescriptor.Builder builder = LabelDescriptor.newBuilder(); builder.setKey(labelKey.getKey()); builder.setDescription(labelKey.getDescription()); // Now we only support String tags builder.setValueType(ValueType.STRING); return builder.build(); }
@VisibleForTesting static Dimension createDimension(LabelKey labelKey, LabelValue labelValue) { Dimension.Builder builder = Dimension.newBuilder(); String value = labelValue.getValue(); if (!Strings.isNullOrEmpty(value)) { builder.setKey(labelKey.getKey()).setValue(value); } return builder.build(); }
@Test public void create_WithNonAsciiChars() { String key = "键"; String description = "测试用键"; LabelKey nonAsciiKey = LabelKey.create(key, description); assertThat(nonAsciiKey.getKey()).isEqualTo(key); assertThat(nonAsciiKey.getDescription()).isEqualTo(description); }
@Test public void createMetricDescriptor() { MetricDescriptor metricDescriptor = StackdriverExportUtils.createMetricDescriptor( METRIC_DESCRIPTOR, PROJECT_ID, "custom.googleapis.com/myorg/", "myorg/"); assertThat(metricDescriptor.getName()) .isEqualTo( "projects/" + PROJECT_ID + "/metricDescriptors/custom.googleapis.com/myorg/" + METRIC_NAME); assertThat(metricDescriptor.getDescription()).isEqualTo(METRIC_DESCRIPTION); assertThat(metricDescriptor.getDisplayName()).isEqualTo("myorg/" + METRIC_NAME); assertThat(metricDescriptor.getType()).isEqualTo("custom.googleapis.com/myorg/" + METRIC_NAME); assertThat(metricDescriptor.getUnit()).isEqualTo(METRIC_UNIT); assertThat(metricDescriptor.getMetricKind()).isEqualTo(MetricKind.CUMULATIVE); assertThat(metricDescriptor.getValueType()).isEqualTo(MetricDescriptor.ValueType.DOUBLE); assertThat(metricDescriptor.getLabelsList()) .containsExactly( LabelDescriptor.newBuilder() .setKey(LABEL_KEY.get(0).getKey()) .setDescription(LABEL_KEY.get(0).getDescription()) .setValueType(ValueType.STRING) .build(), LabelDescriptor.newBuilder() .setKey(StackdriverExportUtils.OPENCENSUS_TASK) .setDescription(StackdriverExportUtils.OPENCENSUS_TASK_DESCRIPTION) .setValueType(ValueType.STRING) .build()); }
@Test public void getOrCreateTimeSeries_WithNullElement() { List<LabelKey> labelKeys = Arrays.asList(LabelKey.create("key1", "desc"), LabelKey.create("key2", "desc")); List<LabelValue> labelValues = Arrays.asList(LabelValue.create("value1"), null); DoubleGaugeImpl doubleGauge = new DoubleGaugeImpl(METRIC_NAME, METRIC_DESCRIPTION, METRIC_UNIT, labelKeys); thrown.expect(NullPointerException.class); thrown.expectMessage("labelValue"); doubleGauge.getOrCreateTimeSeries(labelValues); }
@VisibleForTesting static Metric createMetric( io.opencensus.metrics.export.MetricDescriptor metricDescriptor, List<LabelValue> labelValues, String domain) { Metric.Builder builder = Metric.newBuilder(); builder.setType(generateType(metricDescriptor.getName(), domain)); Map<String, String> stringTagMap = Maps.newHashMap(); List<LabelKey> labelKeys = metricDescriptor.getLabelKeys(); for (int i = 0; i < labelValues.size(); i++) { String value = labelValues.get(i).getValue(); if (value == null) { continue; } stringTagMap.put(labelKeys.get(i).getKey(), value); } stringTagMap.put(OPENCENSUS_TASK, OPENCENSUS_TASK_VALUE_DEFAULT); builder.putAllLabels(stringTagMap); return builder.build(); }
@Test public void create_Empty() { LabelKey emptyKey = LabelKey.create("", ""); assertThat(emptyKey.getKey()).isEmpty(); assertThat(emptyKey.getDescription()).isEmpty(); }
.addLabelKeys( io.opencensus.proto.metrics.v1.LabelKey.newBuilder() .setKey(KEY_1.getKey()) .setDescription(KEY_1.getDescription()) .build()) .addLabelKeys( io.opencensus.proto.metrics.v1.LabelKey.newBuilder() .setKey(KEY_2.getKey()) .setDescription(KEY_2.getDescription()) .build()) .build())
@Test public void createTimeSeries_WithNullElement() { List<LabelKey> labelKeys = Arrays.asList(LabelKey.create("key1", "desc"), LabelKey.create("key2", "desc")); List<LabelValue> labelValues = Arrays.asList(LabelValue.create("value1"), null); DerivedLongGaugeImpl derivedLongGauge = new DerivedLongGaugeImpl(METRIC_NAME, METRIC_DESCRIPTION, METRIC_UNIT, labelKeys); thrown.expect(NullPointerException.class); thrown.expectMessage("labelValue"); derivedLongGauge.createTimeSeries(labelValues, null, longFunction); }
@Test public void testGetKey() { assertThat(KEY.getKey()).isEqualTo("key"); }
.addLabelKeys( io.opencensus.proto.metrics.v1.LabelKey.newBuilder() .setKey(KEY_1.getKey()) .setDescription(KEY_1.getDescription()) .build()) .build())
@Test public void createTimeSeries_WithNullElement() { List<LabelKey> labelKeys = Arrays.asList(LabelKey.create("key1", "desc"), LabelKey.create("key2", "desc")); List<LabelValue> labelValues = Arrays.asList(LabelValue.create("value1"), null); DerivedDoubleGaugeImpl derivedDoubleGauge = new DerivedDoubleGaugeImpl(METRIC_NAME, METRIC_DESCRIPTION, METRIC_UNIT, labelKeys); thrown.expect(NullPointerException.class); thrown.expectMessage("labelValue"); derivedDoubleGauge.createTimeSeries(labelValues, null, doubleFunction); }
@Test public void createDimensionsIgnoresEmptyValues() { List<Dimension> dimensions = Lists.newArrayList( SignalFxSessionAdaptor.createDimensions( ImmutableList.of(LABEL_KEY_1, LABEL_KEY_2), ImmutableList.of(LABEL_VALUE_1, EMPTY_LABEL_VALUE))); assertEquals(1, dimensions.size()); assertEquals(LABEL_KEY_1.getKey(), dimensions.get(0).getKey()); assertEquals(LABEL_VALUE_1.getValue(), dimensions.get(0).getValue()); }