func metricToGraphite(hostname string, m *metrics.Metric, l *metrics.LabelSet) string { m.RLock() defer m.RUnlock() return fmt.Sprintf("%s.%s %v %v\n", m.Program, formatLabels(m.Name, l.Labels, ".", "."), l.Datum.Get(), l.Datum.Time/1e9) }
func metricToStatsd(hostname string, m *metrics.Metric, l *metrics.LabelSet) string { // TODO(jaq): handle units better, send timing as |ms m.RLock() defer m.RUnlock() return fmt.Sprintf("%s.%s:%d|c", m.Program, formatLabels(m.Name, l.Labels, ".", "."), l.Datum.Get()) }
func FakeSocketWrite(f formatter, m *metrics.Metric) []string { var ret []string lc := make(chan *metrics.LabelSet) go m.EmitLabelSets(lc) for l := range lc { ret = append(ret, f("gunstar", m, l)) } sort.Strings(ret) return ret }
func metricToCollectd(hostname string, m *metrics.Metric, l *metrics.LabelSet) string { m.RLock() defer m.RUnlock() return fmt.Sprintf(collectdFormat, hostname, m.Program, strings.ToLower(m.Kind.String()), formatLabels(m.Name, l.Labels, "-", "-"), *pushInterval, l.Datum.Time/1e9, l.Datum.Get()) }
func metricToStatsd(hostname string, m *metrics.Metric, l *metrics.LabelSet) string { m.RLock() defer m.RUnlock() var t string switch m.Kind { case metrics.Counter: t = "c" // StatsD Counter case metrics.Gauge: t = "g" // StatsD Gauge case metrics.Timer: t = "ms" // StatsD Timer } return fmt.Sprintf("%s.%s:%d|%s", m.Program, formatLabels(m.Name, l.Labels, ".", "."), l.Datum.Get(), t) }