Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bettyblocks/roger_ui
Dashboard and monitoring tools for Roger job processing system
https://github.com/bettyblocks/roger_ui
Last synced: about 2 months ago
JSON representation
Dashboard and monitoring tools for Roger job processing system
- Host: GitHub
- URL: https://github.com/bettyblocks/roger_ui
- Owner: bettyblocks
- License: other
- Created: 2018-01-15T12:47:12.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-03-22T11:06:08.000Z (almost 7 years ago)
- Last Synced: 2024-04-27T06:04:12.902Z (8 months ago)
- Language: Elixir
- Size: 420 KB
- Stars: 1
- Watchers: 4
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# RogerUI
This library provides an UI dashboard for [Roger](https://github.com/bettyblocks/roger), a job processing library based on message broadcasting [RabbitMQ](https://www.rabbitmq.com)
RogerUI allow you to see nodes, partitions and queues with various details levels.
### [Screenshots](https://github.com/spadaveccia/roger_ui/tree/master/screenshots)
## Features
- Graphical User Interface
- Multi-tentant architecture, based on partitions or nodes
- Based on Roger and RabbitMQ
- On-line monitoring - Per-queue concurrency control
- Jobs cancellation (both queued and while running)
- Pausing / unpausing working queues
- Cluster-aware
- Detailed queue / partition information
- Graceful shutdown on stopping## Software Requirements
You will need the following to compile and run the application:
* [Elixir 1.5.1](https://elixir-lang.org/install.html) or greater
* [Roger 1.3.0](https://github.com/bettyblocks/roger/blob/master/README.md#getting-started) or greater
* [RabbitMQ 3.6.0](https://www.rabbitmq.com/#getstarted) or greater## Installing RogerUI (User mode)
#### Installing RogerUI
Once you have installed and configured [RabbitMQ](https://www.rabbitmq.com/#getstarted) and [Roger](https://github.com/bettyblocks/roger/blob/master/README.md#getting-started)
Add Roger UI dep in your /mix.exs:
```
defp deps do
{:roger_ui, "~> 0.1"}
end
```Inside the project folder run `mix deps.get`, and then run `mix compile`
#### Configuring with Phoenix to run like Plug
On your application when Roger’s instance its configured:
- Change /web/router.exs file and add the following lines:```
pipeline :roger do
plug :accepts, ["html"]
plug :put_secure_browser_headers
plug RogerUI.Web.RouterPlug, namespace: "roger"
endscope "/roger", RogerUI.Web.RouterPlug do
pipe_through :roger
forward "/", Router, namespace: "roger"
end
```
You can change the namespace and scope to wathever works for you, then you can start `Phoenix` server and navigate to `roger` namespace like: `http://localhost/roger`## Installing RogerUI (Developer mode)
#### Installing RogerUI
Once you have installed and configured [RabbitMQ](https://www.rabbitmq.com/#getstarted), [Node.js & npm](https://docs.npmjs.com/getting-started/installing-node) and [Roger](https://github.com/bettyblocks/roger/blob/master/README.md#getting-started), in your develop enviroment
- Create a Phoenix project with mix: `mix phoenix.new`
- Clone [RogerUI](https://github.com/bettyblocks/roger_ui) project,Open command line and go to /priv/vue folder:
- run `npm install`#### Configuring RogerUI
On your application where Roger’s instance its configured:
- Add Roger UI local dep in your /mix.exs:
```
{:roger_ui, "~> 0.1", path: "../roger_ui"}
```
- Change /config/config.exs file and add the following lines:
```
# Configure AMQP
config :roger, Roger.AMQPClient,
host: "localhost",
port: 5672config :roger, Roger.Partition.Worker,
callbacks: RogerUiDemo.Worker.Callbackif node() == :"[email protected]" do
config :roger_ui, :server, true
config :roger, :partitions,
roger_ui_demo_partition: [default: 10, other: 2]
else
config :roger_ui, :server, false
Node.ping(:"[email protected]")
end
```
Note: The `:"[email protected]"` option should match with your local node’s name, so you must set it with `iex –sname` command before application runs. This will be described shortly.- Optionally, if you wish to run the client in a different machine, you must create a file `server.base.url.js` on `roger_ui/priv/vue/config` directory. This file must contains:
```
module.exports = '"http://your-address:your-port"'
```
IMPORTANT: the address must be enclosed inside double quote AND single quoteInside roger_ui/priv/vue folder run:
- `npm install`
- `npm run build`
- `npm run dev`#### Running RogerUI
Inside your phoenix application you must run:
- `mix deps.get`
- `mix compile`
- `iex –-name [email protected] -S mix phx.server`to get the application up, remember match server name according `/config/config.exs` file before described.
- RogerUI will be available at `http://localhost:8080` once it starts, or, if you created and configurated `roger_ui/priv/vue/config/server.base.url.js` in that address## License
Copyright © 2018 Betty Blocks