| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package metrics
- import "github.com/grafana/grafana/pkg/log"
- type MetricMeta struct {
- tags map[string]string
- name string
- }
- func NewMetricMeta(name string, tagStrings []string) *MetricMeta {
- if len(tagStrings)%2 != 0 {
- log.Fatal(3, "Metrics: tags array is missing value for key, %v", tagStrings)
- }
- tags := make(map[string]string)
- for i := 0; i < len(tagStrings); i += 2 {
- tags[tagStrings[i]] = tagStrings[i+1]
- }
- return &MetricMeta{
- tags: tags,
- name: name,
- }
- }
- func (m *MetricMeta) Name() string {
- return m.name
- }
- func (m *MetricMeta) Tags() map[string]string {
- return m.tags
- }
- func (m *MetricMeta) StringifyTags() string {
- if len(m.tags) == 0 {
- return ""
- }
- str := ""
- for key, value := range m.tags {
- str += "." + key + "_" + value
- }
- return str
- }
- type Metric interface {
- Name() string
- Tags() map[string]string
- StringifyTags() string
- Snapshot() Metric
- Clear()
- }
|