func (m *MetricInfo) Key() interface{} {
	var result MetricInfoBuilder
	result.Init(m)
	result.GroupId = 0
	return result
}
Key returns the key for this instance. Two MetricInfo instances return
equal keys if and only if they are the same except for their group id.
package store
import (
	"errors"
	"github.com/Symantec/scotty/metrics"
	"github.com/Symantec/scotty/tsdb"
	"github.com/Symantec/tricorder/go/tricorder"
	"github.com/Symantec/tricorder/go/tricorder/types"
	"github.com/Symantec/tricorder/go/tricorder/units"
	"time"
)
var (
	ErrInactive = errors.New("store: endpoint inactive.")
)
type DistributionTotals struct {
	Counts        []uint64
	Sum           float64
	RollOverCount uint64
}
func (d *DistributionTotals) Count() (result uint64) {
	for _, count := range d.Counts {
		result += count
	}
	return
}
type Ranges struct {
	UpperLimits []float64
}
type MetricInfo struct {
	path        string
	description string
	unit        units.Unit
	kind        types.Type
	subType     types.Type
	ranges          *Ranges
	isNotCumulative bool
	groupId         int
}
func (m *MetricInfo) Path() string {
	return m.path
}
func (m *MetricInfo) Description() string {
	return m.description
}
func (m *MetricInfo) Unit() units.Unit {
	return m.unit
}
func (m *MetricInfo) Kind() types.Type {
	return m.kind
}
func (m *MetricInfo) SubType() types.Type {
	return m.subType
}
func (m *MetricInfo) Bits() int {
	if m.kind.UsesSubType() {
		return m.subType.Bits()
	}
	return m.kind.Bits()
}
func (m *MetricInfo) Ranges() *Ranges {
	return m.ranges
}
func (m *MetricInfo) IsNotCumulative() bool {
	return m.isNotCumulative
}
func (m *MetricInfo) GroupId() int {
	return m.groupId
}
func (m *MetricInfo) ValuesAreEqual(lhs, rhs interface{}) bool {
	return m.valuesAreEqual(lhs, rhs)
}