Files
speckle-server/packages/server/logging/index.js
T
Iain Sproat 26b0ecb55d chore(server): remove sentry and only apply mixpanel middleware if enabled (#2732)
- remove sentry as we are no longer using it
- only enable mixpanel middleware if mixpanel is enabled
2024-08-23 16:56:54 +01:00

51 lines
1.4 KiB
JavaScript

/* istanbul ignore file */
const prometheusClient = require('prom-client')
const promBundle = require('express-prom-bundle')
const { initKnexPrometheusMetrics } = require('@/logging/knexMonitoring')
const {
initHighFrequencyMonitoring
} = require('@/logging/highFrequencyMetrics/highfrequencyMonitoring')
const knex = require('@/db/knex')
const {
highFrequencyMetricsCollectionPeriodMs
} = require('@/modules/shared/helpers/envHelper')
const { startupLogger: logger } = require('@/logging/logging')
let prometheusInitialized = false
module.exports = function (app) {
if (!prometheusInitialized) {
prometheusInitialized = true
prometheusClient.register.clear()
prometheusClient.register.setDefaultLabels({
project: 'speckle-server',
app: 'server'
})
prometheusClient.collectDefaultMetrics()
const highfrequencyMonitoring = initHighFrequencyMonitoring({
register: prometheusClient.register,
collectionPeriodMilliseconds: highFrequencyMetricsCollectionPeriodMs(),
config: {
knex
}
})
highfrequencyMonitoring.start()
initKnexPrometheusMetrics({
register: prometheusClient.register,
db: knex,
logger
})
const expressMetricsMiddleware = promBundle({
includeMethod: true,
includePath: true,
httpDurationMetricName: 'speckle_server_request_duration',
metricType: 'summary',
autoregister: false
})
app.use(expressMetricsMiddleware)
}
}