The images in the Gallery would be a lot more useful if they were complemented by the source code. Man pages are nice, but a couple of simple to complex examples (in cut & paste style) are even nicer.
Here is one example:
RRDs::graph($pic_name,
# Title of the graph, it is displayed on top of the image
"--title", "$server CPU Load",
# Defining colors for the basic graph objects
"--color", "BACK#000000",
"--color", "SHADEA#000000",
"--color", "SHADEB#000000",
"--color", "FONT#DDDDDD",
"--color", "CANVAS#202020",
"--color", "GRID#666666",
"--color", "MGRID#AAAAAA",
"--color", "FRAME#202020",
"--color", "ARROW#FFFFFF",
# limiting the graph to only 17 load
"-u 17", "-r",
# defining data segments for today's and yesterday's load
"DEF:today=$rrd_name:cpuLoad:AVERAGE:start=end-86400:end=now",
"DEF:yesterday=$rrd_name:cpuLoad:AVERAGE:start=end-86400:end=now-86400",
# combining both data segments on one GRAPH
# if we don't shift yesterday, it will not appear on the graph
# since it's time frame is not the one that is currently viewed
"SHIFT:yesterday:86400",
# Generate averages for both days
"CDEF:avg=PREV,UN,today,UN,UNKN,today,IF,PREV,IF,today,UN,1,today,IF,-,0.97,*,today,UN,1,today,IF,+",
"CDEF:avg1=PREV,UN,yesterday,UN,UNKN,yesterday,IF,PREV,IF,yesterday,UN,1,yesterday,IF,-,0.97,*,yesterday,UN,1,yesterday,IF,+",
# Write the average of today as a line
"LINE1:avg#0000FF:Today avg\\t\\t",
# the colors are #FFFFFF00 where 00 is the percantage of transperance of the color(from 00 to FF, where FF is solid)
"LINE1:today#F90000",
"CDEF:shading2=today,0.98,*", "AREA:shading2#F9000022:Today\\t",
"CDEF:shading10=today,0.90,*", "AREA:shading10#E1000011",
"CDEF:shading15=today,0.85,*", "AREA:shading15#D2000011",
"CDEF:shading20=today,0.80,*", "AREA:shading20#C3000011",
"CDEF:shading25=today,0.75,*", "AREA:shading25#B4000011",
"CDEF:shading30=today,0.70,*", "AREA:shading30#A5000011",
"CDEF:shading35=today,0.65,*", "AREA:shading35#96000011",
"CDEF:shading40=today,0.60,*", "AREA:shading40#87000011",
"CDEF:shading45=today,0.55,*", "AREA:shading45#78000011",
"CDEF:shading50=today,0.50,*", "AREA:shading50#69000011",
"CDEF:shading55=today,0.45,*", "AREA:shading55#5A000011",
"CDEF:shading60=today,0.40,*", "AREA:shading60#4B000011",
"CDEF:shading65=today,0.35,*", "AREA:shading65#3C000011",
"CDEF:shading70=today,0.30,*", "AREA:shading70#2D000011",
"CDEF:shading75=today,0.25,*", "AREA:shading75#18000011",
"CDEF:shading80=today,0.20,*", "AREA:shading80#0F000011",
"CDEF:shading85=today,0.15,*", "AREA:shading85#00000011",
#
"GPRINT:today:MAX:Max load\\\: %.2lf",
"GPRINT:today:AVERAGE:LoadAvg\\\: %.2lf\\n",
"LINE1:avg1#00FFFF:Yesterday avg\\t",
"LINE1:yesterday#ffa946",
"CDEF:shadin2=yesterday,0.98,*", "AREA:shadin2#ffa94622:Yesterday\\t",
"CDEF:shadin10=yesterday,0.90,*", "AREA:shadin10#ffa94611",
"CDEF:shadin15=yesterday,0.85,*", "AREA:shadin15#e1953e11",
"CDEF:shadin20=yesterday,0.80,*", "AREA:shadin20#d28b3a11",
"CDEF:shadin25=yesterday,0.75,*", "AREA:shadin25#c3813611",
"CDEF:shadin30=yesterday,0.70,*", "AREA:shadin30#b4773111",
"CDEF:shadin35=yesterday,0.65,*", "AREA:shadin35#a56d2d11",
"CDEF:shadin40=yesterday,0.60,*", "AREA:shadin40#96632911",
"CDEF:shadin45=yesterday,0.55,*", "AREA:shadin45#87592511",
"CDEF:shadin50=yesterday,0.50,*", "AREA:shadin50#78502111",
"CDEF:shadin55=yesterday,0.45,*", "AREA:shadin55#69461d11",
"CDEF:shadin60=yesterday,0.40,*", "AREA:shadin60#5a3c1911",
"CDEF:shadin65=yesterday,0.35,*", "AREA:shadin65#4b321511",
"CDEF:shadin70=yesterday,0.30,*", "AREA:shadin70#3c281011",
"CDEF:shadin75=yesterday,0.25,*", "AREA:shadin75#2d1e0c11",
"CDEF:shadin80=yesterday,0.20,*", "AREA:shadin80#1e140811",
"CDEF:shadin85=yesterday,0.15,*", "AREA:shadin85#0f0a0411",
"GPRINT:yesterday:MAX:Max load\\\: %.2lf",
"GPRINT:yesterday:AVERAGE:LoadAvg\\\: %.2lf\\n"
);
Marian Marinov <mm |AT| yuhu.biz>


