Documentation
¶
Overview ¶
Package metric is the API for defining metrics and updating their values.
When you define a metric you must also define the names and types of any fields on that metric. It is an error to define two metrics with the same name (this will cause a panic).
Example:
var (
Requests = metric.NewCounter("myapp/requests", field.String("status"))
)
...
func handleRequest() {
if success {
Requests.Add(1, "success")
} else {
Requests.Add(1, "failure")
}
}
Index ¶
- func InstrumentTransport(ctx context.Context, base http.RoundTripper, client string) http.RoundTripper
- func UpdateHTTPMetrics(ctx context.Context, name string, client string, code int, ...)
- func UpdateServerMetrics(ctx context.Context, name string, code int, duration time.Duration, ...)
- type Bool
- type CallbackBool
- type CallbackDistribution
- type CallbackFloat
- type CallbackInt
- type CallbackString
- type Counter
- type CumulativeDistribution
- type Float
- type FloatCounter
- type Int
- type NonCumulativeDistribution
- type String
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func InstrumentTransport ¶
func InstrumentTransport(ctx context.Context, base http.RoundTripper, client string) http.RoundTripper
InstrumentTransport returns a transport that sends HTTP client metrics via the given context.
If the context has no tsmon initialized (no metrics store installed), returns the original transport unchanged.
Types ¶
type Bool ¶
type Bool interface {
types.Metric
Get(c context.Context, fieldVals ...interface{}) (bool, error)
Set(c context.Context, v bool, fieldVals ...interface{}) error
}
Bool is a boolean-valued metric.
type CallbackBool ¶
type CallbackBool interface {
types.Metric
Set(ctx context.Context, v bool, fieldVals ...interface{}) error
}
CallbackBool is a boolean-valued metric whose values can only be set from a callback. Use tsmon.RegisterCallback to add a callback to set the metric's values.
func NewCallbackBool ¶
func NewCallbackBool(name string, description string, metadata *types.MetricMetadata, fields ...field.Field) CallbackBool
NewCallbackBool returns a new bool metric whose value is populated by a callback at collection time.
func NewCallbackBoolIn ¶
func NewCallbackBoolIn(c context.Context, name string, description string, metadata *types.MetricMetadata, fields ...field.Field) CallbackBool
NewCallbackBoolIn is like NewCallbackBool but registers in a given context.
type CallbackDistribution ¶
type CallbackDistribution interface {
types.DistributionMetric
Set(ctx context.Context, d *distribution.Distribution, fieldVals ...interface{}) error
}
CallbackDistribution is a non-cumulative-distribution-valued metric whose values can only be set from a callback. Use tsmon.RegisterCallback to add a callback to set the metric's values.
func NewCallbackDistribution ¶
func NewCallbackDistribution(name string, description string, metadata *types.MetricMetadata, bucketer *distribution.Bucketer, fields ...field.Field) CallbackDistribution
NewCallbackDistribution returns a new distribution metric whose value is populated by a callback at collection time.
func NewCallbackDistributionIn ¶
func NewCallbackDistributionIn(c context.Context, name string, description string, metadata *types.MetricMetadata, bucketer *distribution.Bucketer, fields ...field.Field) CallbackDistribution
NewCallbackDistributionIn is like NewCallbackDistribution but registers in a given context.
type CallbackFloat ¶
type CallbackFloat interface {
types.Metric
Set(ctx context.Context, v float64, fieldVals ...interface{}) error
}
CallbackFloat is a non-cumulative floating-point gauge metric whose values can only be set from a callback. Use tsmon.RegisterCallback to add a callback to set the metric's values.
func NewCallbackFloat ¶
func NewCallbackFloat(name string, description string, metadata *types.MetricMetadata, fields ...field.Field) CallbackFloat
NewCallbackFloat returns a new float metric whose value is populated by a callback at collection time.
func NewCallbackFloatIn ¶
func NewCallbackFloatIn(c context.Context, name string, description string, metadata *types.MetricMetadata, fields ...field.Field) CallbackFloat
NewCallbackFloatIn is like NewCallbackFloat but registers in a given context.
type CallbackInt ¶
type CallbackInt interface {
types.Metric
Set(ctx context.Context, v int64, fieldVals ...interface{}) error
}
CallbackInt is a non-cumulative integer gauge metric whose values can only be set from a callback. Use tsmon.RegisterCallback to add a callback to set the metric's values.
func NewCallbackInt ¶
func NewCallbackInt(name string, description string, metadata *types.MetricMetadata, fields ...field.Field) CallbackInt
NewCallbackInt returns a new integer metric whose value is populated by a callback at collection time.
func NewCallbackIntIn ¶
func NewCallbackIntIn(c context.Context, name string, description string, metadata *types.MetricMetadata, fields ...field.Field) CallbackInt
NewCallbackIntIn is like NewCallbackInt but registers in a given context.
type CallbackString ¶
type CallbackString interface {
types.Metric
Set(ctx context.Context, v string, fieldVals ...interface{}) error
}
CallbackString is a string-valued metric whose values can only be set from a callback. Use tsmon.RegisterCallback to add a callback to set the metric's values.
func NewCallbackString ¶
func NewCallbackString(name string, description string, metadata *types.MetricMetadata, fields ...field.Field) CallbackString
NewCallbackString returns a new string metric whose value is populated by a callback at collection time.
func NewCallbackStringIn ¶
func NewCallbackStringIn(c context.Context, name string, description string, metadata *types.MetricMetadata, fields ...field.Field) CallbackString
NewCallbackStringIn is like NewCallbackString but registers in a given context.
type Counter ¶
Counter is a cumulative integer metric.
type CumulativeDistribution ¶
type CumulativeDistribution interface {
NonCumulativeDistribution
Add(c context.Context, v float64, fieldVals ...interface{}) error
}
CumulativeDistribution is a cumulative-distribution-valued metric.
func NewCumulativeDistribution ¶
func NewCumulativeDistribution(name string, description string, metadata *types.MetricMetadata, bucketer *distribution.Bucketer, fields ...field.Field) CumulativeDistribution
NewCumulativeDistribution returns a new cumulative-distribution-valued metric. This will panic if another metric already exists with this name.
func NewCumulativeDistributionIn ¶
func NewCumulativeDistributionIn(c context.Context, name string, description string, metadata *types.MetricMetadata, bucketer *distribution.Bucketer, fields ...field.Field) CumulativeDistribution
NewCumulativeDistributionIn is like NewCumulativeDistribution but registers in a given context.
type Float ¶
type Float interface {
types.Metric
Get(c context.Context, fieldVals ...interface{}) (float64, error)
Set(c context.Context, v float64, fieldVals ...interface{}) error
}
Float is a non-cumulative floating-point gauge metric.
type FloatCounter ¶
type FloatCounter interface {
Float
Add(c context.Context, n float64, fieldVals ...interface{}) error
}
FloatCounter is a cumulative floating-point metric.
func NewFloatCounter ¶
func NewFloatCounter(name string, description string, metadata *types.MetricMetadata, fields ...field.Field) FloatCounter
NewFloatCounter returns a new cumulative floating-point metric. This will panic if another metric already exists with this name.
func NewFloatCounterIn ¶
func NewFloatCounterIn(c context.Context, name string, description string, metadata *types.MetricMetadata, fields ...field.Field) FloatCounter
NewFloatCounterIn is like NewFloatCounter but registers in a given context.
type Int ¶
type Int interface {
types.Metric
Get(c context.Context, fieldVals ...interface{}) (int64, error)
Set(c context.Context, v int64, fieldVals ...interface{}) error
}
Int is a non-cumulative integer gauge metric.
type NonCumulativeDistribution ¶
type NonCumulativeDistribution interface {
types.DistributionMetric
Get(c context.Context, fieldVals ...interface{}) (*distribution.Distribution, error)
Set(c context.Context, d *distribution.Distribution, fieldVals ...interface{}) error
}
NonCumulativeDistribution is a non-cumulative-distribution-valued metric.
func NewNonCumulativeDistribution ¶
func NewNonCumulativeDistribution(name string, description string, metadata *types.MetricMetadata, bucketer *distribution.Bucketer, fields ...field.Field) NonCumulativeDistribution
NewNonCumulativeDistribution returns a new non-cumulative-distribution-valued metric. This will panic if another metric already exists with this name.
func NewNonCumulativeDistributionIn ¶
func NewNonCumulativeDistributionIn(c context.Context, name string, description string, metadata *types.MetricMetadata, bucketer *distribution.Bucketer, fields ...field.Field) NonCumulativeDistribution
NewNonCumulativeDistributionIn is like NewNonCumulativeDistribution but registers in a given context.
type String ¶
type String interface {
types.Metric
Get(c context.Context, fieldVals ...interface{}) (string, error)
Set(c context.Context, v string, fieldVals ...interface{}) error
}
String is a string-valued metric.
Source Files
¶
- http_transport.go
- metric.go
- standard_metrics.go