diff --git a/.gitignore b/.gitignore
index a606c48..57af72c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -406,6 +406,9 @@ FodyWeavers.xsd
**/.idea/shelf/*
**/.idea/dictionaries
**/.idea/httpRequests/
+**/.idea/encodings.xml
+**/.idea/indexLayout.xml
+**/.idea/projectSettingsUpdater.xml
# Sensitive or high-churn files
**/.idea/**/dataSources/
@@ -422,4 +425,7 @@ FodyWeavers.xsd
**/.idea/**/modules.xml
# Mac stuff
-.DS_Store
\ No newline at end of file
+.DS_Store
+
+# Protobuf selected output directory
+out
\ No newline at end of file
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..2790b48
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "submodules"]
+ path = submodules
+ url = https://github.com/open-telemetry/opentelemetry-proto.git
diff --git a/.idea/protoeditor.xml b/.idea/protoeditor.xml
new file mode 100644
index 0000000..8eb84f7
--- /dev/null
+++ b/.idea/protoeditor.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..719a058
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/odddotproto/proto/trace/v1/flat_span.proto b/odddotproto/proto/trace/v1/flat_span.proto
new file mode 100644
index 0000000..3a9ef95
--- /dev/null
+++ b/odddotproto/proto/trace/v1/flat_span.proto
@@ -0,0 +1,17 @@
+syntax = "proto3";
+
+package odddotnet.proto.trace.v1;
+
+option csharp_namespace = "OddDotNet.Proto.Trace.V1";
+
+import "opentelemetry/proto/trace/v1/trace.proto";
+import "opentelemetry/proto/resource/v1/resource.proto";
+import "opentelemetry/proto/common/v1/common.proto";
+
+message FlatSpan {
+ opentelemetry.proto.trace.v1.Span span = 1;
+ opentelemetry.proto.resource.v1.Resource resource = 2;
+ opentelemetry.proto.common.v1.InstrumentationScope instrumentationScope = 3;
+ string resourceSchemaUrl = 4;
+ string instrumentationScopeSchemaUrl = 5;
+}
\ No newline at end of file
diff --git a/proto/spans/v1/span_query_request.proto b/odddotproto/proto/trace/v1/span_query_request.proto
similarity index 91%
rename from proto/spans/v1/span_query_request.proto
rename to odddotproto/proto/trace/v1/span_query_request.proto
index 10d65ab..d4904e4 100644
--- a/proto/spans/v1/span_query_request.proto
+++ b/odddotproto/proto/trace/v1/span_query_request.proto
@@ -1,14 +1,10 @@
syntax = "proto3";
-package odddotnet.proto.spans.v1;
+package odddotnet.proto.trace.v1;
-option csharp_namespace = "OddDotNet.Proto.Spans.V1";
-option java_multiple_files = true;
-option java_package = "com.odddotnet.proto.spans.v1";
-option java_outer_classname = "SpansProto";
-option go_package = "go.odddotnet.com/proto/otlp/spans/v1";
+option csharp_namespace = "OddDotNet.Proto.Trace.V1";
-import "proto/spans/v1/span.proto";
+import "opentelemetry/proto/trace/v1/trace.proto";
message SpanQueryRequest {
repeated WhereSpanFilter filters = 1;
@@ -119,12 +115,12 @@ message DoubleProperty {
message SpanStatusCodeProperty {
EnumCompareAsType compareAs = 1;
- SpanStatusCode compare = 2;
+ opentelemetry.proto.trace.v1.Status.StatusCode compare = 2;
}
message SpanKindProperty {
EnumCompareAsType compareAs = 1;
- SpanKind compare = 2;
+ opentelemetry.proto.trace.v1.Span.SpanKind compare = 2;
}
message KeyValueProperty {
diff --git a/odddotproto/proto/trace/v1/span_query_response.proto b/odddotproto/proto/trace/v1/span_query_response.proto
new file mode 100644
index 0000000..61bda6e
--- /dev/null
+++ b/odddotproto/proto/trace/v1/span_query_response.proto
@@ -0,0 +1,11 @@
+syntax = "proto3";
+
+package odddotnet.proto.trace.v1;
+
+option csharp_namespace = "OddDotNet.Proto.Trace.V1";
+
+import "flat_span.proto";
+
+message SpanQueryResponse {
+ repeated FlatSpan spans = 1;
+}
\ No newline at end of file
diff --git a/odddotproto/proto/trace/v1/span_query_service.proto b/odddotproto/proto/trace/v1/span_query_service.proto
new file mode 100644
index 0000000..0583acf
--- /dev/null
+++ b/odddotproto/proto/trace/v1/span_query_service.proto
@@ -0,0 +1,15 @@
+syntax = "proto3";
+
+package odddotnet.proto.trace.v1;
+
+option csharp_namespace = "OddDotNet.Proto.Trace.V1";
+
+import "span_query_request.proto";
+import "span_query_response.proto";
+import "span_reset_request.proto";
+import "span_reset_response.proto";
+
+service SpanQueryService {
+ rpc Query(SpanQueryRequest) returns (SpanQueryResponse);
+ rpc Reset(SpanResetRequest) returns (SpanResetResponse);
+}
\ No newline at end of file
diff --git a/odddotproto/proto/trace/v1/span_reset_request.proto b/odddotproto/proto/trace/v1/span_reset_request.proto
new file mode 100644
index 0000000..bdd3078
--- /dev/null
+++ b/odddotproto/proto/trace/v1/span_reset_request.proto
@@ -0,0 +1,7 @@
+syntax = "proto3";
+
+package odddotnet.proto.trace.v1;
+
+option csharp_namespace = "OddDotNet.Proto.Trace.V1";
+
+message SpanResetRequest{}
\ No newline at end of file
diff --git a/odddotproto/proto/trace/v1/span_reset_response.proto b/odddotproto/proto/trace/v1/span_reset_response.proto
new file mode 100644
index 0000000..0733584
--- /dev/null
+++ b/odddotproto/proto/trace/v1/span_reset_response.proto
@@ -0,0 +1,7 @@
+syntax = "proto3";
+
+package odddotnet.proto.trace.v1;
+
+option csharp_namespace = "OddDotNet.Proto.Trace.V1";
+
+message SpanResetResponse{}
\ No newline at end of file
diff --git a/proto/spans/v1/span.proto b/proto/spans/v1/span.proto
deleted file mode 100644
index edfe0b7..0000000
--- a/proto/spans/v1/span.proto
+++ /dev/null
@@ -1,96 +0,0 @@
-syntax = "proto3";
-
-package odddotnet.proto.spans.v1;
-
-option csharp_namespace = "OddDotNet.Proto.Spans.V1";
-option java_multiple_files = true;
-option java_package = "com.odddotnet.proto.spans.v1";
-option java_outer_classname = "SpansProto";
-option go_package = "go.odddotnet.com/proto/otlp/spans/v1";
-
-message Span {
- InstrumentationScope instrumentationScope = 1;
- string name = 2;
- map attributes = 3;
- repeated SpanEvent events = 4;
- uint32 flags = 5;
- SpanKind Kind = 6;
- repeated SpanLink links = 7;
- SpanStatus status = 8;
- bytes spanId = 9;
- bytes traceId = 10;
- string traceState = 11;
- bytes parentSpanId = 12;
- uint64 startTimeUnixNano = 13;
- uint64 endTimeUnixNano = 14;
-}
-
-message InstrumentationScope {
- string name = 1;
- map attributes = 2;
- string version = 3;
- string schemaUrl = 4;
- Resource resource = 5;
-}
-
-message Resource {
- map attributes = 1;
- string schemaUrl = 2;
-}
-
-message SpanEvent {
- string name = 1;
- map attributes = 2;
- uint64 timeUnixNano = 3;
-}
-
-enum SpanKind {
- UNSPECIFIED = 0;
- INTERNAL = 1;
- SERVER = 2;
- CLIENT = 3;
- PRODUCER = 4;
- CONSUMER = 5;
-}
-
-message SpanLink {
- bytes spanId = 1;
- map attributes = 2;
- uint32 flags = 3;
- bytes traceId = 4;
- string traceState = 5;
-}
-
-message SpanStatus {
- SpanStatusCode code = 1;
- optional string message = 2;
-}
-
-enum SpanStatusCode {
- UNSET = 0;
- OK = 1;
- ERROR = 2;
-}
-
-// AnyValue is used to represent any type of attribute value. AnyValue may contain a
-// primitive value such as a string or integer or it may contain an arbitrary nested
-// object containing arrays, key-value lists and primitives.
-message AnyValue {
- // The value is one of the listed fields. It is valid for all values to be unspecified
- // in which case this AnyValue is considered to be "empty".
- oneof value {
- string string_value = 1;
- bool bool_value = 2;
- int64 int_value = 3;
- double double_value = 5;
- ArrayValue array_value = 6;
- bytes bytes_value = 7;
- }
-}
-
-// ArrayValue is a list of AnyValue messages. We need ArrayValue as a message
-// since oneof in AnyValue does not allow repeated fields.
-message ArrayValue {
- // Array of values. The array may be empty (contain 0 elements).
- repeated AnyValue values = 1;
-}
\ No newline at end of file
diff --git a/proto/spans/v1/span_query_response.proto b/proto/spans/v1/span_query_response.proto
deleted file mode 100644
index 2de00eb..0000000
--- a/proto/spans/v1/span_query_response.proto
+++ /dev/null
@@ -1,15 +0,0 @@
-syntax = "proto3";
-
-package odddotnet.proto.spans.v1;
-
-option csharp_namespace = "OddDotNet.Proto.Spans.V1";
-option java_multiple_files = true;
-option java_package = "com.odddotnet.proto.spans.v1";
-option java_outer_classname = "SpansProto";
-option go_package = "go.odddotnet.com/proto/otlp/spans/v1";
-
-import "proto/spans/v1/span.proto";
-
-message SpanQueryResponse {
- repeated Span spans = 1;
-}
\ No newline at end of file
diff --git a/proto/spans/v1/span_query_service.proto b/proto/spans/v1/span_query_service.proto
deleted file mode 100644
index 3228d7d..0000000
--- a/proto/spans/v1/span_query_service.proto
+++ /dev/null
@@ -1,19 +0,0 @@
-syntax = "proto3";
-
-package odddotnet.proto.spans.v1;
-
-option csharp_namespace = "OddDotNet.Proto.Spans.V1";
-option java_multiple_files = true;
-option java_package = "com.odddotnet.proto.spans.v1";
-option java_outer_classname = "SpansProto";
-option go_package = "go.odddotnet.com/proto/otlp/spans/v1";
-
-import "proto/spans/v1/span_query_request.proto";
-import "proto/spans/v1/span_query_response.proto";
-import "proto/spans/v1/span_reset_request.proto";
-import "proto/spans/v1/span_reset_response.proto";
-
-service SpanQueryService {
- rpc Query(SpanQueryRequest) returns (SpanQueryResponse);
- rpc Reset(SpanResetRequest) returns (SpanResetResponse);
-}
\ No newline at end of file
diff --git a/proto/spans/v1/span_reset_request.proto b/proto/spans/v1/span_reset_request.proto
deleted file mode 100644
index 52faf87..0000000
--- a/proto/spans/v1/span_reset_request.proto
+++ /dev/null
@@ -1,11 +0,0 @@
-syntax = "proto3";
-
-package odddotnet.proto.spans.v1;
-
-option csharp_namespace = "OddDotNet.Proto.Spans.V1";
-option java_multiple_files = true;
-option java_package = "com.odddotnet.proto.spans.v1";
-option java_outer_classname = "SpansProto";
-option go_package = "go.odddotnet.com/proto/otlp/spans/v1";
-
-message SpanResetRequest{}
\ No newline at end of file
diff --git a/proto/spans/v1/span_reset_response.proto b/proto/spans/v1/span_reset_response.proto
deleted file mode 100644
index 2692c67..0000000
--- a/proto/spans/v1/span_reset_response.proto
+++ /dev/null
@@ -1,11 +0,0 @@
-syntax = "proto3";
-
-package odddotnet.proto.spans.v1;
-
-option csharp_namespace = "OddDotNet.Proto.Spans.V1";
-option java_multiple_files = true;
-option java_package = "com.odddotnet.proto.spans.v1";
-option java_outer_classname = "SpansProto";
-option go_package = "go.odddotnet.com/proto/otlp/spans/v1";
-
-message SpanResetResponse{}
\ No newline at end of file
diff --git a/submodules b/submodules
new file mode 160000
index 0000000..a76fe9d
--- /dev/null
+++ b/submodules
@@ -0,0 +1 @@
+Subproject commit a76fe9dea26871e8a6c494024bc9927fe73b8142