Skip to content

Commit

Permalink
feature: Add LogRecord Support (#16)
Browse files Browse the repository at this point in the history
  • Loading branch information
DoubleTK authored Nov 16, 2024
1 parent 6a66722 commit 5c264cb
Show file tree
Hide file tree
Showing 18 changed files with 451 additions and 268 deletions.
24 changes: 17 additions & 7 deletions odddotproto/proto/common/v1/common.proto
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,29 @@ syntax = "proto3";
package odddotnet.proto.common.v1;

option csharp_namespace = "OddDotNet.Proto.Common.V1";
option java_multiple_files = true;
option java_package = "io.odddotnet.proto.common.v1";
option java_outer_classname = "CommonProto";
option go_package = "go.odddotnet.io/proto/otlp/common/v1";

message Take {
oneof value {
TakeFirst takeFirst = 1;
TakeAll takeAll = 2;
TakeExact takeExact = 3;
TakeFirst take_first = 1;
TakeAll take_all = 2;
TakeExact take_exact = 3;
}
}

message TakeFirst {}
message TakeFirst {
}

message TakeAll {}
message TakeAll {
}

message TakeExact { int32 count = 1; }
message TakeExact {
int32 count = 1;
}

message Duration { int32 milliseconds = 1; }
message Duration {
int32 milliseconds = 1;
}
20 changes: 12 additions & 8 deletions odddotproto/proto/common/v1/filters.proto
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,19 @@ syntax = "proto3";

package odddotnet.proto.common.v1;

option csharp_namespace = "OddDotNet.Proto.Common.V1";

import "odddotproto/proto/common/v1/properties.proto";

option csharp_namespace = "OddDotNet.Proto.Common.V1";
option java_multiple_files = true;
option java_package = "io.odddotnet.proto.common.v1";
option java_outer_classname = "CommonProto";
option go_package = "go.odddotnet.io/proto/otlp/common/v1";

message InstrumentationScopeFilter {
oneof value {
odddotnet.proto.common.v1.StringProperty name = 1;
odddotnet.proto.common.v1.KeyValueProperty attribute = 2;
odddotnet.proto.common.v1.StringProperty version = 3;
odddotnet.proto.common.v1.UInt32Property droppedAttributesCount = 4;
}
oneof value {
odddotnet.proto.common.v1.StringProperty name = 1;
odddotnet.proto.common.v1.KeyValueProperty attribute = 2;
odddotnet.proto.common.v1.StringProperty version = 3;
odddotnet.proto.common.v1.UInt32Property dropped_attributes_count = 4;
}
}
162 changes: 88 additions & 74 deletions odddotproto/proto/common/v1/properties.proto
Original file line number Diff line number Diff line change
Expand Up @@ -3,94 +3,108 @@ syntax = "proto3";
package odddotnet.proto.common.v1;

option csharp_namespace = "OddDotNet.Proto.Common.V1";
option java_multiple_files = true;
option java_package = "io.odddotnet.proto.common.v1";
option java_outer_classname = "CommonProto";
option go_package = "go.odddotnet.io/proto/otlp/common/v1";

message StringProperty {
StringCompareAsType compareAs = 1;
optional string compare = 2;
}
StringCompareAsType compare_as = 1;
optional string compare = 2;
}

message ByteStringProperty {
ByteStringCompareAsType compareAs = 1;
optional bytes compare = 2;
}
message ByteStringProperty {
ByteStringCompareAsType compare_as = 1;
optional bytes compare = 2;
}

message BoolProperty {
BoolCompareAsType compareAs = 1;
optional bool compare = 2;
}
message BoolProperty {
BoolCompareAsType compare_as = 1;
optional bool compare = 2;
}

message UInt64Property {
NumberCompareAsType compareAs = 1;
optional fixed64 compare = 2;
}
message UInt64Property {
NumberCompareAsType compare_as = 1;
optional fixed64 compare = 2;
}

message UInt32Property {
NumberCompareAsType compareAs = 1;
optional uint32 compare = 2;
}
message UInt32Property {
NumberCompareAsType compare_as = 1;
optional uint32 compare = 2;
}

message Int64Property {
NumberCompareAsType compareAs = 1;
optional int64 compare = 2;
}
message Int64Property {
NumberCompareAsType compare_as = 1;
optional int64 compare = 2;
}

message Int32Property {
NumberCompareAsType compareAs = 1;
optional int32 compare = 2;
}
message Int32Property {
NumberCompareAsType compare_as = 1;
optional int32 compare = 2;
}

message DoubleProperty {
NumberCompareAsType compareAs = 1;
optional double compare = 2;
}
message DoubleProperty {
NumberCompareAsType compare_as = 1;
optional double compare = 2;
}

message KeyValueProperty {
string key = 1;
oneof value {
StringProperty stringValue = 2;
BoolProperty boolValue = 3;
Int64Property int64Value = 4;
DoubleProperty doubleValue = 5;
ByteStringProperty byteStringValue = 6;
}
message KeyValueProperty {
string key = 1;
oneof value {
StringProperty string_value = 2;
BoolProperty bool_value = 3;
Int64Property int_6_4_value = 4;
DoubleProperty double_value = 5;
ByteStringProperty byte_string_value = 6;
}
}

enum NumberCompareAsType {
NUMBER_COMPARE_AS_TYPE_NONE = 0;
NUMBER_COMPARE_AS_TYPE_EQUALS = 1;
NUMBER_COMPARE_AS_TYPE_NOT_EQUALS = 2;
NUMBER_COMPARE_AS_TYPE_GREATER_THAN = 3;
NUMBER_COMPARE_AS_TYPE_GREATER_THAN_EQUALS = 4;
NUMBER_COMPARE_AS_TYPE_LESS_THAN = 5;
NUMBER_COMPARE_AS_TYPE_LESS_THAN_EQUALS = 6;
message AnyValueProperty {
oneof value {
StringProperty string_value = 2;
BoolProperty bool_value = 3;
Int64Property int64_value = 4;
DoubleProperty double_value = 5;
ByteStringProperty byte_string_value = 6;
}
}

enum EnumCompareAsType {
ENUM_COMPARE_AS_TYPE_NONE = 0;
ENUM_COMPARE_AS_TYPE_EQUALS = 1;
ENUM_COMPARE_AS_TYPE_NOT_EQUALS = 2;
}
enum NumberCompareAsType {
NUMBER_COMPARE_AS_TYPE_NONE_UNSPECIFIED = 0;
NUMBER_COMPARE_AS_TYPE_EQUALS = 1;
NUMBER_COMPARE_AS_TYPE_NOT_EQUALS = 2;
NUMBER_COMPARE_AS_TYPE_GREATER_THAN = 3;
NUMBER_COMPARE_AS_TYPE_GREATER_THAN_EQUALS = 4;
NUMBER_COMPARE_AS_TYPE_LESS_THAN = 5;
NUMBER_COMPARE_AS_TYPE_LESS_THAN_EQUALS = 6;
}

enum BoolCompareAsType {
BOOL_COMPARE_AS_TYPE_NONE = 0;
BOOL_COMPARE_AS_TYPE_EQUALS = 1;
BOOL_COMPARE_AS_TYPE_NOT_EQUALS = 2;
}
enum EnumCompareAsType {
ENUM_COMPARE_AS_TYPE_NONE_UNSPECIFIED = 0;
ENUM_COMPARE_AS_TYPE_EQUALS = 1;
ENUM_COMPARE_AS_TYPE_NOT_EQUALS = 2;
}

enum ByteStringCompareAsType {
BYTE_STRING_COMPARE_AS_TYPE_NONE = 0;
BYTE_STRING_COMPARE_AS_TYPE_EQUALS = 1;
BYTE_STRING_COMPARE_AS_TYPE_NOT_EQUALS = 2;
BYTE_STRING_COMPARE_AS_TYPE_EMPTY = 3;
BYTE_STRING_COMPARE_AS_TYPE_NOT_EMPTY = 4;
}
enum BoolCompareAsType {
BOOL_COMPARE_AS_TYPE_NONE_UNSPECIFIED = 0;
BOOL_COMPARE_AS_TYPE_EQUALS = 1;
BOOL_COMPARE_AS_TYPE_NOT_EQUALS = 2;
}

enum ByteStringCompareAsType {
BYTE_STRING_COMPARE_AS_TYPE_NONE_UNSPECIFIED = 0;
BYTE_STRING_COMPARE_AS_TYPE_EQUALS = 1;
BYTE_STRING_COMPARE_AS_TYPE_NOT_EQUALS = 2;
BYTE_STRING_COMPARE_AS_TYPE_EMPTY = 3;
BYTE_STRING_COMPARE_AS_TYPE_NOT_EMPTY = 4;
}

enum StringCompareAsType {
STRING_COMPARE_AS_TYPE_NONE = 0;
STRING_COMPARE_AS_TYPE_EQUALS = 1;
STRING_COMPARE_AS_TYPE_NOT_EQUALS = 2;
STRING_COMPARE_AS_TYPE_CONTAINS = 3;
STRING_COMPARE_AS_TYPE_NOT_CONTAINS = 4;
STRING_COMPARE_AS_TYPE_IS_EMPTY = 5;
STRING_COMPARE_AS_TYPE_IS_NOT_EMPTY = 6;
}
enum StringCompareAsType {
STRING_COMPARE_AS_TYPE_NONE_UNSPECIFIED = 0;
STRING_COMPARE_AS_TYPE_EQUALS = 1;
STRING_COMPARE_AS_TYPE_NOT_EQUALS = 2;
STRING_COMPARE_AS_TYPE_CONTAINS = 3;
STRING_COMPARE_AS_TYPE_NOT_CONTAINS = 4;
STRING_COMPARE_AS_TYPE_IS_EMPTY = 5;
STRING_COMPARE_AS_TYPE_IS_NOT_EMPTY = 6;
}
21 changes: 21 additions & 0 deletions odddotproto/proto/logs/v1/flat_log.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
syntax = "proto3";

package odddotnet.proto.logs.v1;

import "opentelemetry/proto/common/v1/common.proto";
import "opentelemetry/proto/resource/v1/resource.proto";
import "opentelemetry/proto/logs/v1/logs.proto";

option csharp_namespace = "OddDotNet.Proto.Logs.V1";
option java_multiple_files = true;
option java_package = "io.odddotnet.proto.logs.v1";
option java_outer_classname = "LogsProto";
option go_package = "go.odddotnet.io/proto/otlp/logs/v1";

message FlatLog {
opentelemetry.proto.logs.v1.LogRecord log = 1;
opentelemetry.proto.resource.v1.Resource resource = 2;
opentelemetry.proto.common.v1.InstrumentationScope instrumentation_scope = 3;
string resource_schema_url = 4;
string instrumentation_scope_schema_url = 5;
}
57 changes: 57 additions & 0 deletions odddotproto/proto/logs/v1/log_query_request.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
syntax = "proto3";

package odddotnet.proto.logs.v1;

import "odddotproto/proto/common/v1/common.proto";
import "odddotproto/proto/common/v1/filters.proto";
import "odddotproto/proto/common/v1/properties.proto";
import "odddotproto/proto/resource/v1/resource_filters.proto";
import "opentelemetry/proto/logs/v1/logs.proto";

option csharp_namespace = "OddDotNet.Proto.Logs.V1";
option java_multiple_files = true;
option java_package = "io.odddotnet.proto.logs.v1";
option java_outer_classname = "LogsProto";
option go_package = "go.odddotnet.io/proto/otlp/logs/v1";

message LogQueryRequest {
repeated Where filters = 1;
odddotnet.proto.common.v1.Take take = 2;
optional odddotnet.proto.common.v1.Duration duration = 3;
}

message Where {
oneof value {
PropertyFilter property = 1;
OrFilter or = 2;
odddotnet.proto.common.v1.InstrumentationScopeFilter instrumentation_scope = 3;
odddotnet.proto.resource.v1.ResourceFilter resource = 4;
odddotnet.proto.common.v1.StringProperty instrumentation_scope_schema_url = 5;
odddotnet.proto.common.v1.StringProperty resource_schema_url = 6;
}
}

message PropertyFilter {
reserved 4;
oneof value {
odddotnet.proto.common.v1.UInt64Property time_unix_nano = 1;
odddotnet.proto.common.v1.UInt64Property observed_time_unix_nano = 11;
SeverityNumberProperty severity_number = 2;
odddotnet.proto.common.v1.StringProperty severity_text = 3;
odddotnet.proto.common.v1.AnyValueProperty body = 5;
odddotnet.proto.common.v1.KeyValueProperty attribute = 6;
odddotnet.proto.common.v1.UInt32Property dropped_attributes_count = 7;
odddotnet.proto.common.v1.UInt32Property flags = 8;
odddotnet.proto.common.v1.ByteStringProperty trace_id = 9;
odddotnet.proto.common.v1.ByteStringProperty span_id = 10;
}
}

message OrFilter {
repeated Where filters = 1;
}

message SeverityNumberProperty {
odddotnet.proto.common.v1.EnumCompareAsType compare_as = 1;
opentelemetry.proto.logs.v1.SeverityNumber compare = 2;
}
15 changes: 15 additions & 0 deletions odddotproto/proto/logs/v1/log_query_response.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
syntax = "proto3";

package odddotnet.proto.logs.v1;

import "odddotproto/proto/logs/v1/flat_log.proto";

option csharp_namespace = "OddDotNet.Proto.Logs.V1";
option java_multiple_files = true;
option java_package = "io.odddotnet.proto.logs.v1";
option java_outer_classname = "LogsProto";
option go_package = "go.odddotnet.io/proto/otlp/logs/v1";

message LogQueryResponse {
repeated FlatLog logs = 1;
}
16 changes: 16 additions & 0 deletions odddotproto/proto/logs/v1/log_query_service.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
syntax = "proto3";

package odddotnet.proto.logs.v1;

import "odddotproto/proto/logs/v1/log_query_request.proto";
import "odddotproto/proto/logs/v1/log_query_response.proto";

option csharp_namespace = "OddDotNet.Proto.Logs.V1";
option java_multiple_files = true;
option java_package = "io.odddotnet.proto.logs.v1";
option java_outer_classname = "LogsProto";
option go_package = "go.odddotnet.io/proto/otlp/logs/v1";

service LogQueryService {
rpc Query(LogQueryRequest) returns (LogQueryResponse);
}
22 changes: 13 additions & 9 deletions odddotproto/proto/metrics/v1/flat_metric.proto
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,20 @@ syntax = "proto3";

package odddotnet.proto.metrics.v1;

option csharp_namespace = "OddDotNet.Proto.Metrics.V1";

import "opentelemetry/proto/common/v1/common.proto";
import "opentelemetry/proto/metrics/v1/metrics.proto";
import "opentelemetry/proto/resource/v1/resource.proto";
import "opentelemetry/proto/common/v1/common.proto";

option csharp_namespace = "OddDotNet.Proto.Metrics.V1";
option java_multiple_files = true;
option java_package = "io.odddotnet.proto.metrics.v1";
option java_outer_classname = "MetricsProto";
option go_package = "go.odddotnet.io/proto/otlp/metrics/v1";

message FlatMetric {
opentelemetry.proto.metrics.v1.Metric metric = 1;
opentelemetry.proto.resource.v1.Resource resource = 2;
opentelemetry.proto.common.v1.InstrumentationScope instrumentationScope = 3;
string resourceSchemaUrl = 4;
string instrumentationScopeSchemaUrl = 5;
}
opentelemetry.proto.metrics.v1.Metric metric = 1;
opentelemetry.proto.resource.v1.Resource resource = 2;
opentelemetry.proto.common.v1.InstrumentationScope instrumentation_scope = 3;
string resource_schema_url = 4;
string instrumentation_scope_schema_url = 5;
}
Loading

0 comments on commit 5c264cb

Please sign in to comment.