mirror of
https://github.com/ClusterCockpit/cc-metric-collector.git
synced 2025-04-08 22:45:55 +02:00
Use old metric name if rename has happened in the router
This commit is contained in:
parent
3cf2f69a07
commit
5a7e12c2b7
@ -35,6 +35,8 @@ func GangliaMetricRename(name string) string {
|
|||||||
return "pkts_out"
|
return "pkts_out"
|
||||||
} else if name == "cpu_iowait" {
|
} else if name == "cpu_iowait" {
|
||||||
return "cpu_wio"
|
return "cpu_wio"
|
||||||
|
} else if name == "cpu_load" {
|
||||||
|
return "load_one"
|
||||||
}
|
}
|
||||||
return name
|
return name
|
||||||
}
|
}
|
||||||
@ -148,10 +150,14 @@ type GangliaMetricConfig struct {
|
|||||||
Unit string
|
Unit string
|
||||||
Group string
|
Group string
|
||||||
Value string
|
Value string
|
||||||
|
Name string
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetCommonGangliaConfig(point lp.CCMetric) GangliaMetricConfig {
|
func GetCommonGangliaConfig(point lp.CCMetric) GangliaMetricConfig {
|
||||||
mname := GangliaMetricRename(point.Name())
|
mname := GangliaMetricRename(point.Name())
|
||||||
|
if oldname, ok := point.GetMeta("oldname"); ok {
|
||||||
|
mname = oldname
|
||||||
|
}
|
||||||
for _, group := range CommonGangliaMetrics {
|
for _, group := range CommonGangliaMetrics {
|
||||||
for _, metric := range group.Metrics {
|
for _, metric := range group.Metrics {
|
||||||
if metric.Name == mname {
|
if metric.Name == mname {
|
||||||
@ -187,6 +193,7 @@ func GetCommonGangliaConfig(point lp.CCMetric) GangliaMetricConfig {
|
|||||||
Tmax: metric.Tmax,
|
Tmax: metric.Tmax,
|
||||||
Unit: metric.Unit,
|
Unit: metric.Unit,
|
||||||
Value: valueStr,
|
Value: valueStr,
|
||||||
|
Name: GangliaMetricRename(mname),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -198,10 +205,15 @@ func GetCommonGangliaConfig(point lp.CCMetric) GangliaMetricConfig {
|
|||||||
Tmax: 0,
|
Tmax: 0,
|
||||||
Unit: "",
|
Unit: "",
|
||||||
Value: "",
|
Value: "",
|
||||||
|
Name: "",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetGangliaConfig(point lp.CCMetric) GangliaMetricConfig {
|
func GetGangliaConfig(point lp.CCMetric) GangliaMetricConfig {
|
||||||
|
mname := GangliaMetricRename(point.Name())
|
||||||
|
if oldname, ok := point.GetMeta("oldname"); ok {
|
||||||
|
mname = oldname
|
||||||
|
}
|
||||||
group := ""
|
group := ""
|
||||||
if g, ok := point.GetMeta("group"); ok {
|
if g, ok := point.GetMeta("group"); ok {
|
||||||
group = g
|
group = g
|
||||||
@ -254,5 +266,6 @@ func GetGangliaConfig(point lp.CCMetric) GangliaMetricConfig {
|
|||||||
Tmax: DEFAULT_GANGLIA_METRIC_TMAX,
|
Tmax: DEFAULT_GANGLIA_METRIC_TMAX,
|
||||||
Unit: unit,
|
Unit: unit,
|
||||||
Value: valueStr,
|
Value: valueStr,
|
||||||
|
Name: GangliaMetricRename(mname),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -39,16 +39,13 @@ func (s *GangliaSink) Write(point lp.CCMetric) error {
|
|||||||
//var tagsstr []string
|
//var tagsstr []string
|
||||||
var argstr []string
|
var argstr []string
|
||||||
|
|
||||||
// Get metric name
|
|
||||||
metricname := GangliaMetricRename(point.Name())
|
|
||||||
|
|
||||||
// Get metric config (type, value, ... in suitable format)
|
// Get metric config (type, value, ... in suitable format)
|
||||||
conf := GetCommonGangliaConfig(point)
|
conf := GetCommonGangliaConfig(point)
|
||||||
if len(conf.Type) == 0 {
|
if len(conf.Type) == 0 {
|
||||||
conf = GetGangliaConfig(point)
|
conf = GetGangliaConfig(point)
|
||||||
}
|
}
|
||||||
if len(conf.Type) == 0 {
|
if len(conf.Type) == 0 {
|
||||||
return fmt.Errorf("metric %s has no 'value' field", metricname)
|
return fmt.Errorf("metric %q (Ganglia name %q) has no 'value' field", point.Name(), conf.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
if s.config.AddGangliaGroup {
|
if s.config.AddGangliaGroup {
|
||||||
@ -70,7 +67,7 @@ func (s *GangliaSink) Write(point lp.CCMetric) error {
|
|||||||
if s.config.AddTypeToName {
|
if s.config.AddTypeToName {
|
||||||
argstr = append(argstr, fmt.Sprintf("--name=%s", GangliaMetricName(point)))
|
argstr = append(argstr, fmt.Sprintf("--name=%s", GangliaMetricName(point)))
|
||||||
} else {
|
} else {
|
||||||
argstr = append(argstr, fmt.Sprintf("--name=%s", metricname))
|
argstr = append(argstr, fmt.Sprintf("--name=%s", conf.Name))
|
||||||
}
|
}
|
||||||
argstr = append(argstr, fmt.Sprintf("--slope=%s", conf.Slope))
|
argstr = append(argstr, fmt.Sprintf("--slope=%s", conf.Slope))
|
||||||
argstr = append(argstr, fmt.Sprintf("--value=%s", conf.Value))
|
argstr = append(argstr, fmt.Sprintf("--value=%s", conf.Value))
|
||||||
|
@ -124,24 +124,21 @@ func (s *LibgangliaSink) Write(point lp.CCMetric) error {
|
|||||||
return s.cstrCache[key]
|
return s.cstrCache[key]
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get metric name
|
|
||||||
metricname := GangliaMetricRename(point.Name())
|
|
||||||
|
|
||||||
conf := GetCommonGangliaConfig(point)
|
conf := GetCommonGangliaConfig(point)
|
||||||
if len(conf.Type) == 0 {
|
if len(conf.Type) == 0 {
|
||||||
conf = GetGangliaConfig(point)
|
conf = GetGangliaConfig(point)
|
||||||
}
|
}
|
||||||
if len(conf.Type) == 0 {
|
if len(conf.Type) == 0 {
|
||||||
return fmt.Errorf("metric %s has no 'value' field", metricname)
|
return fmt.Errorf("metric %q (Ganglia name %q) has no 'value' field", point.Name(), conf.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
if s.config.AddTypeToName {
|
if s.config.AddTypeToName {
|
||||||
metricname = GangliaMetricName(point)
|
conf.Name = GangliaMetricName(point)
|
||||||
}
|
}
|
||||||
|
|
||||||
c_value = C.CString(conf.Value)
|
c_value = C.CString(conf.Value)
|
||||||
c_type = lookup(conf.Type)
|
c_type = lookup(conf.Type)
|
||||||
c_name = lookup(metricname)
|
c_name = lookup(conf.Name)
|
||||||
|
|
||||||
// Add unit
|
// Add unit
|
||||||
unit := ""
|
unit := ""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user