VaporMonitoring is a Vapor 3 package for monitoring and providing metrics for your Vapor application. Built on top op SwiftMetrics and SwiftPrometheus. Vapor Monitoring provides the default SwiftMetrics metrics along with request specific metrics. Metrics are exposed using Prometheus.
Vapor Monitoring is easy to use, it requires only a few lines of code.
Vapor Monitoring requires a few things to work correclty, a MonitoredRouter and a MonitoredResponder are the most important ones.
To set up your monitoring, in your Configure.swift file, add the following:
let router = try VaporMonitoring.setupMonitoring(&config, &services)
services.register(router, as: Router.self)
What this does is load VaporMonitoring with the default configuration. This includes adding all required services to your apps services & setting some configuration prefferences to use the MonitoredResponder and MonitoredRouter.
By default, your prometheus metrics will be served at host:port/metrics and routes that don’t have a routing closure, will be ignored to avoid exploding your prometheus logs. You can however customize this.
To customize your monitoring, add this to Configure.swift
let monitoringConfg = MonitoringConfig(prometheusRoute: "customRoute", onlyBuiltinRoutes: false)
let router = try VaporMonitoring.setupMonitoring(&config, &services, monitoringConfg)
services.register(router, as: Router.self)
In this case, you’d have your prometheus metrics at host:port/customRoute.
VaporMonitoring
#
VaporMonitoring
is a Vapor 3 package for monitoring and providing metrics for your Vapor application. Built on top op SwiftMetrics and SwiftPrometheus. Vapor Monitoring provides the default SwiftMetrics metrics along with request specific metrics. Metrics are exposed using Prometheus.Installation
Vapor Monitoring can be installed using SPM
Usage
Vapor Monitoring is easy to use, it requires only a few lines of code.
Vapor Monitoring requires a few things to work correclty, a
MonitoredRouter
and aMonitoredResponder
are the most important ones.To set up your monitoring, in your
Configure.swift
file, add the following:What this does is load VaporMonitoring with the default configuration. This includes adding all required services to your apps services & setting some configuration prefferences to use the
MonitoredResponder
andMonitoredRouter
.By default, your prometheus metrics will be served at
host:port/metrics
and routes that don’t have a routing closure, will be ignored to avoid exploding your prometheus logs. You can however customize this.To customize your monitoring, add this to
Configure.swift
In this case, you’d have your prometheus metrics at
host:port/customRoute
.