Documentation
¶
Overview ¶
This code was forked from Loki. https://github.com/grafana/loki/tree/caf7dde32be8b085549273fc6c238e3b6b656a3a/pkg/usagestats
Index ¶
Constants ¶
This section is empty.
Variables ¶
var JSONCodec = jsonCodec{}
Functions ¶
func Edition ¶
func Edition(edition string)
Edition sets the edition name. This can be set multiple times.
func NewFloat ¶
NewFloat returns a new Float stats object. If a Float stats object with the same name already exists it is returned.
func NewInt ¶
NewInt returns a new Int stats object. If an Int stats object object with the same name already exists it is returned.
Types ¶
type ClusterSeed ¶
type ClusterSeed struct {
UID string `json:"UID"`
CreatedAt time.Time `json:"created_at"`
prom.PrometheusVersion `json:"version"`
}
ClusterSeed is the seed for the usage stats. A unique ID is generated for each cluster.
func (*ClusterSeed) Clone ¶
func (c *ClusterSeed) Clone() memberlist.Mergeable
func (*ClusterSeed) Merge ¶
func (c *ClusterSeed) Merge(mergeable memberlist.Mergeable, localCAS bool) (change memberlist.Mergeable, error error)
Merge implements the memberlist.Mergeable interface. It allow to merge the content of two different seeds.
func (*ClusterSeed) MergeContent ¶
func (c *ClusterSeed) MergeContent() []string
MergeContent tells if the content of the two seeds are the same.
func (*ClusterSeed) RemoveTombstones ¶
func (c *ClusterSeed) RemoveTombstones(limit time.Time) (total, removed int)
RemoveTombstones is not required for usagestats
type Config ¶
type Counter ¶
type Counter struct {
// contains filtered or unexported fields
}
func NewCounter ¶
NewCounter returns a new Counter stats object. If a Counter stats object with the same name already exists it is returned.
type Report ¶
type Report struct {
ClusterID string `json:"clusterID"`
CreatedAt time.Time `json:"createdAt"`
Interval time.Time `json:"interval"`
IntervalPeriod float64 `json:"intervalPeriod"`
Target string `json:"target"`
prom.PrometheusVersion `json:"version"`
Os string `json:"os"`
Arch string `json:"arch"`
Edition string `json:"edition"`
Metrics map[string]interface{} `json:"metrics"`
}
Report is the JSON object sent to the stats server
type Reporter ¶
func NewReporter ¶
type Statistics ¶
type Statistics struct {
// contains filtered or unexported fields
}
func NewStatistics ¶
func NewStatistics(name string) *Statistics
NewStatistics returns a new Statistics object. Statistics object is thread-safe and compute statistics on the fly based on sample recorded. Available statistics are: - min - max - avg - count - stddev - stdvar If a Statistics object with the same name already exists it is returned.
func (*Statistics) Record ¶
func (s *Statistics) Record(v float64)
func (*Statistics) String ¶
func (s *Statistics) String() string
func (*Statistics) Value ¶
func (s *Statistics) Value() map[string]interface{}
type WordCounter ¶
type WordCounter struct {
// contains filtered or unexported fields
}
func NewWordCounter ¶
func NewWordCounter(name string) *WordCounter
NewWordCounter returns a new WordCounter stats object. The WordCounter object is thread-safe and counts the number of words recorded. If a WordCounter stats object with the same name already exists it is returned.
func (*WordCounter) Add ¶
func (w *WordCounter) Add(word string)
func (*WordCounter) String ¶
func (w *WordCounter) String() string
func (*WordCounter) Value ¶
func (w *WordCounter) Value() int64