[bcn-pm] RRDs::graph i cgi
Arnau Bria
listsarnau a gmail.com
dic feb 22 08:26:41 PST 2012
Hola (una altra vegada),
estava intentant fer un plot simple fent servir RRDs::grpahs (juntant 2
sources) i volia no utilitzar fitxers inter-mitjos. La cosa es que algo
com:
#!/usr/bin/perl -w
use strict;
use CGI;
print "Content-Type: image/png\n\n";
my $img =`rrdtool graph - --start -1d --end=now [...]`;
print $img;
funciona. La web em mostra el que vull.
Ara ho volia fer utilitzant RRDs:
#!/usr/bin/perl -w
use strict;
use CGI;
use RRDs;
print "Content-Type: image/png\n\n";
RRDs::graph('-', '--imgformat=PNG' , [...]) ;
Això ja genera el png (directament). Però no anava, fallava dient:
malformed header from script. Bad header=\x89PNG
S'estava equivocant amb el header.
Ho llençava a mà i veia que el format era correcte:
-----------
Content-Type: image/png
PNG
[El png en caracters raros]
--------------------
I no entenia el error, fins que ho he llençat a un fitxer i he vist que
el content type no estava al principi del fitxer sinó en mig...
-----------
PNG
[El png en caracters raros]
Content-Type: image/png
[El png en caracters raros]
--------------------
Segurament és obvi, però, ja coneixeu el meu nivell, no entenc perquè
passa això. Algú m'il·lumina?
Moltes gràcies per endavant,
Arnau
PS: Àlex, estic fent servir això i no Chart::Clicker perquè haig de
plotar les coses al ganglia server si o si. Tant per tant, m'envio les
dades al servidor via gmond i jugo amb els rrds generats.
Més informació sobre la llista de correu Barcelona-pm