--- /dev/null
+// 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"`
+}