func (s StatsMap) TryString(name string, defValue string, aliases ...string) string {
	field := s.Get(name, aliases...)
	if field != nil {
		if value, ok := field.(string); ok {
			return value
		}
	}
	return defValue
}
Value should be an int64 or a convertible string; otherwise defValue is returned
this function never panics
package main
import "github.com/prometheus/client_golang/prometheus"
type MetricMap map[string]promMetric
type metricType byte
const (
	mtGauge   metricType = 'G'
	mtCounter metricType = 'C'
)
type Watcher interface {
	passOneKeys() []string
	passTwoKeys(rawMetrics map[string]string) []string
	refresh(o *Observer, infoKeys []string, rawMetrics map[string]string, ch chan<- prometheus.Metric) error
	describe(ch chan<- *prometheus.Desc)
}
type promMetric struct {
	origDesc  string
	desc      *prometheus.Desc
	valueType prometheus.ValueType
}
type StatsMap map[string]interface{}