func (f *MetricFamily) valid() bool {
	return f.Name != "" && f.Type != "" && len(f.Metrics) > 0
}
valid validates that all the attributes were filled.
package prometheus
import (
	"fmt"
	"strconv"
	model "github.com/prometheus/client_model/go"
)
type Value interface {
	fmt.Stringer
}
type noValueType string
func (v noValueType) String() string {
	return string(v)
}
const EmptyValue noValueType = "no_value"
type Labels map[string]string
func (l Labels) AreIn(p []*model.LabelPair) bool {
	var votes int
	for name, value := range l {
		for _, pl := range p {
			if pl.GetName() == name && pl.GetValue() == value {
				votes++
			}
		}
	}
	return votes == len(l)
}
func (l Labels) Has(name string) bool {
	if _, ok := l[name]; ok {
		return true
	}
	return false
}
type Metric struct {
	Labels Labels
	Value  Value
}
type MetricFamily struct {
	Name    string
	Type    string
	Metrics []Metric
}