-
Notifications
You must be signed in to change notification settings - Fork 403
/
stats_utils.go
43 lines (37 loc) · 1011 Bytes
/
stats_utils.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package common
import (
"github.com/sirupsen/logrus"
"go.opencensus.io/stats"
"go.opencensus.io/stats/view"
"go.opencensus.io/tag"
)
func CreateView(measure stats.Measure, agg *view.Aggregation, tagKeys []string) *view.View {
keys := makeKeys(tagKeys)
return CreateViewWithTags(measure, agg, keys)
}
func CreateViewWithTags(measure stats.Measure, agg *view.Aggregation, tags []tag.Key) *view.View {
return &view.View{
Name: measure.Name(),
Description: measure.Description(),
Measure: measure,
TagKeys: tags,
Aggregation: agg,
}
}
func MakeMeasure(name string, desc string, unit string) *stats.Int64Measure {
return stats.Int64(name, desc, unit)
}
func MakeKey(name string) tag.Key {
key, err := tag.NewKey(name)
if err != nil {
logrus.WithError(err).Fatalf("Cannot create tag %s", name)
}
return key
}
func makeKeys(names []string) []tag.Key {
tagKeys := make([]tag.Key, len(names))
for i, name := range names {
tagKeys[i] = MakeKey(name)
}
return tagKeys
}