proto/aggregation.proto (109 lines of code) (raw):
syntax = "proto3";
package elastic.apm.v1;
option go_package = "./aggregationpb";
option optimize_for = SPEED;
message CombinedMetrics {
repeated KeyedServiceMetrics service_metrics = 1;
Overflow overflow_services = 2;
bytes overflow_services_estimator = 3;
double events_total = 4;
uint64 youngest_event_timestamp = 5;
}
message KeyedServiceMetrics {
ServiceAggregationKey key = 1;
ServiceMetrics metrics = 2;
}
message ServiceAggregationKey {
uint64 timestamp = 1;
string service_name = 2;
string service_environment = 3;
string service_language_name = 4;
string agent_name = 5;
bytes global_labels_str = 6;
}
message ServiceMetrics {
Overflow overflow_groups = 1;
repeated KeyedTransactionMetrics transaction_metrics = 2;
repeated KeyedServiceTransactionMetrics service_transaction_metrics = 3;
repeated KeyedSpanMetrics span_metrics = 4;
}
message KeyedTransactionMetrics {
TransactionAggregationKey key = 1;
TransactionMetrics metrics = 2;
}
message TransactionAggregationKey {
bool trace_root = 1;
string container_id = 2;
string kubernetes_pod_name = 3;
string service_version = 4;
string service_node_name = 5;
string service_runtime_name = 6;
string service_runtime_version = 7;
string service_language_version = 8;
string host_hostname = 9;
string host_name = 10;
string host_os_platform = 11;
string event_outcome = 12;
string transaction_name = 13;
string transaction_type = 14;
string transaction_result = 15;
uint32 faas_coldstart = 16;
string faas_id = 17;
string faas_name = 18;
string faas_version = 19;
string faas_trigger_type = 20;
string cloud_provider = 21;
string cloud_region = 22;
string cloud_availability_zone = 23;
string cloud_service_name = 24;
string cloud_account_id = 25;
string cloud_account_name = 26;
string cloud_machine_type = 27;
string cloud_project_id = 28;
string cloud_project_name = 29;
}
message TransactionMetrics {
HDRHistogram histogram = 1;
}
message KeyedServiceTransactionMetrics {
ServiceTransactionAggregationKey key = 1;
ServiceTransactionMetrics metrics = 2;
}
message ServiceTransactionAggregationKey {
string transaction_type = 1;
}
message ServiceTransactionMetrics {
HDRHistogram histogram = 1;
double failure_count = 2;
double success_count = 3;
}
message KeyedSpanMetrics {
SpanAggregationKey key = 1;
SpanMetrics metrics = 2;
}
message SpanAggregationKey {
string span_name = 1;
string outcome = 2;
string target_type = 3;
string target_name = 4;
string resource = 5;
}
message SpanMetrics {
double count = 1;
double sum = 2;
}
message Overflow {
TransactionMetrics overflow_transactions = 1;
ServiceTransactionMetrics overflow_service_transactions = 2;
SpanMetrics overflow_spans = 3;
bytes overflow_transactions_estimator = 4;
bytes overflow_service_transactions_estimator = 5;
bytes overflow_spans_estimator = 6;
}
message HDRHistogram {
int64 lowest_trackable_value = 1;
int64 highest_trackable_value = 2;
int64 significant_figures = 3;
repeated int64 counts = 4;
repeated int32 buckets = 5;
}