| 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 core |
| 6 | |
| 7 | import ( |
| 8 | "context" |
| 9 | |
| 10 | "golang.org/x/tools/internal/event/keys" |
| 11 | "golang.org/x/tools/internal/event/label" |
| 12 | ) |
| 13 | |
| 14 | // Log1 takes a message and one label delivers a log event to the exporter. |
| 15 | // It is a customized version of Print that is faster and does no allocation. |
| 16 | func Log1(ctx context.Context, message string, t1 label.Label) { |
| 17 | Export(ctx, MakeEvent([3]label.Label{ |
| 18 | keys.Msg.Of(message), |
| 19 | t1, |
| 20 | }, nil)) |
| 21 | } |
| 22 | |
| 23 | // Log2 takes a message and two labels and delivers a log event to the exporter. |
| 24 | // It is a customized version of Print that is faster and does no allocation. |
| 25 | func Log2(ctx context.Context, message string, t1 label.Label, t2 label.Label) { |
| 26 | Export(ctx, MakeEvent([3]label.Label{ |
| 27 | keys.Msg.Of(message), |
| 28 | t1, |
| 29 | t2, |
| 30 | }, nil)) |
| 31 | } |
| 32 | |
| 33 | // Metric1 sends a label event to the exporter with the supplied labels. |
| 34 | func Metric1(ctx context.Context, t1 label.Label) context.Context { |
| 35 | return Export(ctx, MakeEvent([3]label.Label{ |
| 36 | keys.Metric.New(), |
| 37 | t1, |
| 38 | }, nil)) |
| 39 | } |
| 40 | |
| 41 | // Metric2 sends a label event to the exporter with the supplied labels. |
| 42 | func Metric2(ctx context.Context, t1, t2 label.Label) context.Context { |
| 43 | return Export(ctx, MakeEvent([3]label.Label{ |
| 44 | keys.Metric.New(), |
| 45 | t1, |
| 46 | t2, |
| 47 | }, nil)) |
| 48 | } |
| 49 | |
| 50 | // Start1 sends a span start event with the supplied label list to the exporter. |
| 51 | // It also returns a function that will end the span, which should normally be |
| 52 | // deferred. |
| 53 | func Start1(ctx context.Context, name string, t1 label.Label) (context.Context, func()) { |
| 54 | return ExportPair(ctx, |
| 55 | MakeEvent([3]label.Label{ |
| 56 | keys.Start.Of(name), |
| 57 | t1, |
| 58 | }, nil), |
| 59 | MakeEvent([3]label.Label{ |
| 60 | keys.End.New(), |
| 61 | }, nil)) |
| 62 | } |
| 63 | |
| 64 | // Start2 sends a span start event with the supplied label list to the exporter. |
| 65 | // It also returns a function that will end the span, which should normally be |
| 66 | // deferred. |
| 67 | func Start2(ctx context.Context, name string, t1, t2 label.Label) (context.Context, func()) { |
| 68 | return ExportPair(ctx, |
| 69 | MakeEvent([3]label.Label{ |
| 70 | keys.Start.Of(name), |
| 71 | t1, |
| 72 | t2, |
| 73 | }, nil), |
| 74 | MakeEvent([3]label.Label{ |
| 75 | keys.End.New(), |
| 76 | }, nil)) |
| 77 | } |
| 78 |
Members