bee-queue / arena

An interactive UI dashboard for Bee, Bull and BullMQ packages
MIT License
847 stars 234 forks source link

Bull arena inside docker just loading #387

Open YasienDwieb opened 3 years ago

YasienDwieb commented 3 years ago

I have been using bull arena for a while as being reached via express server that is served on its own via pm2 or whatever. I have no problem with that.

The problem is when I use it from within a docker container, I get the main page but whenever I head to any queue. It never loads.

BTW, the queue is working fine and is jobs are processed but I can' view it form arena.

Thanks in advance

rauny-henrique commented 3 years ago

I fix this by changing the "type" of each queue and configuring the redis connection for each queue.

example:

{ type: 'bull', name: queue.name, hostId: "q", redis: { port: 6379, host: process.env.REDIS_HOST || '127.0.0.1', password: null, } }

YasienDwieb commented 3 years ago

Does, this works inside of docker? can you access each job? @rauny-henrique

igordreher commented 3 years ago

I'm currently facing the same issue. It works locally, but when running inside a docker container, arena fails to load queues pages. Error logs:

MaxRetriesPerRequestError: 
Reached the max retries per request limit (which is 20). Refer to "maxRetriesPerRequest" option for details.

I imagine that it has something to do with arena's connection to redis

igordreher commented 3 years ago

I solved my problem. In my case, arena would fail to connect to redis if I provided the redis url:

queues: [{
  type: 'bull',
  name: 'example',
  hostId: 'q',
  url: 'redis://127.0.0.1:6379',
}]

The fix was simply providing the redis config connection instead, like so:

queues: [{
  type: 'bull',
  name: 'example',
  hostId: 'q',
  redis: {
    host: '127.0.0.1',
    port: 6379,
  },
}]
YasienDwieb commented 3 years ago

There's no problem with redis connection, as data is being stored and processed properly. The issue is mainly with the dashboard, as you just get the main page and can't proceed to check whatever other pages like active, processing,... etc Just hang up on the main page

rauny-henrique commented 3 years ago

Does, this works inside of docker? can you access each job? @rauny-henrique

yes, works. The problem is the redis configuration on arena, you need explicitly declare redis connection, like @igordreher say:

queues: [{ type: 'bull', name: 'example', hostId: 'q', redis: { host: '127.0.0.1', port: 6379, }, }]

rd67 commented 2 years ago

Facing same problem with above solution as well:

Docker Compose File: https://pastebin.com/aydfsZWT

Bull Arena Config.json file: https://pastebin.com/Th4qRccT

Getting following errors on bull-arena `/opt/arena/node_modules/bull-arena/src/server/queue/index.js:28

  throw new Error('unsupported configuration: no queues configured');

  ^

Error: unsupported configuration: no queues configured

at Queues.setConfig (/opt/arena/node_modules/bull-arena/src/server/queue/index.js:28:13)

at new Queues (/opt/arena/node_modules/bull-arena/src/server/queue/index.js:17:10)

at module.exports (/opt/arena/node_modules/bull-arena/src/server/app.js:23:18)

at run (/opt/arena/node_modules/bull-arena/index.js:7:27)

at Object.<anonymous> (/opt/arena/index.js:14:1)

at Module._compile (internal/modules/cjs/loader.js:1063:30)

at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)

at Module.load (internal/modules/cjs/loader.js:928:32)

at Function.Module._load (internal/modules/cjs/loader.js:769:14)

at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)`