add HistogramExt method with custom quantiles
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
@@ -49,9 +49,11 @@ type Meter interface {
|
|||||||
Set(opts ...Option) Meter
|
Set(opts ...Option) Meter
|
||||||
// Histogram get or create histogram
|
// Histogram get or create histogram
|
||||||
Histogram(name string, labels ...string) Histogram
|
Histogram(name string, labels ...string) Histogram
|
||||||
|
// HistogramExt get or create histogram with specified quantiles
|
||||||
|
HistogramExt(name string, quantiles []float64, labels ...string) Histogram
|
||||||
// Summary get or create summary
|
// Summary get or create summary
|
||||||
Summary(name string, labels ...string) Summary
|
Summary(name string, labels ...string) Summary
|
||||||
// SummaryExt get or create summary with spcified quantiles and window time
|
// SummaryExt get or create summary with specified quantiles and window time
|
||||||
SummaryExt(name string, window time.Duration, quantiles []float64, labels ...string) Summary
|
SummaryExt(name string, window time.Duration, quantiles []float64, labels ...string) Summary
|
||||||
// Write writes metrics to io.Writer
|
// Write writes metrics to io.Writer
|
||||||
Write(w io.Writer, opts ...Option) error
|
Write(w io.Writer, opts ...Option) error
|
||||||
|
|||||||
@@ -70,6 +70,11 @@ func (r *noopMeter) Histogram(_ string, labels ...string) Histogram {
|
|||||||
return &noopHistogram{labels: labels}
|
return &noopHistogram{labels: labels}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// HistogramExt implements the Meter interface
|
||||||
|
func (r *noopMeter) HistogramExt(_ string, quantiles []float64, labels ...string) Histogram {
|
||||||
|
return &noopHistogram{labels: labels}
|
||||||
|
}
|
||||||
|
|
||||||
// Set implements the Meter interface
|
// Set implements the Meter interface
|
||||||
func (r *noopMeter) Set(opts ...Option) Meter {
|
func (r *noopMeter) Set(opts ...Option) Meter {
|
||||||
m := &noopMeter{opts: r.opts}
|
m := &noopMeter{opts: r.opts}
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var DefaultQuantiles = []float64{.005, .01, .025, .05, .1, .25, .5, 1, 2.5, 5, 10}
|
||||||
|
|
||||||
// Option powers the configuration for metrics implementations:
|
// Option powers the configuration for metrics implementations:
|
||||||
type Option func(*Options)
|
type Option func(*Options)
|
||||||
|
|
||||||
@@ -23,6 +25,8 @@ type Options struct {
|
|||||||
WriteProcessMetrics bool
|
WriteProcessMetrics bool
|
||||||
// WriteFDMetrics flag to write fd metrics
|
// WriteFDMetrics flag to write fd metrics
|
||||||
WriteFDMetrics bool
|
WriteFDMetrics bool
|
||||||
|
// Quantiles specifies buckets for histogram
|
||||||
|
Quantiles []float64
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewOptions prepares a set of options:
|
// NewOptions prepares a set of options:
|
||||||
@@ -61,14 +65,12 @@ func Address(value string) Option {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
// Quantiles defines the desired spread of statistics for histogram metrics:
|
||||||
// TimingObjectives defines the desired spread of statistics for histogram / timing metrics:
|
func Quantiles(quantiles []float64) Option {
|
||||||
func TimingObjectives(value map[float64]float64) Option {
|
|
||||||
return func(o *Options) {
|
return func(o *Options) {
|
||||||
o.TimingObjectives = value
|
o.Quantiles = quantiles
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
// Labels add the meter labels
|
// Labels add the meter labels
|
||||||
func Labels(ls ...string) Option {
|
func Labels(ls ...string) Option {
|
||||||
|
|||||||
Reference in New Issue
Block a user