index 5330999c2d091e9828b00dc9d0c01fb1509b810a..de8ab806843a34be4942f78939864dc275d06f1c 100644 (file)
sdb_plugin_store_metric("h1", "m1", /* store */ NULL, 2 * SDB_INTERVAL_SECOND);
sdb_plugin_store_metric("h1", "m2", /* store */ NULL, 1 * SDB_INTERVAL_SECOND);
- sdb_plugin_store_metric("h2", "m1", /* store */ NULL, 1 * SDB_INTERVAL_SECOND);
+ sdb_plugin_store_metric("h2", "m1", /* store */ NULL, 5 * SDB_INTERVAL_SECOND);
+ sdb_plugin_store_metric("h2", "m1", /* store */ NULL, 10 * SDB_INTERVAL_SECOND);
datum.type = SDB_TYPE_INTEGER;
datum.data.integer = 42;
"{\"name\": \"hostname\", \"value\": \"h1\", " \
"\"last_update\": \"1970-01-01 00:00:01 +0000\", " \
"\"update_interval\": \"0s\", \"backends\": []}]}]}"
+#define HOST_H2 \
+ "{\"name\": \"h2\", \"last_update\": \"1970-01-01 00:00:03 +0000\", " \
+ "\"update_interval\": \"0s\", \"backends\": [], " \
+ "\"metrics\": [" \
+ "{\"name\": \"m1\", \"timeseries\": false, " \
+ "\"last_update\": \"1970-01-01 00:00:10 +0000\", " \
+ "\"update_interval\": \"5s\", \"backends\": [], " \
+ "\"attributes\": [" \
+ "{\"name\": \"hostname\", \"value\": \"h2\", " \
+ "\"last_update\": \"1970-01-01 00:00:10 +0000\", " \
+ "\"update_interval\": \"5s\", \"backends\": []}]}], " \
+ "\"services\": [" \
+ "{\"name\": \"s1\", \"last_update\": \"1970-01-01 00:00:01 +0000\", " \
+ "\"update_interval\": \"0s\", \"backends\": [], " \
+ "\"attributes\": [" \
+ "{\"name\": \"hostname\", \"value\": \"h2\", " \
+ "\"last_update\": \"1970-01-01 00:00:01 +0000\", " \
+ "\"update_interval\": \"0s\", \"backends\": []}]}," \
+ "{\"name\": \"s2\", \"last_update\": \"1970-01-01 00:00:02 +0000\", " \
+ "\"update_interval\": \"0s\", \"backends\": [], " \
+ "\"attributes\": [" \
+ "{\"name\": \"hostname\", \"value\": \"h2\", " \
+ "\"last_update\": \"1970-01-01 00:00:02 +0000\", " \
+ "\"update_interval\": \"0s\", \"backends\": []}," \
+ "{\"name\": \"k1\", \"value\": 123, " \
+ "\"last_update\": \"1970-01-01 00:00:02 +0000\", " \
+ "\"update_interval\": \"0s\", \"backends\": []}," \
+ "{\"name\": \"k2\", \"value\": 4711, " \
+ "\"last_update\": \"1970-01-01 00:00:01 +0000\", " \
+ "\"update_interval\": \"0s\", \"backends\": []}]}]}"
#define HOST_H1_ARRAY "["HOST_H1"]"
+#define HOST_H12_ARRAY "["HOST_H1","HOST_H2"]"
#define HOST_H1_LISTING \
"{\"name\": \"h1\", \"last_update\": \"1970-01-01 00:00:01 +0000\", " \
"\"update_interval\": \"0s\", \"backends\": []}"
"{\"name\": \"hostname\", \"value\": \"h2\", " \
"\"last_update\": \"1970-01-01 00:00:01 +0000\", " \
"\"update_interval\": \"0s\", \"backends\": []}]}]}"
+#define SERVICE_H2_S12 \
+ "{\"name\": \"h2\", \"last_update\": \"1970-01-01 00:00:03 +0000\", " \
+ "\"update_interval\": \"0s\", \"backends\": [], " \
+ "\"services\": [" \
+ "{\"name\": \"s1\", \"last_update\": \"1970-01-01 00:00:01 +0000\", " \
+ "\"update_interval\": \"0s\", \"backends\": [], " \
+ "\"attributes\": [" \
+ "{\"name\": \"hostname\", \"value\": \"h2\", " \
+ "\"last_update\": \"1970-01-01 00:00:01 +0000\", " \
+ "\"update_interval\": \"0s\", \"backends\": []}]}," \
+ "{\"name\": \"s2\", \"last_update\": \"1970-01-01 00:00:02 +0000\", " \
+ "\"update_interval\": \"0s\", \"backends\": [], " \
+ "\"attributes\": [" \
+ "{\"name\": \"hostname\", \"value\": \"h2\", " \
+ "\"last_update\": \"1970-01-01 00:00:02 +0000\", " \
+ "\"update_interval\": \"0s\", \"backends\": []}," \
+ "{\"name\": \"k1\", \"value\": 123, " \
+ "\"last_update\": \"1970-01-01 00:00:02 +0000\", " \
+ "\"update_interval\": \"0s\", \"backends\": []}," \
+ "{\"name\": \"k2\", \"value\": 4711, " \
+ "\"last_update\": \"1970-01-01 00:00:01 +0000\", " \
+ "\"update_interval\": \"0s\", \"backends\": []}]}]}"
#define SERVICE_H2_S1_ARRAY "["SERVICE_H2_S1"]"
#define SERVICE_H2_S12_LISTING \
"[{\"name\": \"h2\", \"last_update\": \"1970-01-01 00:00:03 +0000\", " \
"{\"name\": \"k3\", \"value\": 42, " \
"\"last_update\": \"1970-01-01 00:00:02 +0000\", " \
"\"update_interval\": \"0s\", \"backends\": []}]}]}"
-#define METRIC_H12_M1_ARRAY \
- "["METRIC_H1_M1"," \
+#define METRIC_H2_M1 \
"{\"name\": \"h2\", \"last_update\": \"1970-01-01 00:00:03 +0000\", " \
"\"update_interval\": \"0s\", \"backends\": [], " \
"\"metrics\": [" \
"{\"name\": \"m1\", \"timeseries\": false, " \
- "\"last_update\": \"1970-01-01 00:00:01 +0000\", " \
- "\"update_interval\": \"0s\", \"backends\": [], " \
+ "\"last_update\": \"1970-01-01 00:00:10 +0000\", " \
+ "\"update_interval\": \"5s\", \"backends\": [], " \
"\"attributes\": [" \
"{\"name\": \"hostname\", \"value\": \"h2\", " \
- "\"last_update\": \"1970-01-01 00:00:01 +0000\", " \
- "\"update_interval\": \"0s\", \"backends\": []}]}]}]"
+ "\"last_update\": \"1970-01-01 00:00:10 +0000\", " \
+ "\"update_interval\": \"5s\", \"backends\": []}]}]}"
+#define METRIC_H12_M1_ARRAY \
+ "["METRIC_H1_M1","METRIC_H2_M1"]"
#define METRIC_H12_M12_LISTING \
"[{\"name\": \"h1\", \"last_update\": \"1970-01-01 00:00:01 +0000\", " \
"\"update_interval\": \"0s\", \"backends\": [], " \
"\"update_interval\": \"0s\", \"backends\": [], " \
"\"metrics\": [" \
"{\"name\": \"m1\", \"timeseries\": false, " \
- "\"last_update\": \"1970-01-01 00:00:01 +0000\", " \
- "\"update_interval\": \"0s\", \"backends\": []}]}]"
+ "\"last_update\": \"1970-01-01 00:00:10 +0000\", " \
+ "\"update_interval\": \"5s\", \"backends\": []}]}]"
typedef struct {
sdb_conn_t conn;
SDB_CONNECTION_QUERY, "LOOKUP hosts MATCHING name = 'h1' FILTER age >= 0s", -1, /* always matches */
0, SDB_CONNECTION_DATA, 1112, SDB_CONNECTION_LOOKUP, HOST_H1_ARRAY,
},
+ {
+ SDB_CONNECTION_QUERY, "LOOKUP hosts MATCHING ANY backend = 'b'", -1,
+ 0, SDB_CONNECTION_DATA, 6, SDB_CONNECTION_LOOKUP, "[]",
+ },
+ {
+ SDB_CONNECTION_QUERY, "LOOKUP hosts MATCHING ANY backend || 'b' = 'b'", -1,
+ 0, SDB_CONNECTION_DATA, 2205, SDB_CONNECTION_LOOKUP, HOST_H12_ARRAY,
+ },
{
SDB_CONNECTION_QUERY, "FETCH host 'h1' FILTER age < 0s", -1, /* never matches */
-1, UINT32_MAX, 0, 0, NULL, /* FETCH fails if the object doesn't exist */
SDB_CONNECTION_QUERY, "LOOKUP services MATCHING name = 's1'", -1,
0, SDB_CONNECTION_DATA, 358, SDB_CONNECTION_LOOKUP, SERVICE_H2_S1_ARRAY,
},
+ {
+ SDB_CONNECTION_QUERY, "LOOKUP services MATCHING host.name = 'h2'", -1,
+ 0, SDB_CONNECTION_DATA, 825, SDB_CONNECTION_LOOKUP, "["SERVICE_H2_S12"]",
+ },
+ {
+ SDB_CONNECTION_QUERY, "LOOKUP services MATCHING ANY host.metric.name = 'm1'", -1,
+ 0, SDB_CONNECTION_DATA, 825, SDB_CONNECTION_LOOKUP, "["SERVICE_H2_S12"]",
+ },
+ {
+ SDB_CONNECTION_QUERY, "LOOKUP services MATCHING ANY host.metric.last_update = 10s", -1,
+ 0, SDB_CONNECTION_DATA, 825, SDB_CONNECTION_LOOKUP, "["SERVICE_H2_S12"]",
+ },
+ {
+ /* stupid but valid ;-) */
+ SDB_CONNECTION_QUERY, "LOOKUP services MATCHING ANY host.host.metric.metric.interval = 5s", -1,
+ 0, SDB_CONNECTION_DATA, 825, SDB_CONNECTION_LOOKUP, "["SERVICE_H2_S12"]",
+ },
+ {
+ SDB_CONNECTION_QUERY, "LOOKUP services MATCHING ANY host.metric.name = 'mX'", -1,
+ 0, SDB_CONNECTION_DATA, 6, SDB_CONNECTION_LOOKUP, "[]",
+ },
{
SDB_CONNECTION_LOOKUP, "\0\0\0\2""name = 's1'", 16,
0, SDB_CONNECTION_DATA, 358, SDB_CONNECTION_LOOKUP, SERVICE_H2_S1_ARRAY,
SDB_CONNECTION_QUERY, "LOOKUP metrics MATCHING name = 'm1'", -1,
0, SDB_CONNECTION_DATA, 864, SDB_CONNECTION_LOOKUP, METRIC_H12_M1_ARRAY,
},
+ {
+ /* stupid but valid ;-) */
+ SDB_CONNECTION_QUERY, "LOOKUP metrics MATCHING metric.metric.name = 'm1'", -1,
+ 0, SDB_CONNECTION_DATA, 864, SDB_CONNECTION_LOOKUP, METRIC_H12_M1_ARRAY,
+ },
+ {
+ /* also stupid but valid ;-) */
+ SDB_CONNECTION_QUERY, "LOOKUP metrics MATCHING metric.metric.host.host.last_update = 3s", -1,
+ 0, SDB_CONNECTION_DATA, 378, SDB_CONNECTION_LOOKUP, "["METRIC_H2_M1"]",
+ },
{
SDB_CONNECTION_LOOKUP, "\0\0\0\3""name = 'm1'", 16,
0, SDB_CONNECTION_DATA, 864, SDB_CONNECTION_LOOKUP, METRIC_H12_M1_ARRAY,
switch (conn->cmd) {
case SDB_CONNECTION_QUERY:
- check = sdb_fe_query(conn);
+ check = sdb_conn_query(conn);
break;
case SDB_CONNECTION_FETCH:
- check = sdb_fe_fetch(conn);
+ check = sdb_conn_fetch(conn);
break;
case SDB_CONNECTION_LIST:
- check = sdb_fe_list(conn);
+ check = sdb_conn_list(conn);
break;
case SDB_CONNECTION_LOOKUP:
- check = sdb_fe_lookup(conn);
+ check = sdb_conn_lookup(conn);
break;
/* SDB_CONNECTION_TIMESERIES not supported yet */
case SDB_CONNECTION_STORE:
- check = sdb_fe_store(conn);
+ check = sdb_conn_store(conn);
break;
default:
fail("Invalid command %#x", conn->cmd);
}
fail_unless(check == query_data[_i].expected,
- "sdb_fe_query(%s) = %d; expected: %d (err: %s)",
+ "sdb_conn_query(%s) = %d; expected: %d (err: %s)",
query_data[_i].query, check, query_data[_i].expected,
sdb_strbuf_string(conn->errbuf));
if (query_data[_i].code == UINT32_MAX) {
fail_unless(len == 0,
- "sdb_fe_query(%s) returned data on error: '%s'",
+ "sdb_conn_query(%s) returned data on error: '%s'",
query_data[_i].query, data);
mock_conn_destroy(conn);
return;
fail_unless((code == query_data[_i].code)
&& ((size_t)msg_len == query_data[_i].len),
- "sdb_fe_query(%s) returned %u, %u; expected: %u, %zu",
+ "sdb_conn_query(%s) returned %u, %u; expected: %u, %zu",
query_data[_i].query, code, msg_len,
query_data[_i].code, query_data[_i].len);
if (code == SDB_CONNECTION_DATA) {
tmp = sdb_proto_unmarshal_int32(data, len, &code);
fail_unless(code == query_data[_i].type,
- "sdb_fe_query(%s) returned %s object; expected: %s",
+ "sdb_conn_query(%s) returned %s object; expected: %s",
query_data[_i].query, SDB_CONN_MSGTYPE_TO_STRING((int)code),
SDB_CONN_MSGTYPE_TO_STRING((int)query_data[_i].type));
data += tmp;
}
fail_if_strneq(data, query_data[_i].data, (size_t)msg_len,
- "sdb_fe_query(%s) returned unexpected data",
+ "sdb_conn_query(%s) returned unexpected data",
query_data[_i].query, data, query_data[_i].data);
mock_conn_destroy(conn);