1
0
mirror of https://github.com/golang/go synced 2024-11-19 03:34:41 -07:00
go/internal/lsp/telemetry/stats/stats.go
Ian Cottrell 64633d5e86 internal/lsp: add telemetry stubs
This is designed to provide a compatible API to opencensus libraries while we
still cannot directly depend on it.
Most of this will be deleted again when we move the code over into the
sub-module.

Change-Id: I42b561f4f403c18cd22fb909b037f584ea90ad1b
Reviewed-on: https://go-review.googlesource.com/c/tools/+/183247
Run-TryBot: Ian Cottrell <iancottrell@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2019-06-24 18:10:36 +00:00

48 lines
1.1 KiB
Go

// Copyright 2019 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Package stats provides support for recording telemetry statistics.
package stats
import "context"
type Measure interface {
Name() string
Description() string
Unit() string
}
type Float64Measure interface {
Measure
M(v float64) Measurement
}
type Int64Measure interface {
Measure
M(v int64) Measurement
}
type Measurement interface {
Measure() Measure
Value() float64
}
type nullMeasure struct{}
type nullFloat64Measure struct{ nullMeasure }
type nullInt64Measure struct{ nullMeasure }
func (nullMeasure) Name() string { return "" }
func (nullMeasure) Description() string { return "" }
func (nullMeasure) Unit() string { return "" }
func (nullFloat64Measure) M(v float64) Measurement { return nil }
func (nullInt64Measure) M(v int64) Measurement { return nil }
func NullFloat64Measure() Float64Measure { return nullFloat64Measure{} }
func NullInt64Measure() Int64Measure { return nullInt64Measure{} }
var (
Record = func(ctx context.Context, ms ...Measurement) {}
)