diff --git a/internal/api/route.go b/internal/api/route.go index b2a37ede5..73ddb4bd4 100644 --- a/internal/api/route.go +++ b/internal/api/route.go @@ -62,14 +62,6 @@ func NewGinRouter(discov discoveryregistry.SvcDiscoveryRegistry, rdb redis.Unive u := NewUserApi(*userRpc) m := NewMessageApi(messageRpc, userRpc) - /* - if config.Config.Prometheus.Enable { - prome.NewApiRequestCounter() - prome.NewApiRequestFailedCounter() - prome.NewApiRequestSuccessCounter() - r.Use(prome.PrometheusMiddleware) - r.GET("/metrics", prome.PrometheusHandler()) - }*/ ParseToken := GinParseToken(rdb) userRouterGroup := r.Group("/user") { diff --git a/internal/msggateway/hub_server.go b/internal/msggateway/hub_server.go index e3b83ed11..670757850 100644 --- a/internal/msggateway/hub_server.go +++ b/internal/msggateway/hub_server.go @@ -33,7 +33,6 @@ import ( "github.com/OpenIMSDK/tools/utils" "github.com/openimsdk/open-im-server/v3/pkg/common/config" - "github.com/openimsdk/open-im-server/v3/pkg/common/prome" "github.com/openimsdk/open-im-server/v3/pkg/common/startrpc" ) @@ -159,7 +158,6 @@ func (s *Server) SuperGroupOnlineBatchPushOneMsg( } else { if utils.IsContainInt(client.PlatformID, s.pushTerminal) { tempT.OnlinePush = true - prome.Inc(prome.MsgOnlinePushSuccessCounter) resp = append(resp, temp) } } diff --git a/internal/msgtransfer/init.go b/internal/msgtransfer/init.go index dc9f6ed15..c3e5b8352 100644 --- a/internal/msgtransfer/init.go +++ b/internal/msgtransfer/init.go @@ -36,7 +36,6 @@ import ( "github.com/openimsdk/open-im-server/v3/pkg/common/db/relation" relationtb "github.com/openimsdk/open-im-server/v3/pkg/common/db/table/relation" "github.com/openimsdk/open-im-server/v3/pkg/common/db/unrelation" - "github.com/openimsdk/open-im-server/v3/pkg/common/prome" "github.com/openimsdk/open-im-server/v3/pkg/rpcclient" ) @@ -86,7 +85,6 @@ func StartTransfer(prometheusPort int) error { conversationRpcClient := rpcclient.NewConversationRpcClient(client) groupRpcClient := rpcclient.NewGroupRpcClient(client) msgTransfer := NewMsgTransfer(chatLogDatabase, msgDatabase, &conversationRpcClient, &groupRpcClient) - msgTransfer.initPrometheus() return msgTransfer.Start(prometheusPort) } @@ -100,17 +98,6 @@ func NewMsgTransfer(chatLogDatabase controller.ChatLogDatabase, } } -func (m *MsgTransfer) initPrometheus() { - prome.NewSeqGetSuccessCounter() - prome.NewSeqGetFailedCounter() - prome.NewSeqSetSuccessCounter() - prome.NewSeqSetFailedCounter() - prome.NewMsgInsertRedisSuccessCounter() - prome.NewMsgInsertRedisFailedCounter() - prome.NewMsgInsertMongoSuccessCounter() - prome.NewMsgInsertMongoFailedCounter() -} - func (m *MsgTransfer) Start(prometheusPort int) error { var wg sync.WaitGroup wg.Add(1) diff --git a/internal/push/consumer_init.go b/internal/push/consumer_init.go index 8595c1656..b72c32bb1 100644 --- a/internal/push/consumer_init.go +++ b/internal/push/consumer_init.go @@ -14,10 +14,6 @@ package push -import ( - "github.com/openimsdk/open-im-server/v3/pkg/common/prome" -) - type Consumer struct { pushCh ConsumerHandler successCount uint64 @@ -29,11 +25,6 @@ func NewConsumer(pusher *Pusher) *Consumer { } } -func (c *Consumer) initPrometheus() { - prome.NewMsgOfflinePushSuccessCounter() - prome.NewMsgOfflinePushFailedCounter() -} - func (c *Consumer) Start() { // statistics.NewStatistics(&c.successCount, config.Config.ModuleName.PushName, fmt.Sprintf("%d second push to // msg_gateway count", constant.StatisticsTimeInterval), constant.StatisticsTimeInterval) diff --git a/internal/push/push_rpc_server.go b/internal/push/push_rpc_server.go index 6e9c56023..0f8f36a49 100644 --- a/internal/push/push_rpc_server.go +++ b/internal/push/push_rpc_server.go @@ -67,7 +67,6 @@ func Start(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) e go func() { defer wg.Done() consumer := NewConsumer(pusher) - consumer.initPrometheus() consumer.Start() }() wg.Wait() diff --git a/internal/rpc/msg/send.go b/internal/rpc/msg/send.go index 0b68e6652..b43bc82be 100644 --- a/internal/rpc/msg/send.go +++ b/internal/rpc/msg/send.go @@ -29,8 +29,6 @@ import ( "github.com/OpenIMSDK/tools/log" "github.com/OpenIMSDK/tools/mcontext" "github.com/OpenIMSDK/tools/utils" - - promepkg "github.com/openimsdk/open-im-server/v3/pkg/common/prome" ) func (m *msgServer) SendMsg(ctx context.Context, req *pbmsg.SendMsgReq) (resp *pbmsg.SendMsgResp, error error) { @@ -133,9 +131,7 @@ func (m *msgServer) sendMsgNotification( ctx context.Context, req *pbmsg.SendMsgReq, ) (resp *pbmsg.SendMsgResp, err error) { - promepkg.Inc(promepkg.SingleChatMsgRecvSuccessCounter) if err := m.MsgDatabase.MsgToMQ(ctx, utils.GenConversationUniqueKeyForSingle(req.MsgData.SendID, req.MsgData.RecvID), req.MsgData); err != nil { - promepkg.Inc(promepkg.SingleChatMsgProcessFailedCounter) return nil, err } resp = &pbmsg.SendMsgResp{ diff --git a/internal/rpc/msg/server.go b/internal/rpc/msg/server.go index e8f80914f..88be287fd 100644 --- a/internal/rpc/msg/server.go +++ b/internal/rpc/msg/server.go @@ -28,7 +28,6 @@ import ( "github.com/openimsdk/open-im-server/v3/pkg/common/db/controller" "github.com/openimsdk/open-im-server/v3/pkg/common/db/localcache" "github.com/openimsdk/open-im-server/v3/pkg/common/db/unrelation" - "github.com/openimsdk/open-im-server/v3/pkg/common/prome" "github.com/openimsdk/open-im-server/v3/pkg/rpcclient" ) @@ -94,27 +93,10 @@ func Start(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) e } s.notificationSender = rpcclient.NewNotificationSender(rpcclient.WithLocalSendMsg(s.SendMsg)) s.addInterceptorHandler(MessageHasReadEnabled) - s.initPrometheus() msg.RegisterMsgServer(server, s) return nil } -func (m *msgServer) initPrometheus() { - prome.NewMsgPullFromRedisSuccessCounter() - prome.NewMsgPullFromRedisFailedCounter() - prome.NewMsgPullFromMongoSuccessCounter() - prome.NewMsgPullFromMongoFailedCounter() - prome.NewSingleChatMsgRecvSuccessCounter() - prome.NewGroupChatMsgRecvSuccessCounter() - prome.NewWorkSuperGroupChatMsgRecvSuccessCounter() - prome.NewSingleChatMsgProcessSuccessCounter() - prome.NewSingleChatMsgProcessFailedCounter() - prome.NewGroupChatMsgProcessSuccessCounter() - prome.NewGroupChatMsgProcessFailedCounter() - prome.NewWorkSuperGroupChatMsgProcessSuccessCounter() - prome.NewWorkSuperGroupChatMsgProcessFailedCounter() -} - func (m *msgServer) conversationAndGetRecvID(conversation *conversation.Conversation, userID string) (recvID string) { if conversation.ConversationType == constant.SingleChatType || conversation.ConversationType == constant.NotificationChatType { diff --git a/pkg/common/db/controller/msg.go b/pkg/common/db/controller/msg.go index d0dce8c94..e3b6559dc 100644 --- a/pkg/common/db/controller/msg.go +++ b/pkg/common/db/controller/msg.go @@ -31,8 +31,6 @@ import ( unrelationtb "github.com/openimsdk/open-im-server/v3/pkg/common/db/table/unrelation" "github.com/openimsdk/open-im-server/v3/pkg/common/db/unrelation" "github.com/openimsdk/open-im-server/v3/pkg/common/kafka" - "github.com/openimsdk/open-im-server/v3/pkg/common/prome" - "go.mongodb.org/mongo-driver/mongo" pbmsg "github.com/OpenIMSDK/protocol/msg" @@ -490,7 +488,7 @@ func (db *commonMsgDatabase) GetMsgBySeqsRange(ctx context.Context, userID strin cachedMsgs, failedSeqs, err := db.cache.GetMessagesBySeq(ctx, conversationID, seqs) if err != nil { if err != redis.Nil { - prome.Add(prome.MsgPullFromRedisFailedCounter, len(failedSeqs)) + log.ZError(ctx, "get message from redis exception", err, "conversationID", conversationID, "seqs", seqs) } } @@ -527,7 +525,7 @@ func (db *commonMsgDatabase) GetMsgBySeqsRange(ctx context.Context, userID strin cachedMsgs, failedSeqs2, err := db.cache.GetMessagesBySeq(ctx, conversationID, reGetSeqsCache) if err != nil { if err != redis.Nil { - prome.Add(prome.MsgPullFromRedisFailedCounter, len(failedSeqs2)) + log.ZError(ctx, "get message from redis exception", err, "conversationID", conversationID, "seqs", reGetSeqsCache) } } @@ -540,14 +538,14 @@ func (db *commonMsgDatabase) GetMsgBySeqsRange(ctx context.Context, userID strin log.ZDebug(ctx, "msgs not exist in redis", "seqs", failedSeqs) } // get from cache or db - prome.Add(prome.MsgPullFromRedisSuccessCounter, len(successMsgs)) + if len(failedSeqs) > 0 { mongoMsgs, err := db.getMsgBySeqsRange(ctx, userID, conversationID, failedSeqs, begin, end) if err != nil { - prome.Add(prome.MsgPullFromMongoFailedCounter, len(failedSeqs)) + return 0, 0, nil, err } - prome.Add(prome.MsgPullFromMongoSuccessCounter, len(mongoMsgs)) + successMsgs = append(successMsgs, mongoMsgs...) } @@ -579,7 +577,6 @@ func (db *commonMsgDatabase) GetMsgBySeqs(ctx context.Context, userID string, co successMsgs, failedSeqs, err := db.cache.GetMessagesBySeq(ctx, conversationID, newSeqs) if err != nil { if err != redis.Nil { - prome.Add(prome.MsgPullFromRedisFailedCounter, len(failedSeqs)) log.ZError(ctx, "get message from redis exception", err, "failedSeqs", failedSeqs, "conversationID", conversationID) } } @@ -599,14 +596,14 @@ func (db *commonMsgDatabase) GetMsgBySeqs(ctx context.Context, userID string, co "conversationID", conversationID, ) - prome.Add(prome.MsgPullFromRedisSuccessCounter, len(successMsgs)) + if len(failedSeqs) > 0 { mongoMsgs, err := db.getMsgBySeqs(ctx, userID, conversationID, failedSeqs) if err != nil { - prome.Add(prome.MsgPullFromMongoFailedCounter, len(failedSeqs)) + return 0, 0, nil, err } - prome.Add(prome.MsgPullFromMongoSuccessCounter, len(mongoMsgs)) + successMsgs = append(successMsgs, mongoMsgs...) } return minSeq, maxSeq, successMsgs, nil diff --git a/pkg/common/kafka/producer.go b/pkg/common/kafka/producer.go index 4a52d2bef..1766afa97 100644 --- a/pkg/common/kafka/producer.go +++ b/pkg/common/kafka/producer.go @@ -28,8 +28,6 @@ import ( "github.com/IBM/sarama" "google.golang.org/protobuf/proto" - - prome "github.com/openimsdk/open-im-server/v3/pkg/common/prome" ) const ( @@ -131,8 +129,8 @@ func (p *Producer) SendMessage(ctx context.Context, key string, msg proto.Messag kMsg.Headers = header partition, offset, err := p.producer.SendMessage(kMsg) log.ZDebug(ctx, "ByteEncoder SendMessage end", "key ", kMsg.Key, "key length", kMsg.Value.Length()) - if err == nil { - prome.Inc(prome.SendMsgCounter) + if err != nil { + log.ZWarn(ctx, "p.producer.SendMessage error", err) } return partition, offset, utils.Wrap(err, "") } diff --git a/pkg/common/prome/doc.go b/pkg/common/prome/doc.go deleted file mode 100644 index 7058c711c..000000000 --- a/pkg/common/prome/doc.go +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright © 2023 OpenIM. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package prome // import "github.com/openimsdk/open-im-server/v3/pkg/common/prome" diff --git a/pkg/common/prome/gather.go b/pkg/common/prome/gather.go deleted file mode 100644 index eb4bc6c3b..000000000 --- a/pkg/common/prome/gather.go +++ /dev/null @@ -1,470 +0,0 @@ -// Copyright © 2023 OpenIM. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package prome - -import ( - "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/client_golang/prometheus/promauto" -) - -var ( - // auth rpc. - UserLoginCounter prometheus.Counter - UserRegisterCounter prometheus.Counter - - // seg. - SeqGetSuccessCounter prometheus.Counter - SeqGetFailedCounter prometheus.Counter - SeqSetSuccessCounter prometheus.Counter - SeqSetFailedCounter prometheus.Counter - - // msg-db. - MsgInsertRedisSuccessCounter prometheus.Counter - MsgInsertRedisFailedCounter prometheus.Counter - MsgInsertMongoSuccessCounter prometheus.Counter - MsgInsertMongoFailedCounter prometheus.Counter - MsgPullFromRedisSuccessCounter prometheus.Counter - MsgPullFromRedisFailedCounter prometheus.Counter - MsgPullFromMongoSuccessCounter prometheus.Counter - MsgPullFromMongoFailedCounter prometheus.Counter - - // msg-ws. - MsgRecvTotalCounter prometheus.Counter - GetNewestSeqTotalCounter prometheus.Counter - PullMsgBySeqListTotalCounter prometheus.Counter - - SingleChatMsgRecvSuccessCounter prometheus.Counter - GroupChatMsgRecvSuccessCounter prometheus.Counter - WorkSuperGroupChatMsgRecvSuccessCounter prometheus.Counter - OnlineUserGauge prometheus.Gauge - - // msg-msg. - SingleChatMsgProcessSuccessCounter prometheus.Counter - SingleChatMsgProcessFailedCounter prometheus.Counter - GroupChatMsgProcessSuccessCounter prometheus.Counter - GroupChatMsgProcessFailedCounter prometheus.Counter - WorkSuperGroupChatMsgProcessSuccessCounter prometheus.Counter - WorkSuperGroupChatMsgProcessFailedCounter prometheus.Counter - - // msg-push. - MsgOnlinePushSuccessCounter prometheus.Counter - MsgOfflinePushSuccessCounter prometheus.Counter - MsgOfflinePushFailedCounter prometheus.Counter - // api. - ApiRequestCounter prometheus.Counter - ApiRequestSuccessCounter prometheus.Counter - ApiRequestFailedCounter prometheus.Counter - - // grpc. - GrpcRequestCounter prometheus.Counter - GrpcRequestSuccessCounter prometheus.Counter - GrpcRequestFailedCounter prometheus.Counter - - SendMsgCounter prometheus.Counter - - // conversation. - ConversationCreateSuccessCounter prometheus.Counter - ConversationCreateFailedCounter prometheus.Counter -) - -func NewUserLoginCounter() { - if UserLoginCounter != nil { - return - } - UserLoginCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "user_login", - Help: "The number of user login", - }) -} - -func NewUserRegisterCounter() { - if UserRegisterCounter != nil { - return - } - UserRegisterCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "user_register", - Help: "The number of user register", - }) -} - -func NewSeqGetSuccessCounter() { - if SeqGetSuccessCounter != nil { - return - } - SeqGetSuccessCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "seq_get_success", - Help: "The number of successful get seq", - }) -} - -func NewSeqGetFailedCounter() { - if SeqGetFailedCounter != nil { - return - } - SeqGetFailedCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "seq_get_failed", - Help: "The number of failed get seq", - }) -} - -func NewSeqSetSuccessCounter() { - if SeqSetSuccessCounter != nil { - return - } - SeqSetSuccessCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "seq_set_success", - Help: "The number of successful set seq", - }) -} - -func NewSeqSetFailedCounter() { - if SeqSetFailedCounter != nil { - return - } - SeqSetFailedCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "seq_set_failed", - Help: "The number of failed set seq", - }) -} - -func NewApiRequestCounter() { - if ApiRequestCounter != nil { - return - } - ApiRequestCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "api_request", - Help: "The number of api request", - }) -} - -func NewApiRequestSuccessCounter() { - if ApiRequestSuccessCounter != nil { - return - } - ApiRequestSuccessCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "api_request_success", - Help: "The number of api request success", - }) -} - -func NewApiRequestFailedCounter() { - if ApiRequestFailedCounter != nil { - return - } - ApiRequestFailedCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "api_request_failed", - Help: "The number of api request failed", - }) -} - -func NewGrpcRequestCounter() { - if GrpcRequestCounter != nil { - return - } - GrpcRequestCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "grpc_request", - Help: "The number of api request", - }) -} - -func NewGrpcRequestSuccessCounter() { - if GrpcRequestSuccessCounter != nil { - return - } - GrpcRequestSuccessCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "grpc_request_success", - Help: "The number of grpc request success", - }) -} - -func NewGrpcRequestFailedCounter() { - if GrpcRequestFailedCounter != nil { - return - } - GrpcRequestFailedCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "grpc_request_failed", - Help: "The number of grpc request failed", - }) -} - -func NewSendMsgCount() { - if SendMsgCounter != nil { - return - } - SendMsgCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "send_msg", - Help: "The number of send msg", - }) -} - -func NewMsgInsertRedisSuccessCounter() { - if MsgInsertRedisSuccessCounter != nil { - return - } - MsgInsertRedisSuccessCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "msg_insert_redis_success", - Help: "The number of successful insert msg to redis", - }) -} - -func NewMsgInsertRedisFailedCounter() { - if MsgInsertRedisFailedCounter != nil { - return - } - MsgInsertRedisFailedCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "msg_insert_redis_failed", - Help: "The number of failed insert msg to redis", - }) -} - -func NewMsgInsertMongoSuccessCounter() { - if MsgInsertMongoSuccessCounter != nil { - return - } - MsgInsertMongoSuccessCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "msg_insert_mongo_success", - Help: "The number of successful insert msg to mongo", - }) -} - -func NewMsgInsertMongoFailedCounter() { - if MsgInsertMongoFailedCounter != nil { - return - } - MsgInsertMongoFailedCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "msg_insert_mongo_failed", - Help: "The number of failed insert msg to mongo", - }) -} - -func NewMsgPullFromRedisSuccessCounter() { - if MsgPullFromRedisSuccessCounter != nil { - return - } - MsgPullFromRedisSuccessCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "msg_pull_from_redis_success", - Help: "The number of successful pull msg from redis", - }) -} - -func NewMsgPullFromRedisFailedCounter() { - if MsgPullFromRedisFailedCounter != nil { - return - } - MsgPullFromRedisFailedCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "msg_pull_from_redis_failed", - Help: "The number of failed pull msg from redis", - }) -} - -func NewMsgPullFromMongoSuccessCounter() { - if MsgPullFromMongoSuccessCounter != nil { - return - } - MsgPullFromMongoSuccessCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "msg_pull_from_mongo_success", - Help: "The number of successful pull msg from mongo", - }) -} - -func NewMsgPullFromMongoFailedCounter() { - if MsgPullFromMongoFailedCounter != nil { - return - } - MsgPullFromMongoFailedCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "msg_pull_from_mongo_failed", - Help: "The number of failed pull msg from mongo", - }) -} - -func NewMsgRecvTotalCounter() { - if MsgRecvTotalCounter != nil { - return - } - MsgRecvTotalCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "msg_recv_total", - Help: "The number of msg received", - }) -} - -func NewGetNewestSeqTotalCounter() { - if GetNewestSeqTotalCounter != nil { - return - } - GetNewestSeqTotalCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "get_newest_seq_total", - Help: "the number of get newest seq", - }) -} - -func NewPullMsgBySeqListTotalCounter() { - if PullMsgBySeqListTotalCounter != nil { - return - } - PullMsgBySeqListTotalCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "pull_msg_by_seq_list_total", - Help: "The number of pull msg by seq list", - }) -} - -func NewSingleChatMsgRecvSuccessCounter() { - if SingleChatMsgRecvSuccessCounter != nil { - return - } - SingleChatMsgRecvSuccessCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "single_chat_msg_recv_success", - Help: "The number of single chat msg successful received ", - }) -} - -func NewGroupChatMsgRecvSuccessCounter() { - if GroupChatMsgRecvSuccessCounter != nil { - return - } - GroupChatMsgRecvSuccessCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "group_chat_msg_recv_success", - Help: "The number of group chat msg successful received", - }) -} - -func NewWorkSuperGroupChatMsgRecvSuccessCounter() { - if WorkSuperGroupChatMsgRecvSuccessCounter != nil { - return - } - WorkSuperGroupChatMsgRecvSuccessCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "work_super_group_chat_msg_recv_success", - Help: "The number of work/super group chat msg successful received", - }) -} - -func NewOnlineUserGauges() { - if OnlineUserGauge != nil { - return - } - OnlineUserGauge = promauto.NewGauge(prometheus.GaugeOpts{ - Name: "online_user_num", - Help: "The number of online user num", - }) -} - -func NewSingleChatMsgProcessSuccessCounter() { - if SingleChatMsgProcessSuccessCounter != nil { - return - } - SingleChatMsgProcessSuccessCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "single_chat_msg_process_success", - Help: "The number of single chat msg successful processed", - }) -} - -func NewSingleChatMsgProcessFailedCounter() { - if SingleChatMsgProcessFailedCounter != nil { - return - } - SingleChatMsgProcessFailedCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "single_chat_msg_process_failed", - Help: "The number of single chat msg failed processed", - }) -} - -func NewGroupChatMsgProcessSuccessCounter() { - if GroupChatMsgProcessSuccessCounter != nil { - return - } - GroupChatMsgProcessSuccessCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "group_chat_msg_process_success", - Help: "The number of group chat msg successful processed", - }) -} - -func NewGroupChatMsgProcessFailedCounter() { - if GroupChatMsgProcessFailedCounter != nil { - return - } - GroupChatMsgProcessFailedCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "group_chat_msg_process_failed", - Help: "The number of group chat msg failed processed", - }) -} - -func NewWorkSuperGroupChatMsgProcessSuccessCounter() { - if WorkSuperGroupChatMsgProcessSuccessCounter != nil { - return - } - WorkSuperGroupChatMsgProcessSuccessCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "work_super_group_chat_msg_process_success", - Help: "The number of work/super group chat msg successful processed", - }) -} - -func NewWorkSuperGroupChatMsgProcessFailedCounter() { - if WorkSuperGroupChatMsgProcessFailedCounter != nil { - return - } - WorkSuperGroupChatMsgProcessFailedCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "work_super_group_chat_msg_process_failed", - Help: "The number of work/super group chat msg failed processed", - }) -} - -func NewMsgOnlinePushSuccessCounter() { - if MsgOnlinePushSuccessCounter != nil { - return - } - MsgOnlinePushSuccessCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "msg_online_push_success", - Help: "The number of msg successful online pushed", - }) -} - -func NewMsgOfflinePushSuccessCounter() { - if MsgOfflinePushSuccessCounter != nil { - return - } - MsgOfflinePushSuccessCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "msg_offline_push_success", - Help: "The number of msg successful offline pushed", - }) -} - -func NewMsgOfflinePushFailedCounter() { - if MsgOfflinePushFailedCounter != nil { - return - } - MsgOfflinePushFailedCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "msg_offline_push_failed", - Help: "The number of msg failed offline pushed", - }) -} - -func NewConversationCreateSuccessCounter() { - if ConversationCreateSuccessCounter != nil { - return - } - ConversationCreateSuccessCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "conversation_push_success", - Help: "The number of conversation successful pushed", - }) -} - -func NewConversationCreateFailedCounter() { - if ConversationCreateFailedCounter != nil { - return - } - ConversationCreateFailedCounter = promauto.NewCounter(prometheus.CounterOpts{ - Name: "conversation_push_failed", - Help: "The number of conversation failed pushed", - }) -} diff --git a/pkg/common/prome/prometheus.go b/pkg/common/prome/prometheus.go deleted file mode 100644 index 254a6c9ea..000000000 --- a/pkg/common/prome/prometheus.go +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright © 2023 OpenIM. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package prome - -import ( - "bytes" - "net/http" - "strconv" - - "github.com/openimsdk/open-im-server/v3/pkg/common/config" - - "github.com/gin-gonic/gin" - "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/client_golang/prometheus/promhttp" -) - -func StartPrometheusSrv(prometheusPort int) error { - if config.Config.Prometheus.Enable { - http.Handle("/metrics", promhttp.Handler()) - err := http.ListenAndServe(":"+strconv.Itoa(prometheusPort), nil) - return err - } - return nil -} - -func PrometheusHandler() gin.HandlerFunc { - h := promhttp.Handler() - return func(c *gin.Context) { - h.ServeHTTP(c.Writer, c.Request) - } -} - -type responseBodyWriter struct { - gin.ResponseWriter - body *bytes.Buffer -} - -func (r responseBodyWriter) Write(b []byte) (int, error) { - r.body.Write(b) - return r.ResponseWriter.Write(b) -} - -func PrometheusMiddleware(c *gin.Context) { - Inc(ApiRequestCounter) - w := &responseBodyWriter{body: &bytes.Buffer{}, ResponseWriter: c.Writer} - c.Writer = w - c.Next() - if c.Writer.Status() == http.StatusOK { - Inc(ApiRequestSuccessCounter) - } else { - Inc(ApiRequestFailedCounter) - } -} - -func Inc(counter prometheus.Counter) { - if config.Config.Prometheus.Enable { - if counter != nil { - counter.Inc() - } - } -} - -func Add(counter prometheus.Counter, add int) { - if config.Config.Prometheus.Enable { - if counter != nil { - counter.Add(float64(add)) - } - } -} - -func GaugeInc(gauges prometheus.Gauge) { - if config.Config.Prometheus.Enable { - if gauges != nil { - gauges.Inc() - } - } -} - -func GaugeDec(gauges prometheus.Gauge) { - if config.Config.Prometheus.Enable { - if gauges != nil { - gauges.Dec() - } - } -}