// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package wire // This file holds common ocagent types type Node struct { Identifier *ProcessIdentifier `json:"identifier,omitempty"` LibraryInfo *LibraryInfo `json:"library_info,omitempty"` ServiceInfo *ServiceInfo `json:"service_info,omitempty"` Attributes map[string]string `json:"attributes,omitempty"` } type Resource struct { Type string `json:"type,omitempty"` Labels map[string]string `json:"labels,omitempty"` } type TruncatableString struct { Value string `json:"value,omitempty"` TruncatedByteCount int32 `json:"truncated_byte_count,omitempty"` } type Attributes struct { AttributeMap map[string]Attribute `json:"attributeMap,omitempty"` DroppedAttributesCount int32 `json:"dropped_attributes_count,omitempty"` } type StringAttribute struct { StringValue *TruncatableString `json:"stringValue,omitempty"` } type IntAttribute struct { IntValue int64 `json:"intValue,omitempty"` } type BoolAttribute struct { BoolValue bool `json:"boolValue,omitempty"` } type DoubleAttribute struct { DoubleValue float64 `json:"doubleValue,omitempty"` } type Attribute interface { labelAttribute() } func (StringAttribute) labelAttribute() {} func (IntAttribute) labelAttribute() {} func (BoolAttribute) labelAttribute() {} func (DoubleAttribute) labelAttribute() {} type StackTrace struct { StackFrames *StackFrames `json:"stack_frames,omitempty"` StackTraceHashID uint64 `json:"stack_trace_hash_id,omitempty"` } type StackFrames struct { Frame []*StackFrame `json:"frame,omitempty"` DroppedFramesCount int32 `json:"dropped_frames_count,omitempty"` } type StackFrame struct { FunctionName *TruncatableString `json:"function_name,omitempty"` OriginalFunctionName *TruncatableString `json:"original_function_name,omitempty"` FileName *TruncatableString `json:"file_name,omitempty"` LineNumber int64 `json:"line_number,omitempty"` ColumnNumber int64 `json:"column_number,omitempty"` LoadModule *Module `json:"load_module,omitempty"` SourceVersion *TruncatableString `json:"source_version,omitempty"` } type Module struct { Module *TruncatableString `json:"module,omitempty"` BuildID *TruncatableString `json:"build_id,omitempty"` } type ProcessIdentifier struct { HostName string `json:"host_name,omitempty"` Pid uint32 `json:"pid,omitempty"` StartTimestamp Timestamp `json:"start_timestamp,omitempty"` } type LibraryInfo struct { Language Language `json:"language,omitempty"` ExporterVersion string `json:"exporter_version,omitempty"` CoreLibraryVersion string `json:"core_library_version,omitempty"` } type Language int32 const ( LanguageGo Language = 4 ) type ServiceInfo struct { Name string `json:"name,omitempty"` }