libdd-trace-protobuf 2.0.0

Protobuf utils for Datadog's traces serialization
Documentation
syntax = "proto3";

package remoteconfig;

option go_package = "pkg/proto/pbgo/core"; // golang

// Backend definitions

message File {
  string path = 1;
  bytes raw = 2;
}

// Client definitions

message Client {
  ClientState state = 1;
  string id = 2;
  repeated string products = 3;
  reserved 4, 5;
  bool is_tracer = 6;
  ClientTracer client_tracer = 7;
  bool is_agent = 8;
  ClientAgent client_agent = 9;
  uint64 last_seen = 10;
  bytes capabilities = 11;
}

message ClientTracer {
  string runtime_id = 1;
  string language = 2;
  string tracer_version = 3;
  string service = 4;
  repeated string extra_services = 8;
  string env = 5;
  string app_version = 6;
  repeated string tags = 7;
}

message ClientAgent {
  string name = 1;
  string version = 2;
  string cluster_name = 3;
  string cluster_id = 4;
  repeated string cws_workloads = 5;
}

message ConfigState {
  string id = 1;
  uint64 version = 2;
  string product = 3;
  uint64 apply_state = 4;
  string apply_error = 5;
}

message ClientState {
  uint64 root_version = 1;
  uint64 targets_version = 2;
  repeated ConfigState config_states = 3;
  bool has_error = 4;
  string error = 5;
  bytes backend_client_state = 6;
}

// Client queries

message TargetFileHash {
  string algorithm = 1;
  reserved 2; // old hash format
  string hash = 3;
}

message TargetFileMeta {
  string path = 1;
  int64 length = 2;
  repeated TargetFileHash hashes = 3;
}

message ClientGetConfigsRequest {
  Client client = 1;
  repeated TargetFileMeta cached_target_files = 2;
}

message ClientGetConfigsResponse {
  repeated bytes roots = 1;
  bytes targets = 2;
  repeated File target_files = 3;
  repeated string client_configs = 4;
}