No announcement yet.

Wrong min, max, last values on graphs.

  • Filter
  • Time
  • Show
Clear All
new posts

  • Wrong min, max, last values on graphs.

    Sorry if this is not the best forum for this, but I didn't see anything that looked more appropriate.

    I'm graphing the number of connections on a particular port which are obviously always integer values. I'm getting fractional values for the Min, Max, and Last values which are not what I'd expect for those.

    I've dug into the rrd file being produced and am seeing some fractional values being recorded even though I'm seeing the expected integer values in the perfparse database. Is there something I can change to get the output I'd expect?

    Let me know if any further information is needed.

  • #2
    maybe you chose bad RRD type GAUGE, ABSOLUTE, DERIVE , etc ...
    Intel(R) Xeon(TM) CPU 3.4GHz - MemTotal : 1034476 kB
    Centreon 2.4.1 - Nagios 3.2.1 - Nagios Plugins 1.4.15 - Manubulon Plugins tuné
    Fedora Core 5 - 2.6.20-1.2320


    • #3
      Thanks for the response. Here is the rrdtool create statement being used.

      /usr/bin/rrdtool create /var/www/html/oreon/filesGeneration/graphs/simpleRenderer/rrdDB/<hostname>.rrd --start 1166365199 DS:conns:GAUGE:600:U:U RRA:LAST:0:1:1127

      Gauge is to my understanding what I'd want to use for this type of data. Am I misunderstanding that designation? Also, I'm not aware of a place to define that in Oreon, so if that needs to be changed, where would I define that?


      • #4
        If you use a check_graph_ plugin to do that.

        Just edit it and replace "GAUGE" by "ABSOLUTE" or other

        Look rrd manual for difference between this options :wink:
        Intel(R) Xeon(TM) CPU 3.4GHz - MemTotal : 1034476 kB
        Centreon 2.4.1 - Nagios 3.2.1 - Nagios Plugins 1.4.15 - Manubulon Plugins tuné
        Fedora Core 5 - 2.6.20-1.2320


        • #5
          I'm not using a check_graph plugin for this, but I did edit simpleRenderer.php to change GAUGE to ABSOLUTE with no notable difference. Reading the descriptions for both in the rrdtool documentation, I believe either should work for what I'm wanting to do.

          I know I could edit the strings to remove the decimal place on the graph output, but I'd rather find a solution that removes the bad data all together.

          Any other ideas/suggestions, and thanks for your time responding to this.


          • #6
            Anybody have any ideas/input on this? I still have not resolved this problem.


            • #7

              everything seems correct in your create statement except maybe for the value 0 of the RRA's xff whitch, I believe, is supposed to range from 0 to 1 exclusive.
              I would try a decimal value like 0.1 just for the hell of it ...

              hope this helps



              • #8
                xspoon, thanks for the reply.

                I had changed that at one point to try to keep rrdtool from calculating "mid points" (probably the wrong term) between the data points which is what I think might be causing the bad data. I thought that setting that to 0 would keep it from doing whatever calculations it uses to determine them, but it didn't work. I have since changed that back to 0.5 as it was originally in Oreon.

                Here is my current create statement:

                /usr/bin/rrdtool create /var/www/html/oreon/filesGeneration/graphs/simpleRenderer/rrdDB/<hostname>.rrd --start 1167807950 DS:conns:GAUGE:600:U:U RRA:LAST:0.5:1:114

                This is my graph statement:

                /usr/bin/rrdtool graph - --start=1168007950 --end=1168029590 --interlaced --width=600 --height=200 --title='Server Info' --vertical-label='Connections' --color CANVAS#FFFFFF --color BACK#FEFEFE --color FONT#000000 --color MGRID#800000 --color GRID#808080 --color FRAME#000000 --color ARROW#FFFFFF --color SHADEA#C0C0C0 --color SHADEB#909090 --lower-limit 0 --upper-limit 100 --rigid DEF:v0=/var/www/html/oreon/filesGeneration/graphs/simpleRenderer/rrdDB/<hostname>.rrd:conns:LAST COMMENT:" \c" COMMENT:" From 01/05/2007 8\:39 to 01/05/2007 14\:39 \c" COMMENT:" \c" AREA:v0#1BA7E3ff LINE2:v0#1BA7E3:"conns " GPRINT:v0:AVERAGE:"Average\:%8.2lf%s" GPRINT:v0:MIN:"Min\:%8.2lf%s" GPRINT:v0:MAX:"Max\:%8.2lf%s" GPRINT:v0:LAST:"Last\:%8.2lf%s\l" 2>&1

                This results in "Min: 24.88 Max: 30.07 Last: 25.32" being printed along the bottom.

                The perfparse database appears to have nothing but integer values in it, so the problem seems to stem from those values getting pushed into the rrd file. I'm not even sure where that's being pushed as simpleRenderer doesn't hit the rrdtool update statement when I generate a graph.

                Any other ideas?


                • #9

                  No you can't change rrdtool database creation type :cry:. I'm just working on a new engine for graphs with rrdtool and based on a new database an new engine to store perfdata. Perfparse is too old and we have too many problem with it.

                  I think it's a good idee to have to select choice of graph. But all people will be lose in this options. so I will try my best to do that.

                  Thanks for your return...:wink:

                  best regards
                  Julien Mathis
                  Centreon Project Leader


                  • #10
                    Thanks for the response. I'm a little confused though, are you saying that changing the rrd database type would solve my problem? If so, what type does it need to be set to? As this is the primary data that I'm interested in graphing, I have no issue with altering the source code to fit my needs.



                    • #11

                      RRD is not known in effect to handle well raw data as it averages the consolidated data points over time, even when using the LAST method as you did which should result, so you expected, in having the CDP equals to the primary data points.

                      My guess to overturn this would be to increase the number of rows (history) of the RRA in order to have a large enough rrd so that the averaging would be negligible at least for the more recent values.

                      Are the fractional values far from the real integer ones ?

                      If not, you could alter the code not to show the decimal part of the result:

                       " GPRINT:v0:AVERAGE:"Average\:%8.2lf%s" GPRINT:v0:MIN:"Min\:%8.2lf%s" GPRINT:v0:MAX:"Max\:%8.2lf%s" GPRINT:v0:LAST:"Last\:%8.2lf%s\l"
                      I may be wrong but try to replace '%8.2lf' by '%8.0lf'

                      hope this helps