Exemplo n.º 1
0
 def createimages(self, currentTime=None):
     if currentTime is None:
         currentTime = int(time.time())
     
     if os.path.isfile(self.rrdfile):
         myRRD = rrd.RRD(self.rrdfile, mode='r')
                 
         def1 = DEF(rrdfile=myRRD.filename, vname='Watt', dsName='power')
         def2 = DEF(rrdfile=myRRD.filename, vname='Wh', dsName='energy')
         vdef1 = VDEF(vname='maxpower', rpn='%s,MAXIMUM' % def1.vname)
         vdef2 = VDEF(vname='avgpower', rpn='%s,AVERAGE' % def1.vname)
         vdef3 = VDEF(vname='maxenergy', rpn='%s,MAXIMUM' % def2.vname)
         cdef1 = CDEF(vname='Joule', rpn='%s,3600,*' % def2.vname) 
         
         area1 = AREA(defObj=def1, color='#006600', legend='Our Power')
         area2 = AREA(defObj=cdef1, color='#006600', legend='Our Energy')
         line1 = LINE(defObj=vdef1, color='#660000', legend='Our Maximum')
         line2 = LINE(defObj=vdef2, color='#009900', legend='Our Average')
         
         gprint1 = GPRINT(vdef2,'average power %6.0lf watt')
         gprint2 = GPRINT(vdef1,'maximum power %6.0lf watt')
         
         # setup the labels and definitions also setup 
         # the different file sizes
         labels = ['power\ in\ Watt','energy\ in\ Joule']
         definitions = [
             [def1, vdef1, vdef2, area1, gprint1, gprint2, line1, line2],
             [def2,cdef1, area2]]
         
         #setup a dummpy image
         g = Graph('dummpy.png', end=currentTime, color=self.colors, 
                                 imgformat='png')
         
         for num in range(0, len(labels)):
             g.vertical_label = labels[num]
             g.data = definitions[num]
             
             for t in self.times:
                 g.start = (currentTime - (t[0] * 60))
                 
                 for size in self.sizes:
                     g.width = size[0][0]
                     g.height =  size[0][1]
                     g.filename = self.graphfile+'_%s_%s_%s.png' % ( 
                                         labels[num].split('\ ',1)[0], 
                                         t[1], size[1] )
                     g.write(debug=False)
Exemplo n.º 2
0
area3 = AREA(defObj=def3, color='#BD4902', legend='Raw Data 2')
area4 = AREA(defObj=def4, color='#A32001', legend='Raw Data 1')
line1 = LINE(defObj=vdef1, color='#01FF13', legend='Average', stack=True)

# Let's configure some custom colors for the graph
ca = ColorAttributes()
ca.back = '#333333'
ca.canvas = '#333333'
ca.shadea = '#000000'
ca.shadeb = '#111111'
ca.mgrid = '#CCCCCC'
ca.axis = '#FFFFFF'
ca.frame = '#AAAAAA'
ca.font = '#FFFFFF'
ca.arrow = '#FFFFFF'

# Now that we've got everything set up, let's make a graph
startTime = endTime - 3 * month
g = Graph(graphfile,
          start=startTime,
          end=endTime,
          vertical_label='data',
          color=ca)
g.data.extend([def1, def2, def3, def4, vdef1, area4, area3, area2, area1])
g.write()

g.filename = graphfileLg
g.width = 800
g.height = 400
g.write()
Exemplo n.º 3
0
ca.shadea = "#000000"
ca.shadeb = "#111111"
ca.mgrid = "#CCCCCC"
ca.axis = "#FFFFFF"
ca.frame = "#AAAAAA"
ca.font = "#FFFFFF"
ca.arrow = "#FFFFFF"

# Now that we've got everything set up, let's make a graph
g = Graph("dummy.png", end=endTime, vertical_label="Bits", color=ca)
g.data.extend([def1, def2, cdef1, cdef2, area2, area1])
g.title = '"In- and Out-bound Traffic Across Local Router"'
# g.logarithmic = ' '

# Iterate through the different resoltions for which we want to
# generate graphs.
for time, step in times:
    # First, the small graph
    g.filename = graphfile % (exampleNum, time)
    g.width = 400
    g.height = 100
    g.start = endTime - time
    g.step = step
    g.write(debug=False)

    # Then the big one
    g.filename = graphfileLg % (exampleNum, time)
    g.width = 800
    g.height = 400
    g.write()
Exemplo n.º 4
0
def4 = DEF(rrdfile=myRRD.filename, vname='mydementia', dsName=ds4.name)
vdef1 = VDEF(vname='myavg', rpn='%s,AVERAGE' % def1.vname)
area1 = AREA(defObj=def1, color='#FFA902', legend='Raw Data 4')
area2 = AREA(defObj=def2, color='#DA7202', legend='Raw Data 3')
area3 = AREA(defObj=def3, color='#BD4902', legend='Raw Data 2')
area4 = AREA(defObj=def4, color='#A32001', legend='Raw Data 1')
line1 = LINE(defObj=vdef1, color='#01FF13', legend='Average', stack=True)

# Let's configure some custom colors for the graph
ca = ColorAttributes()
ca.back = '#333333'
ca.canvas = '#333333'
ca.shadea = '#000000'
ca.shadeb = '#111111'
ca.mgrid = '#CCCCCC'
ca.axis = '#FFFFFF'
ca.frame = '#AAAAAA'
ca.font = '#FFFFFF'
ca.arrow = '#FFFFFF'

# Now that we've got everything set up, let's make a graph
startTime = endTime - 3 * month
g = Graph(graphfile, start=startTime, end=endTime, vertical_label='data', color=ca)
g.data.extend([def1, def2, def3, def4, vdef1, area4, area3, area2, area1])
g.write()

g.filename = graphfileLg
g.width = 800
g.height = 400
g.write()
Exemplo n.º 5
0
ca.shadea = '#000000'
ca.shadeb = '#111111'
ca.mgrid = '#CCCCCC'
ca.axis = '#FFFFFF'
ca.frame = '#AAAAAA'
ca.font = '#FFFFFF'
ca.arrow = '#FFFFFF'

# Now that we've got everything set up, let's make a graph
g = Graph('dummy.png', end=endTime, vertical_label='Bits', color=ca)
g.data.extend([def1, def2, cdef1, cdef2, area2, area1])
g.title = '"In- and Out-bound Traffic Across Local Router"'
#g.logarithmic = ' '

# Iterate through the different resoltions for which we want to
# generate graphs.
for time, step in times:
    # First, the small graph
    g.filename = graphfile % (exampleNum, time)
    g.width = 400
    g.height = 100
    g.start = endTime - time
    g.step = step
    g.write(debug=False)

    # Then the big one
    g.filename = graphfileLg % (exampleNum, time)
    g.width = 800
    g.height = 400
    g.write()
Exemplo n.º 6
0
def GenerateGraph():

    data = db.GetDataHumidityRrd(10000)
    #print len(data)

    filename = 'humidity.rrd'
    graphfile = 'humidity.png'
    graphfileLg = 'humidity-large.png'

    day = 24 * 60 * 60
    week = 7 * day
    month = day * 30
    quarter = month * 3
    half = 365 * day / 2
    year = 365 * day

    startTime = data[0][0] -1
    endTime   = data[-1][0]
    step = 1000
    maxSteps = int((endTime-startTime)/step)

    # Let's create and RRD file and dump some data in it
    dss = []
    ds1 = DS(dsName='humidity', dsType='GAUGE', heartbeat=60)
    dss.extend([ds1])

    #week: RA:AVERAGE:0.5:6:336
    #For Daily Graph, every 5 minute average for 24 hours:
    #RRA:AVERAGE:0.5:1:288
    rra1 = RRA(cf='AVERAGE', xff=0.5, steps=1, rows=1440)

    #For Weekly Graph, every 30 minute average for 7 days:
    #RRA:AVERAGE:0.5:6:336
    #rra1 = RRA(cf='AVERAGE', xff=0.5, steps=6, rows=336)

    #For Monthly Graph, every 2 hour average for 30 days:
    #RRA:AVERAGE:0.5:24:360
    #rra1 = RRA(cf='AVERAGE', xff=0.5, steps=32, rows=1080)

    #For Yearly Graph, every 1 day average for 365 days:
    #RRA:AVERAGE:0.5:288:365
    #rra1 = RRA(cf='AVERAGE', xff=0.5, steps=96, rows=365)

    rras = []
    #rra1 = RRA(cf='AVERAGE', xff=0.5, steps=24, rows=1460)
    rras.append(rra1)

    myRRD = RRD(filename, ds=dss, rra=rras, start=startTime)
    myRRD.create()

    # let's generate some data...
    currentTime = startTime
    i = 0
    for row in data:
        timestamp = row[0]
        value1 = row[1]

        # lets update the RRD/purge the buffer ever 100 entires
        i = i + 1
        if i % 100 == 0:
            myRRD.update(debug=False)

        # when you pass more than one value to update buffer like this,
        # they get applied to the DSs in the order that the DSs were
        # "defined" or added to the RRD object.
        myRRD.bufferValue(timestamp, value1)
    # add anything remaining in the buffer
    myRRD.update()

    # Let's set up the objects that will be added to the graph
    def1 = DEF(rrdfile=myRRD.filename, vname='anturi1', dsName=ds1.name)
    vdef1 = VDEF(vname='myavg', rpn='%s,AVERAGE' % def1.vname)
    sensor1 = LINE(defObj=def1, color='#4544FC', legend='anturi1')
    line1 = LINE(defObj=vdef1, color='#01FF13', legend='Average', stack=True)

    # Let's configure some custom colors for the graph
    ca = ColorAttributes()
    ca.back = '#000000'
    ca.canvas = '#000000'
    ca.shadea = '#000000'
    ca.shadeb = '#111111'
    ca.mgrid = '#CCCCCC'
    ca.axis = '#FFFFFF'
    ca.frame = '#AAAAAA'
    ca.font = '#FFFFFF'
    ca.arrow = '#FFFFFF'

    # Now that we've got everything set up, let's make a graph
    #startTime = endTime - 3 * month
    g = Graph(graphfile, start=startTime, end=endTime, vertical_label='kosteus', color=ca)
    g.data.extend([def1, vdef1, sensor1])
    g.write()

    g.filename = graphfileLg
    g.width = 690
    g.height = 300
    g.write()