in shared/resourcemapping/src/main/java/com/google/cloud/opentelemetry/resource/ResourceTranslator.java [43:66]
public void fill(Resource resource, GcpResource.Builder builder) {
for (AttributeKey<?> key : getOtelKeys()) {
Object value = resource.getAttribute(key);
if (value != null) {
String stringValue = value.toString();
// for monitored resource types that have service.name, ignore it
// if its unknown_service in favor of a valid value in faas.name.
// if faas.name is also empty/unset use the ignored value from before.
if (key.equals(ResourceAttributes.SERVICE_NAME)
&& stringValue.startsWith(UNKNOWN_SERVICE_PREFIX)) {
continue;
}
builder.addResourceLabels(getLabelName(), stringValue);
return;
}
}
if (getOtelKeys().contains(ResourceAttributes.SERVICE_NAME)
&& Objects.nonNull(resource.getAttribute(ResourceAttributes.SERVICE_NAME))) {
builder.addResourceLabels(
getLabelName(), resource.getAttribute(ResourceAttributes.SERVICE_NAME));
return;
}
fallbackLiteral().ifPresent(value -> builder.addResourceLabels(getLabelName(), value));
}