Skip to content
Merged
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
4 changes: 1 addition & 3 deletions dd-java-agent/agent-otel/otel-bootstrap/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,6 @@ dependencies {

implementation project(':dd-java-agent:agent-bootstrap')
implementation project(':utils:logging-utils')
implementation project(':communication')

testImplementation group: 'com.google.protobuf', name: 'protobuf-java', version: '3.14.0'
}

tasks.named("shadowJar", ShadowJar) {
Expand Down Expand Up @@ -109,6 +106,7 @@ tasks.named("shadowJar", ShadowJar) {
exclude 'io/opentelemetry/javaagent/bootstrap/internal/InClassLoaderMatcher*'
exclude 'io/opentelemetry/javaagent/bootstrap/internal/InstrumentationConfig*'
include 'datadog/trace/bootstrap/otel/**'
include 'datadog/trace/bootstrap/otlp/**'

relocate 'io.opentelemetry.api', 'datadog.trace.bootstrap.otel.api'
relocate 'io.opentelemetry.context', 'datadog.trace.bootstrap.otel.context'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public final class OtelInstrumentDescriptor {
@Nullable private final UTF8BytesString description;
@Nullable private final UTF8BytesString unit;

OtelInstrumentDescriptor(
public OtelInstrumentDescriptor(
String instrumentName,
OtelInstrumentType instrumentType,
boolean longValues,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package datadog.trace.bootstrap.otel.metrics.data;

import datadog.trace.bootstrap.otlp.metrics.OtlpDataPoint;

/** Common behaviour shared across all aggregators. */
abstract class OtelAggregator {
private volatile boolean empty = true;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package datadog.trace.bootstrap.otel.metrics.data;

import datadog.trace.bootstrap.otlp.metrics.OtlpDataPoint;
import datadog.trace.bootstrap.otlp.metrics.OtlpDoublePoint;
import java.util.concurrent.atomic.DoubleAdder;

final class OtelDoubleSum extends OtelAggregator {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package datadog.trace.bootstrap.otel.metrics.data;

import datadog.trace.bootstrap.otlp.metrics.OtlpDataPoint;
import datadog.trace.bootstrap.otlp.metrics.OtlpDoublePoint;

final class OtelDoubleValue extends OtelAggregator {
private volatile double value;

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

import datadog.metrics.api.Histogram;
import datadog.metrics.api.HistogramWithSum;
import datadog.trace.bootstrap.otlp.metrics.OtlpDataPoint;
import datadog.trace.bootstrap.otlp.metrics.OtlpHistogramPoint;
import java.util.List;

final class OtelHistogramSketch extends OtelAggregator {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package datadog.trace.bootstrap.otel.metrics.data;

import datadog.trace.bootstrap.otlp.metrics.OtlpDataPoint;
import datadog.trace.bootstrap.otlp.metrics.OtlpLongPoint;
import java.util.concurrent.atomic.LongAdder;

final class OtelLongSum extends OtelAggregator {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package datadog.trace.bootstrap.otel.metrics.data;

import datadog.trace.bootstrap.otlp.metrics.OtlpDataPoint;
import datadog.trace.bootstrap.otlp.metrics.OtlpLongPoint;

final class OtelLongValue extends OtelAggregator {
private volatile long value;

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

import datadog.trace.bootstrap.otel.common.OtelInstrumentationScope;
import datadog.trace.bootstrap.otel.metrics.OtelInstrumentDescriptor;
import datadog.trace.bootstrap.otel.metrics.export.OtlpMetricsVisitor;
import datadog.trace.bootstrap.otel.metrics.export.OtlpScopedMetricsVisitor;
import datadog.trace.bootstrap.otlp.metrics.OtlpMetricsVisitor;
import datadog.trace.bootstrap.otlp.metrics.OtlpScopedMetricsVisitor;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
import datadog.trace.api.Config;
import datadog.trace.api.config.OtlpConfig;
import datadog.trace.bootstrap.instrumentation.api.UTF8BytesString;
import datadog.trace.bootstrap.otel.common.export.OtlpAttributeVisitor;
import datadog.trace.bootstrap.otel.metrics.OtelInstrumentDescriptor;
import datadog.trace.bootstrap.otel.metrics.OtelInstrumentType;
import datadog.trace.bootstrap.otel.metrics.export.OtlpMetricVisitor;
import datadog.trace.bootstrap.otlp.common.OtlpAttributeVisitor;
import datadog.trace.bootstrap.otlp.metrics.OtlpMetricVisitor;
import io.opentelemetry.api.common.Attributes;
import java.util.List;
import java.util.Map;
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package datadog.trace.bootstrap.otel.common.export;
package datadog.trace.bootstrap.otlp.common;

/** A visitor to visit OpenTelemetry attributes. */
public interface OtlpAttributeVisitor {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package datadog.trace.bootstrap.otlp.metrics;

public abstract class OtlpDataPoint {}
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package datadog.trace.bootstrap.otel.metrics.data;
package datadog.trace.bootstrap.otlp.metrics;

public final class OtlpDoublePoint extends OtlpDataPoint {
public final double value;

OtlpDoublePoint(double value) {
public OtlpDoublePoint(double value) {
this.value = value;
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package datadog.trace.bootstrap.otel.metrics.data;
package datadog.trace.bootstrap.otlp.metrics;

import java.util.List;

Expand All @@ -10,7 +10,7 @@ public final class OtlpHistogramPoint extends OtlpDataPoint {
public final double min;
public final double max;

OtlpHistogramPoint(
public OtlpHistogramPoint(
double count,
List<Double> bucketBoundaries,
List<Double> bucketCounts,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package datadog.trace.bootstrap.otel.metrics.data;
package datadog.trace.bootstrap.otlp.metrics;

public final class OtlpLongPoint extends OtlpDataPoint {
public final long value;

OtlpLongPoint(long value) {
public OtlpLongPoint(long value) {
this.value = value;
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package datadog.trace.bootstrap.otel.metrics.export;
package datadog.trace.bootstrap.otlp.metrics;

import datadog.trace.bootstrap.otel.common.export.OtlpAttributeVisitor;
import datadog.trace.bootstrap.otel.metrics.data.OtlpDataPoint;
import datadog.trace.bootstrap.otlp.common.OtlpAttributeVisitor;

/**
* A visitor to visit a metric in an instrumentation scope.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package datadog.trace.bootstrap.otel.metrics.export;
package datadog.trace.bootstrap.otlp.metrics;

import datadog.trace.bootstrap.otel.common.OtelInstrumentationScope;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package datadog.trace.bootstrap.otel.metrics.export;
package datadog.trace.bootstrap.otlp.metrics;

import datadog.trace.bootstrap.otel.metrics.OtelInstrumentDescriptor;

Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ import datadog.opentelemetry.shim.metrics.OtelMeterProvider
import datadog.trace.agent.test.InstrumentationSpecification
import datadog.trace.bootstrap.otel.common.OtelInstrumentationScope
import datadog.trace.bootstrap.otel.metrics.OtelInstrumentDescriptor
import datadog.trace.bootstrap.otel.metrics.data.OtlpDoublePoint
import datadog.trace.bootstrap.otel.metrics.data.OtlpHistogramPoint
import datadog.trace.bootstrap.otel.metrics.data.OtlpLongPoint
import datadog.trace.bootstrap.otlp.metrics.OtlpDoublePoint
import datadog.trace.bootstrap.otlp.metrics.OtlpHistogramPoint
import datadog.trace.bootstrap.otlp.metrics.OtlpLongPoint
import datadog.trace.bootstrap.otel.metrics.data.OtelMetricRegistry
import datadog.trace.bootstrap.otel.metrics.data.OtlpDataPoint
import datadog.trace.bootstrap.otel.metrics.export.OtlpMetricVisitor
import datadog.trace.bootstrap.otel.metrics.export.OtlpMetricsVisitor
import datadog.trace.bootstrap.otel.metrics.export.OtlpScopedMetricsVisitor
import datadog.trace.bootstrap.otlp.metrics.OtlpDataPoint
import datadog.trace.bootstrap.otlp.metrics.OtlpMetricVisitor
import datadog.trace.bootstrap.otlp.metrics.OtlpMetricsVisitor
import datadog.trace.bootstrap.otlp.metrics.OtlpScopedMetricsVisitor
import io.opentelemetry.api.GlobalOpenTelemetry
import io.opentelemetry.api.common.Attributes
import spock.lang.Shared
Expand Down
3 changes: 3 additions & 0 deletions dd-trace-core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,8 @@ dependencies {
implementation project(':utils:socket-utils')
implementation project(':utils:logging-utils')
implementation project(':utils:queue-utils')
// for OTLP support
compileOnly project(':dd-java-agent:agent-otel:otel-bootstrap')
// for span exception debugging
compileOnly project(':dd-java-agent:agent-debugger:debugger-bootstrap')

Expand All @@ -94,6 +96,7 @@ dependencies {
testCompileOnly libs.autoservice.annotation

testImplementation project(':dd-java-agent:testing')
testImplementation project(path: ':dd-java-agent:agent-otel:otel-bootstrap', configuration: 'shadow')
testImplementation project(':remote-config:remote-config-core')
testImplementation project(':products:metrics:metrics-lib')
testImplementation group: 'org.msgpack', name: 'msgpack-core', version: '0.8.20'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package datadog.trace.bootstrap.otel.common.export;
package datadog.trace.core.otlp.common;

import static java.nio.charset.StandardCharsets.UTF_8;

Expand All @@ -8,6 +8,7 @@
import datadog.communication.serialization.StreamingBuffer;
import datadog.trace.api.Config;
import datadog.trace.bootstrap.otel.common.OtelInstrumentationScope;
import datadog.trace.bootstrap.otlp.common.OtlpAttributeVisitor;
import java.nio.ByteBuffer;
import java.util.List;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package datadog.trace.bootstrap.otel.common.export;
package datadog.trace.core.otlp.common;

import static datadog.trace.bootstrap.otel.common.export.OtlpAttributeVisitor.STRING;
import static datadog.trace.bootstrap.otel.common.export.OtlpCommonProto.LEN_WIRE_TYPE;
import static datadog.trace.bootstrap.otel.common.export.OtlpCommonProto.recordMessage;
import static datadog.trace.bootstrap.otel.common.export.OtlpCommonProto.writeAttribute;
import static datadog.trace.bootstrap.otel.common.export.OtlpCommonProto.writeTag;
import static datadog.trace.bootstrap.otlp.common.OtlpAttributeVisitor.STRING;
import static datadog.trace.core.otlp.common.OtlpCommonProto.LEN_WIRE_TYPE;
import static datadog.trace.core.otlp.common.OtlpCommonProto.recordMessage;
import static datadog.trace.core.otlp.common.OtlpCommonProto.writeAttribute;
import static datadog.trace.core.otlp.common.OtlpCommonProto.writeTag;

import datadog.communication.serialization.GrowableBuffer;
import datadog.communication.serialization.StreamingBuffer;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package datadog.trace.bootstrap.otel.metrics.export;
package datadog.trace.core.otlp.metrics;

import java.util.ArrayDeque;
import java.util.Deque;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
package datadog.trace.bootstrap.otel.metrics.export;
package datadog.trace.core.otlp.metrics;

import static datadog.trace.api.config.OtlpConfig.Temporality.CUMULATIVE;
import static datadog.trace.bootstrap.otel.common.export.OtlpCommonProto.I64_WIRE_TYPE;
import static datadog.trace.bootstrap.otel.common.export.OtlpCommonProto.LEN_WIRE_TYPE;
import static datadog.trace.bootstrap.otel.common.export.OtlpCommonProto.VARINT_WIRE_TYPE;
import static datadog.trace.bootstrap.otel.common.export.OtlpCommonProto.recordMessage;
import static datadog.trace.bootstrap.otel.common.export.OtlpCommonProto.writeI64;
import static datadog.trace.bootstrap.otel.common.export.OtlpCommonProto.writeInstrumentationScope;
import static datadog.trace.bootstrap.otel.common.export.OtlpCommonProto.writeString;
import static datadog.trace.bootstrap.otel.common.export.OtlpCommonProto.writeTag;
import static datadog.trace.bootstrap.otel.common.export.OtlpCommonProto.writeVarInt;
import static datadog.trace.core.otlp.common.OtlpCommonProto.I64_WIRE_TYPE;
import static datadog.trace.core.otlp.common.OtlpCommonProto.LEN_WIRE_TYPE;
import static datadog.trace.core.otlp.common.OtlpCommonProto.VARINT_WIRE_TYPE;
import static datadog.trace.core.otlp.common.OtlpCommonProto.recordMessage;
import static datadog.trace.core.otlp.common.OtlpCommonProto.writeI64;
import static datadog.trace.core.otlp.common.OtlpCommonProto.writeInstrumentationScope;
import static datadog.trace.core.otlp.common.OtlpCommonProto.writeString;
import static datadog.trace.core.otlp.common.OtlpCommonProto.writeTag;
import static datadog.trace.core.otlp.common.OtlpCommonProto.writeVarInt;

import datadog.communication.serialization.GrowableBuffer;
import datadog.trace.api.Config;
import datadog.trace.bootstrap.otel.common.OtelInstrumentationScope;
import datadog.trace.bootstrap.otel.metrics.OtelInstrumentDescriptor;
import datadog.trace.bootstrap.otel.metrics.data.OtlpDataPoint;
import datadog.trace.bootstrap.otel.metrics.data.OtlpDoublePoint;
import datadog.trace.bootstrap.otel.metrics.data.OtlpHistogramPoint;
import datadog.trace.bootstrap.otel.metrics.data.OtlpLongPoint;
import datadog.trace.bootstrap.otlp.metrics.OtlpDataPoint;
import datadog.trace.bootstrap.otlp.metrics.OtlpDoublePoint;
import datadog.trace.bootstrap.otlp.metrics.OtlpHistogramPoint;
import datadog.trace.bootstrap.otlp.metrics.OtlpLongPoint;

/** Provides optimized writers for OpenTelemetry's "metrics.proto" wire protocol. */
public final class OtlpMetricsProto {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
package datadog.trace.bootstrap.otel.metrics.export;

import static datadog.trace.bootstrap.otel.common.export.OtlpCommonProto.I64_WIRE_TYPE;
import static datadog.trace.bootstrap.otel.common.export.OtlpCommonProto.LEN_WIRE_TYPE;
import static datadog.trace.bootstrap.otel.common.export.OtlpCommonProto.recordMessage;
import static datadog.trace.bootstrap.otel.common.export.OtlpCommonProto.writeAttribute;
import static datadog.trace.bootstrap.otel.common.export.OtlpCommonProto.writeI64;
import static datadog.trace.bootstrap.otel.common.export.OtlpCommonProto.writeTag;
import static datadog.trace.bootstrap.otel.common.export.OtlpResourceProto.RESOURCE_MESSAGE;
package datadog.trace.core.otlp.metrics;

import static datadog.trace.bootstrap.otel.metrics.OtelInstrumentType.GAUGE;
import static datadog.trace.bootstrap.otel.metrics.OtelInstrumentType.HISTOGRAM;
import static datadog.trace.bootstrap.otel.metrics.OtelInstrumentType.OBSERVABLE_GAUGE;
import static datadog.trace.bootstrap.otel.metrics.export.OtlpMetricsProto.recordDataPointMessage;
import static datadog.trace.bootstrap.otel.metrics.export.OtlpMetricsProto.recordMetricMessage;
import static datadog.trace.bootstrap.otel.metrics.export.OtlpMetricsProto.recordScopedMetricsMessage;
import static datadog.trace.core.otlp.common.OtlpCommonProto.I64_WIRE_TYPE;
import static datadog.trace.core.otlp.common.OtlpCommonProto.LEN_WIRE_TYPE;
import static datadog.trace.core.otlp.common.OtlpCommonProto.recordMessage;
import static datadog.trace.core.otlp.common.OtlpCommonProto.writeAttribute;
import static datadog.trace.core.otlp.common.OtlpCommonProto.writeI64;
import static datadog.trace.core.otlp.common.OtlpCommonProto.writeTag;
import static datadog.trace.core.otlp.common.OtlpResourceProto.RESOURCE_MESSAGE;
import static datadog.trace.core.otlp.metrics.OtlpMetricsProto.recordDataPointMessage;
import static datadog.trace.core.otlp.metrics.OtlpMetricsProto.recordMetricMessage;
import static datadog.trace.core.otlp.metrics.OtlpMetricsProto.recordScopedMetricsMessage;

import datadog.communication.serialization.GrowableBuffer;
import datadog.trace.api.time.SystemTimeSource;
Expand All @@ -21,7 +21,10 @@
import datadog.trace.bootstrap.otel.metrics.OtelInstrumentDescriptor;
import datadog.trace.bootstrap.otel.metrics.OtelInstrumentType;
import datadog.trace.bootstrap.otel.metrics.data.OtelMetricRegistry;
import datadog.trace.bootstrap.otel.metrics.data.OtlpDataPoint;
import datadog.trace.bootstrap.otlp.metrics.OtlpDataPoint;
import datadog.trace.bootstrap.otlp.metrics.OtlpMetricVisitor;
import datadog.trace.bootstrap.otlp.metrics.OtlpMetricsVisitor;
import datadog.trace.bootstrap.otlp.metrics.OtlpScopedMetricsVisitor;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Deque;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package datadog.trace.bootstrap.otel.common.export;

import static datadog.trace.bootstrap.otel.common.export.OtlpAttributeVisitor.BOOLEAN;
import static datadog.trace.bootstrap.otel.common.export.OtlpAttributeVisitor.BOOLEAN_ARRAY;
import static datadog.trace.bootstrap.otel.common.export.OtlpAttributeVisitor.DOUBLE;
import static datadog.trace.bootstrap.otel.common.export.OtlpAttributeVisitor.DOUBLE_ARRAY;
import static datadog.trace.bootstrap.otel.common.export.OtlpAttributeVisitor.LONG;
import static datadog.trace.bootstrap.otel.common.export.OtlpAttributeVisitor.LONG_ARRAY;
import static datadog.trace.bootstrap.otel.common.export.OtlpAttributeVisitor.STRING;
import static datadog.trace.bootstrap.otel.common.export.OtlpAttributeVisitor.STRING_ARRAY;
package datadog.trace.core.otlp.common;

import static datadog.trace.bootstrap.otlp.common.OtlpAttributeVisitor.BOOLEAN;
import static datadog.trace.bootstrap.otlp.common.OtlpAttributeVisitor.BOOLEAN_ARRAY;
import static datadog.trace.bootstrap.otlp.common.OtlpAttributeVisitor.DOUBLE;
import static datadog.trace.bootstrap.otlp.common.OtlpAttributeVisitor.DOUBLE_ARRAY;
import static datadog.trace.bootstrap.otlp.common.OtlpAttributeVisitor.LONG;
import static datadog.trace.bootstrap.otlp.common.OtlpAttributeVisitor.LONG_ARRAY;
import static datadog.trace.bootstrap.otlp.common.OtlpAttributeVisitor.STRING;
import static datadog.trace.bootstrap.otlp.common.OtlpAttributeVisitor.STRING_ARRAY;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;

Expand Down
Loading
Loading