summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimotej S <6674623+underhood@users.noreply.github.com>2022-09-27 18:31:24 +0200
committerGitHub <noreply@github.com>2022-09-27 18:31:24 +0200
commitf89f8845252370c70403c1f3badb26518aa63182 (patch)
tree3698d81640beb3066712e78ee5b15969422587e3
parent3ea35e2dcd32e8fa7958298798608ff63798575f (diff)
Remove Chart/Dim based communication (#13650)
Co-authored-by: Stelios Fragkakis <52996999+stelfrag@users.noreply.github.com>
-rw-r--r--CMakeLists.txt12
-rw-r--r--Makefile.am36
-rw-r--r--aclk/aclk.c82
-rw-r--r--aclk/aclk_charts_api.c77
-rw-r--r--aclk/aclk_charts_api.h22
-rw-r--r--aclk/aclk_contexts_api.c18
-rw-r--r--aclk/aclk_contexts_api.h2
-rw-r--r--aclk/aclk_otp.c5
-rw-r--r--aclk/aclk_rx_msgs.c39
-rw-r--r--aclk/aclk_tx_msgs.c2
-rw-r--r--aclk/schema-wrappers/chart_config.cc105
-rw-r--r--aclk/schema-wrappers/chart_config.h50
-rw-r--r--aclk/schema-wrappers/chart_stream.cc337
-rw-r--r--aclk/schema-wrappers/chart_stream.h121
-rw-r--r--aclk/schema-wrappers/proto_2_json.cc16
-rw-r--r--aclk/schema-wrappers/schema_wrappers.h2
-rw-r--r--daemon/main.c7
-rw-r--r--daemon/service.c7
-rw-r--r--daemon/unit_test.c36
-rw-r--r--database/engine/rrdengine.c1
-rw-r--r--database/rrd.h3
-rw-r--r--database/rrdcontext.c58
-rw-r--r--database/rrdcontext.h2
-rw-r--r--database/rrddim.c5
-rw-r--r--database/rrdset.c23
-rw-r--r--database/sqlite/sqlite_aclk.c241
-rw-r--r--database/sqlite/sqlite_aclk.h49
-rw-r--r--database/sqlite/sqlite_aclk_chart.c1304
-rw-r--r--database/sqlite/sqlite_aclk_chart.h71
-rw-r--r--database/sqlite/sqlite_aclk_node.c6
30 files changed, 51 insertions, 2688 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 897cd3ac29..0bc0f7f8c9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -752,8 +752,6 @@ set(RRD_PLUGIN_FILES
database/sqlite/sqlite_health.h
database/sqlite/sqlite_aclk_node.c
database/sqlite/sqlite_aclk_node.h
- database/sqlite/sqlite_aclk_chart.c
- database/sqlite/sqlite_aclk_chart.h
database/sqlite/sqlite_aclk_alert.c
database/sqlite/sqlite_aclk_alert.h
database/sqlite/sqlite3.c
@@ -894,8 +892,6 @@ set(ACLK_FILES
aclk/aclk_rx_msgs.h
aclk/https_client.c
aclk/https_client.h
- aclk/aclk_charts_api.c
- aclk/aclk_charts_api.h
aclk/aclk_alarm_api.c
aclk/aclk_alarm_api.h
aclk/aclk_contexts_api.c
@@ -922,10 +918,6 @@ set(ACLK_FILES
aclk/schema-wrappers/node_connection.h
aclk/schema-wrappers/node_creation.cc
aclk/schema-wrappers/node_creation.h
- aclk/schema-wrappers/chart_stream.cc
- aclk/schema-wrappers/chart_stream.h
- aclk/schema-wrappers/chart_config.cc
- aclk/schema-wrappers/chart_config.h
aclk/schema-wrappers/alarm_stream.cc
aclk/schema-wrappers/alarm_stream.h
aclk/schema-wrappers/alarm_config.cc
@@ -1247,10 +1239,6 @@ set(ACLK_PROTO_DEFS
aclk/aclk-schemas/proto/agent/v1/connection.proto
aclk/aclk-schemas/proto/alarm/v1/config.proto
aclk/aclk-schemas/proto/alarm/v1/stream.proto
- aclk/aclk-schemas/proto/chart/v1/config.proto
- aclk/aclk-schemas/proto/chart/v1/dimension.proto
- aclk/aclk-schemas/proto/chart/v1/instance.proto
- aclk/aclk-schemas/proto/chart/v1/stream.proto
aclk/aclk-schemas/proto/nodeinstance/connection/v1/connection.proto
aclk/aclk-schemas/proto/nodeinstance/create/v1/creation.proto
aclk/aclk-schemas/proto/nodeinstance/info/v1/info.proto
diff --git a/Makefile.am b/Makefile.am
index 3b7d1c78ec..c5e3e0949d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -467,8 +467,6 @@ RRD_PLUGIN_FILES = \
database/sqlite/sqlite_health.h \
database/sqlite/sqlite_aclk_node.c \
database/sqlite/sqlite_aclk_node.h \
- database/sqlite/sqlite_aclk_chart.c \
- database/sqlite/sqlite_aclk_chart.h \
database/sqlite/sqlite_aclk_alert.c \
database/sqlite/sqlite_aclk_alert.h \
database/sqlite/sqlite3.c \
@@ -710,8 +708,6 @@ ACLK_FILES = \
mqtt_websockets/c-rbuf/src/ringbuffer_internal.h \
mqtt_websockets/MQTT-C/src/mqtt.c \
mqtt_websockets/MQTT-C/include/mqtt.h \
- aclk/aclk_charts_api.c \
- aclk/aclk_charts_api.h \
aclk/aclk_alarm_api.c \
aclk/aclk_alarm_api.h \
aclk/aclk_contexts_api.c \
@@ -722,10 +718,6 @@ ACLK_FILES = \
aclk/schema-wrappers/node_connection.h \
aclk/schema-wrappers/node_creation.cc \
aclk/schema-wrappers/node_creation.h \
- aclk/schema-wrappers/chart_stream.cc \
- aclk/schema-wrappers/chart_stream.h \
- aclk/schema-wrappers/chart_config.cc \
- aclk/schema-wrappers/chart_config.h \
aclk/schema-wrappers/alarm_stream.cc \
aclk/schema-wrappers/alarm_stream.h \
aclk/schema-wrappers/alarm_config.cc \
@@ -753,10 +745,6 @@ ACLK_PROTO_DEFINITIONS = \
aclk/aclk-schemas/proto/agent/v1/connection.proto \
aclk/aclk-schemas/proto/alarm/v1/config.proto \
aclk/aclk-schemas/proto/alarm/v1/stream.proto \
- aclk/aclk-schemas/proto/chart/v1/config.proto \
- aclk/aclk-schemas/proto/chart/v1/dimension.proto \
- aclk/aclk-schemas/proto/chart/v1/instance.proto \
- aclk/aclk-schemas/proto/chart/v1/stream.proto \
aclk/aclk-schemas/proto/nodeinstance/connection/v1/connection.proto \
aclk/aclk-schemas/proto/nodeinstance/create/v1/creation.proto \
aclk/aclk-schemas/proto/nodeinstance/info/v1/info.proto \
@@ -772,14 +760,6 @@ ACLK_PROTO_BUILT_FILES = aclk/aclk-schemas/proto/agent/v1/connection.pb.cc \
aclk/aclk-schemas/proto/nodeinstance/connection/v1/connection.pb.h \
aclk/aclk-schemas/proto/nodeinstance/create/v1/creation.pb.cc \
aclk/aclk-schemas/proto/nodeinstance/create/v1/creation.pb.h \
- aclk/aclk-schemas/proto/chart/v1/stream.pb.cc \
- aclk/aclk-schemas/proto/chart/v1/stream.pb.h \
- aclk/aclk-schemas/proto/chart/v1/instance.pb.cc \
- aclk/aclk-schemas/proto/chart/v1/instance.pb.h \
- aclk/aclk-schemas/proto/chart/v1/dimension.pb.cc \
- aclk/aclk-schemas/proto/chart/v1/dimension.pb.h \
- aclk/aclk-schemas/proto/chart/v1/config.pb.cc \
- aclk/aclk-schemas/proto/chart/v1/config.pb.h \
aclk/aclk-schemas/proto/aclk/v1/lib.pb.cc \
aclk/aclk-schemas/proto/aclk/v1/lib.pb.h \
aclk/aclk-schemas/proto/agent/v1/disconnect.pb.cc \
@@ -812,22 +792,6 @@ aclk/aclk-schemas/proto/nodeinstance/create/v1/creation.pb.cc \
aclk/aclk-schemas/proto/nodeinstance/create/v1/creation.pb.h: aclk/aclk-schemas/proto/nodeinstance/create/v1/creation.proto
$(PROTOC) -I=aclk/aclk-schemas --cpp_out=$(builddir)/aclk/aclk-schemas $^
-aclk/aclk-schemas/proto/chart/v1/stream.pb.cc \
-aclk/aclk-schemas/proto/chart/v1/stream.pb.h: aclk/aclk-schemas/proto/chart/v1/stream.proto
- $(PROTOC) -I=aclk/aclk-schemas --cpp_out=$(builddir)/aclk/aclk-schemas $^
-
-aclk/aclk-schemas/proto/chart/v1/instance.pb.cc \
-aclk/aclk-schemas/proto/chart/v1/instance.pb.h: aclk/aclk-schemas/proto/chart/v1/instance.proto
- $(PROTOC) -I=aclk/aclk-schemas --cpp_out=$(builddir)/aclk/aclk-schemas $^
-
-aclk/aclk-schemas/proto/chart/v1/dimension.pb.cc \
-aclk/aclk-schemas/proto/chart/v1/dimension.pb.h: aclk/aclk-schemas/proto/chart/v1/dimension.proto
- $(PROTOC) -I=aclk/aclk-schemas --cpp_out=$(builddir)/aclk/aclk-schemas $^
-
-aclk/aclk-schemas/proto/chart/v1/config.pb.cc \
-aclk/aclk-schemas/proto/chart/v1/config.pb.h: aclk/aclk-schemas/proto/chart/v1/config.proto
- $(PROTOC) -I=aclk/aclk-schemas --cpp_out=$(builddir)/aclk/aclk-schemas $^
-
aclk/aclk-schemas/proto/aclk/v1/lib.pb.cc \
aclk/aclk-schemas/proto/aclk/v1/lib.pb.h: aclk/aclk-schemas/proto/aclk/v1/lib.proto
$(PROTOC) -I=aclk/aclk-schemas --cpp_out=$(builddir)/aclk/aclk-schemas $^
diff --git a/aclk/aclk.c b/aclk/aclk.c
index 63aa4ad386..8b1dca8ca7 100644
--- a/aclk/aclk.c
+++ b/aclk/aclk.c
@@ -788,7 +788,7 @@ void aclk_host_state_update(RRDHOST *host, int cmd)
{ .name = "proto", .version = 1, .enabled = 1 },
{ .name = "ml", .version = ml_capable(localhost), .enabled = ml_enabled(host) },
{ .name = "mc", .version = enable_metric_correlations ? metric_correlations_version : 0, .enabled = enable_metric_correlations },
- { .name = "ctx", .version = 1, .enabled = rrdcontext_enabled },
+ { .name = "ctx", .version = 1, .enabled = 1 },
{ .name = NULL, .version = 0, .enabled = 0 }
};
node_state_update.capabilities = caps;
@@ -834,7 +834,7 @@ void aclk_send_node_instances()
{ .name = "proto", .version = 1, .enabled = 1 },
{ .name = "ml", .version = ml_capable(localhost), .enabled = host ? ml_enabled(host) : 0 },
{ .name = "mc", .version = enable_metric_correlations ? metric_correlations_version : 0, .enabled = enable_metric_correlations },
- { .name = "ctx", .version = 1, .enabled = rrdcontext_enabled },
+ { .name = "ctx", .version = 1, .enabled = 1 },
{ .name = NULL, .version = 0, .enabled = 0 }
};
node_state_update.capabilities = caps;
@@ -905,38 +905,6 @@ static void fill_alert_status_for_host(BUFFER *wb, RRDHOST *host)
status.last_submitted_sequence_id
);
}
-
-static void fill_chart_status_for_host(BUFFER *wb, RRDHOST *host)
-{
- struct aclk_chart_sync_stats *stats = aclk_get_chart_sync_stats(host);
- if (!stats) {
- buffer_strcat(wb, "\n\t\tFailed to get alert streaming status for this host");
- return;
- }
- buffer_sprintf(wb,
- "\n\t\tUpdates: %d"
- "\n\t\tBatch ID: %"PRIu64
- "\n\t\tMin Seq ID: %"PRIu64
- "\n\t\tMax Seq ID: %"PRIu64
- "\n\t\tPending Min Seq ID: %"PRIu64
- "\n\t\tPending Max Seq ID: %"PRIu64
- "\n\t\tSent Min Seq ID: %"PRIu64
- "\n\t\tSent Max Seq ID: %"PRIu64
- "\n\t\tAcked Min Seq ID: %"PRIu64
- "\n\t\tAcked Max Seq ID: %"PRIu64,
- stats->updates,
- stats->batch_id,
- stats->min_seqid,
- stats->max_seqid,
- stats->min_seqid_pend,
- stats->max_seqid_pend,
- stats->min_seqid_sent,
- stats->max_seqid_sent,
- stats->min_seqid_ack,
- stats->max_seqid_ack
- );
- freez(stats);
-}
#endif /* ENABLE_ACLK */
char *aclk_state(void)
@@ -1018,9 +986,6 @@ char *aclk_state(void)
buffer_strcat(wb, "\n\tAlert Streaming Status:");
fill_alert_status_for_host(wb, host);
-
- buffer_strcat(wb, "\n\tChart Streaming Status:");
- fill_chart_status_for_host(wb, host);
}
rrd_unlock();
}
@@ -1058,45 +1023,6 @@ static void fill_alert_status_for_host_json(json_object *obj, RRDHOST *host)
json_object_object_add(obj, "last-submitted-seq-id", tmp);
}
-static void fill_chart_status_for_host_json(json_object *obj, RRDHOST *host)
-{
- struct aclk_chart_sync_stats *stats = aclk_get_chart_sync_stats(host);
- if (!stats)
- return;
-
- json_object *tmp = json_object_new_int(stats->updates);
- json_object_object_add(obj, "updates", tmp);
-
- tmp = json_object_new_int(stats->batch_id);
- json_object_object_add(obj, "batch-id", tmp);
-
- tmp = json_object_new_int(stats->min_seqid);
- json_object_object_add(obj, "min-seq-id", tmp);
-
- tmp = json_object_new_int(stats->max_seqid);
- json_object_object_add(obj, "max-seq-id", tmp);
-
- tmp = json_object_new_int(stats->min_seqid_pend);
- json_object_object_add(obj, "pending-min-seq-id", tmp);
-
- tmp = json_object_new_int(stats->max_seqid_pend);
- json_object_object_add(obj, "pending-max-seq-id", tmp);
-
- tmp = json_object_new_int(stats->min_seqid_sent);
- json_object_object_add(obj, "sent-min-seq-id", tmp);
-
- tmp = json_object_new_int(stats->max_seqid_sent);
- json_object_object_add(obj, "sent-max-seq-id", tmp);
-
- tmp = json_object_new_int(stats->min_seqid_ack);
- json_object_object_add(obj, "acked-min-seq-id", tmp);
-
- tmp = json_object_new_int(stats->max_seqid_ack);
- json_object_object_add(obj, "acked-max-seq-id", tmp);
-
- freez(stats);
-}
-
static json_object *timestamp_to_json(const time_t *t)
{
struct tm *tmptr, tmbuf;
@@ -1215,10 +1141,6 @@ char *aclk_state_json(void)
fill_alert_status_for_host_json(tmp, host);
json_object_object_add(nodeinstance, "alert-sync-status", tmp);
- tmp = json_object_new_object();
- fill_chart_status_for_host_json(tmp, host);
- json_object_object_add(nodeinstance, "chart-sync-status", tmp);
-
json_object_array_add(grp, nodeinstance);
}
rrd_unlock();
diff --git a/aclk/aclk_charts_api.c b/aclk/aclk_charts_api.c
deleted file mode 100644
index 51d8dad58c..0000000000
--- a/aclk/aclk_charts_api.c
+++ /dev/null
@@ -1,77 +0,0 @@
-// SPDX-License-Identifier: GPL-3.0-or-later
-#include "aclk_charts_api.h"
-
-#include "aclk_query_queue.h"
-
-#define CHART_DIM_UPDATE_NAME "ChartsAndDimensionsUpdated"
-
-void aclk_chart_inst_update(char **payloads, size_t *payload_sizes, struct aclk_message_position *new_positions)
-{
- aclk_query_t query = aclk_query_new(CHART_DIMS_UPDATE);
- query->data.bin_payload.payload = generate_charts_updated(&query->data.bin_payload.size, payloads, payload_sizes, new_positions);
- query->data.bin_payload.msg_name = CHART_DIM_UPDATE_NAME;
- QUEUE_IF_PAYLOAD_PRESENT(query);
-}
-
-void aclk_chart_dim_update(char **payloads, size_t *payload_sizes, struct aclk_message_position *new_positions)
-{
- aclk_query_t query = aclk_query_new(CHART_DIMS_UPDATE);
- query->data.bin_payload.topic = ACLK_TOPICID_CHART_DIMS;
- query->data.bin_payload.payload = generate_chart_dimensions_updated(&query->data.bin_payload.size, payloads, payload_sizes, new_positions);
- query->data.bin_payload.msg_name = CHART_DIM_UPDATE_NAME;
- QUEUE_IF_PAYLOAD_PRESENT(query);
-}
-
-void aclk_chart_inst_and_dim_update(char **payloads, size_t *payload_sizes, int *is_dim, struct aclk_message_position *new_positions, uint64_t batch_id)
-{
- aclk_query_t query = aclk_query_new(CHART_DIMS_UPDATE);
- query->data.bin_payload.topic = ACLK_TOPICID_CHART_DIMS;
- query->data.bin_payload.payload = generate_charts_and_dimensions_updated(&query->data.bin_payload.size, payloads, payload_sizes, is_dim, new_positions, batch_id);
- query->data.bin_payload.msg_name = CHART_DIM_UPDATE_NAME;
- QUEUE_IF_PAYLOAD_PRESENT(query);
-}
-
-void aclk_chart_config_updated(struct chart_config_updated *config_list, int list_size)
-{
- aclk_query_t query = aclk_query_new(CHART_CONFIG_UPDATED);
- query->data.bin_payload.topic = ACLK_TOPICID_CHART_CONFIGS_UPDATED;
- query->data.bin_payload.payload = generate_chart_configs_updated(&query->data.bin_payload.size, config_list, list_size);
- query->data.bin_payload.msg_name = "ChartConfigsUpdated";
- QUEUE_IF_PAYLOAD_PRESENT(query);
-}
-
-void aclk_chart_reset(chart_reset_t reset)
-{
- aclk_query_t query = aclk_query_new(CHART_RESET);
- query->data.bin_payload.topic = ACLK_TOPICID_CHART_RESET;
- query->data.bin_payload.payload = generate_reset_chart_messages(&query->data.bin_payload.size, reset);
- query->data.bin_payload.msg_name = "ResetChartMessages";
- QUEUE_IF_PAYLOAD_PRESENT(query);
-}
-
-void aclk_retention_updated(struct retention_updated *data)
-{
- aclk_query_t query = aclk_query_new(RETENTION_UPDATED);
- query->data.bin_payload.topic = ACLK_TOPICID_RETENTION_UPDATED;
- query->data.bin_payload.payload = generate_retention_updated(&query->data.bin_payload.size, data);
- query->data.bin_payload.msg_name = "RetentionUpdated";
- QUEUE_IF_PAYLOAD_PRESENT(query);
-}
-
-void aclk_update_node_info(struct update_node_info *info)
-{
- aclk_query_t query = aclk_query_new(UPDATE_NODE_INFO);
- query->data.bin_payload.topic = ACLK_TOPICID_NODE_INFO;
- query->data.bin_payload.payload = generate_update_node_info_message(&query->data.bin_payload.size, info);
- query->data.bin_payload.msg_name = "UpdateNodeInfo";
- QUEUE_IF_PAYLOAD_PRESENT(query);
-}
-
-void aclk_update_node_collectors(struct update_node_collectors *collectors)
-{
- aclk_query_t query = aclk_query_new(UPDATE_NODE_COLLECTORS);
- query->data.bin_payload.topic = ACLK_TOPICID_NODE_COLLECTORS;
- query->data.bin_payload.payload = generate_update_node_collectors_message(&query->data.bin_payload.size, collectors);
- query->data.bin_payload.msg_name = "UpdateNodeCollectors";
- QUEUE_IF_PAYLOAD_PRESENT(query);
-}
diff --git a/aclk/aclk_charts_api.h b/aclk/aclk_charts_api.h
deleted file mode 100644
index 71f07dd338..0000000000
--- a/aclk/aclk_charts_api.h
+++ /dev/null
@@ -1,22 +0,0 @@
-// SPDX-License-Identifier: GPL-3.0-or-later
-#ifndef ACLK_CHARTS_H
-#define ACLK_CHARTS_H
-
-#include "../daemon/common.h"
-#include "schema-wrappers/schema_wrappers.h"
-
-void aclk_chart_inst_update(char **payloads, size_t *payload_sizes, struct aclk_message_position *new_positions);
-void aclk_chart_dim_update(char **payloads, size_t *payload_sizes, struct aclk_message_position *new_positions);
-void aclk_chart_inst_and_dim_update(char **payloads, size_t *payload_sizes, int *is_dim, struct aclk_message_position *new_positions, uint64_t batch_id);
-
-void aclk_chart_config_updated(struct chart_config_updated *config_list, int list_size);
-
-void aclk_chart_reset(chart_reset_t reset);
-
-void aclk_retention_updated(struct retention_updated *data);
-
-void aclk_update_node_info(struct update_node_info *info);
-
-void aclk_update_node_collectors(struct update_node_collectors *collectors);
-
-#endif /* ACLK_CHARTS_H */
diff --git a/aclk/aclk_contexts_api.c b/aclk/aclk_contexts_api.c
index f17d3cabd9..f3344935e2 100644
--- a/aclk/aclk_contexts_api.c
+++ b/aclk/aclk_contexts_api.c
@@ -21,3 +21,21 @@ void aclk_send_contexts_updated(contexts_updated_t data)
query->data.bin_payload.msg_name = "ContextsUpdated";
QUEUE_IF_PAYLOAD_PRESENT(query);
}
+
+void aclk_update_node_collectors(struct update_node_collectors *collectors)
+{
+ aclk_query_t query = aclk_query_new(UPDATE_NODE_COLLECTORS);
+ query->data.bin_payload.topic = ACLK_TOPICID_NODE_COLLECTORS;
+ query->data.bin_payload.payload = generate_update_node_collectors_message(&query->data.bin_payload.size, collectors);
+ query->data.bin_payload.msg_name = "UpdateNodeCollectors";
+ QUEUE_IF_PAYLOAD_PRESENT(query);
+}
+
+void aclk_update_node_info(struct update_node_info *info)
+{
+ aclk_query_t query = aclk_query_new(UPDATE_NODE_INFO);
+ query->data.bin_payload.topic = ACLK_TOPICID_NODE_INFO;
+ query->data.bin_payload.payload = generate_update_node_info_message(&query->data.bin_payload.size, info);
+ query->data.bin_payload.msg_name = "UpdateNodeInfo";
+ QUEUE_IF_PAYLOAD_PRESENT(query);
+}
diff --git a/aclk/aclk_contexts_api.h b/aclk/aclk_contexts_api.h
index 46b916d22f..f0b5ec77e5 100644
--- a/aclk/aclk_contexts_api.h
+++ b/aclk/aclk_contexts_api.h
@@ -7,6 +7,8 @@
void aclk_send_contexts_snapshot(contexts_snapshot_t data);
void aclk_send_contexts_updated(contexts_updated_t data);
+void aclk_update_node_collectors(struct update_node_collectors *collectors);
+void aclk_update_node_info(struct update_node_info *info);
#endif /* ACLK_CONTEXTS_API_H */
diff --git a/aclk/aclk_otp.c b/aclk/aclk_otp.c
index b7bf173c4a..e1b7a5123d 100644
--- a/aclk/aclk_otp.c
+++ b/aclk/aclk_otp.c
@@ -844,10 +844,7 @@ int aclk_get_env(aclk_env_t *env, const char* aclk_hostname, int aclk_port) {
return 1;
}
- if (rrdcontext_enabled)
- buffer_sprintf(buf, "/api/v1/env?v=%s&cap=proto,ctx&claim_id=%s", &(VERSION[1]) /* skip 'v' at beginning */, agent_id);
- else
- buffer_sprintf(buf, "/api/v1/env?v=%s&cap=proto&claim_id=%s", &(VERSION[1]) /* skip 'v' at beginning */, agent_id);
+ buffer_sprintf(buf, "/api/v1/env?v=%s&cap=proto,ctx&claim_id=%s", &(VERSION[1]) /* skip 'v' at beginning */, agent_id);
freez(agent_id);
diff --git a/aclk/aclk_rx_msgs.c b/aclk/aclk_rx_msgs.c
index b42f010f9e..4a5ddc0d2d 100644
--- a/aclk/aclk_rx_msgs.c
+++ b/aclk/aclk_rx_msgs.c
@@ -293,7 +293,7 @@ int create_node_instance_result(const char *msg, size_t msg_len)
{ .name = "proto", .version = 1, .enabled = 1 },
{ .name = "ml", .version = ml_capable(localhost), .enabled = host ? ml_enabled(host) : 0 },
{ .name = "mc", .version = enable_metric_correlations ? metric_correlations_version : 0, .enabled = enable_metric_correlations },
- { .name = "ctx", .version = 1, .enabled = rrdcontext_enabled },
+ { .name = "ctx", .version = 1, .enabled = 1 },
{ .name = NULL, .version = 0, .enabled = 0 }
};
node_state_update.capabilities = caps;
@@ -322,44 +322,25 @@ int send_node_instances(const char *msg, size_t msg_len)
int stream_charts_and_dimensions(const char *msg, size_t msg_len)
{
- aclk_ctx_based = 0;
- stream_charts_and_dims_t res = parse_stream_charts_and_dims(msg, msg_len);
- if (!res.claim_id || !res.node_id) {
- error("Error parsing StreamChartsAndDimensions msg");
- freez(res.claim_id);
- freez(res.node_id);
- return 1;
- }
- chart_batch_id = res.batch_id;
- aclk_start_streaming(res.node_id, res.seq_id, res.seq_id_created_at.tv_sec, res.batch_id);
- freez(res.claim_id);
- freez(res.node_id);
+ UNUSED(msg);
+ UNUSED(msg_len);
+ error_report("Received obsolete StreamChartsAndDimensions msg");
return 0;
}
int charts_and_dimensions_ack(const char *msg, size_t msg_len)
{
- chart_and_dim_ack_t res = parse_chart_and_dimensions_ack(msg, msg_len);
- if (!res.claim_id || !res.node_id) {
- error("Error parsing StreamChartsAndDimensions msg");
- freez(res.claim_id);
- freez(res.node_id);
- return 1;
- }
- aclk_ack_chart_sequence_id(res.node_id, res.last_seq_id);
- freez(res.claim_id);
- freez(res.node_id);
+ UNUSED(msg);
+ UNUSED(msg_len);
+ error_report("Received obsolete StreamChartsAndDimensionsAck msg");
return 0;
}
int update_chart_configs(const char *msg, size_t msg_len)
{
- struct update_chart_config res = parse_update_chart_config(msg, msg_len);
- if (!res.claim_id || !res.node_id || !res.hashes)
- error("Error parsing UpdateChartConfigs msg");
- else
- aclk_get_chart_config(res.hashes);
- destroy_update_chart_config(&res);
+ UNUSED(msg);
+ UNUSED(msg_len);
+ error_report("Received obsolete UpdateChartConfigs msg");
return 0;
}
diff --git a/aclk/aclk_tx_msgs.c b/aclk/aclk_tx_msgs.c
index b483e5221d..9bf8529ef8 100644
--- a/aclk/aclk_tx_msgs.c
+++ b/aclk/aclk_tx_msgs.c
@@ -225,7 +225,7 @@ uint16_t aclk_send_agent_connection_update(mqtt_wss_client client, int reachable
{ .name = "ml", .version = 1, .enabled = ml_enabled(localhost) },
#endif
{ .name = "mc", .version = enable_metric_correlations ? metric_correlations_version : 0, .enabled = enable_metric_correlations },
- { .name = "ctx", .version = 1, .enabled = rrdcontext_enabled },
+ { .name = "ctx", .version = 1, .enabled = 1 },
{ .name = NULL, .version = 0, .enabled = 0 }
};
diff --git a/aclk/schema-wrappers/chart_config.cc b/aclk/schema-wrappers/chart_config.cc
deleted file mode 100644
index 87e34e0dfc..0000000000
--- a/aclk/schema-wrappers/chart_config.cc
+++ /dev/null
@@ -1,105 +0,0 @@
-#include "chart_config.h"
-
-#include "proto/chart/v1/config.pb.h"
-
-#include "libnetdata/libnetdata.h"
-
-#include "schema_wrapper_utils.h"
-
-void destroy_update_chart_config(struct update_chart_config *cfg)
-{
- freez(cfg->claim_id);
- freez(cfg->node_id);
- freez(cfg->hashes);
-}
-
-void destroy_chart_config_updated(struct chart_config_updated *cfg)
-{
- freez(cfg->type);
- freez(cfg->family);
- freez(cfg->context);
- freez(cfg->title);
- freez(cfg->plugin);
- freez(cfg->module);
- freez(cfg->units);
- freez(cfg->config_hash);
-}
-
-struct update_chart_config parse_update_chart_config(const char *data, size_t len)
-{
- chart::v1::UpdateChartConfigs cfgs;
- update_chart_config res;
- memset(&res, 0, sizeof(res));
-
- if (!cfgs.ParseFromArray(data, len))
- return res;
-
- res.claim_id = strdupz(cfgs.claim_id().c_str());
- res.node_id = strdupz(cfgs.node_id().c_str());
-
- // to not do bazillion tiny allocations for individual strings
- // we calculate how much memory we will need for all of them
- // and allocate at once
- int hash_count = cfgs.config_hashes_size();
- size_t total_strlen = 0;
- for (int i = 0; i < hash_count; i++)
- total_strlen += cfgs.config_hashes(i).length();
- total_strlen += hash_count; //null bytes
-
- res.hashes = (char**)callocz( 1,
- (hash_count+1) * sizeof(char*) + //char * array incl. terminating NULL at the end
- total_strlen //strings themselves incl. 1 null byte each
- );
-
- char* dest = ((char*)res.hashes) + (hash_count + 1 /* NULL ptr */) * sizeof(char *);
- // now copy them strings
- // null bytes handled by callocz
- for (int i = 0; i < hash_count; i++) {
- strcpy(dest, cfgs.config_hashes(i).c_str());
- res.hashes[i] = dest;
- dest += strlen(dest) + 1 /* end string null */;
- }
-
- return res;
-}
-
-char *generate_chart_configs_updated(size_t *len, const struct chart_config_updated *config_list, int list_size)
-{
- chart::v1::ChartConfigsUpdated configs;
- for (int i = 0; i < list_size; i++) {
- chart::v1::ChartConfigUpdated *config = configs.add_configs();
- config->set_type(config_list[i].type);
- if (config_list[i].family)
- config->set_family(config_list[i].family);
- config->set_context(config_list[i].context);
- config->set_title(config_list[i].title);
- config->set_priority(config_list[i].priority);
- config->set_plugin(config_list[i].plugin);
-
- if (config_list[i].module)
- config->set_module(config_list[i].module);
-
- switch (config_list[i].chart_type) {
- case RRDSET_TYPE_LINE:
- config->set_chart_type(chart::v1::LINE);
- break;
- case RRDSET_TYPE_AREA:
- config->set_chart_type(chart::v1::AREA);
- break;
- case RRDSET_TYPE_STACKED:
- config->set_chart_type(chart::v1::STACKED);
- break;
- default:
- return NULL;
- }
-
- config->set_units(config_list[i].units);
- config->set_config_hash(config_list[i].config_hash);
- }
-
- *len = PROTO_COMPAT_MSG_SIZE(configs);
- char *bin = (char*)mallocz(*len);
- configs.SerializeToArray(bin, *len);
-
- return bin;
-}
diff --git a/aclk/schema-wrappers/chart_config.h b/aclk/schema-wrappers/chart_config.h
deleted file mode 100644
index f08f76b618..0000000000
--- a/aclk/schema-wrappers/chart_config.h
+++ /dev/null
@@ -1,50 +0,0 @@
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#ifndef ACLK_SCHEMA_WRAPPER_CHART_CONFIG_H
-#define ACLK_SCHEMA_WRAPPER_CHART_CONFIG_H
-
-#include <stdlib.h>
-
-#include "database/rrd.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct update_chart_config {
- char *claim_id;
- char *node_id;
- char **hashes;
-};
-
-enum chart_config_chart_type {
- LINE,
- AREA,
- STACKED
-};
-
-struct chart_config_updated {
- char *type;
- char *family;
- char *context;
- char *title;
- uint64_t priority;
- char *plugin;
- char *module;
- RRDSET_TYPE chart_type;
- char *units;
- char *config_hash;
-};
-
-void destroy_update_chart_config(struct update_chart_config *cfg);
-void destroy_chart_config_updated(struct chart_config_updated *cfg);
-
-struct update_chart_config parse_update_chart_config(const char *data, size_t len);
-
-char *generate_chart_configs_updated(size_t *len, const struct chart_config_updated *config_list, int list_size);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ACLK_SCHEMA_WRAPPER_CHART_CONFIG_H */
diff --git a/aclk/schema-wrappers/chart_stream.cc b/aclk/schema-wrappers/chart_stream.cc
deleted file mode 100644
index 54c9407586..0000000000
--- a/aclk/schema-wrappers/chart_stream.cc
+++ /dev/null
@@ -1,337 +0,0 @@
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#include "aclk/aclk_util.h"
-
-#include "proto/chart/v1/stream.pb.h"
-#include "chart_stream.h"
-
-#include "schema_wrapper_utils.h"
-
-#include <sys/time.h>
-#include <stdlib.h>
-
-stream_charts_and_dims_t parse_stream_charts_and_dims(const char *data, size_t len)
-{
- chart::v1::StreamChartsAndDimensions msg;
- stream_charts_and_dims_t res;
- memset(&res, 0, sizeof(res));
-
- if (!msg.ParseFromArray(data, len))
- return res;
-
- res.node_id = strdup(msg.node_id().c_str());
- res.claim_id = strdup(msg.claim_id().c_str());
- res.seq_id = msg.sequence_id();
- res.batch_id = msg.batch_id();
- set_timeval_from_google_timestamp(msg.seq_id_created_at(), &res.seq_id_created_at);
-
- return res;
-}
-
-chart_and_dim_ack_t parse_chart_and_dimensions_ack(const char *data, size_t len)
-{
- chart::v1::C