metrix exporter를 프로세스 단위로 내림
This commit is contained in:
@ -23,7 +23,6 @@ import (
|
||||
"unsafe"
|
||||
|
||||
"repositories.action2quare.com/ayo/gocommon/logger"
|
||||
"repositories.action2quare.com/ayo/gocommon/metric"
|
||||
"repositories.action2quare.com/ayo/houston/shared"
|
||||
"repositories.action2quare.com/ayo/houston/shared/protos"
|
||||
|
||||
@ -107,7 +106,6 @@ type houstonClient struct {
|
||||
config clientConfig
|
||||
version string
|
||||
standalone bool
|
||||
metricExporter metric.Exporter
|
||||
siblingProcIndex map[string]uint64
|
||||
}
|
||||
|
||||
@ -268,7 +266,6 @@ func NewClient(standalone bool) (HoustonClient, error) {
|
||||
timestamp: exefi.ModTime().String(),
|
||||
version: string(ver),
|
||||
standalone: standalone,
|
||||
metricExporter: metric.NewPrometheusExport(clientConfig.MetricNamespace),
|
||||
siblingProcIndex: make(map[string]uint64),
|
||||
}
|
||||
|
||||
|
||||
@ -269,6 +269,9 @@ func (hc *houstonClient) launch(meta *procmeta) error {
|
||||
}
|
||||
}()
|
||||
|
||||
metricExporter := metric.NewPrometheusExport(hc.config.MetricNamespace)
|
||||
defer metricExporter.Shutdown()
|
||||
|
||||
for {
|
||||
buff, err := reader.ReadBytes('\n')
|
||||
if err != nil {
|
||||
@ -289,16 +292,22 @@ func (hc *houstonClient) launch(meta *procmeta) error {
|
||||
|
||||
metricBuffer = metricBuffer[:len(metricBuffer)-2]
|
||||
if metricBuffer[0] == '{' {
|
||||
var metric metric.MetricDescription
|
||||
if err := json.Unmarshal(metricBuffer, &metric); err != nil {
|
||||
var desc metric.MetricDescription
|
||||
if err := json.Unmarshal(metricBuffer, &desc); err != nil {
|
||||
logger.Println("unmarshal metric failed :", err, string(metricBuffer))
|
||||
continue
|
||||
}
|
||||
if index != 0 {
|
||||
if desc.ConstLabels == nil {
|
||||
desc.ConstLabels = make(map[string]string)
|
||||
}
|
||||
desc.ConstLabels["index"] = fmt.Sprintf("%d", index)
|
||||
}
|
||||
|
||||
hc.metricExporter.RegisterMetric(&metric)
|
||||
metricExporter.RegisterMetric(&desc)
|
||||
} else {
|
||||
key, val := metric.ReadMetricValue(metricBuffer)
|
||||
hc.metricExporter.UpdateMetric(key, val)
|
||||
metricExporter.UpdateMetric(key, val)
|
||||
}
|
||||
|
||||
metricBuffer = metricBuffer[:0]
|
||||
|
||||
Reference in New Issue
Block a user