12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package oc
- import (
- "context"
- "github.com/Microsoft/hcsshim/internal/log"
- "go.opencensus.io/trace"
- )
- var DefaultSampler = trace.AlwaysSample()
- // SetSpanStatus sets `span.SetStatus` to the proper status depending on `err`. If
- // `err` is `nil` assumes `trace.StatusCodeOk`.
- func SetSpanStatus(span *trace.Span, err error) {
- status := trace.Status{}
- if err != nil {
- status.Code = int32(toStatusCode(err))
- status.Message = err.Error()
- }
- span.SetStatus(status)
- }
- // StartSpan wraps "go.opencensus.io/trace".StartSpan, but, if the span is sampling,
- // adds a log entry to the context that points to the newly created span.
- func StartSpan(ctx context.Context, name string, o ...trace.StartOption) (context.Context, *trace.Span) {
- ctx, s := trace.StartSpan(ctx, name, o...)
- return update(ctx, s)
- }
- // StartSpanWithRemoteParent wraps "go.opencensus.io/trace".StartSpanWithRemoteParent.
- //
- // See StartSpan for more information.
- func StartSpanWithRemoteParent(ctx context.Context, name string, parent trace.SpanContext, o ...trace.StartOption) (context.Context, *trace.Span) {
- ctx, s := trace.StartSpanWithRemoteParent(ctx, name, parent, o...)
- return update(ctx, s)
- }
- func update(ctx context.Context, s *trace.Span) (context.Context, *trace.Span) {
- if s.IsRecordingEvents() {
- ctx = log.UpdateContext(ctx)
- }
- return ctx, s
- }
- var WithServerSpanKind = trace.WithSpanKind(trace.SpanKindServer)
- var WithClientSpanKind = trace.WithSpanKind(trace.SpanKindClient)
- func spanKindToString(sk int) string {
- switch sk {
- case trace.SpanKindClient:
- return "client"
- case trace.SpanKindServer:
- return "server"
- default:
- return ""
- }
- }
|