Skip to content

Commit fca4f74

Browse files
Fix OTel CF resource provider
Uses the simpler implementation from release-3. The service loader does not load the required provider this early in the lifecycle. The old implementation is proven in existing versions of the extension. Testing showed it to be effective with the new release. Signed-off-by: Karsten Schnitter <[email protected]>
1 parent b236b0c commit fca4f74

File tree

1 file changed

+3
-21
lines changed

1 file changed

+3
-21
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,19 @@
11
package com.sap.hcf.cf.logging.opentelemetry.agent.ext;
22

33
import com.sap.hcf.cf.logging.opentelemetry.agent.ext.attributes.CloudFoundryResourceCustomizer;
4+
import io.opentelemetry.contrib.cloudfoundry.resources.CloudFoundryResource;
45
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
56
import io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider;
67
import io.opentelemetry.sdk.resources.Resource;
78

8-
import java.util.ServiceLoader;
9-
109
public class CloudFoundryResourceProvider implements ResourceProvider {
1110

1211
private final CloudFoundryResourceCustomizer customizer = new CloudFoundryResourceCustomizer();
1312

1413
@Override
1514
public Resource createResource(ConfigProperties configProperties) {
16-
ResourceProvider delegate = getDelegate();
17-
return delegate == null
18-
? Resource.empty()
19-
: customizer.apply(delegate.createResource(configProperties), configProperties);
20-
}
21-
22-
private ResourceProvider getDelegate() {
23-
return DelegateHolder.INSTANCE;
15+
Resource original = CloudFoundryResource.get();
16+
return customizer.apply(original, configProperties);
2417
}
2518

26-
private static class DelegateHolder {
27-
static final ResourceProvider INSTANCE = loadCloudFoundryResourceProvider();
28-
29-
private static ResourceProvider loadCloudFoundryResourceProvider() {
30-
ServiceLoader<ResourceProvider> loader = ServiceLoader.load(ResourceProvider.class);
31-
return loader.stream().map(ServiceLoader.Provider::get)
32-
.filter(p -> p instanceof io.opentelemetry.contrib.cloudfoundry.resources.CloudFoundryResourceProvider)
33-
.findAny().orElse(null);
34-
}
35-
36-
}
3719
}

0 commit comments

Comments
 (0)