Rename LogData to LogRecordData (#4774)

* Rename LogData to LogRecordData

* spotless
This commit is contained in:
jack-berg 2022-09-26 10:30:59 -05:00 committed by GitHub
parent 9b17be3114
commit 647ed91c15
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
49 changed files with 272 additions and 262 deletions

View File

@ -11,7 +11,7 @@ import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.io.SegmentedStringWriter;
import io.opentelemetry.exporter.internal.otlp.logs.ResourceLogsMarshaler;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.logs.export.LogRecordExporter;
import java.io.IOException;
import java.util.Collection;
@ -19,8 +19,8 @@ import java.util.logging.Level;
import java.util.logging.Logger;
/**
* A {@link LogRecordExporter} which writes {@linkplain LogData logs} to a {@link Logger} in OTLP
* JSON format. Each log line will include a single {@code ResourceLogs}.
* A {@link LogRecordExporter} which writes {@linkplain LogRecordData logs} to a {@link Logger} in
* OTLP JSON format. Each log line will include a single {@code ResourceLogs}.
*/
public final class OtlpJsonLoggingLogRecordExporter implements LogRecordExporter {
@ -35,7 +35,7 @@ public final class OtlpJsonLoggingLogRecordExporter implements LogRecordExporter
private OtlpJsonLoggingLogRecordExporter() {}
@Override
public CompletableResultCode export(Collection<LogData> logs) {
public CompletableResultCode export(Collection<LogRecordData> logs) {
ResourceLogsMarshaler[] allResourceLogs = ResourceLogsMarshaler.create(logs);
for (ResourceLogsMarshaler resourceLogs : allResourceLogs) {
SegmentedStringWriter sw = new SegmentedStringWriter(JSON_FACTORY._getBufferRecycler());

View File

@ -18,10 +18,10 @@ import io.opentelemetry.api.trace.TraceFlags;
import io.opentelemetry.api.trace.TraceState;
import io.opentelemetry.internal.testing.slf4j.SuppressLogger;
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.logs.export.LogRecordExporter;
import io.opentelemetry.sdk.resources.Resource;
import io.opentelemetry.sdk.testing.logs.TestLogData;
import io.opentelemetry.sdk.testing.logs.TestLogRecordData;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import org.junit.jupiter.api.BeforeEach;
@ -36,8 +36,8 @@ class OtlpJsonLoggingLogRecordExporterTest {
private static final Resource RESOURCE =
Resource.create(Attributes.builder().put("key", "value").build());
private static final LogData LOG1 =
TestLogData.builder()
private static final LogRecordData LOG1 =
TestLogRecordData.builder()
.setResource(RESOURCE)
.setInstrumentationScopeInfo(
InstrumentationScopeInfo.builder("instrumentation")
@ -57,8 +57,8 @@ class OtlpJsonLoggingLogRecordExporterTest {
TraceState.getDefault()))
.build();
private static final LogData LOG2 =
TestLogData.builder()
private static final LogRecordData LOG2 =
TestLogRecordData.builder()
.setResource(RESOURCE)
.setInstrumentationScopeInfo(
InstrumentationScopeInfo.builder("instrumentation2").setVersion("2").build())

View File

@ -9,7 +9,7 @@ import static java.util.concurrent.TimeUnit.NANOSECONDS;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.logs.export.LogRecordExporter;
import java.time.Instant;
import java.time.ZoneOffset;
@ -35,10 +35,10 @@ public class SystemOutLogRecordExporter implements LogRecordExporter {
private SystemOutLogRecordExporter() {}
@Override
public CompletableResultCode export(Collection<LogData> logs) {
public CompletableResultCode export(Collection<LogRecordData> logs) {
StringBuilder stringBuilder = new StringBuilder(60);
for (LogData log : logs) {
for (LogRecordData log : logs) {
stringBuilder.setLength(0);
formatLog(stringBuilder, log);
System.out.println(stringBuilder);
@ -52,7 +52,7 @@ public class SystemOutLogRecordExporter implements LogRecordExporter {
}
// VisibleForTesting
static void formatLog(StringBuilder stringBuilder, LogData log) {
static void formatLog(StringBuilder stringBuilder, LogRecordData log) {
InstrumentationScopeInfo instrumentationScopeInfo = log.getInstrumentationScopeInfo();
stringBuilder
.append(

View File

@ -17,9 +17,9 @@ import io.opentelemetry.api.trace.TraceFlags;
import io.opentelemetry.api.trace.TraceState;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.resources.Resource;
import io.opentelemetry.sdk.testing.logs.TestLogData;
import io.opentelemetry.sdk.testing.logs.TestLogRecordData;
import java.time.LocalDateTime;
import java.time.Month;
import java.time.ZoneOffset;
@ -41,7 +41,7 @@ class SystemOutLogRecordExporterTest {
void format() {
long timestamp =
LocalDateTime.of(1970, Month.AUGUST, 7, 10, 0).toInstant(ZoneOffset.UTC).toEpochMilli();
LogData log = sampleLog(timestamp);
LogRecordData log = sampleLog(timestamp);
StringBuilder output = new StringBuilder();
SystemOutLogRecordExporter.formatLog(output, log);
assertThat(output.toString())
@ -50,8 +50,8 @@ class SystemOutLogRecordExporterTest {
+ "[scopeInfo: logTest:1.0] {amount=1, cheese=\"cheddar\"}");
}
private static LogData sampleLog(long timestamp) {
return TestLogData.builder()
private static LogRecordData sampleLog(long timestamp) {
return TestLogRecordData.builder()
.setResource(Resource.empty())
.setInstrumentationScopeInfo(
InstrumentationScopeInfo.builder("logTest").setVersion("1.0").build())

View File

@ -18,6 +18,7 @@ import io.opentelemetry.exporter.internal.otlp.KeyValueMarshaler;
import io.opentelemetry.exporter.internal.otlp.StringAnyValueMarshaler;
import io.opentelemetry.proto.logs.v1.internal.LogRecord;
import io.opentelemetry.proto.logs.v1.internal.SeverityNumber;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import java.io.IOException;
import javax.annotation.Nullable;
@ -35,22 +36,22 @@ final class LogMarshaler extends MarshalerWithSize {
@Nullable private final String traceId;
@Nullable private final String spanId;
static LogMarshaler create(io.opentelemetry.sdk.logs.data.LogData logData) {
static LogMarshaler create(LogRecordData logRecordData) {
KeyValueMarshaler[] attributeMarshalers =
KeyValueMarshaler.createRepeated(logData.getAttributes());
KeyValueMarshaler.createRepeated(logRecordData.getAttributes());
// For now, map all the bodies to String AnyValue.
StringAnyValueMarshaler anyValueMarshaler =
new StringAnyValueMarshaler(MarshalerUtil.toBytes(logData.getBody().asString()));
new StringAnyValueMarshaler(MarshalerUtil.toBytes(logRecordData.getBody().asString()));
SpanContext spanContext = logData.getSpanContext();
SpanContext spanContext = logRecordData.getSpanContext();
return new LogMarshaler(
logData.getEpochNanos(),
toProtoSeverityNumber(logData.getSeverity()),
MarshalerUtil.toBytes(logData.getSeverityText()),
logRecordData.getEpochNanos(),
toProtoSeverityNumber(logRecordData.getSeverity()),
MarshalerUtil.toBytes(logRecordData.getSeverityText()),
anyValueMarshaler,
attributeMarshalers,
logData.getTotalAttributeCount() - logData.getAttributes().size(),
logRecordData.getTotalAttributeCount() - logRecordData.getAttributes().size(),
spanContext.getTraceFlags(),
spanContext.getTraceId().equals(INVALID_TRACE_ID) ? null : spanContext.getTraceId(),
spanContext.getSpanId().equals(INVALID_SPAN_ID) ? null : spanContext.getSpanId());

View File

@ -10,13 +10,13 @@ import io.opentelemetry.exporter.internal.marshal.MarshalerUtil;
import io.opentelemetry.exporter.internal.marshal.MarshalerWithSize;
import io.opentelemetry.exporter.internal.marshal.Serializer;
import io.opentelemetry.proto.collector.logs.v1.internal.ExportLogsServiceRequest;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.trace.data.SpanData;
import java.io.IOException;
import java.util.Collection;
/**
* {@link Marshaler} to convert SDK {@link LogData} to OTLP ExportLogsServiceRequest.
* {@link Marshaler} to convert SDK {@link LogRecordData} to OTLP ExportLogsServiceRequest.
*
* <p>This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
@ -29,7 +29,7 @@ public final class LogsRequestMarshaler extends MarshalerWithSize {
* Returns a {@link LogsRequestMarshaler} that can be used to convert the provided {@link
* SpanData} into a serialized OTLP ExportLogsServiceRequest.
*/
public static LogsRequestMarshaler create(Collection<LogData> logs) {
public static LogsRequestMarshaler create(Collection<LogRecordData> logs) {
return new LogsRequestMarshaler(ResourceLogsMarshaler.create(logs));
}

View File

@ -13,7 +13,7 @@ import io.opentelemetry.exporter.internal.otlp.InstrumentationScopeMarshaler;
import io.opentelemetry.exporter.internal.otlp.ResourceMarshaler;
import io.opentelemetry.proto.logs.v1.internal.ResourceLogs;
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.resources.Resource;
import java.io.IOException;
import java.util.Collection;
@ -32,7 +32,7 @@ public final class ResourceLogsMarshaler extends MarshalerWithSize {
private final InstrumentationScopeLogsMarshaler[] instrumentationScopeLogsMarshalers;
/** Returns Marshalers of ResourceLogs created by grouping the provided logRecords. */
public static ResourceLogsMarshaler[] create(Collection<LogData> logs) {
public static ResourceLogsMarshaler[] create(Collection<LogRecordData> logs) {
Map<Resource, Map<InstrumentationScopeInfo, List<Marshaler>>> resourceAndScopeMap =
groupByResourceAndScope(logs);
@ -93,13 +93,13 @@ public final class ResourceLogsMarshaler extends MarshalerWithSize {
}
private static Map<Resource, Map<InstrumentationScopeInfo, List<Marshaler>>>
groupByResourceAndScope(Collection<LogData> logs) {
groupByResourceAndScope(Collection<LogRecordData> logs) {
return MarshalerUtil.groupByResourceAndScope(
logs,
// TODO(anuraaga): Replace with an internal SdkData type of interface that exposes these
// two.
LogData::getResource,
LogData::getInstrumentationScopeInfo,
LogRecordData::getResource,
LogRecordData::getInstrumentationScopeInfo,
LogMarshaler::create);
}
}

View File

@ -29,7 +29,7 @@ import io.opentelemetry.proto.logs.v1.ResourceLogs;
import io.opentelemetry.proto.logs.v1.ScopeLogs;
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
import io.opentelemetry.sdk.resources.Resource;
import io.opentelemetry.sdk.testing.logs.TestLogData;
import io.opentelemetry.sdk.testing.logs.TestLogRecordData;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.UncheckedIOException;
@ -53,7 +53,7 @@ class LogsRequestMarshalerTest {
ResourceLogsMarshaler[] resourceLogsMarshalers =
ResourceLogsMarshaler.create(
Collections.singleton(
TestLogData.builder()
TestLogRecordData.builder()
.setResource(
Resource.builder().put("one", 1).setSchemaUrl("http://url").build())
.setInstrumentationScopeInfo(
@ -100,7 +100,7 @@ class LogsRequestMarshalerTest {
parse(
LogRecord.getDefaultInstance(),
LogMarshaler.create(
TestLogData.builder()
TestLogRecordData.builder()
.setResource(
Resource.create(Attributes.builder().put("testKey", "testValue").build()))
.setInstrumentationScopeInfo(
@ -136,7 +136,7 @@ class LogsRequestMarshalerTest {
parse(
LogRecord.getDefaultInstance(),
LogMarshaler.create(
TestLogData.builder()
TestLogRecordData.builder()
.setResource(
Resource.create(Attributes.builder().put("testKey", "testValue").build()))
.setInstrumentationScopeInfo(

View File

@ -8,7 +8,7 @@ package io.opentelemetry.exporter.otlp.http.logs;
import io.opentelemetry.exporter.internal.okhttp.OkHttpExporter;
import io.opentelemetry.exporter.internal.otlp.logs.LogsRequestMarshaler;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.logs.export.LogRecordExporter;
import java.util.Collection;
import javax.annotation.concurrent.ThreadSafe;
@ -48,7 +48,7 @@ public final class OtlpHttpLogRecordExporter implements LogRecordExporter {
* @return the result of the operation
*/
@Override
public CompletableResultCode export(Collection<LogData> logs) {
public CompletableResultCode export(Collection<LogRecordData> logs) {
LogsRequestMarshaler exportRequest = LogsRequestMarshaler.create(logs);
return delegate.export(exportRequest, logs.size());
}

View File

@ -8,7 +8,7 @@ package io.opentelemetry.exporter.otlp.logs;
import io.opentelemetry.exporter.internal.grpc.GrpcExporter;
import io.opentelemetry.exporter.internal.otlp.logs.LogsRequestMarshaler;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.logs.export.LogRecordExporter;
import java.util.Collection;
import javax.annotation.concurrent.ThreadSafe;
@ -50,7 +50,7 @@ public final class OtlpGrpcLogRecordExporter implements LogRecordExporter {
* @return the result of the operation
*/
@Override
public CompletableResultCode export(Collection<LogData> logs) {
public CompletableResultCode export(Collection<LogRecordData> logs) {
LogsRequestMarshaler request = LogsRequestMarshaler.create(logs);
return delegate.export(request, logs.size());
}

View File

@ -33,9 +33,9 @@ import io.opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse;
import io.opentelemetry.proto.logs.v1.ResourceLogs;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.resources.Resource;
import io.opentelemetry.sdk.testing.logs.TestLogData;
import io.opentelemetry.sdk.testing.logs.TestLogRecordData;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.UncheckedIOException;
@ -317,7 +317,7 @@ class OtlpHttpLogRecordExporterTest {
private static ExportLogsServiceRequest exportAndAssertResult(
OtlpHttpLogRecordExporter otlpHttpLogRecordExporter, boolean expectedResult) {
List<LogData> logs = Collections.singletonList(generateFakeLog());
List<LogRecordData> logs = Collections.singletonList(generateFakeLog());
CompletableResultCode resultCode = otlpHttpLogRecordExporter.export(logs);
resultCode.join(10, TimeUnit.SECONDS);
assertThat(resultCode.isSuccess()).isEqualTo(expectedResult);
@ -347,8 +347,8 @@ class OtlpHttpLogRecordExporterTest {
return HttpResponse.of(httpStatus, APPLICATION_PROTOBUF, message.toByteArray());
}
private static LogData generateFakeLog() {
return TestLogData.builder()
private static LogRecordData generateFakeLog() {
return TestLogRecordData.builder()
.setResource(Resource.getDefault())
.setInstrumentationScopeInfo(
InstrumentationScopeInfo.builder("testLib")

View File

@ -19,16 +19,16 @@ import io.opentelemetry.exporter.otlp.testing.internal.AbstractGrpcTelemetryExpo
import io.opentelemetry.exporter.otlp.testing.internal.TelemetryExporterBuilder;
import io.opentelemetry.proto.logs.v1.ResourceLogs;
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.resources.Resource;
import io.opentelemetry.sdk.testing.logs.TestLogData;
import io.opentelemetry.sdk.testing.logs.TestLogRecordData;
import java.io.Closeable;
import java.time.Instant;
import java.util.List;
import org.junit.jupiter.api.Test;
class OtlpGrpcLogRecordExporterTest
extends AbstractGrpcTelemetryExporterTest<LogData, ResourceLogs> {
extends AbstractGrpcTelemetryExporterTest<LogRecordData, ResourceLogs> {
OtlpGrpcLogRecordExporterTest() {
super("log", ResourceLogs.getDefaultInstance());
@ -51,13 +51,13 @@ class OtlpGrpcLogRecordExporterTest
}
@Override
protected TelemetryExporterBuilder<LogData> exporterBuilder() {
protected TelemetryExporterBuilder<LogRecordData> exporterBuilder() {
return TelemetryExporterBuilder.wrap(OtlpGrpcLogRecordExporter.builder());
}
@Override
protected LogData generateFakeTelemetry() {
return TestLogData.builder()
protected LogRecordData generateFakeTelemetry() {
return TestLogRecordData.builder()
.setResource(Resource.create(Attributes.builder().put("testKey", "testValue").build()))
.setInstrumentationScopeInfo(
InstrumentationScopeInfo.builder("instrumentation").setVersion("1").build())
@ -70,7 +70,7 @@ class OtlpGrpcLogRecordExporterTest
}
@Override
protected Marshaler[] toMarshalers(List<LogData> telemetry) {
protected Marshaler[] toMarshalers(List<LogRecordData> telemetry) {
return ResourceLogsMarshaler.create(telemetry);
}
}

View File

@ -21,16 +21,16 @@ import io.opentelemetry.exporter.otlp.testing.internal.ManagedChannelTelemetryEx
import io.opentelemetry.exporter.otlp.testing.internal.TelemetryExporterBuilder;
import io.opentelemetry.proto.logs.v1.ResourceLogs;
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.resources.Resource;
import io.opentelemetry.sdk.testing.logs.TestLogData;
import io.opentelemetry.sdk.testing.logs.TestLogRecordData;
import java.io.Closeable;
import java.time.Instant;
import java.util.List;
import org.junit.jupiter.api.Test;
class OtlpGrpcNettyLogRecordExporterTest
extends AbstractGrpcTelemetryExporterTest<LogData, ResourceLogs> {
extends AbstractGrpcTelemetryExporterTest<LogRecordData, ResourceLogs> {
OtlpGrpcNettyLogRecordExporterTest() {
super("log", ResourceLogs.getDefaultInstance());
@ -57,14 +57,14 @@ class OtlpGrpcNettyLogRecordExporterTest
}
@Override
protected TelemetryExporterBuilder<LogData> exporterBuilder() {
protected TelemetryExporterBuilder<LogRecordData> exporterBuilder() {
return ManagedChannelTelemetryExporterBuilder.wrap(
TelemetryExporterBuilder.wrap(OtlpGrpcLogRecordExporter.builder()));
}
@Override
protected LogData generateFakeTelemetry() {
return TestLogData.builder()
protected LogRecordData generateFakeTelemetry() {
return TestLogRecordData.builder()
.setResource(Resource.create(Attributes.builder().put("testKey", "testValue").build()))
.setInstrumentationScopeInfo(
InstrumentationScopeInfo.builder("instrumentation").setVersion("1").build())
@ -77,7 +77,7 @@ class OtlpGrpcNettyLogRecordExporterTest
}
@Override
protected Marshaler[] toMarshalers(List<LogData> telemetry) {
protected Marshaler[] toMarshalers(List<LogRecordData> telemetry) {
return ResourceLogsMarshaler.create(telemetry);
}
}

View File

@ -18,16 +18,16 @@ import io.opentelemetry.exporter.otlp.testing.internal.ManagedChannelTelemetryEx
import io.opentelemetry.exporter.otlp.testing.internal.TelemetryExporterBuilder;
import io.opentelemetry.proto.logs.v1.ResourceLogs;
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.resources.Resource;
import io.opentelemetry.sdk.testing.logs.TestLogData;
import io.opentelemetry.sdk.testing.logs.TestLogRecordData;
import java.io.Closeable;
import java.time.Instant;
import java.util.List;
import org.junit.jupiter.api.Test;
class OtlpGrpcNettyShadedLogRecordExporterTest
extends AbstractGrpcTelemetryExporterTest<LogData, ResourceLogs> {
extends AbstractGrpcTelemetryExporterTest<LogRecordData, ResourceLogs> {
OtlpGrpcNettyShadedLogRecordExporterTest() {
super("log", ResourceLogs.getDefaultInstance());
@ -45,14 +45,14 @@ class OtlpGrpcNettyShadedLogRecordExporterTest
}
@Override
protected TelemetryExporterBuilder<LogData> exporterBuilder() {
protected TelemetryExporterBuilder<LogRecordData> exporterBuilder() {
return ManagedChannelTelemetryExporterBuilder.wrap(
TelemetryExporterBuilder.wrap(OtlpGrpcLogRecordExporter.builder()));
}
@Override
protected LogData generateFakeTelemetry() {
return TestLogData.builder()
protected LogRecordData generateFakeTelemetry() {
return TestLogRecordData.builder()
.setResource(Resource.create(Attributes.builder().put("testKey", "testValue").build()))
.setInstrumentationScopeInfo(
InstrumentationScopeInfo.builder("instrumentation").setVersion("1").build())
@ -65,7 +65,7 @@ class OtlpGrpcNettyShadedLogRecordExporterTest
}
@Override
protected Marshaler[] toMarshalers(List<LogData> telemetry) {
protected Marshaler[] toMarshalers(List<LogRecordData> telemetry) {
return ResourceLogsMarshaler.create(telemetry);
}
}

View File

@ -18,16 +18,16 @@ import io.opentelemetry.exporter.otlp.testing.internal.ManagedChannelTelemetryEx
import io.opentelemetry.exporter.otlp.testing.internal.TelemetryExporterBuilder;
import io.opentelemetry.proto.logs.v1.ResourceLogs;
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.resources.Resource;
import io.opentelemetry.sdk.testing.logs.TestLogData;
import io.opentelemetry.sdk.testing.logs.TestLogRecordData;
import java.io.Closeable;
import java.time.Instant;
import java.util.List;
import org.junit.jupiter.api.Test;
class OtlpGrpcNettyOkHttpLogRecordExporterTest
extends AbstractGrpcTelemetryExporterTest<LogData, ResourceLogs> {
extends AbstractGrpcTelemetryExporterTest<LogRecordData, ResourceLogs> {
OtlpGrpcNettyOkHttpLogRecordExporterTest() {
super("log", ResourceLogs.getDefaultInstance());
@ -45,14 +45,14 @@ class OtlpGrpcNettyOkHttpLogRecordExporterTest
}
@Override
protected TelemetryExporterBuilder<LogData> exporterBuilder() {
protected TelemetryExporterBuilder<LogRecordData> exporterBuilder() {
return ManagedChannelTelemetryExporterBuilder.wrap(
TelemetryExporterBuilder.wrap(OtlpGrpcLogRecordExporter.builder()));
}
@Override
protected LogData generateFakeTelemetry() {
return TestLogData.builder()
protected LogRecordData generateFakeTelemetry() {
return TestLogRecordData.builder()
.setResource(Resource.create(Attributes.builder().put("testKey", "testValue").build()))
.setInstrumentationScopeInfo(
InstrumentationScopeInfo.builder("instrumentation").setVersion("1").build())
@ -65,7 +65,7 @@ class OtlpGrpcNettyOkHttpLogRecordExporterTest
}
@Override
protected Marshaler[] toMarshalers(List<LogData> telemetry) {
protected Marshaler[] toMarshalers(List<LogRecordData> telemetry) {
return ResourceLogsMarshaler.create(telemetry);
}
}

View File

@ -9,11 +9,11 @@ import io.grpc.ManagedChannel;
import io.opentelemetry.exporter.internal.retry.RetryPolicy;
import io.opentelemetry.exporter.internal.retry.RetryUtil;
import io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporterBuilder;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import java.time.Duration;
import java.util.concurrent.TimeUnit;
final class GrpcLogRecordExporterBuilderWrapper implements TelemetryExporterBuilder<LogData> {
final class GrpcLogRecordExporterBuilderWrapper implements TelemetryExporterBuilder<LogRecordData> {
private final OtlpGrpcLogRecordExporterBuilder builder;
GrpcLogRecordExporterBuilderWrapper(OtlpGrpcLogRecordExporterBuilder builder) {
@ -21,63 +21,63 @@ final class GrpcLogRecordExporterBuilderWrapper implements TelemetryExporterBuil
}
@Override
public TelemetryExporterBuilder<LogData> setEndpoint(String endpoint) {
public TelemetryExporterBuilder<LogRecordData> setEndpoint(String endpoint) {
builder.setEndpoint(endpoint);
return this;
}
@Override
public TelemetryExporterBuilder<LogData> setTimeout(long timeout, TimeUnit unit) {
public TelemetryExporterBuilder<LogRecordData> setTimeout(long timeout, TimeUnit unit) {
builder.setTimeout(timeout, unit);
return this;
}
@Override
public TelemetryExporterBuilder<LogData> setTimeout(Duration timeout) {
public TelemetryExporterBuilder<LogRecordData> setTimeout(Duration timeout) {
builder.setTimeout(timeout);
return this;
}
@Override
public TelemetryExporterBuilder<LogData> setCompression(String compression) {
public TelemetryExporterBuilder<LogRecordData> setCompression(String compression) {
builder.setCompression(compression);
return this;
}
@Override
public TelemetryExporterBuilder<LogData> addHeader(String key, String value) {
public TelemetryExporterBuilder<LogRecordData> addHeader(String key, String value) {
builder.addHeader(key, value);
return this;
}
@Override
public TelemetryExporterBuilder<LogData> setTrustedCertificates(byte[] certificates) {
public TelemetryExporterBuilder<LogRecordData> setTrustedCertificates(byte[] certificates) {
builder.setTrustedCertificates(certificates);
return this;
}
@Override
public TelemetryExporterBuilder<LogData> setClientTls(
public TelemetryExporterBuilder<LogRecordData> setClientTls(
byte[] privateKeyPem, byte[] certificatePem) {
builder.setClientTls(privateKeyPem, certificatePem);
return this;
}
@Override
public TelemetryExporterBuilder<LogData> setRetryPolicy(RetryPolicy retryPolicy) {
public TelemetryExporterBuilder<LogRecordData> setRetryPolicy(RetryPolicy retryPolicy) {
RetryUtil.setRetryPolicyOnDelegate(builder, retryPolicy);
return this;
}
@Override
@SuppressWarnings("deprecation") // testing deprecated functionality
public TelemetryExporterBuilder<LogData> setChannel(ManagedChannel channel) {
public TelemetryExporterBuilder<LogRecordData> setChannel(ManagedChannel channel) {
builder.setChannel(channel);
return this;
}
@Override
public TelemetryExporter<LogData> build() {
public TelemetryExporter<LogRecordData> build() {
return TelemetryExporter.wrap(builder.build());
}
}

View File

@ -6,7 +6,7 @@
package io.opentelemetry.exporter.otlp.testing.internal;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.logs.export.LogRecordExporter;
import io.opentelemetry.sdk.metrics.data.MetricData;
import io.opentelemetry.sdk.metrics.export.MetricExporter;
@ -47,10 +47,10 @@ public interface TelemetryExporter<T> {
}
/** Wraps a LogRecordExporter. */
static TelemetryExporter<LogData> wrap(LogRecordExporter exporter) {
return new TelemetryExporter<LogData>() {
static TelemetryExporter<LogRecordData> wrap(LogRecordExporter exporter) {
return new TelemetryExporter<LogRecordData>() {
@Override
public CompletableResultCode export(Collection<LogData> items) {
public CompletableResultCode export(Collection<LogRecordData> items) {
return exporter.export(items);
}

View File

@ -10,7 +10,7 @@ import io.opentelemetry.exporter.internal.retry.RetryPolicy;
import io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporterBuilder;
import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporterBuilder;
import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporterBuilder;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.metrics.data.MetricData;
import io.opentelemetry.sdk.trace.data.SpanData;
import java.time.Duration;
@ -26,7 +26,7 @@ public interface TelemetryExporterBuilder<T> {
return new GrpcMetricExporterBuilderWrapper(builder);
}
static TelemetryExporterBuilder<LogData> wrap(OtlpGrpcLogRecordExporterBuilder builder) {
static TelemetryExporterBuilder<LogRecordData> wrap(OtlpGrpcLogRecordExporterBuilder builder) {
return new GrpcLogRecordExporterBuilderWrapper(builder);
}

View File

@ -9,7 +9,7 @@ import io.opentelemetry.api.logs.Severity;
import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer;
import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizerProvider;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.logs.export.LogRecordExporter;
import java.util.Collection;
import java.util.stream.Collectors;
@ -21,8 +21,8 @@ public class LogRecordExporterCustomizer implements AutoConfigurationCustomizerP
(delegate, config) ->
new LogRecordExporter() {
@Override
public CompletableResultCode export(Collection<LogData> logs) {
Collection<LogData> filtered =
public CompletableResultCode export(Collection<LogRecordData> logs) {
Collection<LogRecordData> filtered =
logs.stream()
.filter(
log ->

View File

@ -8,7 +8,7 @@ package io.opentelemetry.sdk.autoconfigure;
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
import io.opentelemetry.sdk.autoconfigure.spi.logs.ConfigurableLogRecordExporterProvider;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.logs.export.LogRecordExporter;
import java.util.Collection;
@ -33,7 +33,7 @@ public class TestConfigurableLogRecordExporterProvider
}
@Override
public CompletableResultCode export(Collection<LogData> logs) {
public CompletableResultCode export(Collection<LogRecordData> logs) {
return CompletableResultCode.ofSuccess();
}

View File

@ -20,7 +20,7 @@ import io.opentelemetry.api.metrics.MeterProvider;
import io.opentelemetry.sdk.OpenTelemetrySdk;
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.logs.export.LogRecordExporter;
import io.opentelemetry.sdk.metrics.InstrumentType;
import io.opentelemetry.sdk.metrics.data.AggregationTemporality;
@ -44,7 +44,7 @@ class OtlpGrpcConfigTest {
private static final List<SpanData> SPAN_DATA = Lists.newArrayList(generateFakeSpan());
private static final List<MetricData> METRIC_DATA = Lists.newArrayList(generateFakeMetric());
private static final List<LogData> LOG_DATA = Lists.newArrayList(generateFakeLog());
private static final List<LogRecordData> LOG_RECORD_DATA = Lists.newArrayList(generateFakeLog());
@RegisterExtension
@Order(1)
@ -114,7 +114,7 @@ class OtlpGrpcConfigTest {
assertThat(logRecordExporter)
.extracting("delegate.client.callTimeoutMillis", INTEGER)
.isEqualTo(TimeUnit.SECONDS.toMillis(15));
assertThat(logRecordExporter.export(LOG_DATA).join(15, TimeUnit.SECONDS).isSuccess())
assertThat(logRecordExporter.export(LOG_RECORD_DATA).join(15, TimeUnit.SECONDS).isSuccess())
.isTrue();
assertThat(server.logRequests).hasSize(1);
assertThat(server.requestHeaders)
@ -228,7 +228,7 @@ class OtlpGrpcConfigTest {
assertThat(logRecordExporter)
.extracting("delegate.client.callTimeoutMillis", INTEGER)
.isEqualTo(TimeUnit.SECONDS.toMillis(15));
assertThat(logRecordExporter.export(LOG_DATA).join(15, TimeUnit.SECONDS).isSuccess())
assertThat(logRecordExporter.export(LOG_RECORD_DATA).join(15, TimeUnit.SECONDS).isSuccess())
.isTrue();
assertThat(server.logRequests).hasSize(1);
assertThat(server.requestHeaders)

View File

@ -19,7 +19,7 @@ import io.opentelemetry.exporter.internal.retry.RetryPolicy;
import io.opentelemetry.exporter.internal.retry.RetryUtil;
import io.opentelemetry.internal.testing.slf4j.SuppressLogger;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.logs.export.LogRecordExporter;
import io.opentelemetry.sdk.metrics.data.MetricData;
import io.opentelemetry.sdk.metrics.export.MetricExporter;
@ -40,7 +40,7 @@ class OtlpGrpcRetryTest {
private static final List<SpanData> SPAN_DATA = Lists.newArrayList(generateFakeSpan());
private static final List<MetricData> METRIC_DATA = Lists.newArrayList(generateFakeMetric());
private static final List<LogData> LOG_DATA = Lists.newArrayList(generateFakeLog());
private static final List<LogRecordData> LOG_RECORD_DATA = Lists.newArrayList(generateFakeLog());
@RegisterExtension
@Order(1)
@ -101,9 +101,10 @@ class OtlpGrpcRetryTest {
try (LogRecordExporter logRecordExporter =
LogRecordExporterConfiguration.configureOtlpLogs(
DefaultConfigProperties.createForTest(props), MeterProvider.noop())) {
testRetryableStatusCodes(() -> LOG_DATA, logRecordExporter::export, server.logRequests::size);
testDefaultRetryPolicy(() -> LOG_DATA, logRecordExporter::export, server.logRequests::size);
testRetryableStatusCodes(
() -> LOG_RECORD_DATA, logRecordExporter::export, server.logRequests::size);
testDefaultRetryPolicy(
() -> LOG_RECORD_DATA, logRecordExporter::export, server.logRequests::size);
}
}

View File

@ -27,14 +27,14 @@ import io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest;
import io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse;
import io.opentelemetry.proto.collector.trace.v1.TraceServiceGrpc;
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.metrics.data.AggregationTemporality;
import io.opentelemetry.sdk.metrics.data.MetricData;
import io.opentelemetry.sdk.metrics.internal.data.ImmutableLongPointData;
import io.opentelemetry.sdk.metrics.internal.data.ImmutableMetricData;
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSumData;
import io.opentelemetry.sdk.resources.Resource;
import io.opentelemetry.sdk.testing.logs.TestLogData;
import io.opentelemetry.sdk.testing.logs.TestLogRecordData;
import io.opentelemetry.sdk.testing.trace.TestSpanData;
import io.opentelemetry.sdk.trace.data.SpanData;
import io.opentelemetry.sdk.trace.data.StatusData;
@ -163,8 +163,8 @@ class OtlpGrpcServerExtension extends ServerExtension {
10))));
}
static LogData generateFakeLog() {
return TestLogData.builder()
static LogRecordData generateFakeLog() {
return TestLogRecordData.builder()
.setResource(Resource.empty())
.setInstrumentationScopeInfo(InstrumentationScopeInfo.empty())
.setEpoch(Instant.now())

View File

@ -20,7 +20,7 @@ import io.opentelemetry.exporter.internal.retry.RetryPolicy;
import io.opentelemetry.exporter.internal.retry.RetryUtil;
import io.opentelemetry.internal.testing.slf4j.SuppressLogger;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.logs.export.LogRecordExporter;
import io.opentelemetry.sdk.metrics.data.MetricData;
import io.opentelemetry.sdk.metrics.export.MetricExporter;
@ -41,7 +41,7 @@ class OtlpHttpRetryTest {
private static final List<SpanData> SPAN_DATA = Lists.newArrayList(generateFakeSpan());
private static final List<MetricData> METRIC_DATA = Lists.newArrayList(generateFakeMetric());
private static final List<LogData> LOG_DATA = Lists.newArrayList(generateFakeLog());
private static final List<LogRecordData> LOG_RECORD_DATA = Lists.newArrayList(generateFakeLog());
@RegisterExtension
public static final OtlpHttpServerExtension server = new OtlpHttpServerExtension();
@ -107,9 +107,10 @@ class OtlpHttpRetryTest {
try (LogRecordExporter logRecordExporter =
LogRecordExporterConfiguration.configureOtlpLogs(
DefaultConfigProperties.createForTest(props), MeterProvider.noop())) {
testRetryableStatusCodes(() -> LOG_DATA, logRecordExporter::export, server.logRequests::size);
testDefaultRetryPolicy(() -> LOG_DATA, logRecordExporter::export, server.logRequests::size);
testRetryableStatusCodes(
() -> LOG_RECORD_DATA, logRecordExporter::export, server.logRequests::size);
testDefaultRetryPolicy(
() -> LOG_RECORD_DATA, logRecordExporter::export, server.logRequests::size);
}
}

View File

@ -22,14 +22,14 @@ import io.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest;
import io.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest;
import io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest;
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.metrics.data.AggregationTemporality;
import io.opentelemetry.sdk.metrics.data.MetricData;
import io.opentelemetry.sdk.metrics.internal.data.ImmutableLongPointData;
import io.opentelemetry.sdk.metrics.internal.data.ImmutableMetricData;
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSumData;
import io.opentelemetry.sdk.resources.Resource;
import io.opentelemetry.sdk.testing.logs.TestLogData;
import io.opentelemetry.sdk.testing.logs.TestLogRecordData;
import io.opentelemetry.sdk.testing.trace.TestSpanData;
import io.opentelemetry.sdk.trace.data.SpanData;
import io.opentelemetry.sdk.trace.data.StatusData;
@ -146,8 +146,8 @@ class OtlpHttpServerExtension extends ServerExtension {
10))));
}
static LogData generateFakeLog() {
return TestLogData.builder()
static LogRecordData generateFakeLog() {
return TestLogRecordData.builder()
.setResource(Resource.empty())
.setInstrumentationScopeInfo(InstrumentationScopeInfo.empty())
.setEpoch(Instant.now())

View File

@ -5,15 +5,15 @@
package io.opentelemetry.sdk.testing.assertj;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import org.assertj.core.api.Assertions;
/** Test assertions for data heading to exporters within the Metrics SDK. */
public final class LogAssertions extends Assertions {
/** Returns an assertion for {@link io.opentelemetry.sdk.logs.data.LogData}. */
public static LogDataAssert assertThat(LogData log) {
return new LogDataAssert(log);
/** Returns an assertion for {@link LogRecordData}. */
public static LogRecordDataAssert assertThat(LogRecordData log) {
return new LogRecordDataAssert(log);
}
private LogAssertions() {}

View File

@ -13,20 +13,20 @@ import io.opentelemetry.api.common.AttributesBuilder;
import io.opentelemetry.api.logs.Severity;
import io.opentelemetry.api.trace.SpanContext;
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.resources.Resource;
import java.util.Map;
import java.util.function.Consumer;
import org.assertj.core.api.AbstractAssert;
/** Test assertions for {@link LogData}. */
public class LogDataAssert extends AbstractAssert<LogDataAssert, LogData> {
protected LogDataAssert(LogData actual) {
super(actual, LogDataAssert.class);
/** Test assertions for {@link LogRecordData}. */
public class LogRecordDataAssert extends AbstractAssert<LogRecordDataAssert, LogRecordData> {
protected LogRecordDataAssert(LogRecordData actual) {
super(actual, LogRecordDataAssert.class);
}
/** Asserts the {@link Resource} associated with a log matches the expected value. */
public LogDataAssert hasResource(Resource resource) {
public LogRecordDataAssert hasResource(Resource resource) {
isNotNull();
if (!actual.getResource().equals(resource)) {
failWithActualExpectedAndMessage(
@ -42,7 +42,8 @@ public class LogDataAssert extends AbstractAssert<LogDataAssert, LogData> {
/**
* Asserts the {@link InstrumentationScopeInfo} associated with a log matches the expected value.
*/
public LogDataAssert hasInstrumentationScope(InstrumentationScopeInfo instrumentationScopeInfo) {
public LogRecordDataAssert hasInstrumentationScope(
InstrumentationScopeInfo instrumentationScopeInfo) {
isNotNull();
if (!actual.getInstrumentationScopeInfo().equals(instrumentationScopeInfo)) {
failWithActualExpectedAndMessage(
@ -56,7 +57,7 @@ public class LogDataAssert extends AbstractAssert<LogDataAssert, LogData> {
}
/** Asserts the log has the given epoch timestamp. */
public LogDataAssert hasEpochNanos(long epochNanos) {
public LogRecordDataAssert hasEpochNanos(long epochNanos) {
isNotNull();
if (actual.getEpochNanos() != epochNanos) {
failWithActualExpectedAndMessage(
@ -70,7 +71,7 @@ public class LogDataAssert extends AbstractAssert<LogDataAssert, LogData> {
}
/** Asserts the log has the given span context. */
public LogDataAssert hasSpanContext(SpanContext spanContext) {
public LogRecordDataAssert hasSpanContext(SpanContext spanContext) {
isNotNull();
if (!actual.getSpanContext().equals(spanContext)) {
failWithActualExpectedAndMessage(
@ -84,7 +85,7 @@ public class LogDataAssert extends AbstractAssert<LogDataAssert, LogData> {
}
/** Asserts the log has the given severity. */
public LogDataAssert hasSeverity(Severity severity) {
public LogRecordDataAssert hasSeverity(Severity severity) {
isNotNull();
if (actual.getSeverity() != severity) {
failWithActualExpectedAndMessage(
@ -98,7 +99,7 @@ public class LogDataAssert extends AbstractAssert<LogDataAssert, LogData> {
}
/** Asserts the log has the given severity text. */
public LogDataAssert hasSeverityText(String severityText) {
public LogRecordDataAssert hasSeverityText(String severityText) {
isNotNull();
if (!severityText.equals(actual.getSeverityText())) {
failWithActualExpectedAndMessage(
@ -112,7 +113,7 @@ public class LogDataAssert extends AbstractAssert<LogDataAssert, LogData> {
}
/** Asserts the log has the given body. */
public LogDataAssert hasBody(String body) {
public LogRecordDataAssert hasBody(String body) {
isNotNull();
if (!actual.getBody().asString().equals(body)) {
failWithActualExpectedAndMessage(
@ -126,7 +127,7 @@ public class LogDataAssert extends AbstractAssert<LogDataAssert, LogData> {
}
/** Asserts the log has the given attributes. */
public LogDataAssert hasAttributes(Attributes attributes) {
public LogRecordDataAssert hasAttributes(Attributes attributes) {
isNotNull();
if (!attributesAreEqual(attributes)) {
failWithActualExpectedAndMessage(
@ -142,7 +143,8 @@ public class LogDataAssert extends AbstractAssert<LogDataAssert, LogData> {
/** Asserts the log has the given attributes. */
@SuppressWarnings({"rawtypes", "unchecked"})
@SafeVarargs
public final LogDataAssert hasAttributes(Map.Entry<? extends AttributeKey<?>, ?>... entries) {
public final LogRecordDataAssert hasAttributes(
Map.Entry<? extends AttributeKey<?>, ?>... entries) {
AttributesBuilder attributesBuilder = Attributes.builder();
for (Map.Entry<? extends AttributeKey<?>, ?> attr : entries) {
attributesBuilder.put((AttributeKey) attr.getKey(), attr.getValue());
@ -152,7 +154,7 @@ public class LogDataAssert extends AbstractAssert<LogDataAssert, LogData> {
}
/** Asserts the log has attributes satisfying the given condition. */
public LogDataAssert hasAttributesSatisfying(Consumer<Attributes> attributes) {
public LogRecordDataAssert hasAttributesSatisfying(Consumer<Attributes> attributes) {
isNotNull();
assertThat(actual.getAttributes()).as("attributes").satisfies(attributes);
return this;
@ -165,7 +167,7 @@ public class LogDataAssert extends AbstractAssert<LogDataAssert, LogData> {
}
/** Asserts the log has the given total attributes. */
public LogDataAssert hasTotalAttributeCount(int totalAttributeCount) {
public LogRecordDataAssert hasTotalAttributeCount(int totalAttributeCount) {
isNotNull();
if (actual.getTotalAttributeCount() != totalAttributeCount) {
failWithActualExpectedAndMessage(

View File

@ -11,20 +11,20 @@ import io.opentelemetry.api.logs.Severity;
import io.opentelemetry.api.trace.SpanContext;
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
import io.opentelemetry.sdk.logs.data.Body;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.resources.Resource;
import java.time.Instant;
import java.util.concurrent.TimeUnit;
import javax.annotation.concurrent.Immutable;
/** Immutable representation of {@link LogData}. */
/** Immutable representation of {@link LogRecordData}. */
@Immutable
@AutoValue
public abstract class TestLogData implements LogData {
public abstract class TestLogRecordData implements LogRecordData {
/** Creates a new Builder for creating an {@link LogData} instance. */
/** Creates a new Builder for creating an {@link LogRecordData} instance. */
public static Builder builder() {
return new AutoValue_TestLogData.Builder()
return new AutoValue_TestLogRecordData.Builder()
.setResource(Resource.empty())
.setInstrumentationScopeInfo(InstrumentationScopeInfo.empty())
.setEpoch(0, TimeUnit.NANOSECONDS)
@ -35,16 +35,16 @@ public abstract class TestLogData implements LogData {
.setTotalAttributeCount(0);
}
TestLogData() {}
TestLogRecordData() {}
/** A {@code Builder} class for {@link TestLogData}. */
/** A {@code Builder} class for {@link TestLogRecordData}. */
@AutoValue.Builder
public abstract static class Builder {
abstract TestLogData autoBuild();
abstract TestLogRecordData autoBuild();
/** Create a new {@link LogData} instance from the data in this. */
public TestLogData build() {
/** Create a new {@link LogRecordData} instance from the data in this. */
public TestLogRecordData build() {
return autoBuild();
}

View File

@ -17,9 +17,9 @@ import io.opentelemetry.api.trace.SpanContext;
import io.opentelemetry.api.trace.TraceFlags;
import io.opentelemetry.api.trace.TraceState;
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.resources.Resource;
import io.opentelemetry.sdk.testing.logs.TestLogData;
import io.opentelemetry.sdk.testing.logs.TestLogRecordData;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import org.junit.jupiter.api.Test;
@ -43,8 +43,8 @@ public class LogAssertionsTest {
.put("coins", 0.01, 0.05, 0.1)
.build();
private static final LogData LOG_DATA =
TestLogData.builder()
private static final LogRecordData LOG_DATA =
TestLogRecordData.builder()
.setResource(RESOURCE)
.setInstrumentationScopeInfo(INSTRUMENTATION_SCOPE_INFO)
.setEpoch(100, TimeUnit.NANOSECONDS)

View File

@ -6,7 +6,7 @@
package io.opentelemetry.sdk.logs;
import com.google.auto.value.AutoValue;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import java.util.function.Supplier;
import javax.annotation.concurrent.Immutable;
@ -40,9 +40,9 @@ public abstract class LogLimits {
LogLimits() {}
/**
* Returns the max number of attributes per {@link LogData}.
* Returns the max number of attributes per {@link LogRecordData}.
*
* @return the max number of attributes per {@link LogData}.
* @return the max number of attributes per {@link LogRecordData}.
*/
public abstract int getMaxNumberOfAttributes();

View File

@ -6,7 +6,7 @@
package io.opentelemetry.sdk.logs;
import io.opentelemetry.api.internal.Utils;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
/** Builder for {@link LogLimits}. */
public final class LogLimitsBuilder {
@ -20,9 +20,9 @@ public final class LogLimitsBuilder {
LogLimitsBuilder() {}
/**
* Sets the max number of attributes per {@link LogData}.
* Sets the max number of attributes per {@link LogRecordData}.
*
* @param maxNumberOfAttributes the max number of attributes per {@link LogData}. Must be
* @param maxNumberOfAttributes the max number of attributes per {@link LogRecordData}. Must be
* positive.
* @return this.
* @throws IllegalArgumentException if {@code maxNumberOfAttributes} is not positive.

View File

@ -6,7 +6,7 @@
package io.opentelemetry.sdk.logs;
import io.opentelemetry.api.common.AttributeKey;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
/** A log record that can be read from and written to. */
public interface ReadWriteLogRecord {
@ -21,10 +21,10 @@ public interface ReadWriteLogRecord {
// TODO: add additional setters
/** Return an immutable {@link LogData} instance representing this log record. */
LogData toLogData();
/** Return an immutable {@link LogRecordData} instance representing this log record. */
LogRecordData toLogRecordData();
// TODO: add additional log record accessors. Currently, all fields can be accessed indirectly via
// #toLogData() with at the expense of additional allocations.
// #toLogRecordData() with at the expense of additional allocations.
}

View File

@ -11,7 +11,7 @@ import io.opentelemetry.api.logs.Severity;
import io.opentelemetry.api.trace.SpanContext;
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
import io.opentelemetry.sdk.logs.data.Body;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.resources.Resource;
import javax.annotation.Nullable;
import javax.annotation.concurrent.Immutable;
@ -19,11 +19,11 @@ import javax.annotation.concurrent.Immutable;
@AutoValue
@AutoValue.CopyAnnotations
@Immutable
abstract class SdkLogData implements LogData {
abstract class SdkLogRecordData implements LogRecordData {
SdkLogData() {}
SdkLogRecordData() {}
static SdkLogData create(
static SdkLogRecordData create(
Resource resource,
InstrumentationScopeInfo instrumentationScopeInfo,
long epochNanos,
@ -33,7 +33,7 @@ abstract class SdkLogData implements LogData {
Body body,
Attributes attributes,
int totalAttributeCount) {
return new AutoValue_SdkLogData(
return new AutoValue_SdkLogRecordData(
resource,
instrumentationScopeInfo,
epochNanos,

View File

@ -10,7 +10,7 @@ import static java.util.Objects.requireNonNull;
import io.opentelemetry.api.logs.LogRecordBuilder;
import io.opentelemetry.api.logs.Logger;
import io.opentelemetry.sdk.common.Clock;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.resources.Resource;
import java.util.ArrayList;
import java.util.List;
@ -27,8 +27,8 @@ public final class SdkLoggerProviderBuilder {
SdkLoggerProviderBuilder() {}
/**
* Assign a {@link Resource} to be attached to all {@link LogData} created by {@link Logger}s
* obtained from the {@link SdkLoggerProvider}.
* Assign a {@link Resource} to be attached to all {@link LogRecordData} created by {@link
* Logger}s obtained from the {@link SdkLoggerProvider}.
*
* @param resource the resource
* @return this

View File

@ -13,7 +13,7 @@ import io.opentelemetry.api.trace.SpanContext;
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
import io.opentelemetry.sdk.internal.AttributesMap;
import io.opentelemetry.sdk.logs.data.Body;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.resources.Resource;
import javax.annotation.Nullable;
import javax.annotation.concurrent.ThreadSafe;
@ -105,9 +105,9 @@ class SdkReadWriteLogRecord implements ReadWriteLogRecord {
}
@Override
public LogData toLogData() {
public LogRecordData toLogRecordData() {
synchronized (lock) {
return SdkLogData.create(
return SdkLogRecordData.create(
resource,
instrumentationScopeInfo,
epochNanos,

View File

@ -20,7 +20,7 @@ import javax.annotation.concurrent.Immutable;
* Log Data Model</a>.
*/
@Immutable
public interface LogData {
public interface LogRecordData {
/** Returns the resource of this log. */
Resource getResource();

View File

@ -14,7 +14,7 @@ import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.internal.DaemonThreadFactory;
import io.opentelemetry.sdk.logs.LogProcessor;
import io.opentelemetry.sdk.logs.ReadWriteLogRecord;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Queue;
@ -101,7 +101,7 @@ public final class BatchLogProcessor implements LogProcessor {
}
// Visible for testing
ArrayList<LogData> getBatch() {
ArrayList<LogRecordData> getBatch() {
return worker.batch;
}
@ -134,7 +134,7 @@ public final class BatchLogProcessor implements LogProcessor {
private final BlockingQueue<Boolean> signal;
private final AtomicReference<CompletableResultCode> flushRequested = new AtomicReference<>();
private volatile boolean continueWork = true;
private final ArrayList<LogData> batch;
private final ArrayList<LogRecordData> batch;
private Worker(
LogRecordExporter logRecordExporter,
@ -203,7 +203,7 @@ public final class BatchLogProcessor implements LogProcessor {
flush();
}
while (!queue.isEmpty() && batch.size() < maxExportBatchSize) {
batch.add(queue.poll().toLogData());
batch.add(queue.poll().toLogRecordData());
}
if (batch.size() >= maxExportBatchSize || System.nanoTime() >= nextExportTime) {
exportCurrentBatch();
@ -230,7 +230,7 @@ public final class BatchLogProcessor implements LogProcessor {
while (logsToFlush > 0) {
ReadWriteLogRecord logRecord = queue.poll();
assert logRecord != null;
batch.add(logRecord.toLogData());
batch.add(logRecord.toLogRecordData());
logsToFlush--;
if (batch.size() >= maxExportBatchSize) {
exportCurrentBatch();

View File

@ -6,7 +6,7 @@
package io.opentelemetry.sdk.logs.export;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@ -18,7 +18,7 @@ import java.util.concurrent.ConcurrentLinkedQueue;
* A {@link LogRecordExporter} implementation that can be used to test OpenTelemetry integration.
*/
public final class InMemoryLogRecordExporter implements LogRecordExporter {
private final Queue<LogData> finishedLogItems = new ConcurrentLinkedQueue<>();
private final Queue<LogRecordData> finishedLogItems = new ConcurrentLinkedQueue<>();
private boolean isStopped = false;
private InMemoryLogRecordExporter() {}
@ -37,7 +37,7 @@ public final class InMemoryLogRecordExporter implements LogRecordExporter {
*
* @return a {@code List} of the finished {@code Log}s.
*/
public List<LogData> getFinishedLogItems() {
public List<LogRecordData> getFinishedLogItems() {
return Collections.unmodifiableList(new ArrayList<>(finishedLogItems));
}
@ -56,7 +56,7 @@ public final class InMemoryLogRecordExporter implements LogRecordExporter {
* <p>If this is called after {@code shutdown}, this will return {@code ResultCode.FAILURE}.
*/
@Override
public CompletableResultCode export(Collection<LogData> logs) {
public CompletableResultCode export(Collection<LogRecordData> logs) {
if (isStopped) {
return CompletableResultCode.ofFailure();
}

View File

@ -8,7 +8,7 @@ package io.opentelemetry.sdk.logs.export;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.logs.LogProcessor;
import io.opentelemetry.sdk.logs.SdkLoggerProvider;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import java.io.Closeable;
import java.util.ArrayList;
import java.util.Arrays;
@ -17,8 +17,8 @@ import java.util.List;
import java.util.concurrent.TimeUnit;
/**
* An exporter is responsible for taking a collection of {@link LogData}s and transmitting them to
* their ultimate destination.
* An exporter is responsible for taking a collection of {@link LogRecordData}s and transmitting
* them to their ultimate destination.
*/
public interface LogRecordExporter extends Closeable {
@ -55,15 +55,15 @@ public interface LogRecordExporter extends Closeable {
}
/**
* Exports the collections of given {@link LogData}.
* Exports the collections of given {@link LogRecordData}.
*
* @param logs the collection of {@link LogData} to be exported
* @param logs the collection of {@link LogRecordData} to be exported
* @return the result of the export, which is often an asynchronous operation
*/
CompletableResultCode export(Collection<LogData> logs);
CompletableResultCode export(Collection<LogRecordData> logs);
/**
* Exports the collection of {@link LogData} that have not yet been exported.
* Exports the collection of {@link LogRecordData} that have not yet been exported.
*
* @return the result of the flush, which is often an asynchronous operation
*/

View File

@ -6,7 +6,7 @@
package io.opentelemetry.sdk.logs.export;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@ -35,7 +35,7 @@ final class MultiLogRecordExporter implements LogRecordExporter {
}
@Override
public CompletableResultCode export(Collection<LogData> logs) {
public CompletableResultCode export(Collection<LogRecordData> logs) {
List<CompletableResultCode> results = new ArrayList<>(logRecordExporters.length);
for (LogRecordExporter logRecordExporter : logRecordExporters) {
CompletableResultCode exportResult;

View File

@ -6,7 +6,7 @@
package io.opentelemetry.sdk.logs.export;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import java.util.Collection;
final class NoopLogRecordExporter implements LogRecordExporter {
@ -18,7 +18,7 @@ final class NoopLogRecordExporter implements LogRecordExporter {
}
@Override
public CompletableResultCode export(Collection<LogData> logs) {
public CompletableResultCode export(Collection<LogRecordData> logs) {
return CompletableResultCode.ofSuccess();
}

View File

@ -10,7 +10,7 @@ import static java.util.Objects.requireNonNull;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.logs.LogProcessor;
import io.opentelemetry.sdk.logs.ReadWriteLogRecord;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import java.util.Collections;
import java.util.List;
import java.util.Set;
@ -20,7 +20,7 @@ import java.util.logging.Level;
import java.util.logging.Logger;
/**
* An implementation of the {@link LogProcessor} that passes {@link LogData} directly to the
* An implementation of the {@link LogProcessor} that passes {@link LogRecordData} directly to the
* configured exporter.
*
* <p>This processor will cause all logs to be exported directly as they finish, meaning each export
@ -60,7 +60,7 @@ public final class SimpleLogProcessor implements LogProcessor {
@Override
public void onEmit(ReadWriteLogRecord logRecord) {
try {
List<LogData> logs = Collections.singletonList(logRecord.toLogData());
List<LogRecordData> logs = Collections.singletonList(logRecord.toLogRecordData());
CompletableResultCode result = logRecordExporter.export(logs);
pendingExports.add(result);
result.whenComplete(

View File

@ -77,7 +77,7 @@ class SdkLogRecordBuilderTest {
builder.setSeverity(severity);
builder.setSeverityText(sevText);
builder.emit();
assertThat(emittedLog.get().toLogData())
assertThat(emittedLog.get().toLogRecordData())
.hasResource(RESOURCE)
.hasInstrumentationScope(SCOPE_INFO)
.hasBody(bodyStr)
@ -96,7 +96,7 @@ class SdkLogRecordBuilderTest {
builder.emit();
assertThat(emittedLog.get().toLogData())
assertThat(emittedLog.get().toLogRecordData())
.hasResource(RESOURCE)
.hasInstrumentationScope(SCOPE_INFO)
.hasBody(Body.empty().asString())

View File

@ -25,7 +25,7 @@ import io.opentelemetry.internal.testing.slf4j.SuppressLogger;
import io.opentelemetry.sdk.common.Clock;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.resources.Resource;
import java.util.ArrayList;
import java.util.List;
@ -215,7 +215,7 @@ class SdkLoggerProviderTest {
@Test
void loggerBuilder_WithLogProcessor() {
Resource resource = Resource.builder().put("r1", "v1").build();
AtomicReference<LogData> logData = new AtomicReference<>();
AtomicReference<LogRecordData> logRecordData = new AtomicReference<>();
sdkLoggerProvider =
SdkLoggerProvider.builder()
.setResource(resource)
@ -226,7 +226,7 @@ class SdkLoggerProviderTest {
logRecord.setAttribute(AttributeKey.stringKey("k1"), "new-v1");
// Add new attribute k3
logRecord.setAttribute(AttributeKey.stringKey("k3"), "v3");
logData.set(logRecord.toLogData());
logRecordData.set(logRecord.toLogRecordData());
})
.build();
@ -248,7 +248,7 @@ class SdkLoggerProviderTest {
.setAttribute(AttributeKey.stringKey("k2"), "v2")
.emit();
assertThat(logData.get())
assertThat(logRecordData.get())
.hasResource(resource)
.hasInstrumentationScope(InstrumentationScopeInfo.create("test"))
.hasEpochNanos(100)
@ -291,6 +291,6 @@ class SdkLoggerProviderTest {
SdkLoggerProvider.builder().setClock(clock).addLogProcessor(logProcessor).build();
sdkLoggerProvider.loggerBuilder(null).build().logRecordBuilder().emit();
assertThat(seenLogs.size()).isEqualTo(1);
assertThat(seenLogs.get(0).toLogData().getEpochNanos()).isEqualTo(now);
assertThat(seenLogs.get(0).toLogRecordData().getEpochNanos()).isEqualTo(now);
}
}

View File

@ -52,7 +52,7 @@ class SdkLoggerTest {
// Have to test through the builder
logRecordBuilder.emit();
assertThat(seenLog.get().toLogData()).hasBody("foo").hasEpochNanos(5);
assertThat(seenLog.get().toLogRecordData()).hasBody("foo").hasEpochNanos(5);
}
@Test
@ -82,7 +82,7 @@ class SdkLoggerTest {
.build())
.emit();
Attributes attributes = seenLog.get().toLogData().getAttributes();
Attributes attributes = seenLog.get().toLogRecordData().getAttributes();
assertThat(attributes)
.containsEntry("string", strVal)
@ -117,7 +117,7 @@ class SdkLoggerTest {
}
builder.emit();
assertThat(seenLog.get().toLogData())
assertThat(seenLog.get().toLogRecordData())
.hasAttributes(expectedAttributes.build())
.hasTotalAttributeCount(maxNumberOfAttrs * 2);
}

View File

@ -19,7 +19,7 @@ import io.opentelemetry.api.internal.GuardedBy;
import io.opentelemetry.internal.testing.slf4j.SuppressLogger;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.logs.SdkLoggerProvider;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.testing.assertj.LogAssertions;
import java.util.ArrayList;
import java.util.Arrays;
@ -124,11 +124,11 @@ class BatchLogProcessorTest {
emitLog(loggerProvider, LOG_MESSAGE_1);
emitLog(loggerProvider, LOG_MESSAGE_2);
List<LogData> exported = waitingLogRecordExporter.waitForExport();
List<LogRecordData> exported = waitingLogRecordExporter.waitForExport();
assertThat(exported)
.satisfiesExactly(
logData -> assertThat(logData).hasBody(LOG_MESSAGE_1),
logData -> assertThat(logData).hasBody(LOG_MESSAGE_2));
logRecordData -> assertThat(logRecordData).hasBody(LOG_MESSAGE_1),
logRecordData -> assertThat(logRecordData).hasBody(LOG_MESSAGE_2));
}
@Test
@ -159,7 +159,7 @@ class BatchLogProcessorTest {
() ->
assertThat(logRecordExporter.getExported())
.hasSize(6)
.allSatisfy(logData -> assertThat(logData).hasBody(LOG_MESSAGE_1)));
.allSatisfy(logRecordData -> assertThat(logRecordData).hasBody(LOG_MESSAGE_1)));
}
@Test
@ -180,7 +180,7 @@ class BatchLogProcessorTest {
for (int i = 0; i < 50; i++) {
emitLog(sdkLoggerProvider, "notExported");
}
List<LogData> exported = waitingLogRecordExporter.waitForExport();
List<LogRecordData> exported = waitingLogRecordExporter.waitForExport();
assertThat(exported).isNotNull();
assertThat(exported.size()).isEqualTo(49);
@ -215,18 +215,18 @@ class BatchLogProcessorTest {
emitLog(sdkLoggerProvider, LOG_MESSAGE_1);
emitLog(sdkLoggerProvider, LOG_MESSAGE_2);
List<LogData> exported1 = waitingLogRecordExporter1.waitForExport();
List<LogData> exported2 = waitingLogRecordExporter2.waitForExport();
List<LogRecordData> exported1 = waitingLogRecordExporter1.waitForExport();
List<LogRecordData> exported2 = waitingLogRecordExporter2.waitForExport();
assertThat(exported1)
.hasSize(2)
.satisfiesExactly(
logData -> assertThat(logData).hasBody(LOG_MESSAGE_1),
logData -> assertThat(logData).hasBody(LOG_MESSAGE_2));
logRecordData -> assertThat(logRecordData).hasBody(LOG_MESSAGE_1),
logRecordData -> assertThat(logRecordData).hasBody(LOG_MESSAGE_2));
assertThat(exported2)
.hasSize(2)
.satisfiesExactly(
logData -> assertThat(logData).hasBody(LOG_MESSAGE_1),
logData -> assertThat(logData).hasBody(LOG_MESSAGE_2));
logRecordData -> assertThat(logRecordData).hasBody(LOG_MESSAGE_1),
logRecordData -> assertThat(logRecordData).hasBody(LOG_MESSAGE_2));
}
@Test
@ -267,7 +267,7 @@ class BatchLogProcessorTest {
blockingLogRecordExporter.unblock();
// While we wait for maxQueuedLogs we ensure that the queue is also empty after this.
List<LogData> exported = waitingLogRecordExporter.waitForExport();
List<LogRecordData> exported = waitingLogRecordExporter.waitForExport();
assertThat(exported).isNotNull();
assertThat(exported).hasSize(maxQueuedLogs + 1);
@ -312,13 +312,16 @@ class BatchLogProcessorTest {
.build();
emitLog(sdkLoggerProvider, LOG_MESSAGE_1);
List<LogData> exported = waitingLogRecordExporter.waitForExport();
assertThat(exported).satisfiesExactly(logData -> assertThat(logData).hasBody(LOG_MESSAGE_1));
List<LogRecordData> exported = waitingLogRecordExporter.waitForExport();
assertThat(exported)
.satisfiesExactly(logRecordData -> assertThat(logRecordData).hasBody(LOG_MESSAGE_1));
waitingLogRecordExporter.reset();
// Continue to export after the exception was received.
emitLog(sdkLoggerProvider, LOG_MESSAGE_2);
exported = waitingLogRecordExporter.waitForExport();
assertThat(exported).satisfiesExactly(logData -> assertThat(logData).hasBody(LOG_MESSAGE_2));
assertThat(exported)
.satisfiesExactly(logRecordData -> assertThat(logRecordData).hasBody(LOG_MESSAGE_2));
}
@Test
@ -387,8 +390,9 @@ class BatchLogProcessorTest {
// Force a shutdown, which forces processing of all remaining logs.
sdkLoggerProvider.shutdown().join(10, TimeUnit.SECONDS);
List<LogData> exported = waitingLogRecordExporter.getExported();
assertThat(exported).satisfiesExactly(logData -> assertThat(logData).hasBody(LOG_MESSAGE_2));
List<LogRecordData> exported = waitingLogRecordExporter.getExported();
assertThat(exported)
.satisfiesExactly(logRecordData -> assertThat(logRecordData).hasBody(LOG_MESSAGE_2));
assertThat(waitingLogRecordExporter.shutDownCalled.get()).isTrue();
}
@ -423,7 +427,7 @@ class BatchLogProcessorTest {
State state = State.WAIT_TO_BLOCK;
@Override
public CompletableResultCode export(Collection<LogData> logs) {
public CompletableResultCode export(Collection<LogRecordData> logs) {
synchronized (monitor) {
while (state != State.UNBLOCKED) {
try {
@ -474,11 +478,11 @@ class BatchLogProcessorTest {
private final List<CompletableResultCode> results = new ArrayList<>();
private final List<LogData> exported = new ArrayList<>();
private final List<LogRecordData> exported = new ArrayList<>();
private volatile boolean succeeded;
List<LogData> getExported() {
List<LogRecordData> getExported() {
return exported;
}
@ -488,7 +492,7 @@ class BatchLogProcessorTest {
}
@Override
public CompletableResultCode export(Collection<LogData> logs) {
public CompletableResultCode export(Collection<LogRecordData> logs) {
exported.addAll(logs);
if (succeeded) {
return CompletableResultCode.ofSuccess();
@ -515,7 +519,7 @@ class BatchLogProcessorTest {
static class WaitingLogRecordExporter implements LogRecordExporter {
private final List<LogData> logDataList = new ArrayList<>();
private final List<LogRecordData> logRecordDataList = new ArrayList<>();
private final int numberToWaitFor;
private final CompletableResultCode exportResultCode;
private CountDownLatch countDownLatch;
@ -534,21 +538,21 @@ class BatchLogProcessorTest {
this.timeout = timeout;
}
List<LogData> getExported() {
List<LogData> result = new ArrayList<>(logDataList);
logDataList.clear();
List<LogRecordData> getExported() {
List<LogRecordData> result = new ArrayList<>(logRecordDataList);
logRecordDataList.clear();
return result;
}
/**
* Waits until we received {@link #numberToWaitFor} logs to export. Returns the list of exported
* {@link LogData} objects, otherwise {@code null} if the current thread is interrupted.
* {@link LogRecordData} objects, otherwise {@code null} if the current thread is interrupted.
*
* @return the list of exported {@link LogData} objects, otherwise {@code null} if the current
* thread is interrupted.
* @return the list of exported {@link LogRecordData} objects, otherwise {@code null} if the
* current thread is interrupted.
*/
@Nullable
List<LogData> waitForExport() {
List<LogRecordData> waitForExport() {
try {
countDownLatch.await(timeout, TimeUnit.SECONDS);
} catch (InterruptedException e) {
@ -560,8 +564,8 @@ class BatchLogProcessorTest {
}
@Override
public CompletableResultCode export(Collection<LogData> logs) {
this.logDataList.addAll(logs);
public CompletableResultCode export(Collection<LogRecordData> logs) {
this.logRecordDataList.addAll(logs);
for (int i = 0; i < logs.size(); i++) {
countDownLatch.countDown();
}

View File

@ -10,9 +10,9 @@ import static org.assertj.core.api.Assertions.assertThat;
import io.opentelemetry.api.logs.Logger;
import io.opentelemetry.sdk.logs.SdkLoggerProvider;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.testing.assertj.LogAssertions;
import io.opentelemetry.sdk.testing.logs.TestLogData;
import io.opentelemetry.sdk.testing.logs.TestLogRecordData;
import java.util.Collections;
import java.util.List;
import org.junit.jupiter.api.AfterEach;
@ -44,7 +44,7 @@ class InMemoryLogRecordExporterTest {
logger.logRecordBuilder().setSeverity(DEBUG).setBody("message 2").emit();
logger.logRecordBuilder().setSeverity(DEBUG).setBody("message 3").emit();
List<LogData> logItems = exporter.getFinishedLogItems();
List<LogRecordData> logItems = exporter.getFinishedLogItems();
assertThat(logItems).isNotNull();
assertThat(logItems.size()).isEqualTo(3);
LogAssertions.assertThat(logItems.get(0)).hasBody("message 1");
@ -57,7 +57,7 @@ class InMemoryLogRecordExporterTest {
logger.logRecordBuilder().setSeverity(DEBUG).setBody("message 1").emit();
logger.logRecordBuilder().setSeverity(DEBUG).setBody("message 2").emit();
logger.logRecordBuilder().setSeverity(DEBUG).setBody("message 3").emit();
List<LogData> logItems = exporter.getFinishedLogItems();
List<LogRecordData> logItems = exporter.getFinishedLogItems();
assertThat(logItems).isNotNull();
assertThat(logItems.size()).isEqualTo(3);
// Reset then expect no items in memory.
@ -70,7 +70,7 @@ class InMemoryLogRecordExporterTest {
logger.logRecordBuilder().setSeverity(DEBUG).setBody("message 1").emit();
logger.logRecordBuilder().setSeverity(DEBUG).setBody("message 2").emit();
logger.logRecordBuilder().setSeverity(DEBUG).setBody("message 3").emit();
List<LogData> logItems = exporter.getFinishedLogItems();
List<LogRecordData> logItems = exporter.getFinishedLogItems();
assertThat(logItems).isNotNull();
assertThat(logItems.size()).isEqualTo(3);
// Shutdown then expect no items in memory.
@ -83,13 +83,14 @@ class InMemoryLogRecordExporterTest {
@Test
void export_ReturnCode() {
LogData logData = TestLogData.builder().setBody("message 1").setSeverity(DEBUG).build();
assertThat(exporter.export(Collections.singletonList(logData)).isSuccess()).isTrue();
LogRecordData logRecordData =
TestLogRecordData.builder().setBody("message 1").setSeverity(DEBUG).build();
assertThat(exporter.export(Collections.singletonList(logRecordData)).isSuccess()).isTrue();
exporter.shutdown();
// After shutdown no more export.
assertThat(exporter.export(Collections.singletonList(logData)).isSuccess()).isFalse();
assertThat(exporter.export(Collections.singletonList(logRecordData)).isSuccess()).isFalse();
exporter.reset();
// Reset does not do anything if already shutdown.
assertThat(exporter.export(Collections.singletonList(logData)).isSuccess()).isFalse();
assertThat(exporter.export(Collections.singletonList(logRecordData)).isSuccess()).isFalse();
}
}

View File

@ -13,8 +13,8 @@ import static org.mockito.Mockito.when;
import io.opentelemetry.api.logs.Severity;
import io.opentelemetry.internal.testing.slf4j.SuppressLogger;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.testing.logs.TestLogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.testing.logs.TestLogRecordData;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@ -29,9 +29,9 @@ import org.mockito.junit.jupiter.MockitoExtension;
class MultiLogRecordExporterTest {
@Mock private LogRecordExporter logRecordExporter1;
@Mock private LogRecordExporter logRecordExporter2;
private static final List<LogData> LOG_LIST =
private static final List<LogRecordData> LOG_LIST =
Collections.singletonList(
TestLogData.builder().setBody("Message!").setSeverity(Severity.DEBUG).build());
TestLogRecordData.builder().setBody("Message!").setSeverity(Severity.DEBUG).build());
@Test
void empty() {

View File

@ -19,8 +19,8 @@ import io.opentelemetry.internal.testing.slf4j.SuppressLogger;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.logs.LogProcessor;
import io.opentelemetry.sdk.logs.ReadWriteLogRecord;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.testing.logs.TestLogData;
import io.opentelemetry.sdk.logs.data.LogRecordData;
import io.opentelemetry.sdk.testing.logs.TestLogRecordData;
import java.util.Collections;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@ -34,7 +34,7 @@ import org.mockito.quality.Strictness;
@MockitoSettings(strictness = Strictness.LENIENT)
class SimpleLogProcessorTest {
private static final LogData LOG_DATA = TestLogData.builder().build();
private static final LogRecordData LOG_RECORD_DATA = TestLogRecordData.builder().build();
@Mock private LogRecordExporter logRecordExporter;
@Mock private ReadWriteLogRecord readWriteLogRecord;
@ -46,7 +46,7 @@ class SimpleLogProcessorTest {
logProcessor = SimpleLogProcessor.create(logRecordExporter);
when(logRecordExporter.export(anyCollection())).thenReturn(CompletableResultCode.ofSuccess());
when(logRecordExporter.shutdown()).thenReturn(CompletableResultCode.ofSuccess());
when(readWriteLogRecord.toLogData()).thenReturn(LOG_DATA);
when(readWriteLogRecord.toLogRecordData()).thenReturn(LOG_RECORD_DATA);
}
@Test
@ -59,7 +59,7 @@ class SimpleLogProcessorTest {
@Test
void onEmit() {
logProcessor.onEmit(readWriteLogRecord);
verify(logRecordExporter).export(Collections.singletonList(LOG_DATA));
verify(logRecordExporter).export(Collections.singletonList(LOG_RECORD_DATA));
}
@Test
@ -81,7 +81,7 @@ class SimpleLogProcessorTest {
logProcessor.onEmit(readWriteLogRecord);
logProcessor.onEmit(readWriteLogRecord);
verify(logRecordExporter, times(2)).export(Collections.singletonList(LOG_DATA));
verify(logRecordExporter, times(2)).export(Collections.singletonList(LOG_RECORD_DATA));
CompletableResultCode flush = logProcessor.forceFlush();
assertThat(flush.isDone()).isFalse();
@ -104,7 +104,7 @@ class SimpleLogProcessorTest {
logProcessor.onEmit(readWriteLogRecord);
logProcessor.onEmit(readWriteLogRecord);
verify(logRecordExporter, times(2)).export(Collections.singletonList(LOG_DATA));
verify(logRecordExporter, times(2)).export(Collections.singletonList(LOG_RECORD_DATA));
CompletableResultCode shutdown = logProcessor.shutdown();
assertThat(shutdown.isDone()).isFalse();