mirror of
				https://github.com/openimsdk/open-im-server.git
				synced 2025-11-04 03:13:15 +08:00 
			
		
		
		
	api prommetrics
This commit is contained in:
		
							parent
							
								
									1336b83142
								
							
						
					
					
						commit
						6713986887
					
				@ -2,14 +2,10 @@ package api
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"github.com/openimsdk/open-im-server/v3/pkg/common/prommetrics"
 | 
					 | 
				
			||||||
	"net/http"
 | 
					 | 
				
			||||||
	"strings"
 | 
					 | 
				
			||||||
	"time"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"github.com/gin-gonic/gin"
 | 
						"github.com/gin-gonic/gin"
 | 
				
			||||||
	"github.com/gin-gonic/gin/binding"
 | 
						"github.com/gin-gonic/gin/binding"
 | 
				
			||||||
	"github.com/go-playground/validator/v10"
 | 
						"github.com/go-playground/validator/v10"
 | 
				
			||||||
 | 
						"github.com/openimsdk/open-im-server/v3/pkg/common/prommetrics"
 | 
				
			||||||
	"github.com/openimsdk/open-im-server/v3/pkg/common/servererrs"
 | 
						"github.com/openimsdk/open-im-server/v3/pkg/common/servererrs"
 | 
				
			||||||
	"github.com/openimsdk/open-im-server/v3/pkg/rpcclient"
 | 
						"github.com/openimsdk/open-im-server/v3/pkg/rpcclient"
 | 
				
			||||||
	"github.com/openimsdk/protocol/constant"
 | 
						"github.com/openimsdk/protocol/constant"
 | 
				
			||||||
@ -19,14 +15,17 @@ import (
 | 
				
			|||||||
	"github.com/openimsdk/tools/mw"
 | 
						"github.com/openimsdk/tools/mw"
 | 
				
			||||||
	"google.golang.org/grpc"
 | 
						"google.golang.org/grpc"
 | 
				
			||||||
	"google.golang.org/grpc/credentials/insecure"
 | 
						"google.golang.org/grpc/credentials/insecure"
 | 
				
			||||||
 | 
						"net/http"
 | 
				
			||||||
 | 
						"strings"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func prommetricsGin() gin.HandlerFunc {
 | 
					func prommetricsGin() gin.HandlerFunc {
 | 
				
			||||||
	return func(c *gin.Context) {
 | 
						return func(c *gin.Context) {
 | 
				
			||||||
		start := time.Now()
 | 
							//start := time.Now()
 | 
				
			||||||
		c.Next()
 | 
							c.Next()
 | 
				
			||||||
		path := c.FullPath()
 | 
							path := c.FullPath()
 | 
				
			||||||
		prommetrics.HttpCall(path, c.Request.Method, c.Writer.Status(), time.Since(start))
 | 
							prommetrics.HttpCall(path, c.Request.Method, c.Writer.Status())
 | 
				
			||||||
 | 
							//prommetrics.HttpCall(path, c.Request.Method, c.Writer.Status(), time.Since(start))
 | 
				
			||||||
		if c.Request.Method == http.MethodPost {
 | 
							if c.Request.Method == http.MethodPost {
 | 
				
			||||||
			if resp := apiresp.GetGinApiResponse(c); resp == nil {
 | 
								if resp := apiresp.GetGinApiResponse(c); resp == nil {
 | 
				
			||||||
				prommetrics.APICall(path, -1, "NO_GIN_RESPONSE_FOUND")
 | 
									prommetrics.APICall(path, -1, "NO_GIN_RESPONSE_FOUND")
 | 
				
			||||||
 | 
				
			|||||||
@ -24,7 +24,8 @@ var (
 | 
				
			|||||||
			Name: "http_count",
 | 
								Name: "http_count",
 | 
				
			||||||
			Help: "Total number of HTTP calls",
 | 
								Help: "Total number of HTTP calls",
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		[]string{"path", "method", "status", "duration"},
 | 
							//[]string{"path", "method", "status", "duration"},
 | 
				
			||||||
 | 
							[]string{"path", "method", "status"},
 | 
				
			||||||
	)
 | 
						)
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -36,8 +37,12 @@ func APICall(path string, apiCode int, apiType string) {
 | 
				
			|||||||
	apiCounter.With(prometheus.Labels{"path": path, "code": strconv.Itoa(apiCode), "type": apiType}).Inc()
 | 
						apiCounter.With(prometheus.Labels{"path": path, "code": strconv.Itoa(apiCode), "type": apiType}).Inc()
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func HttpCall(path string, method string, status int, duration time.Duration) {
 | 
					//func HttpCall(path string, method string, status int, duration time.Duration) {
 | 
				
			||||||
	httpCounter.With(prometheus.Labels{"path": path, "method": method, "status": strconv.Itoa(status), "duration": durationRange(duration)}).Inc()
 | 
					//	httpCounter.With(prometheus.Labels{"path": path, "method": method, "status": strconv.Itoa(status), "duration": durationRange(duration)}).Inc()
 | 
				
			||||||
 | 
					//}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func HttpCall(path string, method string, status int) {
 | 
				
			||||||
 | 
						httpCounter.With(prometheus.Labels{"path": path, "method": method, "status": strconv.Itoa(status)}).Inc()
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var (
 | 
					var (
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user