Skip to content

Commit

Permalink
[Fixes #4903] fixing hits count
Browse files Browse the repository at this point in the history
  • Loading branch information
gioscarda committed Sep 17, 2019
1 parent 8e20c82 commit ef3162a
Show file tree
Hide file tree
Showing 2 changed files with 100 additions and 6 deletions.
7 changes: 1 addition & 6 deletions geonode/monitoring/collector.py
Original file line number Diff line number Diff line change
Expand Up @@ -596,11 +596,6 @@ def push_metric_values(srequests, **mdefaults):
metric_defaults['event_type'] = evt
push_metric_values(rq, **metric_defaults)

# combined event types
for evt, rq in self.extract_special_event_types(requests):
metric_defaults['event_type'] = evt
push_metric_values(rq, **metric_defaults)

def get_metrics_for(self, metric_name,
valid_from=None,
valid_to=None,
Expand Down Expand Up @@ -740,7 +735,7 @@ def get_metrics_data(self, metric_name,
'group_by': [],
'grouper': [],
},
'event_type': {'select_only': ['ev.name as event_type', 'count(1) as val',
'event_type': {'select_only': ['ev.name as event_type', 'sum(mv.value_num) as val',
'count(1) as metric_count',
'sum(samples_count) as samples_count',
'sum(mv.value_num), min(mv.value_num)',
Expand Down
99 changes: 99 additions & 0 deletions geonode/monitoring/tests/integration.py
Original file line number Diff line number Diff line change
Expand Up @@ -2580,3 +2580,102 @@ def test_uptime_endpoints(self):
self.assertEqual(len(dd), len(uptime_data))
for ud in dd:
self.assertIn(ud, uptime_data)

def test_hits_for_event_type_endpoint(self):
# test data
test_data = [
{'event_type': 'other',
'max': '24.0000',
'metric_count': 17,
'min': '1.0000',
'samples_count': 165,
'sum': '165.0000',
'val': '165.0000'},
{'event_type': 'all',
'max': '4.0000',
'metric_count': 16,
'min': '1.0000',
'samples_count': 31,
'sum': '31.0000',
'val': '31.0000'},
{'event_type': 'view',
'max': '4.0000',
'metric_count': 10,
'min': '1.0000',
'samples_count': 20,
'sum': '20.0000',
'val': '20.0000'},
{'event_type': 'create',
'max': '1.0000',
'metric_count': 5,
'min': '1.0000',
'samples_count': 5,
'sum': '5.0000',
'val': '5.0000'},
{'event_type': 'upload',
'max': '1.0000',
'metric_count': 3,
'min': '1.0000',
'samples_count': 3,
'sum': '3.0000',
'val': '3.0000'},
{'event_type': 'view_metadata',
'max': '1.0000',
'metric_count': 2,
'min': '1.0000',
'samples_count': 2,
'sum': '2.0000',
'val': '2.0000'},
{'event_type': 'change_metadata',
'max': '1.0000',
'metric_count': 1,
'min': '1.0000',
'samples_count': 1,
'sum': '1.0000',
'val': '1.0000'},
{'event_type': 'download',
'max': '1.0000',
'metric_count': 1,
'min': '1.0000',
'samples_count': 1,
'sum': '1.0000',
'val': '1.0000'},
{'event_type': 'OWS:ALL',
'max': '0.0000',
'metric_count': 17,
'min': '0.0000',
'samples_count': 0,
'sum': '0.0000',
'val': '0.0000'}
]
# url
url = "%s?%s&%s" % (
reverse('monitoring:api_metric_data', args={'request.count'}),
'valid_from=2018-09-11T20:00:00.000Z&valid_to=2019-09-11T20:00:00.000Z&interval=31536000',
'group_by=event_type'
)
response = self.client.get(url)
out = json.loads(response.content)
self.assertEqual(out["error"], "unauthorized_request")
self.client.login_user(self.user)
response = self.client.get(url)
out = json.loads(response.content)
self.assertEqual(out["error"], "unauthorized_request")
# Authorized
self.client.login_user(self.admin)
self.assertTrue(get_user(self.client).is_authenticated())
response = self.client.get(url)
out = json.loads(response.content)
# Check data
data = out["data"]
self.assertEqual(data["metric"], "request.count")
self.assertEqual(data["interval"], 31536000)
self.assertEqual(data["label"], None)
self.assertEqual(data["axis_label"], "Count")
self.assertEqual(data["type"], "count")
self.assertEqual(out["data"]["input_valid_from"], '2018-09-11T20:00:00.000000Z')
self.assertEqual(out["data"]["input_valid_to"], '2019-09-11T20:00:00.000000Z')
dd = data["data"][0]["data"]
self.assertEqual(len(dd), len(test_data))
for d in dd:
self.assertIn(d, test_data)

0 comments on commit ef3162a

Please sign in to comment.