메트릭 중복 등록시 크래시 막음
This commit is contained in:
@ -250,19 +250,28 @@ func (hc *houstonClient) launch(meta *procmeta) error {
|
||||
}
|
||||
|
||||
if readingMetric {
|
||||
logger.Println("readingMetric is on :", string(buff))
|
||||
if metricBuffer[len(metricBuffer)-2] == metric.METRIC_TAIL_INLINE {
|
||||
readingMetric = false
|
||||
logger.Println("readingMetric is off :", string(buff))
|
||||
|
||||
metricBuffer = metricBuffer[:len(metricBuffer)-2]
|
||||
if metricBuffer[0] == '{' {
|
||||
var metric metric.MetricDescription
|
||||
json.Unmarshal(metricBuffer, &metric)
|
||||
if err := json.Unmarshal(metricBuffer, &metric); err != nil {
|
||||
logger.Println("unmarshal metric failed :", err, string(metricBuffer))
|
||||
continue
|
||||
}
|
||||
|
||||
exporter := newExporterForPrometheus()
|
||||
accessor := exporter.registMetric(childProcName, metric)
|
||||
prometheus.MustRegister(exporter)
|
||||
if _, registered := metricValues[metric.Key]; !registered {
|
||||
exporter := newExporterForPrometheus()
|
||||
accessor := exporter.registMetric(childProcName, metric)
|
||||
|
||||
metricValues[metric.Key] = accessor
|
||||
prometheus.Register(exporter)
|
||||
|
||||
metricValues[metric.Key] = accessor
|
||||
logger.Println("metric registered :", metric)
|
||||
}
|
||||
} else {
|
||||
keybytes := metricBuffer[:8]
|
||||
valbits := binary.BigEndian.Uint64(metricBuffer[8:])
|
||||
|
||||
Reference in New Issue
Block a user