RELEASED: < 1 Minute to 5 Minute Polling Interval Patch
Moderators: Developers, Moderators
- TheWitness
- Developer
- Posts: 17047
- Joined: Tue May 14, 2002 5:08 pm
- Location: MI, USA
- Contact:
Any script can have it's "template" adjusted to work with 1 minute polling, you simply need to follow the procedure within the PDF file. If you plan on publishing a template, you need to NOT modify an existing one. Rather you should create from scratch.
TheWitness
TheWitness
True understanding begins only when we realize how little we truly understand...
Life is an adventure, let yours begin with Cacti!
Author of dozens of Cacti plugins and customization's. Advocate of LAMP, MariaDB, IBM Spectrum LSF and the world of batch. Creator of IBM Spectrum RTM, author of quite a bit of unpublished work and most of Cacti's bugs.
_________________
Official Cacti Documentation
GitHub Repository with Supported Plugins
Percona Device Packages (no support)
Interesting Device Packages
For those wondering, I'm still here, but lost in the shadows. Yearning for less bugs. Who want's a Cacti 1.3/2.0? Streams anyone?
Life is an adventure, let yours begin with Cacti!
Author of dozens of Cacti plugins and customization's. Advocate of LAMP, MariaDB, IBM Spectrum LSF and the world of batch. Creator of IBM Spectrum RTM, author of quite a bit of unpublished work and most of Cacti's bugs.
_________________
Official Cacti Documentation
GitHub Repository with Supported Plugins
Percona Device Packages (no support)
Interesting Device Packages
For those wondering, I'm still here, but lost in the shadows. Yearning for less bugs. Who want's a Cacti 1.3/2.0? Streams anyone?
ran into a little snag on my test Cacti server running CactiEZ.
Couldn't figure out how to change apache's crontab since I am not able to su to apache.
finally figured it out
as root: crontab -u apache -l lists the file
crontab -u apache -e edits the file.
I thought I did it thru webmin, but it listed it as:
* * * * * instead of */1 * * * *
Couldn't figure out how to change apache's crontab since I am not able to su to apache.
finally figured it out
as root: crontab -u apache -l lists the file
crontab -u apache -e edits the file.
I thought I did it thru webmin, but it listed it as:
* * * * * instead of */1 * * * *
Cacti1 OS: CentOS 5.6 | 300+ devices
Cacti2 OS: CentOS 5.6 | 300+ devices
King of the Elves
Local Anarchists Union #427
"Anarchism is founded on the observation that since few men are wise enough to rule themselves, even fewer are wise enough to rule others." -Edward Abbey
Cacti2 OS: CentOS 5.6 | 300+ devices
King of the Elves
Local Anarchists Union #427
"Anarchism is founded on the observation that since few men are wise enough to rule themselves, even fewer are wise enough to rule others." -Edward Abbey
-
- Cacti User
- Posts: 234
- Joined: Mon Dec 13, 2004 3:03 pm
Here is a small addition that someone may find usable. Sorry for not posting a patch, but I have some other custom stuff too.
What this code does is it makes the Polling Interval setting "smart". If you set your cron to 1 min intervals, but Cacti's setting is only set at 5 min pollings, it will only poll at 5 min intervals. If your Debug log is set to 3+ it will warn you that the polling intervals are different. Now if for instance you set the cron job for 5 minute intervals, but Cacti at 10 sec intervals, it will also warn you (1+). This helps keep you from breaking things accidently, and warns you if you are breaking things.
Open poller.php, find this code
and place this directly afterwards.
What this code does is it makes the Polling Interval setting "smart". If you set your cron to 1 min intervals, but Cacti's setting is only set at 5 min pollings, it will only poll at 5 min intervals. If your Debug log is set to 3+ it will warn you that the polling intervals are different. Now if for instance you set the cron job for 5 minute intervals, but Cacti at 10 sec intervals, it will also warn you (1+). This helps keep you from breaking things accidently, and warns you if you are breaking things.
Open poller.php, find this code
Code: Select all
/* Record Start Time */
list($micro,$seconds) = split(" ", microtime());
$start = $seconds + $micro;
/* Get number of polling items from the database */
$polling_interval = read_config_option("poller_interval");
Code: Select all
/* Retreive the last time the poller ran */
$polling_lastrun = read_config_option("poller_lastrun");
/* Get to see if we are polling faster than reported by the settings, if so, exit */
if (isset($polling_lastrun) && isset($polling_interval) && $polling_lastrun != 0) {
if ($seconds - $polling_lastrun + 5 < $polling_interval) {
if (read_config_option("log_verbosity") >= POLLER_VERBOSITY_MEDIUM) {
cacti_log("Poller Interval is $polling_interval seconds, but only " . ($seconds - $polling_lastrun) . " seconds have passed since the last polling.", true, "POLLER");
}
exit;
}
}
/* Check to see whether we have the poller interval set lower than the poller is actually ran */
if ($seconds - $polling_lastrun - 5 > $polling_interval) {
cacti_log("Poller Interval is $polling_interval seconds, but " . ($seconds - $polling_lastrun) . " seconds have passed since the last polling.", true, "POLLER");
}
db_execute("replace into settings (name,value) values ('poller_lastrun'," . $seconds . ")");
This is a copy of I post I sent on the mailing list, just FYI.
I just tried the new 1-minute patch... Isn't there something wrong in the RRA settings? If I follow the doc, my daily, weekly, monthly and yearly RRA won't have the correct "Steps" parameter when used with one-minute templates.
My guess is that we'll end up with one-minute data in the 5-minute data RRA (and so on for the other RRAs) which mean redundant data and much less available data than it is supposed to hold.
I see three ways to fix this:
1. Change all RRAs, and set all templates and current graphs to 1-minute pooling (This is what I did).
2. Create one set of RRAs per polling interval. This is the quickest fix according to the way the patch works but is ridiculous IMHO.
3. Remove the "Steps" option in the RRA setting and change it to a "Time factor" option. The time factor should be divisible by any of the smaller time factors. When the smallest time factor in a RRA set is 1, then "time factor" = "Steps", otherwise "Steps" = "Time factor" / smallest time factor. When adding a new RRA there could be a multiple by witch you want to multiply the RRAs with equal or bigger time factors so that it would ease inserting new RRAs without breaking all other templates. For removing RRAs, a divide by options could be added as well. It would be also required to replace "Rows" by a factor of the Timespan value. I.e. if you want two days of daily data (86400 seconds) you would chose a "Row factor" of "2". Ex. For Daily graph with timespan=86400, time factor=5, Step (in the data template)=60, then 86400/60/5*2=576 rows.
Meanwhile here's my current RRA settings and some SQL queries to run to make all graphs and templates 1-minute (require that you recreate all RRD files and you will loose all data).
I just tried the new 1-minute patch... Isn't there something wrong in the RRA settings? If I follow the doc, my daily, weekly, monthly and yearly RRA won't have the correct "Steps" parameter when used with one-minute templates.
My guess is that we'll end up with one-minute data in the 5-minute data RRA (and so on for the other RRAs) which mean redundant data and much less available data than it is supposed to hold.
I see three ways to fix this:
1. Change all RRAs, and set all templates and current graphs to 1-minute pooling (This is what I did).
2. Create one set of RRAs per polling interval. This is the quickest fix according to the way the patch works but is ridiculous IMHO.
3. Remove the "Steps" option in the RRA setting and change it to a "Time factor" option. The time factor should be divisible by any of the smaller time factors. When the smallest time factor in a RRA set is 1, then "time factor" = "Steps", otherwise "Steps" = "Time factor" / smallest time factor. When adding a new RRA there could be a multiple by witch you want to multiply the RRAs with equal or bigger time factors so that it would ease inserting new RRAs without breaking all other templates. For removing RRAs, a divide by options could be added as well. It would be also required to replace "Rows" by a factor of the Timespan value. I.e. if you want two days of daily data (86400 seconds) you would chose a "Row factor" of "2". Ex. For Daily graph with timespan=86400, time factor=5, Step (in the data template)=60, then 86400/60/5*2=576 rows.
Meanwhile here's my current RRA settings and some SQL queries to run to make all graphs and templates 1-minute (require that you recreate all RRD files and you will loose all data).
Code: Select all
Name Steps Rows Timespan
Hourly (1 Minute Average) 1 4000 14400
Daily (5 Minute Average) 5 1600 86400
Weekly (30 Minute Average) 30 1600 604800
Monthly (2 Hour Average) 120 1600 2678400
Yearly (1 Day Average) 1440 1600 33053184
Code: Select all
update data_template_data set rrd_step=60 where rrd_step=300;
update data_template_rrd set rrd_heartbeat=120 where rrd_heartbeat=600;
## WARNING ## Here it assumes that your 1-minute RRA id is "5".
## Replace "5" by your 1-minute RRA id on BOTH SQL queries!!
delete from data_template_data_rra where rra_id=5;
insert into data_template_data_rra select distinct(data_template_data_id), 5 from data_template_data_rra;
## WARNING ## This will reset all your graphs
rm -f /PATH/TO/cacti/rra/*.rrd
NAN error
I've added the patch at the beginning of this thread, and followed the how-to several times. I have created and recreated the data template, graph templates and data-queries and several times. Each time I do, I end up with graphs showing NAN. Graph debug says everything is ok, and data source debug again shows everything is fine.
/usr/bin/rrdtool graph - \
--imgformat=PNG \
--start=-86400 \
--end=-60 \
--title="mymachine- Traffic - Gi0/2 " \
--rigid \
--base=1000 \
--height=120 \
--width=500 \
--alt-autoscale-max \
--lower-limit=0 \
--vertical-label="bits per second" \
--slope-mode \
DEF:a="/usr/share/cacti/site/rra/mymachine_traffic_in_37.rrd":traffic_in:AVERAGE \
DEF:b="/usr/share/cacti/site/rra/mymachine_traffic_in_37.rrd":traffic_out:AVERAGE \
CDEF:cdefa=a,8,* \
CDEF:cdefe=b,8,* \
AREA:cdefa#00CF00:"Inbound" \
GPRINT:cdefa:LAST:" Current\:%8.2lf %s" \
GPRINT:cdefa:AVERAGE:"Average\:%8.2lf %s" \
GPRINT:cdefa:MAX:"Maximum\:%8.2lf %s\n" \
LINE1:cdefe#002A97:"Outbound" \
GPRINT:cdefe:LAST:"Current\:%8.2lf %s" \
GPRINT:cdefe:AVERAGE:"Average\:%8.2lf %s" \
GPRINT:cdefe:MAX:"Maximum\:%8.2lf %s"
/usr/bin/rrdtool create \
/usr/share/cacti/site/rra/mymachine_traffic_in_37.rrd \
--step 60 \
DS:traffic_out:COUNTER:120:0:1000000000 \
DS:traffic_in:COUNTER:120:0:1000000000 \
RRA:AVERAGE:0.5:1:500 \
RRA:AVERAGE:0.5:1:600 \
RRA:AVERAGE:0.5:6:700 \
RRA:AVERAGE:0.5:24:775 \
RRA:AVERAGE:0.5:288:797 \
RRA:MAX:0.5:1:500 \
RRA:MAX:0.5:1:600 \
RRA:MAX:0.5:6:700 \
RRA:MAX:0.5:24:775 \
RRA:MAX:0.5:288:797 \
Around 9 months ago, I did this successfully, but that machine is now long gone. I was a bit of a slacker and grabbed templates that were posted rather than creating the templates myself.
I am running 8.6i
The RRD files that are being created look correct and the graph is being generated but the values are shown as NAN. Does this issue appear to be anything someone would be immediately familiar with?
As an alternative is there any chance someone could post templates that work with this version? I would be terribly indebted to you.
Thanks!
/usr/bin/rrdtool graph - \
--imgformat=PNG \
--start=-86400 \
--end=-60 \
--title="mymachine- Traffic - Gi0/2 " \
--rigid \
--base=1000 \
--height=120 \
--width=500 \
--alt-autoscale-max \
--lower-limit=0 \
--vertical-label="bits per second" \
--slope-mode \
DEF:a="/usr/share/cacti/site/rra/mymachine_traffic_in_37.rrd":traffic_in:AVERAGE \
DEF:b="/usr/share/cacti/site/rra/mymachine_traffic_in_37.rrd":traffic_out:AVERAGE \
CDEF:cdefa=a,8,* \
CDEF:cdefe=b,8,* \
AREA:cdefa#00CF00:"Inbound" \
GPRINT:cdefa:LAST:" Current\:%8.2lf %s" \
GPRINT:cdefa:AVERAGE:"Average\:%8.2lf %s" \
GPRINT:cdefa:MAX:"Maximum\:%8.2lf %s\n" \
LINE1:cdefe#002A97:"Outbound" \
GPRINT:cdefe:LAST:"Current\:%8.2lf %s" \
GPRINT:cdefe:AVERAGE:"Average\:%8.2lf %s" \
GPRINT:cdefe:MAX:"Maximum\:%8.2lf %s"
/usr/bin/rrdtool create \
/usr/share/cacti/site/rra/mymachine_traffic_in_37.rrd \
--step 60 \
DS:traffic_out:COUNTER:120:0:1000000000 \
DS:traffic_in:COUNTER:120:0:1000000000 \
RRA:AVERAGE:0.5:1:500 \
RRA:AVERAGE:0.5:1:600 \
RRA:AVERAGE:0.5:6:700 \
RRA:AVERAGE:0.5:24:775 \
RRA:AVERAGE:0.5:288:797 \
RRA:MAX:0.5:1:500 \
RRA:MAX:0.5:1:600 \
RRA:MAX:0.5:6:700 \
RRA:MAX:0.5:24:775 \
RRA:MAX:0.5:288:797 \
Around 9 months ago, I did this successfully, but that machine is now long gone. I was a bit of a slacker and grabbed templates that were posted rather than creating the templates myself.
I am running 8.6i
The RRD files that are being created look correct and the graph is being generated but the values are shown as NAN. Does this issue appear to be anything someone would be immediately familiar with?
As an alternative is there any chance someone could post templates that work with this version? I would be terribly indebted to you.
Thanks!
Code: Select all
Hi all!
Recently I have been playing around with CACTI and so far i'm very happy with it.
I have also installed this 1 minute poller, but it seems there is just one issue I can't seem to be able to resolve...
It seems my 'Hourly (1 Minute Average)' graph doesn't give results on a minute basis, but instead it keeps creating those 5 minute averages.
I've done everything the PDF told me to do, I also see the page refreshing itself every minute, and the crontab is set to 1 minute.
So if anyone got any info that could help me
Here's the code:
view my graph at http://img162.imagevenue.com/img.php?im ... _396lo.JPG
Thanks in advance for all replies!
Recently I have been playing around with CACTI and so far i'm very happy with it.
I have also installed this 1 minute poller, but it seems there is just one issue I can't seem to be able to resolve...
It seems my 'Hourly (1 Minute Average)' graph doesn't give results on a minute basis, but instead it keeps creating those 5 minute averages.
I've done everything the PDF told me to do, I also see the page refreshing itself every minute, and the crontab is set to 1 minute.
So if anyone got any info that could help me
Here's the code:
Code: Select all
/usr/bin/rrdtool graph - \
--imgformat=PNG \
--start=1169028824 \
--end=1169042924 \
--title="sitename - Traffic - eth0 1 min" \
--rigid \
--base=1000 \
--height=144 \
--width=600 \
--alt-autoscale-max \
--lower-limit=0 \
COMMENT:"From 2007/01/17 11\:13\:44 To 2007/01/17 15\:08\:44\c" \
COMMENT:" \n" \
--vertical-label="bytes per second" \
--slope-mode \
DEF:a="/usr/share/cacti/site/rra/sitename_traffic_in_73.rrd":traffic_in:AVERAGE \
DEF:b="/usr/share/cacti/site/rra/sitename_traffic_in_73.rrd":traffic_out:AVERAGE \
AREA:a#00CF00:"Inbound" \
GPRINT:a:LAST:" Current\:%8.2lf %s" \
GPRINT:a:AVERAGE:"Average\:%8.2lf %s" \
GPRINT:a:MAX:"Maximum\:%8.2lf %s" \
COMMENT:"Total In\: 2.37 GB\n" \
LINE1:b#002A97:"Outbound" \
GPRINT:b:LAST:"Current\:%8.2lf %s" \
GPRINT:b:AVERAGE:"Average\:%8.2lf %s" \
GPRINT:b:MAX:"Maximum\:%8.2lf %s" \
COMMENT:"Total Out\: 19.24 GB" \
COMMENT:""
Thanks in advance for all replies!
Posting a link to my OP about the fast poller, at the suggestion of BSOD:
http://forums.cacti.net/viewtopic.php?t=19234
Many thanks for any assistance.
http://forums.cacti.net/viewtopic.php?t=19234
Many thanks for any assistance.
Who is online
Users browsing this forum: No registered users and 1 guest