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