Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 1ae69bf6 authored by Simon Delamare's avatar Simon Delamare
Browse files

devel: Add tests for api.available_metrics

parent 15be6365
No related branches found
No related tags found
No related merge requests found
......@@ -3,8 +3,8 @@
set -x
set -e
systemctl stop systemd-timesyncd.service
date -s '2021-01-01 00:00:01'
#systemctl stop systemd-timesyncd.service
#date -s '2021-01-01 00:00:01'
### /!\ Remove PRIMARY KEY for fastest ingestion
#perl -0777 -i.original -pe 's/,\n +PRIMARY KEY\(timestamp, device_id, metric_id, labels\)//igs' /opt/kwollect/lib/python3.7/site-packages/kwollect/tools/kwollect_setup_db.py
......
......@@ -3,29 +3,46 @@
import requests
import pytest
import time
import json
def req(params):
def metrics(params):
r = requests.get("http://localhost:3000/rpc/get_metrics", params=params)
assert r.ok
return r.json()
def metrics_available(params={}):
r = requests.post(
"http://localhost:3000/rpc/available_metrics",
data=json.dumps(params),
headers={"Content-Type": "application/json"},
)
assert r.ok
return r.json()
def test_request():
assert len(req({"devices": "device-1", "start_time": "2020-12-31T22:59:59"})) > 0
assert (
len(metrics({"devices": "device-1", "start_time": "2020-12-31T22:59:59"})) > 0
)
def test_devices():
assert 2 * len(
req({"devices": "device-1", "start_time": "2020-12-31T22:59:59"})
metrics({"devices": "device-1", "start_time": "2020-12-31T22:59:59"})
) == pytest.approx(
len(req({"devices": "device-1,device-2", "start_time": "2020-12-31T22:59:59"}))
len(
metrics(
{"devices": "device-1,device-2", "start_time": "2020-12-31T22:59:59"}
)
)
)
def test_starttime():
assert (
req({"devices": "device-1", "start_time": "2020-12-31T22:59:59.999"})[0][
metrics({"devices": "device-1", "start_time": "2020-12-31T22:59:59.999"})[0][
"timestamp"
]
== "2020-12-31T23:00:00+00:00"
......@@ -34,7 +51,7 @@ def test_starttime():
def test_endtime():
assert (
req(
metrics(
{
"devices": "device-1",
"start_time": "2020-12-31T22:59:59",
......@@ -48,7 +65,7 @@ def test_endtime():
def test_metric():
assert all(
r["metric_id"] == "metric-1"
for r in req(
for r in metrics(
{
"devices": "device-1",
"start_time": "2020-12-31T22:59:59",
......@@ -59,27 +76,30 @@ def test_metric():
def test_job():
assert all(r["device_id"] in ("device-1", "device-2") for r in req({"job_id": 1}))
assert req({"job_id": 1})[0]["timestamp"] == "2020-12-31T22:00:05+00:00"
assert req({"job_id": 1})[-1]["timestamp"] == "2020-12-31T22:59:55+00:00"
assert all(
r["device_id"] in ("device-1", "device-2") for r in metrics({"job_id": 1})
)
assert metrics({"job_id": 1})[0]["timestamp"] == "2020-12-31T22:00:05+00:00"
assert metrics({"job_id": 1})[-1]["timestamp"] == "2020-12-31T22:59:55+00:00"
def test_job_devices():
assert all(
r["device_id"] == "device-1" for r in req({"job_id": 1, "devices": "device-1"})
r["device_id"] == "device-1"
for r in metrics({"job_id": 1, "devices": "device-1"})
)
def test_job_starttime():
assert (
req({"job_id": 1, "start_time": "2020-12-31T22:29:59.999"})[0]["timestamp"]
metrics({"job_id": 1, "start_time": "2020-12-31T22:29:59.999"})[0]["timestamp"]
== "2020-12-31T22:30:00+00:00"
)
def test_job_endtime():
assert (
req(
metrics(
{
"job_id": 1,
"start_time": "2020-12-31T22:29:59.999",
......@@ -89,7 +109,7 @@ def test_job_endtime():
== "2020-12-31T22:30:00+00:00"
)
assert (
req(
metrics(
{
"job_id": 1,
"start_time": "2020-12-31T22:29:59.999",
......@@ -102,13 +122,13 @@ def test_job_endtime():
def test_job_notfinished():
assert (
req({"job_id": 2, "devices": "device-5",})[
metrics({"job_id": 2, "devices": "device-5",})[
-1
]["timestamp"]
== "2021-01-01T00:00:00+00:00"
)
assert (
req({"job_id": 2, "end_time": "2020-12-31T22:40:00.0001",})[
metrics({"job_id": 2, "end_time": "2020-12-31T22:40:00.0001",})[
-1
]["timestamp"]
== "2020-12-31T22:40:00+00:00"
......@@ -118,7 +138,7 @@ def test_job_notfinished():
def test_job_metric():
assert all(
r["metric_id"] == "metric-1"
for r in req(
for r in metrics(
{
"job_id": 1,
"metrics": "metric-1",
......@@ -127,10 +147,56 @@ def test_job_metric():
)
def test_available_metrics():
# devices from last min
assert len(metrics_available()) > -1
def test_available_metrics_old():
# devices from last 5 min
assert not any(
m["device_id"] == "local"
for m in metrics_available({"at": "2020-12-31T22:59:59"})
)
def test_available_metrics_devices():
# devices from last 5 min
assert len(metrics_available({"params": {"devices": ["notexist"]}})) == 0
def test_available_metrics_both():
# devices from last 5 min
assert all(
m["device_id"] in ("device-1", "device-2")
for m in metrics_available(
{
"at": "2020-12-31T22:59:59",
"params": {"devices": ["device-1", "device-2"]},
}
)
)
def test_available_metrics_job():
# terminated job
assert all(
m["device_id"] in ("device-1", "device-2")
for m in metrics_available({"params": {"job_id": 1}})
)
def test_available_metrics_jobrun():
# running job
assert all(
m["device_id"] == "local" for m in metrics_available({"params": {"job_id": 3}})
)
def test_kwollect_snmp():
assert (
len(
req(
metrics(
{
"devices": "local",
"metrics": "snmp_dumb",
......@@ -144,7 +210,7 @@ def test_kwollect_snmp():
def test_kwollect_snmptemplate():
assert (
len(
req(
metrics(
{
"devices": "local",
"metrics": "snmp_template",
......@@ -158,7 +224,7 @@ def test_kwollect_snmptemplate():
def test_kwollect_prom():
assert (
len(
req(
metrics(
{
"devices": "local",
"metrics": "prom_node_load1",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment