Beispiel #1
0
    def test__merge_results_bad_results(self, log_exception):
      pathExpr = 'collectd.test-db.load.value'
      startTime=datetime(1970, 1, 1, 0, 10, 0, 0, pytz.timezone(settings.TIME_ZONE))
      endTime=datetime(1970, 1, 1, 0, 20, 0, 0, pytz.timezone(settings.TIME_ZONE))
      # timeInfo = [startTime, endTime, 60]
      result_queue = [
                      [pathExpr, ['invalid input']],
                     ]

      seriesList = {}
      requestContext = self._build_requestContext(startTime, endTime)
      with self.assertRaises(Exception):
        _merge_results(pathExpr, startTime, endTime, result_queue, seriesList, requestContext)
        log_exception.assert_called_with("could not parse timeInfo/values from metric '%s': %s" % (pathExpr, 'need more than 1 value to unpack'))
    def test__merge_results_bad_results(self, log_exception):
      pathExpr = 'collectd.test-db.load.value'
      startTime=datetime(1970, 1, 1, 0, 10, 0, 0, pytz.timezone(settings.TIME_ZONE))
      endTime=datetime(1970, 1, 1, 0, 20, 0, 0, pytz.timezone(settings.TIME_ZONE))
      timeInfo = [startTime, endTime, 60]
      result_queue = [
                      [pathExpr, ['invalid input']],
                     ]

      seriesList = {}
      requestContext = self._build_requestContext(startTime, endTime)
      with self.assertRaises(Exception):
        _merge_results(pathExpr, startTime, endTime, result_queue, seriesList, requestContext)
        log_exception.assert_called_with("could not parse timeInfo/values from metric '%s': %s" % (pathExpr, 'need more than 1 value to unpack'))
Beispiel #3
0
    def test__merge_results_no_remote_store_merge_results(self):
        pathExpr = 'collectd.test-db.load.value'
        startTime = datetime(1970, 1, 1, 0, 10, 0, 0,
                             pytz.timezone(settings.TIME_ZONE)),
        endTime = datetime(1970, 1, 1, 0, 20, 0, 0,
                           pytz.timezone(settings.TIME_ZONE))
        timeInfo = [startTime, endTime, 60]
        result_queue = [
            [
                pathExpr,
                [timeInfo, [0, 1, 2, 3, 4, None, None, None, None, None]]
            ], [pathExpr, [timeInfo, [None, None, None, 3, 4, 5, 6, 7, 8, 9]]],
            [
                pathExpr,
                [
                    timeInfo,
                    [None, None, None, None, None, None, None, 7, 8, 9]
                ]
            ]
        ]

        seriesList = {}
        requestContext = self._build_requestContext(startTime, endTime)
        with self.settings(REMOTE_STORE_MERGE_RESULTS=False):
            results = _merge_results(pathExpr, startTime, endTime,
                                     result_queue, seriesList, requestContext)
        expectedResults = [
            TimeSeries("collectd.test-db.load.value", startTime, endTime, 60,
                       [None, None, None, 3, 4, 5, 6, 7, 8, 9]),
        ]
        self.assertEqual(results, expectedResults)
Beispiel #4
0
    def test__merge_results_no_results(self, log_debug):
      pathExpr = 'collectd.test-db.load.value'
      startTime=datetime(1970, 1, 1, 0, 10, 0, 0, pytz.timezone(settings.TIME_ZONE))
      endTime=datetime(1970, 1, 1, 0, 20, 0, 0, pytz.timezone(settings.TIME_ZONE))
      # timeInfo = [startTime, endTime, 60]
      result_queue = [
                      [pathExpr, None],
                     ]

      seriesList = {}
      requestContext = self._build_requestContext(startTime, endTime)
      results = _merge_results(pathExpr, startTime, endTime, result_queue, seriesList, requestContext)
      expectedResults = []
      self.assertEqual(results, expectedResults)
      log_debug.assert_called_with("render.datalib.fetchData :: no results for %s.fetch(%s, %s)" % (pathExpr, startTime, endTime))
    def test__merge_results_no_results(self, log_debug):
      pathExpr = 'collectd.test-db.load.value'
      startTime=datetime(1970, 1, 1, 0, 10, 0, 0, pytz.timezone(settings.TIME_ZONE))
      endTime=datetime(1970, 1, 1, 0, 20, 0, 0, pytz.timezone(settings.TIME_ZONE))
      timeInfo = [startTime, endTime, 60]
      result_queue = [
                      [pathExpr, None],
                     ]

      seriesList = {}
      requestContext = self._build_requestContext(startTime, endTime)
      results = _merge_results(pathExpr, startTime, endTime, result_queue, seriesList, requestContext)
      expectedResults = []
      self.assertEqual(results, expectedResults)
      log_debug.assert_called_with("render.datalib.fetchData :: no results for %s.fetch(%s, %s)" % (pathExpr, startTime, endTime))
    def test__merge_results_no_remote_store_merge_results(self):
      pathExpr = 'collectd.test-db.load.value'
      startTime=datetime(1970, 1, 1, 0, 10, 0, 0, pytz.timezone(settings.TIME_ZONE))
      endTime=datetime(1970, 1, 1, 0, 20, 0, 0, pytz.timezone(settings.TIME_ZONE))
      timeInfo = [startTime, endTime, 60]
      result_queue = [
                      [pathExpr, [timeInfo, [0,1,2,3,4,None,None,None,None,None]]],
                      [pathExpr, [timeInfo, [None,None,None,3,4,5,6,7,8,9]]],
                      [pathExpr, [timeInfo, [None,None,None,None,None,None,None,7,8,9]]]
                     ]

      seriesList = {}
      requestContext = self._build_requestContext(startTime, endTime)
      with self.settings(REMOTE_STORE_MERGE_RESULTS=False):
          results = _merge_results(pathExpr, startTime, endTime, result_queue, seriesList, requestContext)
      expectedResults = [
          TimeSeries("collectd.test-db.load.value", startTime, endTime, 60, [None,None,None,3,4,5,6,7,8,9]),
      ]
      self.assertEqual(results, expectedResults)
Beispiel #7
0
    def test__merge_results_multiple_series_remote_prefetch_data(self):
        pathExpr = 'collectd.test-db.load.value'
        startTime = datetime(1970, 1, 1, 0, 10, 0, 0,
                             pytz.timezone(settings.TIME_ZONE)),
        endTime = datetime(1970, 1, 1, 0, 20, 0, 0,
                           pytz.timezone(settings.TIME_ZONE))
        timeInfo = [startTime, endTime, 60]
        result_queue = [
            [
                pathExpr,
                [timeInfo, [0, 1, 2, 3, 4, None, None, None, None, None]]
            ],
            [
                pathExpr,
                [timeInfo, [None, None, None, None, None, 5, 6, 7, 8, 9]]
            ],
            [
                pathExpr,
                [
                    timeInfo,
                    [None, None, None, None, None, None, None, 7, 8, 9]
                ]
            ], [pathExpr, [timeInfo, [0, 1, 2, 3, 4, None, None, 7, 8, 9]]]
        ]

        seriesList = {
            'collectd.test-db.cpu.value':
            TimeSeries("collectd.test-db.cpu.value", startTime, endTime, 60,
                       [0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
        }
        requestContext = self._build_requestContext(startTime, endTime)
        with self.settings(REMOTE_PREFETCH_DATA=True):
            results = _merge_results(pathExpr, startTime, endTime,
                                     result_queue, seriesList, requestContext)
        expectedResults = [
            TimeSeries("collectd.test-db.cpu.value", startTime, endTime, 60,
                       [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]),
            TimeSeries("collectd.test-db.load.value", startTime, endTime, 60,
                       [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]),
        ]
        self.assertEqual(results, expectedResults)
    def test__merge_results_multiple_series(self):
      pathExpr = 'collectd.test-db.load.value'
      startTime=datetime(1970, 1, 1, 0, 10, 0, 0, pytz.timezone(settings.TIME_ZONE))
      endTime=datetime(1970, 1, 1, 0, 20, 0, 0, pytz.timezone(settings.TIME_ZONE))
      timeInfo = [startTime, endTime, 60]
      result_queue = [
                      [pathExpr, [timeInfo, [0,1,2,3,4,None,None,None,None,None]]],
                      [pathExpr, [timeInfo, [None,None,None,None,None,5,6,7,8,9]]],
                      [pathExpr, [timeInfo, [None,None,None,None,None,None,None,7,8,9]]],
                      [pathExpr, [timeInfo, [0,1,2,3,4,None,None,7,8,9]]]
                     ]

      seriesList = {
                      'collectd.test-db.cpu.value': TimeSeries("collectd.test-db.cpu.value", startTime, endTime, 60, [0,1,2,3,4,5,6,7,8,9])
                   }
      requestContext = self._build_requestContext(startTime, endTime)
      results = _merge_results(pathExpr, startTime, endTime, result_queue, seriesList, requestContext)
      expectedResults = [
          TimeSeries("collectd.test-db.cpu.value", startTime, endTime, 60, [0,1,2,3,4,5,6,7,8,9]),
          TimeSeries("collectd.test-db.load.value", startTime, endTime, 60, [0,1,2,3,4,5,6,7,8,9]),
      ]
      self.assertEqual(results, expectedResults)