diff --git a/.github/workflows/verify-proto-files.yml b/.github/workflows/verify-proto-files.yml index 0e7b570bdc..6a9a00b525 100644 --- a/.github/workflows/verify-proto-files.yml +++ b/.github/workflows/verify-proto-files.yml @@ -3,7 +3,7 @@ on: pull_request: types: [ opened, synchronize, reopened ] env: - DATADOG_AGENT_TAG: "7f6d07c93ba087f23f80a3f0c2da4b1f3dc664d7" + DATADOG_AGENT_TAG: "bdcdd8cf1ba4090a29b96d5669cfab5dd81814b1" rust_version: "1.84.1" CARGO_TERM_COLOR: always CARGO_INCREMENTAL: 0 diff --git a/libdd-trace-protobuf/build.rs b/libdd-trace-protobuf/build.rs index 6806c0c0b9..ae0eef29ae 100644 --- a/libdd-trace-protobuf/build.rs +++ b/libdd-trace-protobuf/build.rs @@ -176,6 +176,11 @@ fn generate_protobuf() { "ClientGroupedStats.HTTP_endpoint", "#[serde(default)] #[serde(rename = \"HTTPEndpoint\")]", ); + config.field_attribute("ClientGroupedStats.service_source", "#[serde(default)]"); + config.field_attribute( + "ClientGroupedStats.span_derived_primary_tags", + "#[serde(default)]", + ); config.field_attribute( "ClientGroupedStats.okSummary", diff --git a/libdd-trace-protobuf/src/pb.rs b/libdd-trace-protobuf/src/pb.rs index 50167c9da1..c242c1b131 100644 --- a/libdd-trace-protobuf/src/pb.rs +++ b/libdd-trace-protobuf/src/pb.rs @@ -646,6 +646,18 @@ pub struct ClientGroupedStats { #[serde(default)] #[serde(rename = "HTTPEndpoint")] pub http_endpoint: ::prost::alloc::string::String, + /// @inject_tag: msg:"srv_src" + #[prost(string, tag = "21")] + #[serde(default)] + pub service_source: ::prost::alloc::string::String, + /// used to identify service override origin + /// span_derived_primary_tags are user-configured tags that are extracted from spans and used for stats aggregation + /// E.g., `aws.s3.bucket`, `http.url`, or any custom tag + #[prost(string, repeated, tag = "22")] + #[serde(default)] + pub span_derived_primary_tags: ::prost::alloc::vec::Vec< + ::prost::alloc::string::String, + >, } /// Trilean is an expanded boolean type that is meant to differentiate between being unset and false. #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] diff --git a/libdd-trace-protobuf/src/pb/stats.proto b/libdd-trace-protobuf/src/pb/stats.proto index f86d727a26..e5b5a24fca 100644 --- a/libdd-trace-protobuf/src/pb/stats.proto +++ b/libdd-trace-protobuf/src/pb/stats.proto @@ -103,4 +103,9 @@ message ClientGroupedStats { string GRPC_status_code = 18; string HTTP_method = 19; // HTTP method of the request string HTTP_endpoint = 20; // Http route or quantized/simplified URL path + string service_source = 21; // @inject_tag: msg:"srv_src" + // used to identify service override origin + // span_derived_primary_tags are user-configured tags that are extracted from spans and used for stats aggregation + // E.g., `aws.s3.bucket`, `http.url`, or any custom tag + repeated string span_derived_primary_tags = 22; } diff --git a/libdd-trace-protobuf/src/pb_test.rs b/libdd-trace-protobuf/src/pb_test.rs index 09e1df8bc0..4d0672c4a5 100644 --- a/libdd-trace-protobuf/src/pb_test.rs +++ b/libdd-trace-protobuf/src/pb_test.rs @@ -112,6 +112,8 @@ mod tests { grpc_status_code: "0".to_string(), http_endpoint: "/test".to_string(), http_method: "GET".to_string(), + service_source: "".to_string(), + span_derived_primary_tags: vec![], }], agent_time_shift: 0, }], diff --git a/libdd-trace-stats/src/span_concentrator/aggregation.rs b/libdd-trace-stats/src/span_concentrator/aggregation.rs index 07863b3a98..26171fbb14 100644 --- a/libdd-trace-stats/src/span_concentrator/aggregation.rs +++ b/libdd-trace-stats/src/span_concentrator/aggregation.rs @@ -295,7 +295,9 @@ fn encode_grouped_stats(key: OwnedAggregationKey, group: GroupedStats) -> pb::Cl }, http_method: key.http_method, http_endpoint: key.http_endpoint, - grpc_status_code: String::new(), // currently not used + grpc_status_code: String::new(), // currently not used + service_source: String::new(), // set by the agent + span_derived_primary_tags: vec![], // set by the agent } } diff --git a/libdd-trace-utils/src/stats_utils.rs b/libdd-trace-utils/src/stats_utils.rs index 5321946684..fe559a2692 100644 --- a/libdd-trace-utils/src/stats_utils.rs +++ b/libdd-trace-utils/src/stats_utils.rs @@ -209,6 +209,8 @@ mod mini_agent_tests { grpc_status_code: "0".to_string(), http_endpoint: "/test".to_string(), http_method: "GET".to_string(), + service_source: "".to_string(), + span_derived_primary_tags: vec![], }], agent_time_shift: 0, }],