-
This commit is contained in:
@ -15,6 +15,7 @@ import (
|
||||
"github.com/kms/api-key-service/internal/config"
|
||||
"github.com/kms/api-key-service/internal/database"
|
||||
"github.com/kms/api-key-service/internal/handlers"
|
||||
"github.com/kms/api-key-service/internal/metrics"
|
||||
"github.com/kms/api-key-service/internal/middleware"
|
||||
"github.com/kms/api-key-service/internal/repository/postgres"
|
||||
"github.com/kms/api-key-service/internal/services"
|
||||
@ -61,7 +62,7 @@ func main() {
|
||||
|
||||
// Initialize services
|
||||
appService := services.NewApplicationService(appRepo, logger)
|
||||
tokenService := services.NewTokenService(tokenRepo, appRepo, permRepo, grantRepo, logger)
|
||||
tokenService := services.NewTokenService(tokenRepo, appRepo, permRepo, grantRepo, cfg.GetString("INTERNAL_HMAC_KEY"), logger)
|
||||
authService := services.NewAuthenticationService(cfg, logger)
|
||||
|
||||
// Initialize handlers
|
||||
@ -156,6 +157,7 @@ func setupRouter(cfg config.ConfigProvider, logger *zap.Logger, healthHandler *h
|
||||
// Add middleware
|
||||
router.Use(middleware.Logger(logger))
|
||||
router.Use(middleware.Recovery(logger))
|
||||
router.Use(metrics.Middleware(logger))
|
||||
router.Use(middleware.CORS())
|
||||
router.Use(middleware.Security())
|
||||
router.Use(middleware.ValidateContentType())
|
||||
@ -226,18 +228,20 @@ func setupRouter(cfg config.ConfigProvider, logger *zap.Logger, healthHandler *h
|
||||
}
|
||||
|
||||
func startMetricsServer(cfg config.ConfigProvider, logger *zap.Logger) *http.Server {
|
||||
metricsRouter := gin.New()
|
||||
metricsRouter.Use(middleware.Logger(logger))
|
||||
metricsRouter.Use(middleware.Recovery(logger))
|
||||
|
||||
// Basic metrics endpoint
|
||||
metricsRouter.GET("/metrics", func(c *gin.Context) {
|
||||
c.String(http.StatusOK, "# HELP api_key_service_info Information about the API Key Service\n# TYPE api_key_service_info gauge\napi_key_service_info{version=\"%s\"} 1\n", cfg.GetString("APP_VERSION"))
|
||||
mux := http.NewServeMux()
|
||||
|
||||
// Prometheus metrics endpoint
|
||||
mux.HandleFunc("/metrics", metrics.PrometheusHandler())
|
||||
|
||||
// Health endpoint for metrics server
|
||||
mux.HandleFunc("/health", func(w http.ResponseWriter, r *http.Request) {
|
||||
w.WriteHeader(http.StatusOK)
|
||||
w.Write([]byte("OK"))
|
||||
})
|
||||
|
||||
srv := &http.Server{
|
||||
Addr: cfg.GetMetricsAddress(),
|
||||
Handler: metricsRouter,
|
||||
Handler: mux,
|
||||
}
|
||||
|
||||
go func() {
|
||||
|
||||
Reference in New Issue
Block a user