def query(self): if self._result is not None: return self._result es = self.get_es() trc = TimeRangeClause(begin_time=self.begin_at, end_time=self.end_at) rc = RangeClause( 'backend_status_code', min_val=self.status_code_class, max_val=self.status_code_class + 100 ) body = { 'filter': { 'bool': { 'filter': [ trc.get_clause(), rc.get_clause() ] } } } result = es.count(index=self.get_index_name(), body=body) logger.info(result) self._result = result.get('count', 0) return self._result
def test_when_min_val_and_max_val(self): rc = RangeClause('a_field', min_val=1, max_val=10) self.assertEqual(rc.get_clause(), {'range': { 'a_field': { 'gte': 1, 'lt': 10 } }})
def test_call(self): self.assertEqual(self.sccq.query(), 1) trc = TimeRangeClause(begin_time=self.begin_at, end_time=self.end_at) rc = RangeClause('backend_status_code', min_val=200, max_val=300) self.mock_es.count.assert_called_with( index='logstash-2016.01.01', body={ 'filter': { 'bool': {'filter': [trc.get_clause(), rc.get_clause()]} } } )
def get_satisfied_request_count(self): trc = TimeRangeClause(begin_time=self.begin_at, end_time=self.end_at) rc = RangeClause( 'backend_processing_time', max_val=self.apdex_threshold) body = { 'filter': { 'bool': { 'filter': [trc.get_clause(), rc.get_clause()] } } } result = self.get_es().count(index=self.get_index_name(), body=body) logger.info('satisifed: %s', result) return result.get('count', 0)
def test_when_only_max_val(self): rc = RangeClause('a_field', max_val=10) self.assertEqual(rc.get_clause(), {'range': {'a_field': {'lt': 10}}})
def test_when_only_min_val(self): rc = RangeClause('a_field', min_val=1) self.assertEqual(rc.get_clause(), {'range': {'a_field': {'gte': 1}}})