github
Advanced Search
  • Home
  • Pricing and Signup
  • Explore GitHub
  • Blog
  • Login

auxesis / visage

  • Admin
  • Watch Unwatch
  • Fork
  • Your Fork
  • Pull Request
  • Download Source
    • 120
    • 8
  • Source
  • Commits
  • Network (8)
  • Issues (2)
  • Downloads (0)
  • Wiki (1)
  • Graphs
  • Branch: master

click here to add a description

click here to add a homepage

  • Branches (2)
    • gh-pages
    • master ✓
  • Tags (0)
Sending Request…
Enable Donations

Pledgie Donations

Once activated, we'll place the following badge in your repository's detail box:
Pledgie_example
This service is courtesy of Pledgie.

a web (interface | service) for viewing collectd statistics — Read more

  cancel

http://auxesis.github.com/visage

  cancel
  • Private
  • Read-Only
  • HTTP Read-Only

This URL has Read+Write access

deleted cached gems in compartmentalised gem install 
auxesis (author)
Sun Feb 07 07:53:56 -0800 2010
commit  3eea0da084c08f3e261676b3a523c9b9f3bae606
tree    ec41107ee4715546f803a686ffe01c988c69eb9e
parent  1955e9471d10ecb5a96c3d8a111b059a95c440d7
visage /
name age
history
message
file .gitignore Sun Feb 07 07:32:19 -0800 2010 updated ignore list [auxesis]
file Gemfile Sun Feb 07 07:51:34 -0800 2010 fucking around with bundler [auxesis]
file Gemfile.lock Sun Feb 07 07:51:34 -0800 2010 fucking around with bundler [auxesis]
file README.md Sun Feb 07 05:39:19 -0800 2010 fix readme to cover new bundling proceedure [auxesis]
file Rakefile Sun Feb 07 04:31:44 -0800 2010 attempt to fix gems for new bundler [auxesis]
file config.ru Sun Feb 07 05:21:09 -0800 2010 fixed rackup to use new bundler [auxesis]
directory config/ Thu Jan 21 18:11:40 -0800 2010 s/splatpart/splat/ [auxesis]
directory features/ Thu Oct 29 05:04:12 -0700 2009 filled in steps for verifying json works as exp... [auxesis]
directory lib/ Thu Jan 21 18:11:40 -0800 2010 s/splatpart/splat/ [auxesis]
directory public/ Thu Jan 21 18:13:12 -0800 2010 removed debugging messages [auxesis]
directory vendor/ Sun Feb 07 07:53:56 -0800 2010 deleted cached gems in compartmentalised gem in... [auxesis]
directory views/ Thu Jan 21 18:11:40 -0800 2010 s/splatpart/splat/ [auxesis]
file visage.rb Thu Jan 21 18:10:41 -0800 2010 explicitly state rrddir [auxesis]
README.md

Visage

Visage is a web interface for viewing collectd statistics.

It also provides a JSON interface onto collectd's RRD data, giving you an easy way to mash up the data.

Features

  • renders graphs in the browser, and retrieves data asynchronously
  • interactive graph keys, to highlight lines and toggle line visibility
  • drop-down or mouse selection of timeframes (also rendered asynchronously)
  • JSON interface onto collectd RRDs

Check out a demo at http://visage.unstated.net/.

Installing

Bundle dependencies:

$ bundle install vendor/gems/

Amongst other things, this will pull in Errand, which requires the rrdtool headers to build a C extension. On Debian/Ubuntu these are in the librrd2-dev package, and on RHEL/CentOS rrdtool-devel.

Configuring

Config lives in several files under config/.

  • profiles.yaml - groups of graphs Visage is to display
  • plugin-colors.yaml - colors for specific plugins/plugin instances
  • fallback-colors.yaml - ordered list of fallback colors
  • init.rb - bootstrapping code, specifies collectd's RRD directory

profiles.yaml isn't setup by default, but you can copy profiles.yaml.sample across and edit to taste. The plugins are in the format of plugin/plugin-instance, with plugins-instance being optional.

If you don't specify a plugin-instance Visage will attempt to graph all plugin instances under the specified plugin, e.g. cpu-0 will display cpu-idle, cpu-interrupt, cpu-nice, etc, whereas cpu-0/cpu-wait will only show cpu-wait. You can also choose a specific group of plugin instances to graph, with something like cpu-0/cpu-system/cpu-user/cpu-wait.

It should be pretty easy to deduce the config format from the existing file (it's simple nested key-value data).

Make sure collectd's RRD directory is readable by whatever user the web server is running as. You can specify where collectd's rrd directory is in init.rb, with the c['rrddir'] key.

Developing

For development:

$ gem install shotgun
$ shotgun visage.rb

Deploying

With Passenger, create an Apache vhost with the DocumentRoot set to the public/ directory of where you have deployed the checked out code, e.g.

<VirtualHost *>
  ServerName visage.example.org
  ServerAdmin contact@visage.example.org

  DocumentRoot /srv/www/visage.example.org/root/public/

  <Directory "/srv/www/visage.example.org/root/public/">
     Options FollowSymLinks Indexes
     AllowOverride None
     Order allow,deny
     Allow from all 
   </Directory>

   ErrorLog /srv/www/visage.example.org/log/apache_errors_log
   CustomLog /srv/www/visage.example.org/log/apache_app_log combined

</VirtualHost>

This assumes you have a checkout of the code at /srv/www/visage.example.org/root.

If you don't want to use Apache + Passenger, you can install the thin or mongrel gems and run up a web server yourself.

Ubuntu users looking for Passenger packages should add John Ferlito's mod-passenger PPA to their apt sources.

Testing

Run all cucumber features:

$ rake cucumber 

Specific features:

$ bin/cucumber --require features/ features/something.feature

TODO

  • create proper mootools class - DONE
  • switch to g.raphael - DONE
  • config file - DONE
  • data profiles - DONE
  • handle single plugin instance in graphing code - DONE
  • specify data url in graphing code - DONE
  • generate holders for graph/labels/time selector - DONE
  • clean up routes - DONE
  • smart colour selection (CPU-1 = CPU) - DONE
  • title attributes - DONE
  • split profiles + colors => plugins into separate files - DONE
  • fix key labels - DONE
  • axis labels (with human readable times) - DONE
  • detailed point-in-time data on hover
  • embedded html generator - DONE
  • zoom + dynamic resize - DONE
  • combine graphs from different hosts
  • comment on time periods
  • view list of comments
  • provide option to shade under graphs - DONE
  • interface to build custom graph profiles
Blog | Support | Training | Contact | API | Status | Twitter | Help | Security
© 2010 GitHub Inc. All rights reserved. | Terms of Service | Privacy Policy
Powered by the Dedicated Servers and
Cloud Computing of Rackspace Hosting®
Dedicated Server