Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

# Shared communication
/communication/*.* @DataDog/apm-java
/communication/otlp-exporter/ @DataDog/apm-sdk-capabilities-java
/communication/src/*/*/datadog/communication/*.* @DataDog/apm-java
/communication/src/*/*/datadog/communication/ddagent/ @DataDog/apm-java
/communication/src/*/*/datadog/communication/http/ @DataDog/apm-java
Expand Down
25 changes: 25 additions & 0 deletions communication/otlp-exporter/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
plugins {
`java-library`
id("dd-trace-java.module.internal-library")
}

description = "otlp-exporter"

extra["excludedClassesCoverage"] = listOf(
"datadog.communication.otlp.OtlpGrpcSender",
"datadog.communication.otlp.OtlpHttpSender",
"datadog.communication.otlp.OtlpResponse",
"datadog.communication.otlp.OtlpSenderSupport"
)

dependencies {
api(project(":dd-trace-api"))
api(project(":communication"))
api(project(":internal-api"))
implementation(project(":utils:logging-utils"))
implementation(libs.slf4j)

testImplementation(libs.bundles.junit5)
testImplementation(libs.bundles.mockito)
testImplementation(libs.okhttp3.mockwebserver)
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package datadog.trace.core.otlp.common;
package datadog.communication.otlp;

import java.io.IOException;
import javax.annotation.Nonnull;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package datadog.trace.core.otlp.common;
package datadog.communication.otlp;

import java.io.IOException;
import javax.annotation.Nonnull;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package datadog.trace.core.otlp.common;
package datadog.communication.otlp;

import java.nio.ByteBuffer;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package datadog.trace.core.otlp.common;
package datadog.communication.otlp;

import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package datadog.trace.core.otlp.common;
package datadog.communication.otlp;

import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
Expand Down
5 changes: 5 additions & 0 deletions dd-java-agent/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -434,6 +434,11 @@ dependencies {
// do not bring along slf4j and dependent subprojects
// (which are loaded on the bootstrap cl)
}
sharedShadowInclude project(':communication:otlp-exporter'), {
transitive = false
// do not bring along slf4j and dependent subprojects
// (which are loaded on the bootstrap cl)
}
sharedShadowInclude group: 'com.datadoghq', name: 'sketches-java', version: '0.8.3'
sharedShadowInclude project(':telemetry'), {
transitive = false
Expand Down
1 change: 1 addition & 0 deletions dd-trace-core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ dependencies {

api project(':dd-trace-api')
api project(':communication')
api project(':communication:otlp-exporter')
api project(':internal-api')
api project(':products:metrics:metrics-agent')
// Note: dd-trace-core should NOT depend on metrics-lib directly
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package datadog.trace.common.writer;

import datadog.communication.otlp.OtlpPayload;
import datadog.trace.api.telemetry.OtlpTelemetry;
import datadog.trace.core.CoreSpan;
import datadog.trace.core.otlp.common.OtlpPayload;
import datadog.trace.core.otlp.common.OtlpSender;
import datadog.trace.core.otlp.trace.OtlpTraceCollector;
import java.util.Collection;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import static datadog.communication.http.OkHttpUtils.isPlainHttp;

import datadog.communication.http.HttpRetryPolicy;
import datadog.communication.otlp.OtlpGrpcRequestBody;
import datadog.communication.otlp.OtlpPayload;
import datadog.logging.RatelimitedLogger;
import datadog.trace.api.config.OtlpConfig.Compression;
import datadog.trace.common.writer.RemoteApi;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import static datadog.communication.http.OkHttpUtils.isPlainHttp;

import datadog.communication.http.HttpRetryPolicy;
import datadog.communication.otlp.OtlpHttpRequestBody;
import datadog.communication.otlp.OtlpPayload;
import datadog.logging.RatelimitedLogger;
import datadog.trace.api.config.OtlpConfig.Compression;
import datadog.trace.common.writer.RemoteApi;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package datadog.trace.core.otlp.common;

import static datadog.communication.otlp.OtlpPayload.PROTOBUF_CONTENT_TYPE;
import static datadog.trace.core.otlp.common.OtlpCommonProto.LEN_WIRE_TYPE;
import static datadog.trace.core.otlp.common.OtlpCommonProto.sizeVarInt;
import static datadog.trace.core.otlp.common.OtlpCommonProto.writeVarInt;
import static datadog.trace.core.otlp.common.OtlpPayload.PROTOBUF_CONTENT_TYPE;
import static datadog.trace.util.BitUtils.nextPowerOfTwo;

import datadog.communication.otlp.OtlpPayload;
import datadog.communication.serialization.GrowableBuffer;
import java.nio.ByteBuffer;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package datadog.trace.core.otlp.common;

import datadog.communication.otlp.OtlpPayload;
import datadog.trace.common.writer.RemoteApi;

/** Sends chunks of OTLP data. */
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package datadog.trace.core.otlp.logs;

import datadog.trace.core.otlp.common.OtlpPayload;
import datadog.communication.otlp.OtlpPayload;

/** Collects logs ready for export. */
public abstract class OtlpLogsCollector {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
package datadog.trace.core.otlp.logs;

import static datadog.communication.otlp.OtlpPayload.JSON_CONTENT_TYPE;
import static datadog.trace.core.otlp.common.OtlpCommonJson.writeAttribute;
import static datadog.trace.core.otlp.common.OtlpCommonJson.writeScopeAndSchema;
import static datadog.trace.core.otlp.common.OtlpPayload.JSON_CONTENT_TYPE;
import static datadog.trace.core.otlp.common.OtlpResourceJson.RESOURCE_FRAGMENT;
import static datadog.trace.core.otlp.logs.OtlpLogsJson.writeLogRecordFields;

import datadog.communication.otlp.OtlpPayload;
import datadog.json.JsonWriter;
import datadog.trace.bootstrap.otel.common.OtelInstrumentationScope;
import datadog.trace.bootstrap.otel.logs.data.OtelLogRecordProcessor;
import datadog.trace.bootstrap.otlp.logs.OtlpLogRecord;
import datadog.trace.bootstrap.otlp.logs.OtlpLogsVisitor;
import datadog.trace.bootstrap.otlp.logs.OtlpScopedLogsVisitor;
import datadog.trace.core.otlp.common.LazyJsonArray;
import datadog.trace.core.otlp.common.OtlpPayload;
import java.nio.ByteBuffer;
import java.util.function.ObjIntConsumer;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@
import static datadog.trace.core.otlp.logs.OtlpLogsProto.recordLogRecordMessage;
import static datadog.trace.core.otlp.logs.OtlpLogsProto.recordScopedLogsMessage;

import datadog.communication.otlp.OtlpPayload;
import datadog.communication.serialization.GrowableBuffer;
import datadog.trace.bootstrap.otel.common.OtelInstrumentationScope;
import datadog.trace.bootstrap.otel.logs.data.OtelLogRecordProcessor;
import datadog.trace.bootstrap.otlp.logs.OtlpLogRecord;
import datadog.trace.bootstrap.otlp.logs.OtlpLogsVisitor;
import datadog.trace.bootstrap.otlp.logs.OtlpScopedLogsVisitor;
import datadog.trace.core.otlp.common.OtlpCommonProto;
import datadog.trace.core.otlp.common.OtlpPayload;
import datadog.trace.core.otlp.common.OtlpProtoBuffer;
import java.util.function.ObjIntConsumer;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
import static datadog.trace.util.AgentThreadFactory.AgentThread.OTLP_LOGS_EXPORTER;
import static datadog.trace.util.AgentThreadFactory.newAgentThread;

import datadog.communication.otlp.OtlpPayload;
import datadog.trace.api.Config;
import datadog.trace.api.telemetry.OtlpTelemetry;
import datadog.trace.common.writer.RemoteApi;
import datadog.trace.core.otlp.common.OtlpGrpcSender;
import datadog.trace.core.otlp.common.OtlpHttpSender;
import datadog.trace.core.otlp.common.OtlpPayload;
import datadog.trace.core.otlp.common.OtlpSender;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package datadog.trace.core.otlp.metrics;

import datadog.communication.otlp.OtlpPayload;
import datadog.trace.bootstrap.otlp.metrics.OtlpMetricsVisitor;
import datadog.trace.core.otlp.common.OtlpPayload;
import java.util.function.Consumer;

/** Collects metrics ready for export. */
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
package datadog.trace.core.otlp.metrics;

import static datadog.communication.otlp.OtlpPayload.JSON_CONTENT_TYPE;
import static datadog.trace.bootstrap.otel.metrics.OtelInstrumentType.GAUGE;
import static datadog.trace.bootstrap.otel.metrics.OtelInstrumentType.OBSERVABLE_GAUGE;
import static datadog.trace.core.otlp.common.OtlpCommonJson.writeAttribute;
import static datadog.trace.core.otlp.common.OtlpCommonJson.writeScopeAndSchema;
import static datadog.trace.core.otlp.common.OtlpPayload.JSON_CONTENT_TYPE;
import static datadog.trace.core.otlp.common.OtlpResourceJson.RESOURCE_FRAGMENT;
import static datadog.trace.core.otlp.metrics.OtlpMetricsJson.closeMetric;
import static datadog.trace.core.otlp.metrics.OtlpMetricsJson.openMetric;
import static datadog.trace.core.otlp.metrics.OtlpMetricsJson.writeDataPointValue;

import datadog.communication.otlp.OtlpPayload;
import datadog.json.JsonWriter;
import datadog.trace.api.time.TimeSource;
import datadog.trace.bootstrap.otel.common.OtelInstrumentationScope;
Expand All @@ -21,7 +22,6 @@
import datadog.trace.bootstrap.otlp.metrics.OtlpMetricsVisitor;
import datadog.trace.bootstrap.otlp.metrics.OtlpScopedMetricsVisitor;
import datadog.trace.core.otlp.common.LazyJsonArray;
import datadog.trace.core.otlp.common.OtlpPayload;
import java.nio.ByteBuffer;
import java.util.function.Consumer;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import static datadog.trace.core.otlp.metrics.OtlpMetricsProto.recordMetricMessage;
import static datadog.trace.core.otlp.metrics.OtlpMetricsProto.recordScopedMetricsMessage;

import datadog.communication.otlp.OtlpPayload;
import datadog.communication.serialization.GrowableBuffer;
import datadog.trace.api.time.TimeSource;
import datadog.trace.bootstrap.otel.common.OtelInstrumentationScope;
Expand All @@ -24,7 +25,6 @@
import datadog.trace.bootstrap.otlp.metrics.OtlpMetricsVisitor;
import datadog.trace.bootstrap.otlp.metrics.OtlpScopedMetricsVisitor;
import datadog.trace.core.otlp.common.OtlpCommonProto;
import datadog.trace.core.otlp.common.OtlpPayload;
import datadog.trace.core.otlp.common.OtlpProtoBuffer;
import java.util.function.Consumer;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

import static datadog.trace.util.AgentThreadFactory.AgentThread.OTLP_METRICS_EXPORTER;

import datadog.communication.otlp.OtlpPayload;
import datadog.trace.api.Config;
import datadog.trace.api.config.OtlpConfig;
import datadog.trace.api.telemetry.OtlpTelemetry;
import datadog.trace.api.time.SystemTimeSource;
import datadog.trace.common.writer.RemoteApi;
import datadog.trace.core.otlp.common.OtlpPayload;
import datadog.trace.core.otlp.common.OtlpSender;
import datadog.trace.util.AgentTaskScheduler;
import java.util.concurrent.ThreadLocalRandom;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import static datadog.trace.bootstrap.otlp.common.OtlpAttributeVisitor.STRING_ARRAY_ATTRIBUTE;
import static datadog.trace.bootstrap.otlp.common.OtlpAttributeVisitor.STRING_ATTRIBUTE;

import datadog.communication.otlp.OtlpPayload;
import datadog.metrics.api.Histogram;
import datadog.trace.api.Config;
import datadog.trace.api.config.OtlpConfig;
Expand All @@ -21,7 +22,6 @@
import datadog.trace.common.metrics.AggregateEntry;
import datadog.trace.common.metrics.MetricWriter;
import datadog.trace.common.writer.RemoteApi;
import datadog.trace.core.otlp.common.OtlpPayload;
import datadog.trace.core.otlp.common.OtlpResourceJson;
import datadog.trace.core.otlp.common.OtlpResourceProto;
import datadog.trace.core.otlp.common.OtlpSender;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

import static datadog.trace.core.DDSpanContext.SPAN_SAMPLING_MECHANISM_TAG;

import datadog.communication.otlp.OtlpPayload;
import datadog.trace.core.CoreSpan;
import datadog.trace.core.otlp.common.OtlpPayload;
import java.util.List;

/** Collects traces ready for export. */
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
package datadog.trace.core.otlp.trace;

import static datadog.communication.otlp.OtlpPayload.JSON_CONTENT_TYPE;
import static datadog.trace.core.otlp.common.OtlpCommonJson.writeScopeAndSchema;
import static datadog.trace.core.otlp.common.OtlpPayload.JSON_CONTENT_TYPE;
import static datadog.trace.core.otlp.common.OtlpProtoBuffer.MAX_CAPACITY_BYTES;
import static datadog.trace.core.otlp.common.OtlpResourceJson.TRACE_RESOURCE_FRAGMENT;
import static datadog.trace.core.otlp.trace.OtlpTraceJson.writeSpan;

import datadog.communication.otlp.OtlpPayload;
import datadog.json.JsonWriter;
import datadog.trace.bootstrap.instrumentation.api.AgentSpanLink;
import datadog.trace.bootstrap.otel.common.OtelInstrumentationScope;
import datadog.trace.core.CoreSpan;
import datadog.trace.core.DDSpan;
import datadog.trace.core.otlp.common.OtlpPayload;
import java.nio.ByteBuffer;
import java.util.Collections;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@
import static datadog.trace.core.otlp.trace.OtlpTraceProto.recordSpanLinkMessage;
import static datadog.trace.core.otlp.trace.OtlpTraceProto.recordSpanMessage;

import datadog.communication.otlp.OtlpPayload;
import datadog.communication.serialization.GrowableBuffer;
import datadog.trace.bootstrap.instrumentation.api.AgentSpanLink;
import datadog.trace.bootstrap.otel.common.OtelInstrumentationScope;
import datadog.trace.core.CoreSpan;
import datadog.trace.core.DDSpan;
import datadog.trace.core.otlp.common.OtlpCommonProto;
import datadog.trace.core.otlp.common.OtlpPayload;
import datadog.trace.core.otlp.common.OtlpProtoBuffer;
import java.util.List;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@
import static org.mockito.Mockito.verifyNoInteractions;
import static org.mockito.Mockito.when;

import datadog.communication.otlp.OtlpPayload;
import datadog.trace.api.sampling.PrioritySampling;
import datadog.trace.api.telemetry.OtlpTelemetry;
import datadog.trace.core.CoreSpan;
import datadog.trace.core.otlp.common.OtlpPayload;
import datadog.trace.core.otlp.common.OtlpSender;
import datadog.trace.core.otlp.trace.OtlpTraceCollector;
import java.nio.ByteBuffer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

import com.google.protobuf.CodedInputStream;
import com.google.protobuf.WireFormat;
import datadog.communication.otlp.OtlpPayload;
import datadog.communication.serialization.GrowableBuffer;
import java.io.IOException;
import java.nio.ByteBuffer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;

import datadog.communication.otlp.OtlpPayload;
import datadog.json.JsonMapper;
import datadog.trace.api.sampling.PrioritySampling;
import datadog.trace.api.sampling.SamplingMechanism;
Expand All @@ -20,7 +21,6 @@
import datadog.trace.common.writer.LoggingWriter;
import datadog.trace.core.CoreTracer;
import datadog.trace.core.DDSpan;
import datadog.trace.core.otlp.common.OtlpPayload;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Collections;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

import com.google.protobuf.CodedInputStream;
import com.google.protobuf.WireFormat;
import datadog.communication.otlp.OtlpPayload;
import datadog.trace.api.DD128bTraceId;
import datadog.trace.api.TracePropagationStyle;
import datadog.trace.api.sampling.PrioritySampling;
Expand All @@ -30,7 +31,6 @@
import datadog.trace.common.writer.LoggingWriter;
import datadog.trace.core.CoreTracer;
import datadog.trace.core.DDSpan;
import datadog.trace.core.otlp.common.OtlpPayload;
import datadog.trace.core.propagation.ExtractedContext;
import datadog.trace.core.propagation.PropagationTags;
import java.io.IOException;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;

import datadog.communication.otlp.OtlpPayload;
import datadog.json.JsonMapper;
import datadog.trace.api.time.ControllableTimeSource;
import datadog.trace.bootstrap.otel.common.OtelInstrumentationScope;
Expand All @@ -18,7 +19,6 @@
import datadog.trace.bootstrap.otlp.metrics.OtlpMetricVisitor;
import datadog.trace.bootstrap.otlp.metrics.OtlpMetricsVisitor;
import datadog.trace.bootstrap.otlp.metrics.OtlpScopedMetricsVisitor;
import datadog.trace.core.otlp.common.OtlpPayload;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
Expand Down
Loading
Loading