mirror of
https://github.com/golang/go
synced 2024-11-19 03:34:41 -07:00
64633d5e86
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>
48 lines
1.1 KiB
Go
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) {}
|
|
)
|