Class: Google::Apis::CloudtraceV1::TraceSpan

Inherits:
Object
  • Object
show all
Includes:
Google::Apis::Core::Hashable, Google::Apis::Core::JsonObjectSupport
Defined in:
generated/google/apis/cloudtrace_v1/classes.rb,
generated/google/apis/cloudtrace_v1/representations.rb,
generated/google/apis/cloudtrace_v1/representations.rb

Overview

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.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Google::Apis::Core::JsonObjectSupport

#to_json

Methods included from Google::Apis::Core::Hashable

process_value, #to_h

Constructor Details

#initialize(**args) ⇒ TraceSpan

Returns a new instance of TraceSpan



124
125
126
# File 'generated/google/apis/cloudtrace_v1/classes.rb', line 124

def initialize(**args)
   update!(**args)
end

Instance Attribute Details

#end_timeString

End time of the span in nanoseconds from the UNIX epoch. Corresponds to the JSON property endTime

Returns:

  • (String)


77
78
79
# File 'generated/google/apis/cloudtrace_v1/classes.rb', line 77

def end_time
  @end_time
end

#kindString

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. Corresponds to the JSON property kind

Returns:

  • (String)


89
90
91
# File 'generated/google/apis/cloudtrace_v1/classes.rb', line 89

def kind
  @kind
end

#labelsHash<String,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/redirected_url
  • /http/request/size
  • /http/response/size
  • /http/status_code
  • /http/url
  • /http/user_agent
  • /pid
  • /stacktrace
  • /tid Corresponds to the JSON property labels

Returns:

  • (Hash<String,String>)


122
123
124
# File 'generated/google/apis/cloudtrace_v1/classes.rb', line 122

def labels
  @labels
end

#nameString

Name of the span. Must be less than 128 bytes. The span name is sanitized and displayed in the Stackdriver Trace tool in the % dynamic print site_values.console_name %. 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. Corresponds to the JSON property name

Returns:

  • (String)


61
62
63
# File 'generated/google/apis/cloudtrace_v1/classes.rb', line 61

def name
  @name
end

#parent_span_idFixnum

ID of the parent span, if any. Optional. Corresponds to the JSON property parentSpanId

Returns:

  • (Fixnum)


72
73
74
# File 'generated/google/apis/cloudtrace_v1/classes.rb', line 72

def parent_span_id
  @parent_span_id
end

#span_idFixnum

Identifier for the span. Must be a 64-bit integer other than 0 and unique within a trace. Corresponds to the JSON property spanId

Returns:

  • (Fixnum)


67
68
69
# File 'generated/google/apis/cloudtrace_v1/classes.rb', line 67

def span_id
  @span_id
end

#start_timeString

Start time of the span in nanoseconds from the UNIX epoch. Corresponds to the JSON property startTime

Returns:

  • (String)


82
83
84
# File 'generated/google/apis/cloudtrace_v1/classes.rb', line 82

def start_time
  @start_time
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



129
130
131
132
133
134
135
136
137
# File 'generated/google/apis/cloudtrace_v1/classes.rb', line 129

def update!(**args)
  @name = args[:name] if args.key?(:name)
  @span_id = args[:span_id] if args.key?(:span_id)
  @parent_span_id = args[:parent_span_id] if args.key?(:parent_span_id)
  @end_time = args[:end_time] if args.key?(:end_time)
  @start_time = args[:start_time] if args.key?(:start_time)
  @kind = args[:kind] if args.key?(:kind)
  @labels = args[:labels] if args.key?(:labels)
end