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  }