in inlong-sdk/dataproxy-sdk-twins/dataproxy-sdk-golang/dataproxy/metrics.go [86:202]
func (m *metrics) init() error {
m.errorCounter = prometheus.NewCounterVec(prometheus.CounterOpts{
Name: "data_proxy_error_count",
Help: "Counter of error events",
}, []string{"name", "code"})
err := m.registry.Register(m.errorCounter)
if err != nil {
var are prometheus.AlreadyRegisteredError
ok := errors.As(err, &are)
if !ok {
return err
}
m.errorCounter = are.ExistingCollector.(*prometheus.CounterVec)
}
m.retryCounter = prometheus.NewCounterVec(prometheus.CounterOpts{
Name: "data_proxy_retry_count",
Help: "Counter of retry batches",
}, []string{"name", "worker"})
err = m.registry.Register(m.retryCounter)
if err != nil {
var are prometheus.AlreadyRegisteredError
ok := errors.As(err, &are)
if !ok {
return err
}
m.retryCounter = are.ExistingCollector.(*prometheus.CounterVec)
}
m.timeoutCounter = prometheus.NewCounterVec(prometheus.CounterOpts{
Name: "data_proxy_timeout_count",
Help: "Counter of timeout batches",
}, []string{"name", "worker"})
err = m.registry.Register(m.timeoutCounter)
if err != nil {
var are prometheus.AlreadyRegisteredError
ok := errors.As(err, &are)
if !ok {
return err
}
m.timeoutCounter = are.ExistingCollector.(*prometheus.CounterVec)
}
m.messageCounter = prometheus.NewCounterVec(prometheus.CounterOpts{
Name: "data_proxy_msg_count",
Help: "Counter of message",
}, []string{"name", "code"})
err = m.registry.Register(m.messageCounter)
if err != nil {
var are prometheus.AlreadyRegisteredError
ok := errors.As(err, &are)
if !ok {
return err
}
m.messageCounter = are.ExistingCollector.(*prometheus.CounterVec)
}
m.updateConnCounter = prometheus.NewCounterVec(prometheus.CounterOpts{
Name: "data_proxy_update_conn_count",
Help: "Counter of update connection events",
}, []string{"name", "code"})
err = m.registry.Register(m.updateConnCounter)
if err != nil {
var are prometheus.AlreadyRegisteredError
ok := errors.As(err, &are)
if !ok {
return err
}
m.updateConnCounter = are.ExistingCollector.(*prometheus.CounterVec)
}
m.pendingMessageGauge = prometheus.NewGaugeVec(prometheus.GaugeOpts{
Name: "data_proxy_pending_msg_gauge",
Help: "Gauge of pending message",
}, []string{"name", "worker"})
err = m.registry.Register(m.pendingMessageGauge)
if err != nil {
var are prometheus.AlreadyRegisteredError
ok := errors.As(err, &are)
if !ok {
return err
}
m.pendingMessageGauge = are.ExistingCollector.(*prometheus.GaugeVec)
}
m.batchSizeHistogram = prometheus.NewHistogramVec(prometheus.HistogramOpts{
Name: "data_proxy_batch_size",
Help: "Histogram of batch size",
Buckets: []float64{1024, 2 * 1024, 4 * 1024, 8 * 1024, 16 * 1024, 32 * 1024, 64 * 1024, 128 * 1024, 256 * 1024},
}, []string{"name", "code"})
err = m.registry.Register(m.batchSizeHistogram)
if err != nil {
var are prometheus.AlreadyRegisteredError
ok := errors.As(err, &are)
if !ok {
return err
}
m.batchSizeHistogram = are.ExistingCollector.(*prometheus.HistogramVec)
}
m.batchTimeHistogram = prometheus.NewHistogramVec(prometheus.HistogramOpts{
Name: "data_proxy_batch_time",
Help: "Histogram of batch time in milliseconds",
Buckets: []float64{5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000, 10000, 20000, 50000},
}, []string{"name", "code"})
err = m.registry.Register(m.batchTimeHistogram)
if err != nil {
var are prometheus.AlreadyRegisteredError
ok := errors.As(err, &are)
if !ok {
return err
}
m.batchTimeHistogram = are.ExistingCollector.(*prometheus.HistogramVec)
}
return nil
}