// Copyright 2016 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

syntax = "proto3";

package google.devtools.cloudtrace.v1;

import "google/api/annotations.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/timestamp.proto";

option csharp_namespace = "Google.Cloud.Trace.V1";
option go_package = "google.golang.org/genproto/googleapis/devtools/cloudtrace/v1;cloudtrace";
option java_multiple_files = true;
option java_outer_classname = "TraceProto";
option java_package = "com.google.devtools.cloudtrace.v1";


// This file describes an API for collecting and viewing traces and spans
// within a trace.  A Trace is a collection of spans corresponding to a single
// operation or set of operations for an application. A span is an individual
// timed event which forms a node of the trace tree. Spans for a single trace
// may span multiple services.
service TraceService {
  // Returns of a list of traces that match the specified filter conditions.
  rpc ListTraces(ListTracesRequest) returns (ListTracesResponse) {
    option (google.api.http) = { get: "/v1/projects/{project_id}/traces" };
  }

  // Gets a single trace by its ID.
  rpc GetTrace(GetTraceRequest) returns (Trace) {
    option (google.api.http) = { get: "/v1/projects/{project_id}/traces/{trace_id}" };
  }

  // Sends new traces to Stackdriver Trace or updates existing traces. If the ID
  // of a trace that you send matches that of an existing trace, any fields
  // in the existing trace and its spans are overwritten by the provided values,
  // and any new fields provided are merged with the existing trace data. If the
  // ID does not match, a new trace is created.
  rpc PatchTraces(PatchTracesRequest) returns (google.protobuf.Empty) {
    option (google.api.http) = { patch: "/v1/projects/{project_id}/traces" body: "traces" };
  }
}

// A trace describes how long it takes for an application to perform an
// operation. It consists of a set of spans, each of which represent a single
// timed event within the operation.
message Trace {
  // Project ID of the Cloud project where the trace data is stored.
  string project_id = 1;

  // Globally unique identifier for the trace. This identifier is a 128-bit
  // numeric value formatted as a 32-byte hex string.
  string trace_id = 2;

  // Collection of spans in the trace.
  repeated TraceSpan spans = 3;
}

// List of new or updated traces.
message Traces {
  // List of traces.
  repeated Trace traces = 1;
}

// A span represents a single timed event within a trace. Spans can be nested
// and form a trace tree. Often, a trace contains a root span that describes the
// end-to-end latency of an operation and, optionally, one or more subspans for
// its suboperations. Spans do not need to be contiguous. There may be gaps
// between spans in a trace.
message TraceSpan {
  // Type of span. Can be used to specify additional relationships between spans
  // in addition to a parent/child relationship.
  enum SpanKind {
    // Unspecified.
    SPAN_KIND_UNSPECIFIED = 0;

    // Indicates that the span covers server-side handling of an RPC or other
    // remote network request.
    RPC_SERVER = 1;

    // Indicates that the span covers the client-side wrapper around an RPC or
    // other remote request.
    RPC_CLIENT = 2;
  }

  // Identifier for the span. Must be a 64-bit integer other than 0 and
  // unique within a trace.
  fixed64 span_id = 1;

  // Distinguishes between spans generated in a particular context. For example,
  // two spans with the same name may be distinguished using `RPC_CLIENT`
  // and `RPC_SERVER` to identify queueing latency associated with the span.
  SpanKind kind = 2;

  // Name of the trace. The trace name is sanitized and displayed in the
  // Stackdriver Trace tool in the Google Developers Console.
  // The name may be a method name or some other per-call site name.
  // For the same executable and the same call point, a best practice is
  // to use a consistent name, which makes it easier to correlate
  // cross-trace spans.
  string name = 3;

  // Start time of the span in nanoseconds from the UNIX epoch.
  google.protobuf.Timestamp start_time = 4;

  // End time of the span in nanoseconds from the UNIX epoch.
  google.protobuf.Timestamp end_time = 5;

  // ID of the parent span, if any. Optional.
  fixed64 parent_span_id = 6;

  // Collection of labels associated with the span.
  map<string, string> labels = 7;
}

// The request message for the `ListTraces` method. All fields are required
// unless specified.
message ListTracesRequest {
  // Type of data returned for traces in the list.
  enum ViewType {
    // Default is `MINIMAL` if unspecified.
    VIEW_TYPE_UNSPECIFIED = 0;

    // Minimal view of the trace record that contains only the project
    // and trace IDs.
    MINIMAL = 1;

    // Root span view of the trace record that returns the root spans along
    // with the minimal trace data.
    ROOTSPAN = 2;

    // Complete view of the trace record that contains the actual trace data.
    // This is equivalent to calling the REST `get` or RPC `GetTrace` method
    // using the ID of each listed trace.
    COMPLETE = 3;
  }

  // ID of the Cloud project where the trace data is stored.
  string project_id = 1;

  // Type of data returned for traces in the list. Optional. Default is
  // `MINIMAL`.
  ViewType view = 2;

  // Maximum number of traces to return. If not specified or <= 0, the
  // implementation selects a reasonable value.  The implementation may
  // return fewer traces than the requested page size. Optional.
  int32 page_size = 3;

  // Token identifying the page of results to return. If provided, use the
  // value of the `next_page_token` field from a previous request. Optional.
  string page_token = 4;

  // End of the time interval (inclusive) during which the trace data was
  // collected from the application.
  google.protobuf.Timestamp start_time = 5;

  // Start of the time interval (inclusive) during which the trace data was
  // collected from the application.
  google.protobuf.Timestamp end_time = 6;

  // An optional filter for the request.
  string filter = 7;

  // Field used to sort the returned traces. Optional.
  // Can be one of the following:
  //
  // *   `trace_id`
  // *   `name` (`name` field of root span in the trace)
  // *   `duration` (difference between `end_time` and `start_time` fields of
  //      the root span)
  // *   `start` (`start_time` field of the root span)
  //
  // Descending order can be specified by appending `desc` to the sort field
  // (for example, `name desc`).
  //
  // Only one sort field is permitted.
  string order_by = 8;
}

// The response message for the `ListTraces` method.
message ListTracesResponse {
  // List of trace records returned.
  repeated Trace traces = 1;

  // If defined, indicates that there are more traces that match the request
  // and that this value should be passed to the next request to continue
  // retrieving additional traces.
  string next_page_token = 2;
}

// The request message for the `GetTrace` method.
message GetTraceRequest {
  // ID of the Cloud project where the trace data is stored.
  string project_id = 1;

  // ID of the trace to return.
  string trace_id = 2;
}

// The request message for the `PatchTraces` method.
message PatchTracesRequest {
  // ID of the Cloud project where the trace data is stored.
  string project_id = 1;

  // The body of the message.
  Traces traces = 2;
}
