REST Resource: projects.traces

Resource: Trace

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.

JSON representation
{
  "projectId": string,
  "traceId": string,
  "spans": [
    {
      object (TraceSpan)
    }
  ]
}
Fields
projectId

string

Project ID of the Cloud project where the trace data is stored.

traceId

string

Globally unique identifier for the trace. This identifier is a 128-bit numeric value formatted as a 32-byte hex string. For example, 382d4f4c6b7bb2f4a972559d9085001d. The numeric value should not be zero.

spans[]

object (TraceSpan)

Collection of spans in the trace.

TraceSpan

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.

JSON representation
{
  "spanId": string,
  "kind": enum (SpanKind),
  "name": string,
  "startTime": string,
  "endTime": string,
  "parentSpanId": string,
  "labels": {
    string: string,
    ...
  }
}
Fields
spanId

string (uint64 format)

Identifier for the span. Must be a 64-bit integer other than 0 and unique within a trace. For example, 2205310701640571284.

kind

enum (SpanKind)

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.

name

string

Name of the span. Must be less than 128 bytes. The span name is sanitized and displayed in the Trace tool in the Google Cloud Platform 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.

startTime

string (Timestamp format)

Start time of the span in nanoseconds from the UNIX epoch.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

endTime

string (Timestamp format)

End time of the span in nanoseconds from the UNIX epoch.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

parentSpanId

string (uint64 format)

Optional. ID of the parent span, if any.

labels

map (key: string, value: string)

Collection of labels associated with the span. Label keys must be less than 128 bytes. Label values must be less than 16 kilobytes (10MB for /stacktrace values).

Some predefined label keys exist, or you may create your own. When creating your own, we recommend the following formats:

  • /category/product/key for agents of well-known products (e.g. /db/mongodb/read_size).
  • short_host/path/key for domain-specific keys (e.g. foo.com/myproduct/bar)

Predefined labels include:

  • /agent
  • /component
  • /error/message
  • /error/name
  • /http/client_city
  • /http/client_country
  • /http/client_protocol
  • /http/client_region
  • /http/host
  • /http/method
  • /http/path
  • /http/redirected_url
  • /http/request/size
  • /http/response/size
  • /http/route
  • /http/status_code
  • /http/url
  • /http/user_agent
  • /pid
  • /stacktrace
  • /tid

SpanKind

Type of span. Can be used to specify additional relationships between spans in addition to a parent/child relationship.

Enums
SPAN_KIND_UNSPECIFIED Unspecified.
RPC_SERVER Indicates that the span covers server-side handling of an RPC or other remote network request.
RPC_CLIENT Indicates that the span covers the client-side wrapper around an RPC or other remote request.

Methods

get

Gets a single trace by its ID.

list

Returns a list of traces that match the specified filter conditions.