Skip to content

Commit 2809916

Browse files
committed
Rename prototype to more closely match OTEP 4316.
1 parent af3bbd9 commit 2809916

File tree

21 files changed

+263
-203
lines changed

21 files changed

+263
-203
lines changed

api/incubator/src/main/java/io/opentelemetry/api/incubator/ExtendedOpenTelemetry.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
package io.opentelemetry.api.incubator;
77

88
import io.opentelemetry.api.OpenTelemetry;
9-
import io.opentelemetry.api.incubator.entities.ResourceProvider;
9+
import io.opentelemetry.api.incubator.entities.EntityProvider;
1010

11-
/** Extension to {@link OpenTelemetry} that adds {@link ResourceProvider}. */
11+
/** Extension to {@link OpenTelemetry} that adds {@link EntityProvider}. */
1212
public interface ExtendedOpenTelemetry extends OpenTelemetry {
13-
/** Returns the {@link ResourceProvider} for this {@link OpenTelemetry}. */
14-
default ResourceProvider getResourceProvider() {
15-
return ResourceProvider.noop();
13+
/** Returns the {@link EntityProvider} for this {@link OpenTelemetry}. */
14+
default EntityProvider getEntityProvider() {
15+
return EntityProvider.noop();
1616
}
1717
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.api.incubator.entities;
7+
8+
/**
9+
* A registry for interacting with {@link Resource}s. The name <i>Provider</i> is for consistency
10+
* with other languages and it is <b>NOT</b> loaded using reflection.
11+
*
12+
* @see Resource
13+
*/
14+
public interface EntityProvider {
15+
/**
16+
* Returns a no-op {@link EntityProvider} which only creates no-op {@link Resource}s which do not
17+
* record nor are emitted.
18+
*/
19+
static EntityProvider noop() {
20+
return NoopEntityProvider.INSTANCE;
21+
}
22+
23+
/**
24+
* Removes an entity from this resource.
25+
*
26+
* @param entityType the type of entity to remove.
27+
* @return true if entity was found and removed.
28+
*/
29+
boolean removeEntity(String entityType);
30+
31+
/**
32+
* Attaches an entity to the current {@code Resource}.
33+
*
34+
* <p>This will only add new entities or update description of existing entities.
35+
*
36+
* @param entityType The type of the entity.
37+
* @return A builder that can construct an entity.
38+
*/
39+
EntityBuilder attachOrUpdateEntity(String entityType);
40+
}

api/incubator/src/main/java/io/opentelemetry/api/incubator/entities/NoopResource.java renamed to api/incubator/src/main/java/io/opentelemetry/api/incubator/entities/NoopEntityProvider.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@
55

66
package io.opentelemetry.api.incubator.entities;
77

8-
final class NoopResource implements Resource {
8+
final class NoopEntityProvider implements EntityProvider {
99

10-
static final Resource INSTANCE = new NoopResource();
10+
static final EntityProvider INSTANCE = new NoopEntityProvider();
1111

1212
@Override
1313
public boolean removeEntity(String entityType) {
1414
return false;
1515
}
1616

1717
@Override
18-
public EntityBuilder attachEntity(String entityType) {
18+
public EntityBuilder attachOrUpdateEntity(String entityType) {
1919
return NoopEntityBuilder.INSTANCE;
2020
}
2121
}

api/incubator/src/main/java/io/opentelemetry/api/incubator/entities/NoopResourceProvider.java

Lines changed: 0 additions & 16 deletions
This file was deleted.

api/incubator/src/main/java/io/opentelemetry/api/incubator/entities/Resource.java

Lines changed: 0 additions & 25 deletions
This file was deleted.

api/incubator/src/main/java/io/opentelemetry/api/incubator/entities/ResourceProvider.java

Lines changed: 0 additions & 25 deletions
This file was deleted.

sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/ExtendedOpenTelemetrySdk.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66
package io.opentelemetry.sdk.extension.incubator;
77

88
import io.opentelemetry.api.incubator.ExtendedOpenTelemetry;
9-
import io.opentelemetry.api.incubator.entities.ResourceProvider;
9+
import io.opentelemetry.api.incubator.entities.EntityProvider;
1010
import io.opentelemetry.sdk.common.CompletableResultCode;
1111
import io.opentelemetry.sdk.logs.SdkLoggerProvider;
1212
import io.opentelemetry.sdk.metrics.SdkMeterProvider;
1313
import io.opentelemetry.sdk.trace.SdkTracerProvider;
1414
import java.io.Closeable;
1515

16-
/** A new interface for creating OpenTelemetrySdk that supports {@link ResourceProvider}. */
16+
/** A new interface for creating OpenTelemetrySdk that supports {@link EntityProvider}. */
1717
public interface ExtendedOpenTelemetrySdk extends ExtendedOpenTelemetry, Closeable {
1818
/**
1919
* Shutdown the SDK. Calls {@link SdkTracerProvider#shutdown()}, {@link

sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/ExtendedOpenTelemetrySdkBuilder.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
package io.opentelemetry.sdk.extension.incubator;
77

88
import io.opentelemetry.api.GlobalOpenTelemetry;
9-
import io.opentelemetry.api.incubator.entities.ResourceProvider;
9+
import io.opentelemetry.api.incubator.entities.EntityProvider;
1010
import io.opentelemetry.context.propagation.ContextPropagators;
1111
import io.opentelemetry.sdk.OpenTelemetrySdk;
1212
import io.opentelemetry.sdk.OpenTelemetrySdkBuilder;
13-
import io.opentelemetry.sdk.extension.incubator.entities.SdkResourceProvider;
14-
import io.opentelemetry.sdk.extension.incubator.entities.SdkResourceProviderBuilder;
13+
import io.opentelemetry.sdk.extension.incubator.entities.SdkEntityProvider;
14+
import io.opentelemetry.sdk.extension.incubator.entities.SdkEntityProviderBuilder;
1515
import io.opentelemetry.sdk.logs.SdkLoggerProvider;
1616
import io.opentelemetry.sdk.logs.SdkLoggerProviderBuilder;
1717
import io.opentelemetry.sdk.logs.internal.SdkLoggerProviderUtil;
@@ -23,13 +23,13 @@
2323
import io.opentelemetry.sdk.trace.internal.SdkTracerProviderUtil;
2424
import java.util.function.Consumer;
2525

26-
/** A new interface for creating OpenTelemetrySdk that supports {@link ResourceProvider}. */
26+
/** A new interface for creating OpenTelemetrySdk that supports {@link EntityProvider}. */
2727
public final class ExtendedOpenTelemetrySdkBuilder {
2828
private ContextPropagators propagators = ContextPropagators.noop();
2929
private final SdkTracerProviderBuilder tracerProviderBuilder = SdkTracerProvider.builder();
3030
private final SdkMeterProviderBuilder meterProviderBuilder = SdkMeterProvider.builder();
3131
private final SdkLoggerProviderBuilder loggerProviderBuilder = SdkLoggerProvider.builder();
32-
private final SdkResourceProviderBuilder resourceProviderBuilder = SdkResourceProvider.builder();
32+
private final SdkEntityProviderBuilder resourceProviderBuilder = SdkEntityProvider.builder();
3333

3434
/** Sets the {@link ContextPropagators} to use. */
3535
public ExtendedOpenTelemetrySdkBuilder setPropagators(ContextPropagators propagators) {
@@ -83,18 +83,18 @@ public ExtendedOpenTelemetrySdkBuilder withLoggerProvider(
8383
* @see GlobalOpenTelemetry
8484
*/
8585
public ExtendedOpenTelemetrySdk build() {
86-
SdkResourceProvider resourceProvider = resourceProviderBuilder.build();
86+
SdkEntityProvider resourceProvider = resourceProviderBuilder.build();
8787
SdkTracerProvider tracerProvider =
8888
SdkTracerProviderUtil.setResourceSupplier(
89-
tracerProviderBuilder, resourceProvider::getSdkResource)
89+
tracerProviderBuilder, resourceProvider::getResource)
9090
.build();
9191
SdkMeterProvider meterProvider =
9292
SdkMeterProviderUtil.setResourceSupplier(
93-
meterProviderBuilder, resourceProvider::getSdkResource)
93+
meterProviderBuilder, resourceProvider::getResource)
9494
.build();
9595
SdkLoggerProvider loggerProvider =
9696
SdkLoggerProviderUtil.setResourceSupplier(
97-
loggerProviderBuilder, resourceProvider::getSdkResource)
97+
loggerProviderBuilder, resourceProvider::getResource)
9898
.build();
9999
return new ObfuscatedExtendedOpenTelemerySdk(
100100
resourceProvider, tracerProvider, meterProvider, loggerProvider, propagators);

sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/ObfuscatedExtendedOpenTelemerySdk.java

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55

66
package io.opentelemetry.sdk.extension.incubator;
77

8-
import io.opentelemetry.api.incubator.entities.Resource;
9-
import io.opentelemetry.api.incubator.entities.ResourceProvider;
8+
import io.opentelemetry.api.incubator.entities.EntityBuilder;
9+
import io.opentelemetry.api.incubator.entities.EntityProvider;
1010
import io.opentelemetry.api.logs.LoggerBuilder;
1111
import io.opentelemetry.api.logs.LoggerProvider;
1212
import io.opentelemetry.api.metrics.MeterBuilder;
@@ -16,7 +16,7 @@
1616
import io.opentelemetry.api.trace.TracerProvider;
1717
import io.opentelemetry.context.propagation.ContextPropagators;
1818
import io.opentelemetry.sdk.common.CompletableResultCode;
19-
import io.opentelemetry.sdk.extension.incubator.entities.SdkResourceProvider;
19+
import io.opentelemetry.sdk.extension.incubator.entities.SdkEntityProvider;
2020
import io.opentelemetry.sdk.logs.SdkLoggerProvider;
2121
import io.opentelemetry.sdk.metrics.SdkMeterProvider;
2222
import io.opentelemetry.sdk.trace.SdkTracerProvider;
@@ -36,16 +36,16 @@ final class ObfuscatedExtendedOpenTelemerySdk implements ExtendedOpenTelemetrySd
3636
private final ObfuscatedTracerProvider tracerProvider;
3737
private final ObfuscatedMeterProvider meterProvider;
3838
private final ObfuscatedLoggerProvider loggerProvider;
39-
private final ObfuscatedResourceProvider resourceProvider;
39+
private final ObfuscatedEntityProvider entityProvider;
4040
private final ContextPropagators propagators;
4141

4242
ObfuscatedExtendedOpenTelemerySdk(
43-
SdkResourceProvider resourceProvider,
43+
SdkEntityProvider entityProvider,
4444
SdkTracerProvider tracerProvider,
4545
SdkMeterProvider meterProvider,
4646
SdkLoggerProvider loggerProvider,
4747
ContextPropagators propagators) {
48-
this.resourceProvider = new ObfuscatedResourceProvider(resourceProvider);
48+
this.entityProvider = new ObfuscatedEntityProvider(entityProvider);
4949
this.tracerProvider = new ObfuscatedTracerProvider(tracerProvider);
5050
this.meterProvider = new ObfuscatedMeterProvider(meterProvider);
5151
this.loggerProvider = new ObfuscatedLoggerProvider(loggerProvider);
@@ -86,8 +86,8 @@ public LoggerProvider getLogsBridge() {
8686
}
8787

8888
@Override
89-
public ResourceProvider getResourceProvider() {
90-
return resourceProvider;
89+
public EntityProvider getEntityProvider() {
90+
return entityProvider;
9191
}
9292

9393
@Override
@@ -98,8 +98,8 @@ public ContextPropagators getPropagators() {
9898
@Override
9999
public String toString() {
100100
return "ExtendedOpenTelemetrySdk{"
101-
+ "resourceProivder="
102-
+ resourceProvider.unobfuscate()
101+
+ "entityProvider="
102+
+ entityProvider.unobfuscate()
103103
+ ", tracerProvider="
104104
+ tracerProvider.unobfuscate()
105105
+ ", meterProvider="
@@ -211,21 +211,26 @@ public SdkLoggerProvider unobfuscate() {
211211
*/
212212
@ThreadSafe
213213
// Visible for testing
214-
static class ObfuscatedResourceProvider implements ResourceProvider {
214+
static class ObfuscatedEntityProvider implements EntityProvider {
215215

216-
private final SdkResourceProvider delegate;
216+
private final SdkEntityProvider delegate;
217217

218-
ObfuscatedResourceProvider(SdkResourceProvider delegate) {
218+
ObfuscatedEntityProvider(SdkEntityProvider delegate) {
219219
this.delegate = delegate;
220220
}
221221

222+
public SdkEntityProvider unobfuscate() {
223+
return delegate;
224+
}
225+
222226
@Override
223-
public Resource getResource() {
224-
return delegate.getResource();
227+
public boolean removeEntity(String entityType) {
228+
return delegate.removeEntity(entityType);
225229
}
226230

227-
public SdkResourceProvider unobfuscate() {
228-
return delegate;
231+
@Override
232+
public EntityBuilder attachOrUpdateEntity(String entityType) {
233+
return delegate.attachOrUpdateEntity(entityType);
229234
}
230235
}
231236
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.sdk.extension.incubator.entities;
7+
8+
import io.opentelemetry.sdk.resources.Resource;
9+
10+
/** A listener for changes in the EntityState of this SDK. */
11+
public interface EntityListener {
12+
/**
13+
* Called when an entity has been added or its state has changed.
14+
*
15+
* @param state The current state of the entity.
16+
* @param resource The current state of the Resource.
17+
*/
18+
public void onEntityState(EntityState state, Resource resource);
19+
20+
/**
21+
* Called when an entity has been removed.
22+
*
23+
* @param state The current state of the removed entity.
24+
* @param resource The current state of the Resource.
25+
*/
26+
public void onEntityDelete(EntityState state, Resource resource);
27+
}

0 commit comments

Comments
 (0)