github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/wrappa/api_metrics_wrappa.go (about)

     1  package wrappa
     2  
     3  import (
     4  	"code.cloudfoundry.org/lager"
     5  	"github.com/pf-qiu/concourse/v6/atc"
     6  	"github.com/pf-qiu/concourse/v6/atc/metric"
     7  	"github.com/tedsuo/rata"
     8  )
     9  
    10  type APIMetricsWrappa struct {
    11  	logger lager.Logger
    12  }
    13  
    14  func NewAPIMetricsWrappa(logger lager.Logger) Wrappa {
    15  	return APIMetricsWrappa{
    16  		logger: logger,
    17  	}
    18  }
    19  
    20  func (wrappa APIMetricsWrappa) Wrap(handlers rata.Handlers) rata.Handlers {
    21  	wrapped := rata.Handlers{}
    22  
    23  	for name, handler := range handlers {
    24  		switch name {
    25  		case atc.BuildEvents, atc.DownloadCLI, atc.HijackContainer:
    26  			wrapped[name] = handler
    27  		default:
    28  			wrapped[name] = metric.WrapHandler(
    29  				wrappa.logger,
    30  				metric.Metrics,
    31  				name,
    32  				handler,
    33  			)
    34  		}
    35  	}
    36  
    37  	return wrapped
    38  }