@@ -21,20 +21,6 @@ import Vapor
2121
2222enum AppMetrics {
2323
24- static let initialized = Mutex ( false )
25-
26- static func bootstrap( ) {
27- // prevent tests from boostrapping multiple times
28- guard !initialized. withLock ( { $0 } ) else { return }
29- initialized. withLock {
30- let client = PrometheusClient ( )
31- MetricsSystem . bootstrap ( PrometheusMetricsFactory ( client: client) )
32- $0 = true
33- }
34- }
35-
36- // metrics
37-
3824 static var analyzeCandidatesCount : PromGauge < Int > ? {
3925 gauge ( " spi_analyze_candidates_count " )
4026 }
@@ -155,13 +141,13 @@ enum AppMetrics {
155141extension AppMetrics {
156142
157143 static func counter< V: Numeric > ( _ name: String ) -> PromCounter < V > ? {
158- try ? MetricsSystem . prometheus ( )
159- . createCounter ( forType: V . self, named: name)
144+ @ Dependency ( \ . metricsSystem . prometheus) var prometheus
145+ return try ? prometheus ( ) . createCounter ( forType: V . self, named: name)
160146 }
161147
162148 static func gauge< V: DoubleRepresentable > ( _ name: String ) -> PromGauge < V > ? {
163- try ? MetricsSystem . prometheus ( )
164- . createGauge ( forType: V . self, named: name)
149+ @ Dependency ( \ . metricsSystem . prometheus) var prometheus
150+ return try ? prometheus ( ) . createGauge ( forType: V . self, named: name)
165151 }
166152
167153}
@@ -176,14 +162,15 @@ extension AppMetrics {
176162 static func push( client: Client , jobName: String ) async throws {
177163 @Dependency ( \. environment) var environment
178164 @Dependency ( \. logger) var logger
165+ @Dependency ( \. metricsSystem. prometheus) var prometheus
179166
180167 guard let pushGatewayUrl = environment. metricsPushGatewayUrl ( ) else {
181168 throw AppError . envVariableNotSet ( " METRICS_PUSHGATEWAY_URL " )
182169 }
183170 let url = URI ( string: " \( pushGatewayUrl) /metrics/job/ \( jobName) " )
184171
185172 do {
186- let metrics : String = try await MetricsSystem . prometheus ( ) . collect ( )
173+ let metrics : String = try await prometheus ( ) . collect ( )
187174 _ = try await client. post ( url) { req in
188175 // append "\n" to avoid
189176 // text format parsing error in line 4: unexpected end of input stream
0 commit comments