| 1 | // Copyright 2019 The Go Authors. All rights reserved. |
|---|---|
| 2 | // Use of this source code is governed by a BSD-style |
| 3 | // license that can be found in the LICENSE file. |
| 4 | |
| 5 | package wire |
| 6 | |
| 7 | // This file holds common ocagent types |
| 8 | |
| 9 | type Node struct { |
| 10 | Identifier *ProcessIdentifier `json:"identifier,omitempty"` |
| 11 | LibraryInfo *LibraryInfo `json:"library_info,omitempty"` |
| 12 | ServiceInfo *ServiceInfo `json:"service_info,omitempty"` |
| 13 | Attributes map[string]string `json:"attributes,omitempty"` |
| 14 | } |
| 15 | |
| 16 | type Resource struct { |
| 17 | Type string `json:"type,omitempty"` |
| 18 | Labels map[string]string `json:"labels,omitempty"` |
| 19 | } |
| 20 | |
| 21 | type TruncatableString struct { |
| 22 | Value string `json:"value,omitempty"` |
| 23 | TruncatedByteCount int32 `json:"truncated_byte_count,omitempty"` |
| 24 | } |
| 25 | |
| 26 | type Attributes struct { |
| 27 | AttributeMap map[string]Attribute `json:"attributeMap,omitempty"` |
| 28 | DroppedAttributesCount int32 `json:"dropped_attributes_count,omitempty"` |
| 29 | } |
| 30 | |
| 31 | type StringAttribute struct { |
| 32 | StringValue *TruncatableString `json:"stringValue,omitempty"` |
| 33 | } |
| 34 | |
| 35 | type IntAttribute struct { |
| 36 | IntValue int64 `json:"intValue,omitempty"` |
| 37 | } |
| 38 | |
| 39 | type BoolAttribute struct { |
| 40 | BoolValue bool `json:"boolValue,omitempty"` |
| 41 | } |
| 42 | |
| 43 | type DoubleAttribute struct { |
| 44 | DoubleValue float64 `json:"doubleValue,omitempty"` |
| 45 | } |
| 46 | |
| 47 | type Attribute interface { |
| 48 | labelAttribute() |
| 49 | } |
| 50 | |
| 51 | func (StringAttribute) labelAttribute() {} |
| 52 | func (IntAttribute) labelAttribute() {} |
| 53 | func (BoolAttribute) labelAttribute() {} |
| 54 | func (DoubleAttribute) labelAttribute() {} |
| 55 | |
| 56 | type StackTrace struct { |
| 57 | StackFrames *StackFrames `json:"stack_frames,omitempty"` |
| 58 | StackTraceHashID uint64 `json:"stack_trace_hash_id,omitempty"` |
| 59 | } |
| 60 | |
| 61 | type StackFrames struct { |
| 62 | Frame []*StackFrame `json:"frame,omitempty"` |
| 63 | DroppedFramesCount int32 `json:"dropped_frames_count,omitempty"` |
| 64 | } |
| 65 | |
| 66 | type StackFrame struct { |
| 67 | FunctionName *TruncatableString `json:"function_name,omitempty"` |
| 68 | OriginalFunctionName *TruncatableString `json:"original_function_name,omitempty"` |
| 69 | FileName *TruncatableString `json:"file_name,omitempty"` |
| 70 | LineNumber int64 `json:"line_number,omitempty"` |
| 71 | ColumnNumber int64 `json:"column_number,omitempty"` |
| 72 | LoadModule *Module `json:"load_module,omitempty"` |
| 73 | SourceVersion *TruncatableString `json:"source_version,omitempty"` |
| 74 | } |
| 75 | |
| 76 | type Module struct { |
| 77 | Module *TruncatableString `json:"module,omitempty"` |
| 78 | BuildID *TruncatableString `json:"build_id,omitempty"` |
| 79 | } |
| 80 | |
| 81 | type ProcessIdentifier struct { |
| 82 | HostName string `json:"host_name,omitempty"` |
| 83 | Pid uint32 `json:"pid,omitempty"` |
| 84 | StartTimestamp Timestamp `json:"start_timestamp,omitempty"` |
| 85 | } |
| 86 | |
| 87 | type LibraryInfo struct { |
| 88 | Language Language `json:"language,omitempty"` |
| 89 | ExporterVersion string `json:"exporter_version,omitempty"` |
| 90 | CoreLibraryVersion string `json:"core_library_version,omitempty"` |
| 91 | } |
| 92 | |
| 93 | type Language int32 |
| 94 | |
| 95 | const ( |
| 96 | LanguageGo Language = 4 |
| 97 | ) |
| 98 | |
| 99 | type ServiceInfo struct { |
| 100 | Name string `json:"name,omitempty"` |
| 101 | } |
| 102 |
Members