spectator/meter/percentile_distsummary.go (22 lines of code) (raw):

package meter import ( "fmt" "github.com/Netflix/spectator-go/v2/spectator/writer" ) // PercentileDistributionSummary is a distribution summary used to track the // distribution of events, while also presenting the results as percentiles. type PercentileDistributionSummary struct { id *Id writer writer.Writer meterTypeSymbol string } func (p *PercentileDistributionSummary) MeterId() *Id { return p.id } // NewPercentileDistributionSummary creates a new *PercentileDistributionSummary using the meter identifier. func NewPercentileDistributionSummary(id *Id, writer writer.Writer) *PercentileDistributionSummary { return &PercentileDistributionSummary{id, writer, "D"} } // Record records an amount to track within the distribution. func (p *PercentileDistributionSummary) Record(amount int64) { if amount >= 0 { var line = fmt.Sprintf("%s:%s:%d", p.meterTypeSymbol, p.id.spectatordId, amount) p.writer.Write(line) } }