GithubHelp home page GithubHelp logo

sensu / sensu-dashboard Goto Github PK

View Code? Open in Web Editor NEW
96.0 17.0 44.0 1.54 MB

A dashboard for Sensu, for displaying & managing events & clients.

Home Page: http://sensuapp.org

License: MIT License

Ruby 10.57% JavaScript 5.36% CoffeeScript 62.05% CSS 0.12% Handlebars 11.32% Sass 8.85% Slim 1.72%

sensu-dashboard's Introduction

sensu

A front-end dashboard for the Sensu monitoring framework.

Join the chat at https://slack.sensu.io/

โš ๏ธ ANNOUNCEMENT - Sensu 1.x has reached End-Of-Life (December 31st, 2019)

The Sensu 1.x project reached end-of-life on December 31st, 2019. The existing package repositories became unreachable on January 6th, 2020. Please see our blog post for more details: https://blog.sensu.io/announcing-the-sensu-archives

Sensu 1.x has been superseded by Sensu Go.

As always, we want to hear from the Community and please reach out on Slack or Discourse if you have any questions or concerns.

Documentation

Please refer to the Sensu documentation on sensuapp.org/docs for more information.

License

Sensu is released under the MIT license.

sensu-dashboard's People

Contributors

amdprophet avatar calebhailey avatar dabria avatar drakiaxyz avatar fizzadar avatar jamesdphillips avatar mrichar1 avatar nemdub avatar nstielau avatar philandstuff avatar piscis avatar portertech avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sensu-dashboard's Issues

Dashboard page

Add a dashboard page & show beautiful charts using chart.js.

occurrences does not work

Hi

It does not look like the sensu-dashboard is using the occurrences defined in the checks. Is this a bug or by design?

We have some checks that sometimes fail because of network issue. That is why we are using occurrences in our checks. It will give false negative if the sensu-dashboard is not using the occurrences value.

Select All doesn't respect the current filter

I am using sensu-dashboard 0.9.9. If I enter a filter and then click the dropdown to Select All, it appears that it is selecting all events and not just the filtered list that is currently visible. If I then subsequently select an action (silence/unsilence/resolve) it is applied to everything.

This is very non-intuitive and could lead someone to silence all their checks when they only meant to silence a handful (which, in fact, is what just happened to me).

Timestamp format in Event Detail View

Currently, timestamps are stored in Redis and displayed as follows:

Timestamp
1357832605

Perhaps dashboard could convert it to a more user-friendly format?

Dashboard won't start, don't know why

On launch, I get the following traceback:

I, [2012-03-19T04:29:02.477658 #26335]  INFO -- : [validate] -- configuration valid -- running {"message":"[validate] -- configuration valid -- running","level":"info","timestamp":"2012-03-19T04:29:02.   %6N-0700"}
/var/lib/gems/1.8/gems/sensu-dashboard-0.9.6/lib/sensu-dashboard/app.rb:43:in `setup': undefined method `host' for nil:NilClass (NoMethodError)
    from /var/lib/gems/1.8/gems/sensu-dashboard-0.9.6/lib/sensu-dashboard/app.rb:12:in `run'
    from /var/lib/gems/1.8/gems/eventmachine-1.0.0.beta.4/lib/eventmachine.rb:179:in `call'
    from /var/lib/gems/1.8/gems/eventmachine-1.0.0.beta.4/lib/eventmachine.rb:179:in `run_machine'
    from /var/lib/gems/1.8/gems/eventmachine-1.0.0.beta.4/lib/eventmachine.rb:179:in `run'
    from /var/lib/gems/1.8/gems/sensu-dashboard-0.9.6/lib/sensu-dashboard/app.rb:11:in `run'
    from /var/lib/gems/1.8/gems/sensu-dashboard-0.9.6/lib/sensu-dashboard/app.rb:464
    from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from /var/lib/gems/1.8/gems/sensu-dashboard-0.9.6/bin/sensu-dashboard:3
    from /var/lib/gems/1.8/bin/sensu-dashboard:19:in `load'
    from /var/lib/gems/1.8/bin/sensu-dashboard:19

My config is:


{
   "rabbitmq": {
     "host": "localhost",
     "user": "sensu",
     "password": "sensupasswd",
     "vhost": "/sensu"
   },

   "dashboard": {
     "host": "0.0.0.0",
     "port": 8080,
     "user": "admin",
     "password": "secret"
   },

   "checks": {
    "disk-free": {
      "command": "df -h /",
      "subscribers": [
        "fileservers"
      ],
      "interval": 30
     }
   }
}

issue check requests from the event modal

It would be handy to be able to immediately issue a new check request from the event modal on the dashboard.

use case: you think you have resolved an open event but don't want to wait for the check to re-run (maybe it's a check with a long interval). having a handy button on the event modal to issue a new check request would be awesome.

sensu-dashboard dies with "undefined method..."

I'm setting up a test Sensu server on a Ubuntu 12.04 vagrant box (and Puppet 2.7) and keep getting the following in the logs once I hit the first page (which render with an "Oh no!" message and a red Bootstrap error pup-up at the bottom right corner of the page):

"timestamp":"2013-09-09T01:49:59.858940+0000","level":"info","message":"GET /all","remote_address":"33.33.33.1","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.65 Safari/537.36","request_method":"GET","request_uri":"/all?_=1378691404350","request_body":""}
/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-dashboard-0.10.0/lib/sensu-dashboard/server.rb:210:in `block (3 levels) in <class:Server>': undefined method `response' for nil:NilClass (NoMethodError)
        from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-dashboard-0.10.0/lib/sensu-dashboard/server.rb:209:in `each'
        from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-dashboard-0.10.0/lib/sensu-dashboard/server.rb:209:in `detect'
        from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-dashboard-0.10.0/lib/sensu-dashboard/server.rb:209:in `block (2 levels) in <class:Server>'
        from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/eventmachine-1.0.3/lib/em/deferrable.rb:151:in `call'
        from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/eventmachine-1.0.3/lib/em/deferrable.rb:151:in `set_deferred_status'
        from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/eventmachine-1.0.3/lib/em/deferrable.rb:191:in `succeed'
        from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/em-http-request-1.0.3/lib/em-http/multi.rb:53:in `check_progress'
        from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/em-http-request-1.0.3/lib/em-http/multi.rb:42:in `block in add'
        from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/eventmachine-1.0.3/lib/em/deferrable.rb:158:in `call'
        from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/eventmachine-1.0.3/lib/em/deferrable.rb:158:in `set_deferred_status'
        from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/eventmachine-1.0.3/lib/em/deferrable.rb:198:in `fail'
        from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/em-http-request-1.0.3/lib/em-http/client.rb:123:in `on_error'
        from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/em-http-request-1.0.3/lib/em-http/client.rb:117:in `unbind'
        from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/em-http-request-1.0.3/lib/em-http/http_connection.rb:168:in `block in unbind'
        from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/em-http-request-1.0.3/lib/em-http/http_connection.rb:168:in `map'
        from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/em-http-request-1.0.3/lib/em-http/http_connection.rb:168:in `unbind'
        from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/em-http-request-1.0.3/lib/em-http/http_connection.rb:31:in `unbind'
        from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/eventmachine-1.0.3/lib/eventmachine.rb:1438:in `event_callback'
        from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `run_machine'
        from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `run'
        from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-dashboard-0.10.0/lib/sensu-dashboard/server.rb:36:in `run'
        from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-dashboard-0.10.0/bin/sensu-dashboard:10:in `<top (required)>'
        from /opt/sensu/bin/sensu-dashboard:23:in `load'
        from /opt/sensu/bin/sensu-dashboard:23:in `<main>'

And of course the dashboard process dies, leaving the stale pid file behind.

Is this expected? How stable is it in general and can we rely on it for production purposes?

Event model IDs cause URL-encoded slash in requests, resulting in 404 errors

I looked at trying to fix this, but I'm struggling because I don't know backbone.js.

At models/event.coffee#L15 the id is set to a value with a / in it. Unfortunately, when the request is generated, this / is URL-encoded to %2F, so you end up with requests like:

DELETE https://apiurl/events/client_name%2Fcheck_name

And that of course, results in a 404, because client_name%2Fcheck_name is definitely not a valid client name.

Custom columns

Allow for additional columns to be shown on the events, stashes, clients, & check pages via both a configuration & per-user basis (HTML5 local storage).

Dashboard needs a "Remove client" button

The old 1.0 UI had a button for removing a client, which was displayed when you clicked on a client in the "Clients" page.

The 2.0 UI doesn't have this.

It should do! :)

Alert colours not updating in Sensu Dashboard

If you have a check that initially returns a "Warning" and then upgrades this to a "Critical" then the Sensu dashboard will update the text of the alert, but not the colour.
It will, however, update the colour when you refresh the screen.

feature request: allow stashes creation

It's currently possible to delete stashes directly from the UI while creating them is only possible through the API proxy (which is already great by the way). It would be interesting if the Dashboard could create and modify a stash directly from the UI.

Here's a use case. Our application stores any AJAX error to a mongo application. We want an alert to be created when that happens. But once we acknowledge the error, we'd like to store the last aknowledged error to fix the check until next AJAX error happens. One way of doing that is to add some "acknownledgedBy" attribute to the last entry in mongodb and checking for that. But another way of handling this directly from the dashboard would be to create a stash with the acknowledge time and person and use it in the checker. After created we would then update it after being notified by a new incident.

Dashboard not listening on configured port

Installed via senu-chef cookbook

Dashboard process is running, but not listening on port specified via config.json or hard coded in app.rb.

You can see here that thin i starting:

Terminating WebSocket Server

Thin web server (v1.3.1 codename Triple Espresso)
Maximum connections set to 1024
Listening on 0.0.0.0:9080, CTRL+C to stop

Yet netstat -anp does not show anything listening on 9080

Client list view with links to external graphs

We're happily using sensu-dashboard and so far one missing key feature for us (and relatively easy to implement I guess) is a way to easily browse graphs related to a single machine. For instance we keep statistical data on hostedgraphite.com, so if we want to look at data for server1, we have to open the browser and type something like:

https://www.hostedgraphite.com/xxxxxxxx/graphite/dashboard/#server1

(actually we have a shortened url redirect to make it easier but still suboptimal).

My first idea was to write a simple PHP script to generate links reading client list from sensu /clients api, but then my colleague suggested me this could be something of interest for other sensu users (for sure we're not the only one storing data on Graphite!) so, before digging into the code to see if it's not to hard, I'm here asking for suggestions.

How do you deal with this (minor) problem? Would it be hard/overkill to write some kind of plugin for sensu-dashboard to have custom links in #cilents view? perhaps a new column with a 'open graphs' link?

PS For us the URL is always predictable, with just the ending part to be replaced with the client name, so one single parameter in the config should suffice.

Checkboxes and removing clients broke?

It seems like if click the checkbox next to a client (in the /clients section) and then go to the drop down and try to remove the client it doesnt do anything. Silence/Unsilence are fine (little green boxes tell me so). If i click on the client and get the popout box i can remove the client fine (again happy green boxes).

Connection failures when communicating with api (ruby 2.0.0)

I recently started noticing some requests made from the browser to the dashboard were failing ("could not retrieve /path from the sensu api"). Currently using dashboard 0.9.9 and ruby 2.0.0.

After some digging I found that my request ended up on the http.errback callback, which indicates there may have been an error. Inside that callback, status code was 200, but the body had incomplete text.

This might be related to em-http-request issue#190. FWIU em is not thread-safe and you can only open up new connections on the reactor thread. In my case, the issue is probably a timeout and thus the request eventually gets preemptively cancelled.

A workaround has been suggested there and I got my own patch to remediate the problem.

I'd like to open up the issue for discussion on how to best address this problem, if there's anything we can do about it on sensu-dashboard's side.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.