github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/vvm/metrics/provide.go (about)

     1  /*
     2   * Copyright (c) 2022-present unTill Pro, Ltd.
     3   */
     4  
     5  package metrics
     6  
     7  import (
     8  	"context"
     9  	"net"
    10  	"net/http"
    11  	"time"
    12  
    13  	imetrics "github.com/voedger/voedger/pkg/metrics"
    14  	router2 "github.com/voedger/voedger/pkg/router"
    15  )
    16  
    17  func ProvideMetricsService(vvmCtx context.Context, metricsServicePort MetricsServicePort, imetrics imetrics.IMetrics) MetricsService {
    18  	return &metricsService{
    19  		Server: &http.Server{
    20  			Handler: provideHandler(imetrics),
    21  			BaseContext: func(l net.Listener) context.Context {
    22  				return vvmCtx
    23  			},
    24  			ReadHeaderTimeout: router2.DefaultRouterReadTimeout * time.Second, // avoiding potential Slowloris attack (G112 linter rule)
    25  		},
    26  		port: int(metricsServicePort),
    27  	}
    28  }