Skip to content

Commit

Permalink
feat: add metrics for directus items (#2)
Browse files Browse the repository at this point in the history
  • Loading branch information
kbychkov committed Feb 28, 2024
1 parent 3196087 commit 6af4fc7
Showing 1 changed file with 33 additions and 0 deletions.
33 changes: 33 additions & 0 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,37 @@ const initHooks = ({init}, {services, getSchema, database, logger, env}) => {
registers: [globalRegister],
labelNames: ['method', 'status']
});

const itemsRequestCount = new Counter({
name: 'directus_items_request_count',
help: 'The number of http requests to directus items',
registers: [globalRegister],
labelNames: ['method', 'status', 'collection']
});

const requestDuration = new Histogram({
name: 'directus_request_duration_seconds',
help: 'The total duration of http requests',
registers: [globalRegister],
labelNames: ['method', 'status']
});

const itemsRequestDuration = new Histogram({
name: 'directus_items_request_duration_seconds',
help: 'The total duration of http requests to directus items',
registers: [globalRegister],
labelNames: ['method', 'status', 'collection']
});

app.use('/', (req, res, next) => {
const recordDuration = requestDuration.startTimer({
method: req.method
});

const recordItemsDuration = itemsRequestDuration.startTimer({
method: req.method
});

res.on('finish', () => {
const status = res.statusCode?.toString() || '';
requestCount.labels({
Expand All @@ -31,6 +51,19 @@ const initHooks = ({init}, {services, getSchema, database, logger, env}) => {
recordDuration({
status,
});

if (req.collection && !req.collection.startsWith('directus_')) {
itemsRequestCount.labels({
status,
method: req.method,
collection: req.collection
}).inc(1);

recordItemsDuration({
status,
collection: req.collection
});
}
});
next();
});
Expand Down

0 comments on commit 6af4fc7

Please sign in to comment.