parent
a4a195aad3
commit
ea8f720d5c
@ -0,0 +1,44 @@
|
|||||||
|
package prom_metrics
|
||||||
|
|
||||||
|
import (
|
||||||
|
grpc_prometheus "github.com/grpc-ecosystem/go-grpc-prometheus"
|
||||||
|
"github.com/openimsdk/open-im-server/v3/pkg/common/ginPrometheus"
|
||||||
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
|
"github.com/prometheus/client_golang/prometheus/collectors"
|
||||||
|
)
|
||||||
|
|
||||||
|
func NewGrpcPromObj(cusMetrics []prometheus.Collector) (*prometheus.Registry, *grpc_prometheus.ServerMetrics, error) {
|
||||||
|
////////////////////////////////////////////////////////
|
||||||
|
reg := prometheus.NewRegistry()
|
||||||
|
grpcMetrics := grpc_prometheus.NewServerMetrics()
|
||||||
|
grpcMetrics.EnableHandlingTimeHistogram()
|
||||||
|
cusMetrics = append(cusMetrics, grpcMetrics, collectors.NewGoCollector())
|
||||||
|
reg.MustRegister(cusMetrics...)
|
||||||
|
return reg, grpcMetrics, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetGrpcCusMetrics(registerName string) []prometheus.Collector {
|
||||||
|
switch registerName {
|
||||||
|
case "MessageGateway":
|
||||||
|
return []prometheus.Collector{OnlineUserGauge}
|
||||||
|
case "Msg":
|
||||||
|
return []prometheus.Collector{SingleChatMsgProcessSuccessCounter, SingleChatMsgProcessFailedCounter, GroupChatMsgProcessSuccessCounter, GroupChatMsgProcessFailedCounter}
|
||||||
|
case "Transfer":
|
||||||
|
return []prometheus.Collector{MsgInsertRedisSuccessCounter, MsgInsertRedisFailedCounter, MsgInsertMongoSuccessCounter, MsgInsertMongoFailedCounter, SeqSetFailedCounter}
|
||||||
|
case "Push":
|
||||||
|
return []prometheus.Collector{MsgOfflinePushFailedCounter}
|
||||||
|
case "Auth":
|
||||||
|
return []prometheus.Collector{UserLoginCounter}
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetGinCusMetrics(name string) []*ginPrometheus.Metric {
|
||||||
|
switch name {
|
||||||
|
case "Api":
|
||||||
|
return []*ginPrometheus.Metric{ApiCustomCnt}
|
||||||
|
default:
|
||||||
|
return []*ginPrometheus.Metric{ApiCustomCnt}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
package prom_metrics
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
UserLoginCounter = prometheus.NewCounter(prometheus.CounterOpts{
|
||||||
|
Name: "user_login_total",
|
||||||
|
Help: "The number of user login",
|
||||||
|
})
|
||||||
|
)
|
@ -0,0 +1,24 @@
|
|||||||
|
package prom_metrics
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
SingleChatMsgProcessSuccessCounter = prometheus.NewCounter(prometheus.CounterOpts{
|
||||||
|
Name: "single_chat_msg_process_success_total",
|
||||||
|
Help: "The number of single chat msg successful processed",
|
||||||
|
})
|
||||||
|
SingleChatMsgProcessFailedCounter = prometheus.NewCounter(prometheus.CounterOpts{
|
||||||
|
Name: "single_chat_msg_process_failed_total",
|
||||||
|
Help: "The number of single chat msg failed processed",
|
||||||
|
})
|
||||||
|
GroupChatMsgProcessSuccessCounter = prometheus.NewCounter(prometheus.CounterOpts{
|
||||||
|
Name: "group_chat_msg_process_success_total",
|
||||||
|
Help: "The number of group chat msg successful processed",
|
||||||
|
})
|
||||||
|
GroupChatMsgProcessFailedCounter = prometheus.NewCounter(prometheus.CounterOpts{
|
||||||
|
Name: "group_chat_msg_process_failed_total",
|
||||||
|
Help: "The number of group chat msg failed processed",
|
||||||
|
})
|
||||||
|
)
|
@ -1,42 +0,0 @@
|
|||||||
package prom_metrics
|
|
||||||
|
|
||||||
import (
|
|
||||||
grpc_prometheus "github.com/grpc-ecosystem/go-grpc-prometheus"
|
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
|
||||||
)
|
|
||||||
|
|
||||||
type GrpcCusMetricsMap struct {
|
|
||||||
MetricsMap map[string]prometheus.Collector
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *GrpcCusMetricsMap) MetricList() []prometheus.Collector {
|
|
||||||
var ret []prometheus.Collector
|
|
||||||
for _, v := range m.MetricsMap {
|
|
||||||
ret = append(ret, v)
|
|
||||||
}
|
|
||||||
return ret
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewGrpcPromObj(cusMetrics []prometheus.Collector) (*prometheus.Registry, *grpc_prometheus.ServerMetrics, error) {
|
|
||||||
////////////////////////////////////////////////////////
|
|
||||||
reg := prometheus.NewRegistry()
|
|
||||||
grpcMetrics := grpc_prometheus.NewServerMetrics()
|
|
||||||
grpcMetrics.EnableHandlingTimeHistogram()
|
|
||||||
cusMetrics = append(cusMetrics, grpcMetrics, prometheus.NewGoCollector())
|
|
||||||
reg.MustRegister(cusMetrics...)
|
|
||||||
return reg, grpcMetrics, nil
|
|
||||||
}
|
|
||||||
func GetGrpcCusMetrics(name string) (*GrpcCusMetricsMap, error) {
|
|
||||||
switch name {
|
|
||||||
case "MessageGateway":
|
|
||||||
return G_grpc_msggateway_metrics, nil
|
|
||||||
case "User":
|
|
||||||
return G_grpc_msggateway_metrics, nil
|
|
||||||
case "Msg":
|
|
||||||
return G_grpc_msggateway_metrics, nil
|
|
||||||
case "Conversation":
|
|
||||||
return G_grpc_msggateway_metrics, nil
|
|
||||||
default:
|
|
||||||
return G_grpc_msggateway_metrics, nil
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,12 @@
|
|||||||
|
package prom_metrics
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
MsgOfflinePushFailedCounter = prometheus.NewCounter(prometheus.CounterOpts{
|
||||||
|
Name: "msg_offline_push_failed_total",
|
||||||
|
Help: "The number of msg failed offline pushed",
|
||||||
|
})
|
||||||
|
)
|
@ -0,0 +1,28 @@
|
|||||||
|
package prom_metrics
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
MsgInsertRedisSuccessCounter = prometheus.NewCounter(prometheus.CounterOpts{
|
||||||
|
Name: "msg_insert_redis_success_total",
|
||||||
|
Help: "The number of successful insert msg to redis",
|
||||||
|
})
|
||||||
|
MsgInsertRedisFailedCounter = prometheus.NewCounter(prometheus.CounterOpts{
|
||||||
|
Name: "msg_insert_redis_failed_total",
|
||||||
|
Help: "The number of failed insert msg to redis",
|
||||||
|
})
|
||||||
|
MsgInsertMongoSuccessCounter = prometheus.NewCounter(prometheus.CounterOpts{
|
||||||
|
Name: "msg_insert_mongo_success_total",
|
||||||
|
Help: "The number of successful insert msg to mongo",
|
||||||
|
})
|
||||||
|
MsgInsertMongoFailedCounter = prometheus.NewCounter(prometheus.CounterOpts{
|
||||||
|
Name: "msg_insert_mongo_failed_total",
|
||||||
|
Help: "The number of failed insert msg to mongo",
|
||||||
|
})
|
||||||
|
SeqSetFailedCounter = prometheus.NewCounter(prometheus.CounterOpts{
|
||||||
|
Name: "seq_set_failed_total",
|
||||||
|
Help: "The number of failed set seq",
|
||||||
|
})
|
||||||
|
)
|
Loading…
Reference in new issue