mirror of
https://gitea.com/Lydanne/buildx.git
synced 2025-05-18 00:47:48 +08:00
103 lines
3.4 KiB
Go
103 lines
3.4 KiB
Go
package jaeger
|
|
|
|
// ReferenceType is the reference type of one span to another
|
|
type ReferenceType string
|
|
|
|
// TraceID is the shared trace ID of all spans in the trace.
|
|
type TraceID string
|
|
|
|
// SpanID is the id of a span
|
|
type SpanID string
|
|
|
|
// ProcessID is a hashed value of the Process struct that is unique within the trace.
|
|
type ProcessID string
|
|
|
|
// ValueType is the type of a value stored in KeyValue struct.
|
|
type ValueType string
|
|
|
|
const (
|
|
// ChildOf means a span is the child of another span
|
|
ChildOf ReferenceType = "CHILD_OF"
|
|
// FollowsFrom means a span follows from another span
|
|
FollowsFrom ReferenceType = "FOLLOWS_FROM"
|
|
|
|
// StringType indicates a string value stored in KeyValue
|
|
StringType ValueType = "string"
|
|
// BoolType indicates a Boolean value stored in KeyValue
|
|
BoolType ValueType = "bool"
|
|
// Int64Type indicates a 64bit signed integer value stored in KeyValue
|
|
Int64Type ValueType = "int64"
|
|
// Float64Type indicates a 64bit float value stored in KeyValue
|
|
Float64Type ValueType = "float64"
|
|
// BinaryType indicates an arbitrary byte array stored in KeyValue
|
|
BinaryType ValueType = "binary"
|
|
)
|
|
|
|
// Trace is a list of spans
|
|
type Trace struct {
|
|
TraceID TraceID `json:"traceID"`
|
|
Spans []Span `json:"spans"`
|
|
Processes map[ProcessID]Process `json:"processes"`
|
|
Warnings []string `json:"warnings"`
|
|
}
|
|
|
|
// Span is a span denoting a piece of work in some infrastructure
|
|
// When converting to UI model, ParentSpanID and Process should be dereferenced into
|
|
// References and ProcessID, respectively.
|
|
// When converting to ES model, ProcessID and Warnings should be omitted. Even if
|
|
// included, ES with dynamic settings off will automatically ignore unneeded fields.
|
|
type Span struct {
|
|
TraceID TraceID `json:"traceID"`
|
|
SpanID SpanID `json:"spanID"`
|
|
ParentSpanID SpanID `json:"parentSpanID,omitempty"` // deprecated
|
|
Flags uint32 `json:"flags,omitempty"`
|
|
OperationName string `json:"operationName"`
|
|
References []Reference `json:"references"`
|
|
StartTime uint64 `json:"startTime"` // microseconds since Unix epoch
|
|
Duration uint64 `json:"duration"` // microseconds
|
|
Tags []KeyValue `json:"tags"`
|
|
Logs []Log `json:"logs"`
|
|
ProcessID ProcessID `json:"processID,omitempty"`
|
|
Process *Process `json:"process,omitempty"`
|
|
Warnings []string `json:"warnings"`
|
|
}
|
|
|
|
// Reference is a reference from one span to another
|
|
type Reference struct {
|
|
RefType ReferenceType `json:"refType"`
|
|
TraceID TraceID `json:"traceID"`
|
|
SpanID SpanID `json:"spanID"`
|
|
}
|
|
|
|
// Process is the process emitting a set of spans
|
|
type Process struct {
|
|
ServiceName string `json:"serviceName"`
|
|
Tags []KeyValue `json:"tags"`
|
|
}
|
|
|
|
// Log is a log emitted in a span
|
|
type Log struct {
|
|
Timestamp uint64 `json:"timestamp"`
|
|
Fields []KeyValue `json:"fields"`
|
|
}
|
|
|
|
// KeyValue is a key-value pair with typed value.
|
|
type KeyValue struct {
|
|
Key string `json:"key"`
|
|
Type ValueType `json:"type,omitempty"`
|
|
Value any `json:"value"`
|
|
}
|
|
|
|
// DependencyLink shows dependencies between services
|
|
type DependencyLink struct {
|
|
Parent string `json:"parent"`
|
|
Child string `json:"child"`
|
|
CallCount uint64 `json:"callCount"`
|
|
}
|
|
|
|
// Operation defines the data in the operation response when query operation by service and span kind
|
|
type Operation struct {
|
|
Name string `json:"name"`
|
|
SpanKind string `json:"spanKind"`
|
|
}
|