let server: PeerTubeServer
describe('Metrics', function () {
- const metricsUrl = 'http://localhost:9092/metrics'
+ const metricsUrl = 'http://127.0.0.1:9092/metrics'
it('Should not enable open telemetry metrics', async function () {
+ this.timeout(60000)
+
server = await createSingleServer(1)
let hasError = false
try {
- await makeRawRequest(metricsUrl, HttpStatusCode.NOT_FOUND_404)
+ await makeRawRequest({ url: metricsUrl, expectedStatus: HttpStatusCode.NOT_FOUND_404 })
} catch (err) {
hasError = err.message.includes('ECONNREFUSED')
}
})
it('Should enable open telemetry metrics', async function () {
- server = await createSingleServer(1, {
+ this.timeout(120000)
+
+ await server.run({
open_telemetry: {
metrics: {
enabled: true
}
})
- const res = await makeRawRequest(metricsUrl, HttpStatusCode.OK_200)
+ // Simulate a HTTP request
+ await server.videos.list()
+
+ const res = await makeRawRequest({ url: metricsUrl, expectedStatus: HttpStatusCode.OK_200 })
expect(res.text).to.contain('peertube_job_queue_total{')
+ expect(res.text).to.contain('http_request_duration_ms_bucket{')
})
it('Should have playback metrics', async function () {
}
})
- const res = await makeRawRequest(metricsUrl, HttpStatusCode.OK_200)
+ const res = await makeRawRequest({ url: metricsUrl, expectedStatus: HttpStatusCode.OK_200 })
expect(res.text).to.contain('peertube_playback_http_downloaded_bytes_total{')
})
+ it('Should disable http request duration metrics', async function () {
+ await server.kill()
+
+ await server.run({
+ open_telemetry: {
+ metrics: {
+ enabled: true,
+ http_request_duration: {
+ enabled: false
+ }
+ }
+ }
+ })
+
+ // Simulate a HTTP request
+ await server.videos.list()
+
+ const res = await makeRawRequest({ url: metricsUrl, expectedStatus: HttpStatusCode.OK_200 })
+ expect(res.text).to.not.contain('http_request_duration_ms_bucket{')
+ })
+
after(async function () {
await server.kill()
})
})
it('Should enable open telemetry metrics', async function () {
- server = await createSingleServer(1, {
+ await server.run({
open_telemetry: {
tracing: {
enabled: true,
jaeger_exporter: {
- endpoint: 'http://localhost:' + mockPort
+ endpoint: 'http://127.0.0.1:' + mockPort
}
}
}