syntax="proto3";

package tempopb;

message TraceByIDResponse {
  Trace trace = 1;
  TraceByIDMetrics metrics = 2;
}

message TraceByIDMetrics {
  uint32 failedBlocks = 1;
}

message SearchResponse {
  repeated TraceSearchMetadata traces = 1;
  SearchMetrics metrics = 2;
}

message TraceSearchMetadata {
  string traceID = 1;
  string rootServiceName = 2;
  string rootTraceName = 3;
  uint64 startTimeUnixNano = 4;
  uint32 durationMs = 5;
}

message SearchMetrics {
  uint32 inspectedTraces = 1;
  uint64 inspectedBytes = 2;
  uint32 inspectedBlocks = 3;
  uint32 skippedBlocks = 4;
}

message SearchTagsRequest {
}

message SearchTagsResponse {
  repeated string tagNames = 1;
}

message SearchTagValuesRequest {
  string tagName = 1;
}

message SearchTagValuesResponse {
  repeated string tagValues = 1;
}

message TraceBytes {
  // pre-marshalled Traces
  repeated bytes traces = 1;
}
