Skip to content

Commit

Permalink
Change Log flags field to TraceFlags
Browse files Browse the repository at this point in the history
  • Loading branch information
jack-berg committed Nov 1, 2021
1 parent 1f22239 commit 97cf50a
Show file tree
Hide file tree
Showing 16 changed files with 48 additions and 32 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

import io.github.netmikey.logunit.api.LogCapturer;
import io.opentelemetry.api.common.Attributes;
import io.opentelemetry.api.trace.TraceFlags;
import io.opentelemetry.sdk.common.InstrumentationLibraryInfo;
import io.opentelemetry.sdk.logs.data.LogData;
import io.opentelemetry.sdk.logs.data.Severity;
Expand All @@ -34,7 +35,7 @@ class OtlpJsonLoggingLogExporterTest {
LogData.builder(RESOURCE, InstrumentationLibraryInfo.create("instrumentation", "1"))
.setName("testLog1")
.setBody("body1")
.setFlags(0)
.setTraceFlags(TraceFlags.getDefault())
.setSeverity(Severity.INFO)
.setSeverityText("INFO")
.setSpanId("8765432112345876")
Expand All @@ -47,7 +48,7 @@ class OtlpJsonLoggingLogExporterTest {
LogData.builder(RESOURCE, InstrumentationLibraryInfo.create("instrumentation2", "2"))
.setName("testLog2")
.setBody("body2")
.setFlags(0)
.setTraceFlags(TraceFlags.getDefault())
.setSeverity(Severity.INFO)
.setSeverityText("INFO")
.setSpanId("8765432112345875")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import com.linecorp.armeria.testing.junit5.server.mock.RecordedRequest;
import io.github.netmikey.logunit.api.LogCapturer;
import io.opentelemetry.api.common.Attributes;
import io.opentelemetry.api.trace.TraceFlags;
import io.opentelemetry.exporter.otlp.internal.logs.ResourceLogsMarshaler;
import io.opentelemetry.exporter.otlp.internal.okhttp.OkHttpExporter;
import io.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest;
Expand Down Expand Up @@ -329,7 +330,7 @@ private static LogData generateFakeLog() {
.setTraceId(IdGenerator.random().generateTraceId())
.setSpanId(IdGenerator.random().generateSpanId())
.setEpoch(Instant.now())
.setFlags(0)
.setTraceFlags(TraceFlags.getDefault())
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

package io.opentelemetry.exporter.otlp.internal.logs;

import io.opentelemetry.api.trace.TraceFlags;
import io.opentelemetry.exporter.otlp.internal.KeyValueMarshaler;
import io.opentelemetry.exporter.otlp.internal.MarshalerUtil;
import io.opentelemetry.exporter.otlp.internal.MarshalerWithSize;
Expand All @@ -25,7 +26,7 @@ final class LogMarshaler extends MarshalerWithSize {
private final MarshalerWithSize anyValueMarshaler;
private final KeyValueMarshaler[] attributeMarshalers;
private final int droppedAttributesCount;
private final int flags;
private final TraceFlags traceFlags;
@Nullable private final String traceId;
@Nullable private final String spanId;

Expand All @@ -46,7 +47,7 @@ static LogMarshaler create(io.opentelemetry.sdk.logs.data.LogData logData) {
attributeMarshalers,
// TODO (trask) implement droppedAttributesCount in LogRecord
0,
logData.getFlags(),
logData.getTraceFlags(),
logData.getTraceId(),
logData.getSpanId());
}
Expand All @@ -59,7 +60,7 @@ private LogMarshaler(
MarshalerWithSize anyValueMarshaler,
KeyValueMarshaler[] attributeMarshalers,
int droppedAttributesCount,
int flags,
TraceFlags traceFlags,
@Nullable String traceId,
@Nullable String spanId) {
super(
Expand All @@ -71,13 +72,13 @@ private LogMarshaler(
anyValueMarshaler,
attributeMarshalers,
droppedAttributesCount,
flags,
traceFlags,
traceId,
spanId));
this.timeUnixNano = timeUnixNano;
this.traceId = traceId;
this.spanId = spanId;
this.flags = flags;
this.traceFlags = traceFlags;
this.severityNumber = severityNumber;
this.severityText = severityText;
this.nameUtf8 = nameUtf8;
Expand All @@ -101,7 +102,7 @@ protected void writeTo(Serializer output) throws IOException {
output.serializeRepeatedMessage(LogRecord.ATTRIBUTES, attributeMarshalers);
output.serializeUInt32(LogRecord.DROPPED_ATTRIBUTES_COUNT, droppedAttributesCount);

output.serializeFixed32(LogRecord.FLAGS, flags);
output.serializeFixed32(LogRecord.FLAGS, toUnsignedInt(traceFlags.asByte()));
output.serializeTraceId(LogRecord.TRACE_ID, traceId);
output.serializeSpanId(LogRecord.SPAN_ID, spanId);
}
Expand All @@ -114,7 +115,7 @@ private static int calculateSize(
MarshalerWithSize anyValueMarshaler,
KeyValueMarshaler[] attributeMarshalers,
int droppedAttributesCount,
int flags,
TraceFlags traceFlags,
@Nullable String traceId,
@Nullable String spanId) {
int size = 0;
Expand All @@ -131,7 +132,7 @@ private static int calculateSize(
size += MarshalerUtil.sizeRepeatedMessage(LogRecord.ATTRIBUTES, attributeMarshalers);
size += MarshalerUtil.sizeUInt32(LogRecord.DROPPED_ATTRIBUTES_COUNT, droppedAttributesCount);

size += MarshalerUtil.sizeFixed32(LogRecord.FLAGS, flags);
size += MarshalerUtil.sizeFixed32(LogRecord.FLAGS, toUnsignedInt(traceFlags.asByte()));
size += MarshalerUtil.sizeTraceId(LogRecord.TRACE_ID, traceId);
size += MarshalerUtil.sizeSpanId(LogRecord.SPAN_ID, spanId);
return size;
Expand Down Expand Up @@ -194,4 +195,9 @@ static ProtoEnumInfo toProtoSeverityNumber(Severity severity) {
// NB: Should not be possible with aligned versions.
return SeverityNumber.SEVERITY_NUMBER_UNSPECIFIED;
}

/** Vendored {@link Byte#toUnsignedInt(byte)} to support Android. */
private static int toUnsignedInt(byte x) {
return ((int) x) & 0xff;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import io.opentelemetry.api.common.Attributes;
import io.opentelemetry.api.internal.OtelEncodingUtils;
import io.opentelemetry.api.trace.SpanId;
import io.opentelemetry.api.trace.TraceFlags;
import io.opentelemetry.api.trace.TraceId;
import io.opentelemetry.exporter.otlp.internal.Marshaler;
import io.opentelemetry.proto.common.v1.AnyValue;
Expand Down Expand Up @@ -93,12 +94,14 @@ void toProtoLogRecord() {
.setSeverityText("INFO")
.setTraceId(TRACE_ID)
.setSpanId(SPAN_ID)
.setTraceFlags(TraceFlags.getSampled())
.setAttributes(Attributes.of(AttributeKey.booleanKey("key"), true))
.setEpoch(12345, TimeUnit.NANOSECONDS)
.build()));

assertThat(logRecord.getTraceId().toByteArray()).isEqualTo(TRACE_ID_BYTES);
assertThat(logRecord.getSpanId().toByteArray()).isEqualTo(SPAN_ID_BYTES);
assertThat(TraceFlags.fromByte((byte) logRecord.getFlags())).isEqualTo(TraceFlags.getSampled());
assertThat(logRecord.getName()).isEqualTo(NAME);
assertThat(logRecord.getSeverityText()).isEqualTo("INFO");
assertThat(logRecord.getBody()).isEqualTo(AnyValue.newBuilder().setStringValue(BODY).build());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -363,7 +363,7 @@ private static LogData generateFakeLog() {
.setEpoch(Instant.now())
.setTraceId(TraceId.getInvalid())
.setSpanId(SpanId.getInvalid())
.setFlags(TraceFlags.getDefault().asByte())
.setTraceFlags(TraceFlags.getDefault())
.setSeverity(Severity.ERROR)
.setSeverityText("really severe")
.setName("log1")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class ExportTest {
.setEpoch(Instant.now())
.setTraceId(TraceId.getInvalid())
.setSpanId(SpanId.getInvalid())
.setFlags(TraceFlags.getDefault().asByte())
.setTraceFlags(TraceFlags.getDefault())
.setSeverity(Severity.ERROR)
.setSeverityText("really severe")
.setName("log1")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class ExportTest {
.setEpoch(Instant.now())
.setTraceId(TraceId.getInvalid())
.setSpanId(SpanId.getInvalid())
.setFlags(TraceFlags.getDefault().asByte())
.setTraceFlags(TraceFlags.getDefault())
.setSeverity(Severity.ERROR)
.setSeverityText("really severe")
.setName("log1")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class ExportTest {
.setEpoch(Instant.now())
.setTraceId(TraceId.getInvalid())
.setSpanId(SpanId.getInvalid())
.setFlags(TraceFlags.getDefault().asByte())
.setTraceFlags(TraceFlags.getDefault())
.setSeverity(Severity.ERROR)
.setSeverityText("really severe")
.setName("log1")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ class OkHttpOnlyExportTest {
.setEpoch(Instant.now())
.setTraceId(TraceId.getInvalid())
.setSpanId(SpanId.getInvalid())
.setFlags(TraceFlags.getDefault().asByte())
.setTraceFlags(TraceFlags.getDefault())
.setSeverity(Severity.ERROR)
.setSeverityText("really severe")
.setName("log1")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,7 @@ private static void testLogExporter(LogExporter logExporter) {
.setTraceId(IdGenerator.random().generateTraceId())
.setSpanId(IdGenerator.random().generateSpanId())
.setEpoch(Instant.now())
.setFlags(0)
.setTraceFlags(TraceFlags.getSampled())
.build();

logExporter.export(Collections.singletonList(logData));
Expand Down Expand Up @@ -430,7 +430,7 @@ private static void testLogExporter(LogExporter logExporter) {
.isEqualTo(logData.getTraceId());
assertThat(SpanId.fromBytes(protoLog.getSpanId().toByteArray())).isEqualTo(logData.getSpanId());
assertThat(protoLog.getTimeUnixNano()).isEqualTo(logData.getEpochNanos());
assertThat(protoLog.getFlags()).isEqualTo(logData.getFlags());
assertThat(TraceFlags.fromByte((byte) protoLog.getFlags())).isEqualTo(logData.getTraceFlags());
}

private static class OtlpGrpcServer extends ServerExtension {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
package io.opentelemetry.sdk.logs;

import io.opentelemetry.api.common.Attributes;
import io.opentelemetry.api.trace.TraceFlags;
import io.opentelemetry.sdk.logs.data.Body;
import io.opentelemetry.sdk.logs.data.Severity;
import java.time.Instant;
Expand All @@ -31,8 +32,8 @@ public interface LogBuilder {
/** Set the span id. */
LogBuilder setSpanId(String spanId);

/** Set the flags. */
LogBuilder setFlags(int flags);
/** Set the trace flags. */
LogBuilder setTraceFlags(TraceFlags traceFlags);

/** Set the severity. */
LogBuilder setSeverity(Severity severity);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
package io.opentelemetry.sdk.logs;

import io.opentelemetry.api.common.Attributes;
import io.opentelemetry.api.trace.TraceFlags;
import io.opentelemetry.sdk.common.InstrumentationLibraryInfo;
import io.opentelemetry.sdk.logs.data.Body;
import io.opentelemetry.sdk.logs.data.LogData;
Expand Down Expand Up @@ -71,8 +72,8 @@ public LogBuilder setSpanId(String spanId) {
}

@Override
public LogBuilder setFlags(int flags) {
logDataBuilder.setFlags(flags);
public LogBuilder setTraceFlags(TraceFlags traceFlags) {
logDataBuilder.setTraceFlags(traceFlags);
return this;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
package io.opentelemetry.sdk.logs.data;

import io.opentelemetry.api.common.Attributes;
import io.opentelemetry.api.trace.TraceFlags;
import io.opentelemetry.sdk.common.InstrumentationLibraryInfo;
import io.opentelemetry.sdk.resources.Resource;
import javax.annotation.Nullable;
Expand Down Expand Up @@ -42,8 +43,8 @@ static LogDataBuilder builder(
@Nullable
String getSpanId();

/** Returns the flags for this log. */
int getFlags();
/** Returns the trace flags for this log. */
TraceFlags getTraceFlags();

/** Returns the severity for this log. */
Severity getSeverity();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

import io.opentelemetry.api.common.Attributes;
import io.opentelemetry.api.common.AttributesBuilder;
import io.opentelemetry.api.trace.TraceFlags;
import io.opentelemetry.sdk.common.InstrumentationLibraryInfo;
import io.opentelemetry.sdk.resources.Resource;
import java.time.Instant;
Expand All @@ -22,7 +23,7 @@ public final class LogDataBuilder {
private long epochNanos;
@Nullable private String traceId;
@Nullable private String spanId;
private int flags;
private TraceFlags traceFlags = TraceFlags.getDefault();
private Severity severity = Severity.UNDEFINED_SEVERITY_NUMBER;
@Nullable private String severityText;
@Nullable private String name;
Expand Down Expand Up @@ -58,9 +59,9 @@ public LogDataBuilder setSpanId(String spanId) {
return this;
}

/** Set the flags. */
public LogDataBuilder setFlags(int flags) {
this.flags = flags;
/** Set the trace flags. */
public LogDataBuilder setTraceFlags(TraceFlags traceFlags) {
this.traceFlags = traceFlags;
return this;
}

Expand Down Expand Up @@ -110,7 +111,7 @@ public LogData build() {
epochNanos,
traceId,
spanId,
flags,
traceFlags,
severity,
severityText,
name,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

import com.google.auto.value.AutoValue;
import io.opentelemetry.api.common.Attributes;
import io.opentelemetry.api.trace.TraceFlags;
import io.opentelemetry.sdk.common.InstrumentationLibraryInfo;
import io.opentelemetry.sdk.resources.Resource;
import javax.annotation.Nullable;
Expand All @@ -24,7 +25,7 @@ static LogDataImpl create(
long epochNanos,
@Nullable String traceId,
@Nullable String spanId,
int flags,
TraceFlags traceFlags,
Severity severity,
@Nullable String severityText,
@Nullable String name,
Expand All @@ -36,7 +37,7 @@ static LogDataImpl create(
epochNanos,
traceId,
spanId,
flags,
traceFlags,
severity,
severityText,
name,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public static LogData createLogData(Severity severity, String message) {
.setEpoch(System.currentTimeMillis(), TimeUnit.MILLISECONDS)
.setTraceId(TraceId.getInvalid())
.setSpanId(SpanId.getInvalid())
.setFlags(TraceFlags.getDefault().asByte())
.setTraceFlags(TraceFlags.getDefault())
.setSeverity(severity)
.setSeverityText("really severe")
.setName("log1")
Expand Down

0 comments on commit 97cf50a

Please sign in to comment.