-
Website
http://blog.kovyrin.net -
Original page
http://blog.kovyrin.net/2006/04/29/monitoring-nginx-with-rrdtool/ -
Subscribe
All Comments -
Community
-
Top Commenters
-
for you health
3 comments · 1 points
-
jamiew
1 comment · 6 points
-
qu1j0t3
1 comment · 1 points
-
mkv to dvd
1 comment · 1 points
-
Scoundrel
9 comments · 1 points
-
-
Popular Threads
Try it! ;)
Сначала показал совсем левые значения из миллионных величин (пр: Total Current: 450.0 m)
В дальнейшем так же 4300.0, что не сходится даже со строкой
print "RQ:$requests; TT:$total; RD:$reading; WR:$writing; WA:$waiting\n";
которая все показывает правильно...
где собака порылась?
Вот здесь можно посмотреть:
http://foxtrot355.server4you.de/stat.html
вместо:
"DS:total:ABSOLUTE:120:0:60000",
"DS:reading:ABSOLUTE:120:0:60000",
"DS:writing:ABSOLUTE:120:0:60000",
"DS:waiting:ABSOLUTE:120:0:60000",
надо:
"DS:total:GAUGE:120:0:60000",
"DS:reading:GAUGE:120:0:60000",
"DS:writing:GAUGE:120:0:60000",
"DS:waiting:GAUGE:120:0:60000",
Теперь данные будут правильно отображаться
Число обработанных за период соединений надо брать из другого показателя, т.к. $total отображает число установленных соединений на момент запроса.
Предлагаю заменить
if (/^\s+(\d+)\s+(\d+)\s+(\d+)/) {
> $requests = $3;
> $connects = $1;
> }
Хранение реализовать аналогично хранению $requests, c типом хранилища ABSOLUTE.
(Добавить в RRDs::create
строку "DS:connects:ABSOLUTE:120:0:100000000",)
Чтобы получать разницу в количестве обработанных соединений между запусками, предыдущее значение записывается в отдельный файл nginx.cns (аналогично хранению числа запросов в файле nginx.rqs).
Добавляемый код:
+my $connects=0;
....
+# get connects
+if (! -e "$rrd/nginx1.cns") {
+ $cns = 0;
+} else {
+ open RQS, ";
+ close RQS;
+ $cns = $connects if ($cns $rrd/nginx1.cns";
+print RQS $connects;
+close RQS;
Также мне не нравится поведение в случае, если новый счетчик меньше старого - это означает что он уже успел сброситься по какой-то причине. Но это не означает что его не стоит использовать.
$rqs = $requests if ($rqs
user@machine ~> nginx -v
nginx version: nginx/0.5.10
user@machine ~> php -v
PHP 4.3.10-18 (cli) (built: Nov 3 2006 21:56:29)
[snip]
Thanks.
-------------------------------------------------
app201:/home/nginx/rrd# nginx -v
nginx version: nginx/0.5.37
app201:/home/nginx/rrd# php -v
PHP 5.2.0-8+etch11 (cli) (built: May 10 2008 10:46:24)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2006 Zend Technologies
app201:/home/nginx/rrd# rrdtool -v
RRDtool 1.2.15 Copyright 1997-2006 by Tobias Oetiker <tobi@oetiker.ch>
Compiled Dec 14 2006 22:05:35
Usage: rrdtool [options] command command_options
Valid commands: create, update, updatev, graph, dump, restore,
last, first, info, fetch, tune, resize, xport
RRDtool is distributed under the Terms of the GNU General
Public License Version 2. (www.gnu.org/copyleft/gpl.html)
For more information read the RRD manpages
-------------------------------------------------
I don't assure that this method is right but my graph is OK right now. By replacing these lines
RRDs::update "$rrd/nginx.rrd",
"-t", "requests:total:reading:writing:waiting",
"N:$requests:$total:$reading:$writing:$waiting";
with
RRDs::update ("$rrd/nginx.rrd", "N:$requests:$total:$reading:$writing:$waiting");
Cheers,
PavelR: Can you paste all code ?
ex: http://nikolas.ru/nginx/nginx-rrd_new.pl
PavelR: The links posted above gave me a 403 Forbidden.. would be nice to get the current version of your script.
http://nikolas.ru/nginx/nginx-rrd_new.pl - 403 Forbidden
Also error in this project - http://www.nginx.eu/nginx-rrd.html