github.com/argoproj/argo-cd/v3@v3.2.1/commitserver/metrics/githandlers.go (about) 1 package metrics 2 3 import ( 4 "time" 5 6 "github.com/argoproj/argo-cd/v3/util/git" 7 ) 8 9 // NewGitClientEventHandlers creates event handlers that update Git related metrics 10 func NewGitClientEventHandlers(metricsServer *Server) git.EventHandlers { 11 return git.EventHandlers{ 12 OnFetch: func(repo string) func() { 13 startTime := time.Now() 14 metricsServer.IncGitRequest(repo, GitRequestTypeFetch) 15 return func() { 16 metricsServer.ObserveGitRequestDuration(repo, GitRequestTypeFetch, time.Since(startTime)) 17 } 18 }, 19 OnLsRemote: func(repo string) func() { 20 startTime := time.Now() 21 metricsServer.IncGitRequest(repo, GitRequestTypeLsRemote) 22 return func() { 23 metricsServer.ObserveGitRequestDuration(repo, GitRequestTypeLsRemote, time.Since(startTime)) 24 } 25 }, 26 OnPush: func(repo string) func() { 27 startTime := time.Now() 28 metricsServer.IncGitRequest(repo, GitRequestTypePush) 29 return func() { 30 metricsServer.ObserveGitRequestDuration(repo, GitRequestTypePush, time.Since(startTime)) 31 } 32 }, 33 } 34 }