Code Monkey home page Code Monkey logo

cgp's Introduction

Collectd Graph Panel (CGP)

Collectd Graph Panel (CGP) is a graphical web-based front-end for visualizing RRD collected by collectd, written in the PHP language.

The latest version of CGP can be found on https://github.com/pommi/CGP. When you have improvements or fixes, do not hesitate to send a pull request!

Requirements

CGP has the following hard requirements:

  • Web server with PHP 5.0 support.
  • rrdtool program, expected at /usr/bin/rrdtool (can be changed in the configuration file, $CONFIG['rrdtool']).
  • shell_exec must not be disabled through the disable_functions ini directive. It must allow execution of the rrdtool program.

The following software is optional, but nevertheless highly recommended:

  • PHP JSON extension: for a finer representation of the data in the graph. These representations can be found in the plugins/ directory.
  • Web browser with canvas support such as IE 9+, Firefox, Chrome, Opera 9+. Optional unless you use $CONFIG['graph_type'] = 'canvas'.

Installation and configuration

CGP is designed to run out of the box. If you want to modify some configuration settings, please create conf/config.local.php to overrule the settings from conf/config.php.

In a default configuration, the server will execute rrdtool to draw PNG graphs. These pictures are static and can put quite a burden on the server. For more flexibility, set $CONFIG['graph_type'] = 'canvas'. This will make web browsers download the RRD files and allows the user to zoom and move though the history using their pointer device.

See doc/nginx.conf for an example configuration for the nginx web server.

The .htaccess file in the top-level directory can serve as a guide for Apache configuration. Add AllowOverride directive to your virtual host configuration to allow .htaccess use.

Performance tips

Although the default configuration "just works", you can further improve your set up to reduce data usage and CPU time:

  • Enable gzip compression and caching (for at least RRD data files, SVG pictures and Javascript files. The canvas graph type downloads each RRD data file which are quite large (considering their quantity). Savings of 70% - 80% can be achieved for RRD data files.
  • Set $CONFIG['rrd_url'] to a directory directly accessible by the web server such that it can provide better cache control than PHP.
  • Instead of the default png graph type, consider canvas to relieve the web server. This moves the image processing to the client that views the picture.
  • Disable the open_basedir setting of PHP, or at least put the RRD data dir in the beginning. When enabled, PHP (at least 5.5.14) scans though every path component which is quite costly if you have over 100 RRD files and a deep directory hierarchy. 17 seconds was observed for four path components (with . at the end), this dropped down to 4.8 seconds when prepending the RRD data directory to the beginning. When disabled, processing took less than a second.

License

CGP is released under the terms of GPL version 3. See LICENSE for the full license text.

Acknowledgements

CGP is authored by Pim van den Berg with contributions from many other people.

Canvas support depends on jsrrdgraph by Manuel Luis, https://github.com/manuelluis/jsrrdgraph

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.