diff --git a/api/incubator/src/main/java/io/opentelemetry/api/incubator/events/DefaultEventLogger.java b/api/incubator/src/main/java/io/opentelemetry/api/incubator/events/DefaultEventLogger.java index 8017965bf00..c66d83add0d 100644 --- a/api/incubator/src/main/java/io/opentelemetry/api/incubator/events/DefaultEventLogger.java +++ b/api/incubator/src/main/java/io/opentelemetry/api/incubator/events/DefaultEventLogger.java @@ -22,6 +22,11 @@ static EventLogger getInstance() { return INSTANCE; } + @Override + public void emit(String eventName, AnyValue payload, Attributes attributes){ + // noop + } + @Override public EventBuilder builder(String eventName) { return NoOpEventBuilder.INSTANCE; @@ -63,5 +68,10 @@ public EventBuilder setAttributes(Attributes attributes) { @Override public void emit() {} + + @Override + public EventBuilder setPayload(AnyValue payload) { + return this; + } } } diff --git a/api/incubator/src/main/java/io/opentelemetry/api/incubator/events/EventBuilder.java b/api/incubator/src/main/java/io/opentelemetry/api/incubator/events/EventBuilder.java index 27cd6f8c367..a5d6f22d2a3 100644 --- a/api/incubator/src/main/java/io/opentelemetry/api/incubator/events/EventBuilder.java +++ b/api/incubator/src/main/java/io/opentelemetry/api/incubator/events/EventBuilder.java @@ -108,4 +108,6 @@ default EventBuilder put(String key, boolean... value) { /** Emit an event. */ void emit(); + + EventBuilder setPayload(AnyValue payload); } diff --git a/api/incubator/src/main/java/io/opentelemetry/api/incubator/events/EventLogger.java b/api/incubator/src/main/java/io/opentelemetry/api/incubator/events/EventLogger.java index 3d273a30c7a..b905d00cfca 100644 --- a/api/incubator/src/main/java/io/opentelemetry/api/incubator/events/EventLogger.java +++ b/api/incubator/src/main/java/io/opentelemetry/api/incubator/events/EventLogger.java @@ -5,6 +5,8 @@ package io.opentelemetry.api.incubator.events; +import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.api.incubator.logs.AnyValue; import javax.annotation.concurrent.ThreadSafe; /** @@ -31,6 +33,9 @@ @ThreadSafe public interface EventLogger { + void emit(String eventName, AnyValue payload, Attributes attributes); + + /** * Return a {@link EventBuilder} to emit an event. * diff --git a/sdk/logs/src/main/java/io/opentelemetry/sdk/logs/internal/SdkEventBuilder.java b/sdk/logs/src/main/java/io/opentelemetry/sdk/logs/internal/SdkEventBuilder.java index 5daa5ae56f4..d59820f3569 100644 --- a/sdk/logs/src/main/java/io/opentelemetry/sdk/logs/internal/SdkEventBuilder.java +++ b/sdk/logs/src/main/java/io/opentelemetry/sdk/logs/internal/SdkEventBuilder.java @@ -35,6 +35,13 @@ class SdkEventBuilder implements EventBuilder { this.eventName = eventName; } + @Override + public EventBuilder setPayload(AnyValue payload) { + this.payload.clear(); + ((ExtendedLogRecordBuilder) logRecordBuilder).setBody(payload); + return this; + } + @Override public EventBuilder put(String key, AnyValue value) { payload.put(key, value); diff --git a/sdk/logs/src/main/java/io/opentelemetry/sdk/logs/internal/SdkEventLoggerProvider.java b/sdk/logs/src/main/java/io/opentelemetry/sdk/logs/internal/SdkEventLoggerProvider.java index 391547201df..985f56a268e 100644 --- a/sdk/logs/src/main/java/io/opentelemetry/sdk/logs/internal/SdkEventLoggerProvider.java +++ b/sdk/logs/src/main/java/io/opentelemetry/sdk/logs/internal/SdkEventLoggerProvider.java @@ -5,10 +5,12 @@ package io.opentelemetry.sdk.logs.internal; +import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.incubator.events.EventBuilder; import io.opentelemetry.api.incubator.events.EventLogger; import io.opentelemetry.api.incubator.events.EventLoggerBuilder; import io.opentelemetry.api.incubator.events.EventLoggerProvider; +import io.opentelemetry.api.incubator.logs.AnyValue; import io.opentelemetry.api.logs.Logger; import io.opentelemetry.api.logs.LoggerBuilder; import io.opentelemetry.api.logs.LoggerProvider; @@ -97,6 +99,14 @@ private SdkEventLogger(Clock clock, Logger delegateLogger) { this.delegateLogger = delegateLogger; } + @Override + public void emit(String eventName, AnyValue payload, Attributes attributes) { + builder(eventName) + .setAttributes(attributes) + .setPayload(payload) + .emit(); + } + @Override public EventBuilder builder(String eventName) { return new SdkEventBuilder(