// Copyright The OpenTelemetry Authors// SPDX-License-Identifier: Apache-2.0package telemetryimport ()// Traces represents the traces data that can be stored in a persistent storage,// OR can be embedded by other protocols that transfer OTLP traces data but do// not implement the OTLP protocol.//// The main difference between this message and collector protocol is that// in this message there will not be any "control" or "metadata" specific to// OTLP protocol.//// When new fields are added into this message, the OTLP request MUST be updated// as well.typeTracesstruct {// An array of ResourceSpans. // For data coming from a single resource this array will typically contain // one element. Intermediary nodes that receive data from multiple origins // typically batch the data before forwarding further and in that case this // array will contain multiple elements. ResourceSpans []*ResourceSpans`json:"resourceSpans,omitempty"`}// UnmarshalJSON decodes the OTLP formatted JSON contained in data into td.func ( *Traces) ( []byte) error { := json.NewDecoder(bytes.NewReader()) , := .Token()if != nil {return }if != json.Delim('{') {returnerrors.New("invalid TracesData type") }for .More() { , := .Token()if != nil {iferrors.Is(, io.EOF) {// Empty.returnnil }return } , := .(string)if ! {returnfmt.Errorf("invalid TracesData field: %#v", ) }switch {case"resourceSpans", "resource_spans": = .Decode(&.ResourceSpans)default:// Skip unknown. }if != nil {return } }returnnil}// A collection of ScopeSpans from a Resource.typeResourceSpansstruct {// The resource for the spans in this message. // If this field is not set then no resource info is known. Resource Resource`json:"resource"`// A list of ScopeSpans that originate from a resource. ScopeSpans []*ScopeSpans`json:"scopeSpans,omitempty"`// This schema_url applies to the data in the "resource" field. It does not apply // to the data in the "scope_spans" field which have their own schema_url field. SchemaURL string`json:"schemaUrl,omitempty"`}// UnmarshalJSON decodes the OTLP formatted JSON contained in data into rs.func ( *ResourceSpans) ( []byte) error { := json.NewDecoder(bytes.NewReader()) , := .Token()if != nil {return }if != json.Delim('{') {returnerrors.New("invalid ResourceSpans type") }for .More() { , := .Token()if != nil {iferrors.Is(, io.EOF) {// Empty.returnnil }return } , := .(string)if ! {returnfmt.Errorf("invalid ResourceSpans field: %#v", ) }switch {case"resource": = .Decode(&.Resource)case"scopeSpans", "scope_spans": = .Decode(&.ScopeSpans)case"schemaUrl", "schema_url": = .Decode(&.SchemaURL)default:// Skip unknown. }if != nil {return } }returnnil}// A collection of Spans produced by an InstrumentationScope.typeScopeSpansstruct {// The instrumentation scope information for the spans in this message. // Semantically when InstrumentationScope isn't set, it is equivalent with // an empty instrumentation scope name (unknown). Scope *Scope`json:"scope"`// A list of Spans that originate from an instrumentation scope. Spans []*Span`json:"spans,omitempty"`// The Schema URL, if known. This is the identifier of the Schema that the span data // is recorded in. To learn more about Schema URL see // https://opentelemetry.io/docs/specs/otel/schemas/#schema-url // This schema_url applies to all spans and span events in the "spans" field. SchemaURL string`json:"schemaUrl,omitempty"`}// UnmarshalJSON decodes the OTLP formatted JSON contained in data into ss.func ( *ScopeSpans) ( []byte) error { := json.NewDecoder(bytes.NewReader()) , := .Token()if != nil {return }if != json.Delim('{') {returnerrors.New("invalid ScopeSpans type") }for .More() { , := .Token()if != nil {iferrors.Is(, io.EOF) {// Empty.returnnil }return } , := .(string)if ! {returnfmt.Errorf("invalid ScopeSpans field: %#v", ) }switch {case"scope": = .Decode(&.Scope)case"spans": = .Decode(&.Spans)case"schemaUrl", "schema_url": = .Decode(&.SchemaURL)default:// Skip unknown. }if != nil {return } }returnnil}
The pages are generated with Goldsv0.8.2. (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu.
PR and bug reports are welcome and can be submitted to the issue list.
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds.