Skip to content

Commit 2cbcc40

Browse files
authored
Merge pull request #94 from SumoLogic/SUMO-238205-SumoMetricsQuery
SUMO-238205: Added Metric Sumo Query and Unit test
2 parents 07a6706 + dbbbb2c commit 2cbcc40

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

EventHubs/tests/test_eventhub_metrics.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,26 @@ def test_03_func_logs(self):
5252
self.assertFalse(self.filter_logs(captured_output, 'severityLevel', '2'),
5353
"Warning messages found in azure function logs")
5454

55+
def test_04_sumo_query_record_count(self):
56+
self.logger.info("fetching metrix data count from sumo")
57+
query = f'_sourceCategory="{self.source_category}" | count'
58+
relative_time_in_minutes = 30
59+
expected_record_count = 10
60+
result = self.fetch_sumo_MetrixQuery_results(query, relative_time_in_minutes)
61+
#sample: {"error":false,"errorMessage":null,"errorInstanceId":null,"errorKey":null,"keyedErrors":[],"response":[{"rowId":"A","results":[{"metric":{"dimensions":[{"key":"metric","value":"count"}],"algoId":1},"horAggs":{"min":1.0,"max":17.0,"avg":2.0,"sum":32.0,"count":16,"latest":1.0},"datapoints":{"timestamp":[],"value":[],"outlierParams":[],"max":[],"min":[],"avg":[],"count":[],"isFilled":[]}}]}],"queryInfo":{"startTime":1711710360000,"endTime":1711710460000,"desiredQuantizationInSecs":{"empty":false,"defined":true},"actualQuantizationInSecs":1,"sessionIdStr":""}}
62+
self.assertFalse(result['error'],
63+
f"Metrix sumo query failed with error message {result['errorMessage']}")
64+
try:
65+
if result['error']:
66+
record_count = 0
67+
else:
68+
record_count = result['response'][0]['results'][0]['datapoints']['value'][0]
69+
except Exception:
70+
record_count = 0
71+
self.assertTrue(record_count == expected_record_count,
72+
f"Metrix record count: {record_count} differs from expected count {expected_record_count} in sumo '{self.source_category}'")
73+
74+
5575
def insert_mock_metrics_in_EventHub(self, filename):
5676
self.logger.info("inserting fake metrics in EventHub")
5777

test_utils/basetest.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,3 +300,16 @@ def fetch_sumo_query_results(cls, query='_sourceCategory="azure_br_logs" | count
300300
cls.logger.info(f"source result: {result}")
301301
return result
302302
return
303+
304+
@classmethod
305+
def fetch_sumo_MetrixQuery_results(cls, query='_sourceCategory="azure_br_logs" | count', relative_time_in_minutes=15):
306+
307+
toTime = datetime.now()
308+
fromTime = toTime + timedelta(minutes=-1*relative_time_in_minutes)
309+
310+
cls.logger.info(
311+
f"query: {query}, fromTime: {fromTime.isoformat(timespec='seconds')}, toTime: {toTime.isoformat(timespec='seconds')}")
312+
313+
search_result = cls.sumologic_cli.search_metrics(query, int(fromTime.timestamp())*1000, int(toTime.timestamp())*1000)
314+
cls.logger.info(f"source result: {search_result}")
315+
return search_result

0 commit comments

Comments
 (0)