Open Rua-Yuki opened 4 years ago
It may be worth noting that this reliance on the queue's client.serverInfo
field being updated after an INFO
query was broken beginning with Bull 2.0.0, as a result of this version switching to ioredis
from node-redis
.
The expected behaviour is still demonstrated by node-redis
.
Node version: 10.19.0 Arena version: 2.8.1 Bull version: 3.13.0 ioredis version: 4.16.3
The queue details view appears to present stale data within the "Redis Statistics" table.
Metrics shown are consistent throughout the life of a given Arena middleware instance and fail to update as additional clients connect and resources are used:
connected_clients
,used_memory
, and other fields do not reflect the current state of Redis, but rather the state upon first loading.This issue appears to stem from the reliance on an undocumented behaviour of the queue's Redis client, which is evidently no longer demonstrated given the current ioredis release.
It seems a helper assumes that issuing a Redis
INFO
query has the client'sserverInfo
object updated:https://github.com/bee-queue/arena/blob/744120be371291c8ca781930c3096117238f159f/src/server/views/helpers/queueHelpers.js#L33-L35
Unfortunately such is not the case, and ioredis updates the
serverInfo
object only after initially entering a ready state, and only providedenableReadyCheck
is truthy.Due to the inconsistency regarding this
serverInfo
field, I suggest the result of theINFO
query be parsed directly to extract the necessary information and ensure up-to-date stats are presented.