Track locking metrics
This commit is contained in:
parent
e2f2fb6cb1
commit
f7cd69d7d0
|
@ -33,7 +33,7 @@ const isTaskObject = require("../validators/is-task-object");
|
|||
// FIXME: Verify that all internal method calls in the PostgreSQL backend are still valid after moving argument validation/normalization into this module
|
||||
|
||||
module.exports = function (state) {
|
||||
let { tasks } = state;
|
||||
let { tasks, metrics } = state;
|
||||
|
||||
const backendModules = {
|
||||
"postgresql": require("./postgresql")(state),
|
||||
|
@ -370,7 +370,15 @@ module.exports = function (state) {
|
|||
}]
|
||||
});
|
||||
|
||||
return backend.lock(tx, options);
|
||||
return Promise.try(() => {
|
||||
return backend.lock(tx, options);
|
||||
}).tap((succeeded) => {
|
||||
if (succeeded) {
|
||||
metrics.successfulLocks.labels({ task: task.name }).inc(1);
|
||||
} else {
|
||||
metrics.failedLocks.labels({ task: task.name }).inc(1);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
unlock: function (_tx, _options) {
|
||||
|
|
|
@ -27,6 +27,18 @@ module.exports = function createPrometheus() {
|
|||
help: "Amount of items that have failed during processing",
|
||||
labelNames: [ "task" ]
|
||||
}),
|
||||
successfulLocks: new prometheusClient.Counter({
|
||||
registers: [ prometheusRegistry ],
|
||||
name: "srap_successful_locks_total",
|
||||
help: "Amount of queue item lock attempts that were successful",
|
||||
labelNames: [ "task" ]
|
||||
}),
|
||||
failedLocks: new prometheusClient.Counter({
|
||||
registers: [ prometheusRegistry ],
|
||||
name: "srap_failed_locks_total",
|
||||
help: "Amount of queue item lock attempts that failed",
|
||||
labelNames: [ "task" ]
|
||||
}),
|
||||
taskFetchTime: new prometheusClient.Gauge({
|
||||
registers: [ prometheusRegistry ],
|
||||
name: "srap_task_fetch_seconds",
|
||||
|
|
Loading…
Reference in a new issue