in exporters/metrics/src/main/java/com/google/cloud/opentelemetry/metric/MetricTranslator.java [160:182]
static <T> LabelDescriptor mapAttribute(AttributeKey<T> key, String descriptorTypePrefix) {
LabelDescriptor.Builder builder =
LabelDescriptor.newBuilder().setKey(cleanAttributeKey(key.getKey()));
// Only CUSTOM_PREFIX allows for a descriptor type other than String.
if (descriptorTypePrefix.equals(CUSTOM_PREFIX)) {
switch (key.getType()) {
case BOOLEAN:
builder.setValueType(LabelDescriptor.ValueType.BOOL);
break;
case LONG:
builder.setValueType(LabelDescriptor.ValueType.INT64);
break;
default:
// All other attribute types will be converted to String
builder.setValueType(LabelDescriptor.ValueType.STRING);
break;
}
} else {
// all other descriptor types only allow String Label descriptors.
builder.setValueType(LabelDescriptor.ValueType.STRING);
}
return builder.build();
}