diff options
author | Ian Cottrell <iancottrell@google.com> | 2020-04-21 09:41:57 -0400 |
---|---|---|
committer | Ian Cottrell <iancottrell@google.com> | 2020-04-27 15:30:19 +0000 |
commit | a90b7300be7c0e2a1e83e1753a958fa84c930f72 (patch) | |
tree | 40837cc8bd2df36f7e56d727e8bbbcacaee1b3a8 /internal/lsp/debug | |
parent | bed5418863f7348dd845e8d45004884bb89e8473 (diff) | |
download | golang-x-tools-a90b7300be7c0e2a1e83e1753a958fa84c930f72.tar.gz |
internal/event: remove the event.eventType type
Instead of tagging events with their type, instead we infer the type from
the label pattern.
The standard event creators all have a matching test that returns true
if the the labels pattern matches the ones that would be built by the
creator.
Spans and logs already have a unique label pattern, other event types
required a special label marker.
This makes the system much more extensible, and also cleans up some
the API.
Change-Id: I1fbc9ec07aa84ead6c12bbd5ca65b13b605bfa4a
Reviewed-on: https://go-review.googlesource.com/c/tools/+/229242
Run-TryBot: Ian Cottrell <iancottrell@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
Diffstat (limited to 'internal/lsp/debug')
-rw-r--r-- | internal/lsp/debug/rpc.go | 7 | ||||
-rw-r--r-- | internal/lsp/debug/serve.go | 2 | ||||
-rw-r--r-- | internal/lsp/debug/trace.go | 5 |
3 files changed, 8 insertions, 6 deletions
diff --git a/internal/lsp/debug/rpc.go b/internal/lsp/debug/rpc.go index f15f6cabb..2732971c6 100644 --- a/internal/lsp/debug/rpc.go +++ b/internal/lsp/debug/rpc.go @@ -13,6 +13,7 @@ import ( "sync" "time" + "golang.org/x/tools/internal/event" "golang.org/x/tools/internal/event/core" "golang.org/x/tools/internal/event/export" "golang.org/x/tools/internal/event/label" @@ -82,16 +83,16 @@ func (r *rpcs) ProcessEvent(ctx context.Context, ev core.Event, lm label.Map) co r.mu.Lock() defer r.mu.Unlock() switch { - case ev.IsStartSpan(): + case event.IsStart(ev): if _, stats := r.getRPCSpan(ctx, ev); stats != nil { stats.Started++ } - case ev.IsEndSpan(): + case event.IsEnd(ev): span, stats := r.getRPCSpan(ctx, ev) if stats != nil { endRPC(ctx, ev, span, stats) } - case ev.IsRecord(): + case event.IsMetric(ev): sent := byteUnits(tag.SentBytes.Get(lm)) rec := byteUnits(tag.ReceivedBytes.Get(lm)) if sent != 0 || rec != 0 { diff --git a/internal/lsp/debug/serve.go b/internal/lsp/debug/serve.go index 7e8c98a03..b364c70f0 100644 --- a/internal/lsp/debug/serve.go +++ b/internal/lsp/debug/serve.go @@ -548,7 +548,7 @@ func makeGlobalExporter(stderr io.Writer) event.Exporter { return func(ctx context.Context, ev core.Event, lm label.Map) context.Context { i := GetInstance(ctx) - if ev.IsLog() { + if event.IsLog(ev) { // Don't log context cancellation errors. if err := keys.Err.Get(ev); xerrors.Is(err, context.Canceled) { return ctx diff --git a/internal/lsp/debug/trace.go b/internal/lsp/debug/trace.go index 36dd530f6..4a3b90554 100644 --- a/internal/lsp/debug/trace.go +++ b/internal/lsp/debug/trace.go @@ -15,6 +15,7 @@ import ( "sync" "time" + "golang.org/x/tools/internal/event" "golang.org/x/tools/internal/event/core" "golang.org/x/tools/internal/event/export" "golang.org/x/tools/internal/event/label" @@ -83,7 +84,7 @@ func (t *traces) ProcessEvent(ctx context.Context, ev core.Event, lm label.Map) } switch { - case ev.IsStartSpan(): + case event.IsStart(ev): if t.sets == nil { t.sets = make(map[string]*traceSet) t.unfinished = make(map[export.SpanContext]*traceData) @@ -110,7 +111,7 @@ func (t *traces) ProcessEvent(ctx context.Context, ev core.Event, lm label.Map) } parent.Children = append(parent.Children, td) - case ev.IsEndSpan(): + case event.IsEnd(ev): // finishing, must be already in the map td, found := t.unfinished[span.ID] if !found { |