2021-01-07 11:34:01 +01:00
|
|
|
# coding: utf-8
|
|
|
|
|
|
|
|
from __future__ import absolute_import
|
|
|
|
|
|
|
|
import unittest
|
|
|
|
import requests
|
|
|
|
import testutils
|
|
|
|
|
|
|
|
class TestMetricsExist(unittest.TestCase):
|
|
|
|
golang_basic_metrics = ["go_gc_duration_seconds", "go_goroutines", "go_info", "go_memstats_alloc_bytes"]
|
|
|
|
|
2021-01-28 11:00:19 +01:00
|
|
|
metrics = {
|
2021-03-30 10:59:02 +02:00
|
|
|
'core': golang_basic_metrics + [
|
|
|
|
"harbor_core_http_request_total",
|
|
|
|
"harbor_core_http_request_duration_seconds",
|
|
|
|
"harbor_core_http_inflight_requests"],
|
2021-01-07 11:34:01 +01:00
|
|
|
'registry': golang_basic_metrics + ["registry_http_in_flight_requests"],
|
2021-03-30 10:59:02 +02:00
|
|
|
'exporter': golang_basic_metrics + [
|
|
|
|
"artifact_pulled",
|
|
|
|
"harbor_project_artifact_total",
|
|
|
|
"harbor_project_member_total",
|
|
|
|
"harbor_project_quota_byte",
|
|
|
|
"harbor_project_repo_total",
|
|
|
|
"harbor_project_total",
|
|
|
|
"project_quota_usage_byte",
|
|
|
|
"harbor_task_concurrency",
|
|
|
|
"harbor_task_queue_latency",
|
|
|
|
"harbor_task_queue_size",
|
|
|
|
"harbor_task_scheduled_total"],
|
|
|
|
'jobservice': golang_basic_metrics + [
|
|
|
|
"harbor_jobservice_info",
|
|
|
|
"harbor_jobservice_task_process_time_seconds",
|
|
|
|
"harbor_jobservice_task_total"]
|
2021-01-07 11:34:01 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
def get_metrics(self):
|
|
|
|
metrics_url = testutils.METRIC_URL+'/metrics'
|
|
|
|
exporter_res = requests.get(metrics_url)
|
|
|
|
core_res = requests.get(metrics_url, params={'comp': 'core'})
|
|
|
|
reg_res = requests.get(metrics_url, params={'comp': 'registry'})
|
2021-03-30 10:59:02 +02:00
|
|
|
js_res = requests.get(metrics_url, params={'comp': 'jobservice'})
|
|
|
|
return [('exporter', exporter_res.text), ('core', core_res.text), ('registry', reg_res.text), ('jobservice', js_res.text)]
|
2021-01-07 11:34:01 +01:00
|
|
|
|
|
|
|
def testMetricsExist(self):
|
|
|
|
for k, metric_text in self.get_metrics():
|
2021-03-30 10:59:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
2021-01-28 11:00:19 +01:00
|
|
|
for metric_name in self.metrics[k]:
|
2021-01-07 11:34:01 +01:00
|
|
|
print("Metric {} should exist in {} ".format(metric_name, k))
|
|
|
|
self.assertTrue(metric_name in metric_text)
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
unittest.main()
|