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 }