mirror of
https://git.vectorsigma.ru/public/atlantis.git
synced 2026-07-29 08:08:24 +00:00
94 lines
2.2 KiB
Go
94 lines
2.2 KiB
Go
package metrics
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/runatlantis/atlantis/server/logging"
|
|
"github.com/uber-go/tally"
|
|
)
|
|
|
|
// newLoggingReporter returns a tally reporter that logs to the provided logger at debug level. This is useful for
|
|
// local development where the usual sinks are not available.
|
|
func newLoggingReporter(logger logging.SimpleLogging) tally.StatsReporter {
|
|
return &debugReporter{log: logger}
|
|
}
|
|
|
|
type debugReporter struct {
|
|
log logging.SimpleLogging
|
|
}
|
|
|
|
// Capabilities interface.
|
|
|
|
func (r *debugReporter) Reporting() bool {
|
|
return true
|
|
}
|
|
|
|
func (r *debugReporter) Tagging() bool {
|
|
return true
|
|
}
|
|
|
|
func (r *debugReporter) Capabilities() tally.Capabilities {
|
|
return r
|
|
}
|
|
|
|
// Reporter interface.
|
|
|
|
func (r *debugReporter) Flush() {
|
|
// Silence.
|
|
}
|
|
|
|
func (r *debugReporter) ReportCounter(name string, tags map[string]string, value int64) {
|
|
log := r.log.With("name", name, "value", value, "tags", tags, "type", "counter")
|
|
log.Debug("counter")
|
|
}
|
|
|
|
func (r *debugReporter) ReportGauge(name string, tags map[string]string, value float64) {
|
|
log := r.log.With("name", name, "value", value, "tags", tags, "type", "gauge")
|
|
log.Debug("gauge")
|
|
}
|
|
|
|
func (r *debugReporter) ReportTimer(name string, tags map[string]string, interval time.Duration) {
|
|
log := r.log.With("name", name, "value", interval, "tags", tags, "type", "timer")
|
|
log.Debug("timer")
|
|
}
|
|
|
|
func (r *debugReporter) ReportHistogramValueSamples(
|
|
name string,
|
|
tags map[string]string,
|
|
buckets tally.Buckets,
|
|
bucketLowerBound,
|
|
bucketUpperBound float64,
|
|
samples int64,
|
|
) {
|
|
log := r.log.With(
|
|
"name", name,
|
|
"buckets", buckets.AsValues(),
|
|
"bucketLowerBound", bucketLowerBound,
|
|
"bucketUpperBound", bucketUpperBound,
|
|
"samples", samples,
|
|
"tags", tags,
|
|
"type", "valueHistogram",
|
|
)
|
|
log.Debug("histogram")
|
|
}
|
|
|
|
func (r *debugReporter) ReportHistogramDurationSamples(
|
|
name string,
|
|
tags map[string]string,
|
|
buckets tally.Buckets,
|
|
bucketLowerBound,
|
|
bucketUpperBound time.Duration,
|
|
samples int64,
|
|
) {
|
|
log := r.log.With(
|
|
"name", name,
|
|
"buckets", buckets.AsValues(),
|
|
"bucketLowerBound", bucketLowerBound,
|
|
"bucketUpperBound", bucketUpperBound,
|
|
"samples", samples,
|
|
"tags", tags,
|
|
"type", "durationHistogram",
|
|
)
|
|
log.Debug("histogram")
|
|
}
|