diff --git a/.mdl_style.rb b/.mdl_style.rb new file mode 100644 index 00000000..bcdce00d --- /dev/null +++ b/.mdl_style.rb @@ -0,0 +1,14 @@ +# customize style guide +all +rule "MD013", code_blocks: false, tables: false +rule "MD029", style: "ordered" +rule "MD046", style: "fenced" + +# Lesser rules +exclude_rule "MD010" # hard tabs +exclude_rule "MD013" # line length + +# Rule Exclusions +exclude_rule "MD001" # Headers are useful in other ways +exclude_rule "MD024" # Headers with same name are useful, but break link labeling (Rework needed on affected files before enabling this rule) +exclude_rule "MD046" # seems broken diff --git a/.mdlrc b/.mdlrc new file mode 100644 index 00000000..2f92946d --- /dev/null +++ b/.mdlrc @@ -0,0 +1,3 @@ +# mdl cli configuration +style ".mdl_style.rb" +verbose false diff --git a/CHANGELOG b/CHANGELOG index e8d581b8..39eaca89 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,8 @@ The Cacti Group | spine +1.2.1 +-feature: release to match Cacti release + 1.2.0 -feature: Allow threads to be set a Data Collector level -issue#50: make fails on Debian 7 attempting to locate clock_gettime diff --git a/README.md b/README.md index 6e2baaa3..12fe2dce 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,25 @@ # Spine: a poller for Cacti Spine is a high speed poller replacement for `cmd.php`. It is almost 100% -compatible with the legacy cmd.php processor and provides much more -flexibility, speed and concurrency than `cmd.php`. +compatible with the legacy cmd.php processor and provides much more flexibility, +speed and concurrency than `cmd.php`. Make sure that you have the proper development environment to compile Spine. -This includes compilers, header files and things such as libtool. If you -have questions please consult the forums and/or online documentation. - ------------------------------------------------------------------------------ - -## 1.2.0 Development - -**PLEASE READ** - -Feature branch for `1.2.x` has been merged into the `develop` branch. This means -things may and will break, but they will eventually be fixed. - -> DEVELOP branch is currently considered UNSTABLE, use with caution! +This includes compilers, header files and things such as libtool. If you have +questions please consult the forums and/or online documentation. ----------------------------------------------------------------------------- ## Unix Installation -These instructions assume the default install location for spine -of `/usr/local/spine`. If you choose to use another prefix, make -sure you update the commands as required for that new path. +These instructions assume the default install location for spine of +`/usr/local/spine`. If you choose to use another prefix, make sure you update +the commands as required for that new path. -To compile and install Spine using MySQL versions 5.5 or higher -please do the following: +To compile and install Spine using MySQL versions 5.5 or higher please do the +following: -``` +```shell ./configure make make install @@ -38,10 +27,10 @@ chown root:root /usr/local/spine/bin/spine chmod u+s /usr/local/spine/bin/spine ``` -To compile and install Spine using MySQL versions previous to 5.5 -please do the following: +To compile and install Spine using MySQL versions previous to 5.5 please do the +following: -``` +```shell ./configure --with-reentrant make make install @@ -54,70 +43,91 @@ chmod +s /usr/local/spine/bin/spine ### CYGWIN Prerequisite 1. Download Cygwin for Window from [https://www.cygwin.com/](https://www.cygwin.com/) + 2. Install Cygwin by executing the downloaded setup program + 3. Select _Install from Internet_ + 4. Select Root Directory: _C:\cygwin_ + 5. Select a mirror which is close to your location -6. Once on the package selection section make sure to select the following (TIP: use the search!): - * autoconf - * automake - * dos2unix - * gcc-core - * gzip - * help2man - * libmysqlclient - * libmysqlclient-devel - * libtool - * m4 - * make - * net-snmp-devel - * openssl-devel - * wget + +6. Once on the package selection section make sure to select the following (TIP: + use the search!): + + * autoconf + * automake + * dos2unix + * gcc-core + * gzip + * help2man + * libmysqlclient + * libmysqlclient-devel + * libtool + * m4 + * make + * net-snmp-devel + * openssl-devel + * wget + 7. Wait for installation to complete, coffee time! -8. Move the cygwin setup to the C:\cygwin\ folder for future usage. + +8. Move the cygwin setup to the C:\cygwin\ folder for future usage. ### Compile Spine -1. Open Cygwin shell prompt (C:\Cygwin\cygwin.bat) and brace yourself to use unix commands on Windows. +1. Open Cygwin shell prompt (C:\Cygwin\cygwin.bat) and brace yourself to use + unix commands on Windows. + 2. Download the Spine source to the current directory: - [http://www.cacti.net/spine_download.php](http://www.cacti.net/spine_download.php) + + [http://www.cacti.net/spine_download.php](http://www.cacti.net/spine_download.php) + 3. Extract Spine into C:\Cygwin\usr\src\: - `tar xzvf cacti-spine-*.tar.gz` + + `tar xzvf cacti-spine-*.tar.gz` + 4. Change into the Spine directory: - `cd /usr/src/cacti-spine-*` + + `cd /usr/src/cacti-spine-*` + 5. Run bootstrap to prepare Spine for compilation: - `./bootstrap` + + `./bootstrap` + 6. Follow the instruction which bootstrap outputs. -7. Update the spine.conf file for your installation of Cacti. You can optionally + +7. Update the spine.conf file for your installation of Cacti. You can optionally move it to a better location if you choose to do so, make sure to copy the spine.conf as well. + 8. Ensure that Spine runs well by running with `/usr/local/spine/spine -R -S -V 3` -9. Update Cacti `Paths` Setting to point to the Spine binary and update the + +9. Update Cacti `Paths` Setting to point to the Spine binary and update the `Poller Type` to Spine. For the spine binary on Windows x64, and using default locations, that would be `C:\cygwin64\usr\local\spine\bin\spine.exe` + 10. If all is good Spine will be run from the poller in place of cmd.php. ## Known Issues 1. On Windows, Microsoft does not support a TCP Socket send timeout. Therefore, - if you are using TCP ping on Windows, spine will not perform a second or subsequent - retries to connect and the host will be assumed down on the first failure. + if you are using TCP ping on Windows, spine will not perform a second or + subsequent retries to connect and the host will be assumed down on the first + failure. If this is a problem it is suggested to use another Availability/Reachability method, or moving to Linux/UNIX. -2. Spine takes quite a few MySQL connections. The number of connections is calculated - as follows: - - * main poller take one connection - * all threads take one connection each - * all script servers take one connection each +2. Spine takes quite a few MySQL connections. The number of connections is + calculated as follows: (1 for main poller + 1 per each thread + 1 per each + script server) - Therefore, if you have 4 processes, with 10 threads each, and 5 script servers each - your spine will take approximately: + Therefore, if you have 4 processes, with 10 threads each, and 5 script + servers each your spine will take approximately: `total connections = 4 * ( 1 + 10 + 5 ) = 64` -3. On older MySQL versions, different libraries had to be used to make MySQL thread - safe. MySQL versions 5.0 and 5.1 require this flag. If you are using these version - of MySQL, you must use the --with-reentrant configure flag. +3. On older MySQL versions, different libraries had to be used to make MySQL + thread safe. MySQL versions 5.0 and 5.1 require this flag. If you are using + these version of MySQL, you must use the --with-reentrant configure flag. diff --git a/configure.ac b/configure.ac index a0cd2de5..37beedcb 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ(2.53) -AC_INIT(Spine Poller, 1.2.0, http://www.cacti.net/issues.php) +AC_INIT(Spine Poller, 1.2.1, http://www.cacti.net/issues.php) AC_CONFIG_AUX_DIR(config) AC_SUBST(ac_aux_dir)