Package tracing
Overview ▹
Index ▹
Variables
var Span_Link_Type_name = map[int32]string{ 0: "UNSPECIFIED", 1: "CHILD", 2: "PARENT", }
var Span_Link_Type_value = map[string]int32{ "UNSPECIFIED": 0, "CHILD": 1, "PARENT": 2, }
var Span_TimeEvent_NetworkEvent_Type_name = map[int32]string{ 0: "UNSPECIFIED", 1: "SENT", 2: "RECV", }
var Span_TimeEvent_NetworkEvent_Type_value = map[string]int32{ "UNSPECIFIED": 0, "SENT": 1, "RECV": 2, }
type LabelValue ¶
Allowed label values.
type LabelValue struct { // The value of the label. // // Types that are valid to be assigned to Value: // *LabelValue_StringValue // *LabelValue_IntValue // *LabelValue_BoolValue Value isLabelValue_Value `protobuf_oneof:"value"` }
func (*LabelValue) Descriptor ¶
func (*LabelValue) Descriptor() ([]byte, []int)
func (*LabelValue) GetBoolValue ¶
func (m *LabelValue) GetBoolValue() bool
func (*LabelValue) GetIntValue ¶
func (m *LabelValue) GetIntValue() int64
func (*LabelValue) GetStringValue ¶
func (m *LabelValue) GetStringValue() string
func (*LabelValue) GetValue ¶
func (m *LabelValue) GetValue() isLabelValue_Value
func (*LabelValue) ProtoMessage ¶
func (*LabelValue) ProtoMessage()
func (*LabelValue) Reset ¶
func (m *LabelValue) Reset()
func (*LabelValue) String ¶
func (m *LabelValue) String() string
func (*LabelValue) XXX_OneofFuncs ¶
func (*LabelValue) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{})
XXX_OneofFuncs is for the internal use of the proto package.
type LabelValue_BoolValue ¶
type LabelValue_BoolValue struct { BoolValue bool `protobuf:"varint,3,opt,name=bool_value,json=boolValue,oneof"` }
type LabelValue_IntValue ¶
type LabelValue_IntValue struct { IntValue int64 `protobuf:"varint,2,opt,name=int_value,json=intValue,oneof"` }
type LabelValue_StringValue ¶
type LabelValue_StringValue struct { StringValue string `protobuf:"bytes,1,opt,name=string_value,json=stringValue,oneof"` }
type Module ¶
type Module struct { // Binary module. // E.g. main binary, kernel modules, and dynamic libraries // such as libc.so, sharedlib.so Module string `protobuf:"bytes,1,opt,name=module" json:"module,omitempty"` // Build_id is a unique identifier for the module, // probably a hash of its contents BuildId string `protobuf:"bytes,2,opt,name=build_id,json=buildId" json:"build_id,omitempty"` }
func (*Module) Descriptor ¶
func (*Module) Descriptor() ([]byte, []int)
func (*Module) GetBuildId ¶
func (m *Module) GetBuildId() string
func (*Module) GetModule ¶
func (m *Module) GetModule() string
func (*Module) ProtoMessage ¶
func (*Module) ProtoMessage()
func (*Module) Reset ¶
func (m *Module) Reset()
func (*Module) String ¶
func (m *Module) String() string
type Span ¶
A span represents a single operation 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 and, optionally, one or more subspans for its sub-operations. Spans do not need to be contiguous. There may be gaps between spans in a trace.
type Span struct { // Identifier for the span. Must be a 64-bit integer other than 0 and // unique within a trace. Id uint64 `protobuf:"fixed64,1,opt,name=id" json:"id,omitempty"` // Name of the span. 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. Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` // ID of parent span. 0 or missing if this is a root span. ParentId uint64 `protobuf:"fixed64,3,opt,name=parent_id,json=parentId" json:"parent_id,omitempty"` // Local machine clock in nanoseconds from the UNIX epoch, // at which span execution started. // On the server side these are the times when the server application // handler starts running. LocalStartTime *google_protobuf1.Timestamp `protobuf:"bytes,4,opt,name=local_start_time,json=localStartTime" json:"local_start_time,omitempty"` // Local machine clock in nanoseconds from the UNIX epoch, // at which span execution ended. // On the server side these are the times when the server application // handler finishes running. LocalEndTime *google_protobuf1.Timestamp `protobuf:"bytes,5,opt,name=local_end_time,json=localEndTime" json:"local_end_time,omitempty"` // Properties of a span. Labels at the span level. // E.g. // "/instance_id": "my-instance" // "/zone": "us-central1-a" // "/grpc/peer_address": "ip:port" (dns, etc.) // "/grpc/deadline": "Duration" // "/http/user_agent" // "/http/request_bytes": 300 // "/http/response_bytes": 1200 // "/http/url": google.com/apis // "/pid" // "abc.com/mylabel": "my label value" Labels map[string]*LabelValue `protobuf:"bytes,6,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // Stack trace captured at the start of the span. This is optional. StackTrace *StackTrace `protobuf:"bytes,7,opt,name=stack_trace,json=stackTrace" json:"stack_trace,omitempty"` // A collection of time-stamped events. TimeEvents []*Span_TimeEvent `protobuf:"bytes,8,rep,name=time_events,json=timeEvents" json:"time_events,omitempty"` // A collection of links. Links []*Span_Link `protobuf:"bytes,9,rep,name=links" json:"links,omitempty"` // The final status of the Span. This is optional. Status *google_rpc.Status `protobuf:"bytes,10,opt,name=status" json:"status,omitempty"` // True if this Span has a remote parent (is an RPC server Span). HasRemoteParent bool `protobuf:"varint,11,opt,name=has_remote_parent,json=hasRemoteParent" json:"has_remote_parent,omitempty"` }
func (*Span) Descriptor ¶
func (*Span) Descriptor() ([]byte, []int)
func (*Span) GetHasRemoteParent ¶
func (m *Span) GetHasRemoteParent() bool
func (*Span) GetId ¶
func (m *Span) GetId() uint64
func (*Span) GetLabels ¶
func (m *Span) GetLabels() map[string]*LabelValue
func (*Span) GetLinks ¶
func (m *Span) GetLinks() []*Span_Link
func (*Span) GetLocalEndTime ¶
func (m *Span) GetLocalEndTime() *google_protobuf1.Timestamp
func (*Span) GetLocalStartTime ¶
func (m *Span) GetLocalStartTime() *google_protobuf1.Timestamp
func (*Span) GetName ¶
func (m *Span) GetName() string
func (*Span) GetParentId ¶
func (m *Span) GetParentId() uint64
func (*Span) GetStackTrace ¶
func (m *Span) GetStackTrace() *StackTrace
func (*Span) GetStatus ¶
func (m *Span) GetStatus() *google_rpc.Status
func (*Span) GetTimeEvents ¶
func (m *Span) GetTimeEvents() []*Span_TimeEvent
func (*Span) ProtoMessage ¶
func (*Span) ProtoMessage()
func (*Span) Reset ¶
func (m *Span) Reset()
func (*Span) String ¶
func (m *Span) String() string
type Span_Link ¶
Link one span with another which may be in a different Trace. Used (for example) in batching operations, where a single batch handler processes multiple requests from different traces.
type Span_Link struct {
// The trace and span identifier of the linked span.
TraceId *TraceId `protobuf:"bytes,1,opt,name=trace_id,json=traceId" json:"trace_id,omitempty"`
SpanId uint64 `protobuf:"fixed64,2,opt,name=span_id,json=spanId" json:"span_id,omitempty"`
Type Span_Link_Type `protobuf:"varint,3,opt,name=type,enum=google.tracing.v1.Span_Link_Type" json:"type,omitempty"`
}
func (*Span_Link) Descriptor ¶
func (*Span_Link) Descriptor() ([]byte, []int)
func (*Span_Link) GetSpanId ¶
func (m *Span_Link) GetSpanId() uint64
func (*Span_Link) GetTraceId ¶
func (m *Span_Link) GetTraceId() *TraceId
func (*Span_Link) GetType ¶
func (m *Span_Link) GetType() Span_Link_Type
func (*Span_Link) ProtoMessage ¶
func (*Span_Link) ProtoMessage()
func (*Span_Link) Reset ¶
func (m *Span_Link) Reset()
func (*Span_Link) String ¶
func (m *Span_Link) String() string
type Span_Link_Type ¶
The type of the link.
type Span_Link_Type int32
const ( Span_Link_UNSPECIFIED Span_Link_Type = 0 Span_Link_CHILD Span_Link_Type = 1 Span_Link_PARENT Span_Link_Type = 2 )
func (Span_Link_Type) EnumDescriptor ¶
func (Span_Link_Type) EnumDescriptor() ([]byte, []int)
func (Span_Link_Type) String ¶
func (x Span_Link_Type) String() string
type Span_TimeEvent ¶
A time-stamped annotation in the Span.
type Span_TimeEvent struct { // The local machine absolute timestamp when this event happened. LocalTime *google_protobuf1.Timestamp `protobuf:"bytes,1,opt,name=local_time,json=localTime" json:"local_time,omitempty"` // Types that are valid to be assigned to Value: // *Span_TimeEvent_Annotation_ // *Span_TimeEvent_NetworkEvent_ Value isSpan_TimeEvent_Value `protobuf_oneof:"value"` }
func (*Span_TimeEvent) Descriptor ¶
func (*Span_TimeEvent) Descriptor() ([]byte, []int)
func (*Span_TimeEvent) GetAnnotation ¶
func (m *Span_TimeEvent) GetAnnotation() *Span_TimeEvent_Annotation
func (*Span_TimeEvent) GetLocalTime ¶
func (m *Span_TimeEvent) GetLocalTime() *google_protobuf1.Timestamp
func (*Span_TimeEvent) GetNetworkEvent ¶
func (m *Span_TimeEvent) GetNetworkEvent() *Span_TimeEvent_NetworkEvent
func (*Span_TimeEvent) GetValue ¶
func (m *Span_TimeEvent) GetValue() isSpan_TimeEvent_Value
func (*Span_TimeEvent) ProtoMessage ¶
func (*Span_TimeEvent) ProtoMessage()
func (*Span_TimeEvent) Reset ¶
func (m *Span_TimeEvent) Reset()
func (*Span_TimeEvent) String ¶
func (m *Span_TimeEvent) String() string
func (*Span_TimeEvent) XXX_OneofFuncs ¶
func (*Span_TimeEvent) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{})
XXX_OneofFuncs is for the internal use of the proto package.
type Span_TimeEvent_Annotation ¶
Text annotation with a set of labels.
type Span_TimeEvent_Annotation struct { // A user-supplied message describing the event. Description string `protobuf:"bytes,1,opt,name=description" json:"description,omitempty"` // A set of labels on the annotation. Labels map[string]*LabelValue `protobuf:"bytes,2,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` }
func (*Span_TimeEvent_Annotation) Descriptor ¶
func (*Span_TimeEvent_Annotation) Descriptor() ([]byte, []int)
func (*Span_TimeEvent_Annotation) GetDescription ¶
func (m *Span_TimeEvent_Annotation) GetDescription() string
func (*Span_TimeEvent_Annotation) GetLabels ¶
func (m *Span_TimeEvent_Annotation) GetLabels() map[string]*LabelValue
func (*Span_TimeEvent_Annotation) ProtoMessage ¶
func (*Span_TimeEvent_Annotation) ProtoMessage()
func (*Span_TimeEvent_Annotation) Reset ¶
func (m *Span_TimeEvent_Annotation) Reset()
func (*Span_TimeEvent_Annotation) String ¶
func (m *Span_TimeEvent_Annotation) String() string
type Span_TimeEvent_Annotation_ ¶
type Span_TimeEvent_Annotation_ struct { Annotation *Span_TimeEvent_Annotation `protobuf:"bytes,2,opt,name=annotation,oneof"` }
type Span_TimeEvent_NetworkEvent ¶
An event describing an RPC message sent/received on the network.
type Span_TimeEvent_NetworkEvent struct { // If available, this is the kernel time: // For sent messages, this is the time at which the first bit was sent. // For received messages, this is the time at which the last bit was // received. KernelTime *google_protobuf1.Timestamp `protobuf:"bytes,1,opt,name=kernel_time,json=kernelTime" json:"kernel_time,omitempty"` Type Span_TimeEvent_NetworkEvent_Type `protobuf:"varint,2,opt,name=type,enum=google.tracing.v1.Span_TimeEvent_NetworkEvent_Type" json:"type,omitempty"` // Every message has an identifier, that must be different from all the // network messages in this span. // This is very important when the request/response are streamed. MessageId uint64 `protobuf:"varint,3,opt,name=message_id,json=messageId" json:"message_id,omitempty"` // Number of bytes send/receive. MessageSize uint64 `protobuf:"varint,4,opt,name=message_size,json=messageSize" json:"message_size,omitempty"` }
func (*Span_TimeEvent_NetworkEvent) Descriptor ¶
func (*Span_TimeEvent_NetworkEvent) Descriptor() ([]byte, []int)
func (*Span_TimeEvent_NetworkEvent) GetKernelTime ¶
func (m *Span_TimeEvent_NetworkEvent) GetKernelTime() *google_protobuf1.Timestamp
func (*Span_TimeEvent_NetworkEvent) GetMessageId ¶
func (m *Span_TimeEvent_NetworkEvent) GetMessageId() uint64
func (*Span_TimeEvent_NetworkEvent) GetMessageSize ¶
func (m *Span_TimeEvent_NetworkEvent) GetMessageSize() uint64
func (*Span_TimeEvent_NetworkEvent) GetType ¶
func (m *Span_TimeEvent_NetworkEvent) GetType() Span_TimeEvent_NetworkEvent_Type
func (*Span_TimeEvent_NetworkEvent) ProtoMessage ¶
func (*Span_TimeEvent_NetworkEvent) ProtoMessage()
func (*Span_TimeEvent_NetworkEvent) Reset ¶
func (m *Span_TimeEvent_NetworkEvent) Reset()
func (*Span_TimeEvent_NetworkEvent) String ¶
func (m *Span_TimeEvent_NetworkEvent) String() string
type Span_TimeEvent_NetworkEvent_ ¶
type Span_TimeEvent_NetworkEvent_ struct { NetworkEvent *Span_TimeEvent_NetworkEvent `protobuf:"bytes,3,opt,name=network_event,json=networkEvent,oneof"` }
type Span_TimeEvent_NetworkEvent_Type ¶
The type of the network event. SENT or RECV event.
type Span_TimeEvent_NetworkEvent_Type int32
const ( Span_TimeEvent_NetworkEvent_UNSPECIFIED Span_TimeEvent_NetworkEvent_Type = 0 Span_TimeEvent_NetworkEvent_SENT Span_TimeEvent_NetworkEvent_Type = 1 Span_TimeEvent_NetworkEvent_RECV Span_TimeEvent_NetworkEvent_Type = 2 )
func (Span_TimeEvent_NetworkEvent_Type) EnumDescriptor ¶
func (Span_TimeEvent_NetworkEvent_Type) EnumDescriptor() ([]byte, []int)
func (Span_TimeEvent_NetworkEvent_Type) String ¶
func (x Span_TimeEvent_NetworkEvent_Type) String() string
type StackTrace ¶
type StackTrace struct { // Stack frames of this stack trace. StackFrame []*StackTrace_StackFrame `protobuf:"bytes,1,rep,name=stack_frame,json=stackFrame" json:"stack_frame,omitempty"` // User can choose to use his own hash function to hash large labels to save // network bandwidth and storage. // Typical usage is to pass both initially to inform the storage of the // mapping. And in subsequent calls, pass in stack_trace_hash_id only. // User shall verify the hash value is successfully stored. StackTraceHashId uint64 `protobuf:"varint,2,opt,name=stack_trace_hash_id,json=stackTraceHashId" json:"stack_trace_hash_id,omitempty"` }
func (*StackTrace) Descriptor ¶
func (*StackTrace) Descriptor() ([]byte, []int)
func (*StackTrace) GetStackFrame ¶
func (m *StackTrace) GetStackFrame() []*StackTrace_StackFrame
func (*StackTrace) GetStackTraceHashId ¶
func (m *StackTrace) GetStackTraceHashId() uint64
func (*StackTrace) ProtoMessage ¶
func (*StackTrace) ProtoMessage()
func (*StackTrace) Reset ¶
func (m *StackTrace) Reset()
func (*StackTrace) String ¶
func (m *StackTrace) String() string
type StackTrace_StackFrame ¶
Presents a single stack frame in a stack trace.
type StackTrace_StackFrame struct { // Fully qualified names which uniquely identify function/method/etc. FunctionName string `protobuf:"bytes,1,opt,name=function_name,json=functionName" json:"function_name,omitempty"` // Used when function name is ‘mangled’. Not guaranteed to be fully // qualified but usually it is. OrigFunctionName string `protobuf:"bytes,2,opt,name=orig_function_name,json=origFunctionName" json:"orig_function_name,omitempty"` // File name of the frame. FileName string `protobuf:"bytes,3,opt,name=file_name,json=fileName" json:"file_name,omitempty"` // Line number of the frame. LineNumber int64 `protobuf:"varint,4,opt,name=line_number,json=lineNumber" json:"line_number,omitempty"` // Column number is important in JavaScript(anonymous functions), // Might not be available in some languages. ColumnNumber int64 `protobuf:"varint,5,opt,name=column_number,json=columnNumber" json:"column_number,omitempty"` // Binary module the code is loaded from. LoadModule *Module `protobuf:"bytes,6,opt,name=load_module,json=loadModule" json:"load_module,omitempty"` // source_version is deployment specific. It might be // better to be stored in deployment metadata. // However, in distributed tracing, it’s hard to keep track of // source/binary versions at one place for all spans. SourceVersion string `protobuf:"bytes,7,opt,name=source_version,json=sourceVersion" json:"source_version,omitempty"` }
func (*StackTrace_StackFrame) Descriptor ¶
func (*StackTrace_StackFrame) Descriptor() ([]byte, []int)
func (*StackTrace_StackFrame) GetColumnNumber ¶
func (m *StackTrace_StackFrame) GetColumnNumber() int64
func (*StackTrace_StackFrame) GetFileName ¶
func (m *StackTrace_StackFrame) GetFileName() string
func (*StackTrace_StackFrame) GetFunctionName ¶
func (m *StackTrace_StackFrame) GetFunctionName() string
func (*StackTrace_StackFrame) GetLineNumber ¶
func (m *StackTrace_StackFrame) GetLineNumber() int64
func (*StackTrace_StackFrame) GetLoadModule ¶
func (m *StackTrace_StackFrame) GetLoadModule() *Module
func (*StackTrace_StackFrame) GetOrigFunctionName ¶
func (m *StackTrace_StackFrame) GetOrigFunctionName() string
func (*StackTrace_StackFrame) GetSourceVersion ¶
func (m *StackTrace_StackFrame) GetSourceVersion() string
func (*StackTrace_StackFrame) ProtoMessage ¶
func (*StackTrace_StackFrame) ProtoMessage()
func (*StackTrace_StackFrame) Reset ¶
func (m *StackTrace_StackFrame) Reset()
func (*StackTrace_StackFrame) String ¶
func (m *StackTrace_StackFrame) String() string
type Trace ¶
A trace describes how long it takes for an application to perform some operations. It consists of a tree of spans, each of which contains details about an operation with time information and operation details.
type Trace struct { // Globally unique identifier for the trace. Common to all the spans. TraceId *TraceId `protobuf:"bytes,1,opt,name=trace_id,json=traceId" json:"trace_id,omitempty"` // Collection of spans in the trace. The root span has parent_id == 0. Spans []*Span `protobuf:"bytes,2,rep,name=spans" json:"spans,omitempty"` }
func (*Trace) Descriptor ¶
func (*Trace) Descriptor() ([]byte, []int)
func (*Trace) GetSpans ¶
func (m *Trace) GetSpans() []*Span
func (*Trace) GetTraceId ¶
func (m *Trace) GetTraceId() *TraceId
func (*Trace) ProtoMessage ¶
func (*Trace) ProtoMessage()
func (*Trace) Reset ¶
func (m *Trace) Reset()
func (*Trace) String ¶
func (m *Trace) String() string
type TraceId ¶
A TraceId uniquely identifies a Trace. It is conceptually a 128-bit value, represented as a string, containing the hex-encoded value.
type TraceId struct {
// Trace ID specified as a hex-encoded string. *Must* be 32 bytes long.
HexEncoded string `protobuf:"bytes,1,opt,name=hex_encoded,json=hexEncoded" json:"hex_encoded,omitempty"`
}
func (*TraceId) Descriptor ¶
func (*TraceId) Descriptor() ([]byte, []int)
func (*TraceId) GetHexEncoded ¶
func (m *TraceId) GetHexEncoded() string
func (*TraceId) ProtoMessage ¶
func (*TraceId) ProtoMessage()
func (*TraceId) Reset ¶
func (m *TraceId) Reset()
func (*TraceId) String ¶
func (m *TraceId) String() string