pythonrrdganglia

Convert .rrd file to json in python


Is there any python module available for converting the .rrd file to json format ?


Solution

  • Following is the code I tried for generating json from rrd file.

    #!/usr/bin/python
    import rrdtool
    import sys
    
    def printMetric():
    
      args = ["/var/lib/ganglia/rrds/__SummaryInfo__/cpu_system.rrd", "AVERAGE"]
      rrdMetric = rrdtool.fetch(args)
    
      time = rrdMetric[0][0]
      step = rrdMetric[0][2]
    
      sys.stdout.write("  {\n    \"Key1\":\"" + rrdMetric[1][0] +\
                       "\",\n    \"Key2\":\"" + "abcd" +\
                       "\",\n    \"metric_name\":\"" + "cpu_system" + "\",\n")  
    
      firstDP = True
      sys.stdout.write("    \"datapoints\":[\n")
      for tuple in rrdMetric[2]:
        if tuple[0] is not None:
          if not firstDP:
            sys.stdout.write(",\n")
          firstDP = False
          sys.stdout.write("      [")
          sys.stdout.write(str(tuple[0]))
          sys.stdout.write(",")
          sys.stdout.write(str(time))
          sys.stdout.write("]")
        time = time + step
      sys.stdout.write("\n    ]\n  }")
    
    printMetric()