diff --git a/sinks/gangliaSink.go b/sinks/gangliaSink.go index 1db11b6..87506a0 100644 --- a/sinks/gangliaSink.go +++ b/sinks/gangliaSink.go @@ -2,11 +2,13 @@ package sinks import ( "fmt" + "log" "strings" - "log" + // "time" - lp "github.com/influxdata/line-protocol" "os/exec" + + lp "github.com/ClusterCockpit/cc-metric-collector/internal/ccMetric" ) const GMETRIC_EXEC = `gmetric` @@ -16,59 +18,59 @@ type GangliaSink struct { gmetric_path string } -func (s *GangliaSink) Init(config SinkConfig) error { - p, err := exec.LookPath(string(GMETRIC_EXEC)) - if err == nil { - s.gmetric_path = p - } +func (s *GangliaSink) Init(config sinkConfig) error { + p, err := exec.LookPath(string(GMETRIC_EXEC)) + if err == nil { + s.gmetric_path = p + } return err } -func (s *GangliaSink) Write(point lp.MutableMetric) error { - var err error = nil - var tagsstr []string - var argstr []string - for _, t := range point.TagList() { - switch t.Key { - case "cluster": - argstr = append(argstr, fmt.Sprintf("--cluster=%s", t.Value)) - case "unit": - argstr = append(argstr, fmt.Sprintf("--units=%s", t.Value)) - case "group": - argstr = append(argstr, fmt.Sprintf("--group=%s", t.Value)) - default: - tagsstr = append(tagsstr, fmt.Sprintf("%s=%s", t.Key, t.Value)) - } +func (s *GangliaSink) Write(point lp.CCMetric) error { + var err error = nil + var tagsstr []string + var argstr []string + for _, t := range point.TagList() { + switch t.Key { + case "cluster": + argstr = append(argstr, fmt.Sprintf("--cluster=%s", t.Value)) + case "unit": + argstr = append(argstr, fmt.Sprintf("--units=%s", t.Value)) + case "group": + argstr = append(argstr, fmt.Sprintf("--group=%s", t.Value)) + default: + tagsstr = append(tagsstr, fmt.Sprintf("%s=%s", t.Key, t.Value)) + } } if len(tagsstr) > 0 { - argstr = append(argstr, fmt.Sprintf("--desc=%q", strings.Join(tagsstr, ","))) - } + argstr = append(argstr, fmt.Sprintf("--desc=%q", strings.Join(tagsstr, ","))) + } argstr = append(argstr, fmt.Sprintf("--name=%s", point.Name())) for _, f := range point.FieldList() { - if f.Key == "value" { - switch f.Value.(type) { - case float64: - argstr = append(argstr, fmt.Sprintf("--value=%v", f.Value.(float64))) - argstr = append(argstr, "--type=double") - case float32: - argstr = append(argstr, fmt.Sprintf("--value=%v", f.Value.(float32))) - argstr = append(argstr, "--type=float") - case int: - argstr = append(argstr, fmt.Sprintf("--value=%d", f.Value.(int))) - argstr = append(argstr, "--type=int32") - case int64: - argstr = append(argstr, fmt.Sprintf("--value=%d", f.Value.(int64))) - argstr = append(argstr, "--type=int32") - case string: - argstr = append(argstr, fmt.Sprintf("--value=%q", f.Value.(string))) - argstr = append(argstr, "--type=string") - } - } + if f.Key == "value" { + switch f.Value.(type) { + case float64: + argstr = append(argstr, fmt.Sprintf("--value=%v", f.Value.(float64))) + argstr = append(argstr, "--type=double") + case float32: + argstr = append(argstr, fmt.Sprintf("--value=%v", f.Value.(float32))) + argstr = append(argstr, "--type=float") + case int: + argstr = append(argstr, fmt.Sprintf("--value=%d", f.Value.(int))) + argstr = append(argstr, "--type=int32") + case int64: + argstr = append(argstr, fmt.Sprintf("--value=%d", f.Value.(int64))) + argstr = append(argstr, "--type=int32") + case string: + argstr = append(argstr, fmt.Sprintf("--value=%q", f.Value.(string))) + argstr = append(argstr, "--type=string") + } + } } log.Print(s.gmetric_path, " ", strings.Join(argstr, " ")) -// command := exec.Command(string(GMETRIC_EXEC), strings.Join(argstr, " ")) -// command.Wait() -// _, err := command.Output() + // command := exec.Command(string(GMETRIC_EXEC), strings.Join(argstr, " ")) + // command.Wait() + // _, err := command.Output() return err } @@ -77,5 +79,4 @@ func (s *GangliaSink) Flush() error { } func (s *GangliaSink) Close() { - return }