From: Kevin Laatz <kevin.laatz@intel.com>
To: dev@dpdk.org
Cc: harry.van.haaren@intel.com, stephen@networkplumber.org,
gaetan.rivet@6wind.com, shreyansh.jain@nxp.com,
thomas@monjalon.net, mattias.ronnblom@ericsson.com,
bruce.richardson@intel.com, Ciara Power <ciara.power@intel.com>,
Brian Archbold <brian.archbold@intel.com>,
Kevin Laatz <kevin.laatz@intel.com>
Subject: [dpdk-dev] [PATCH v3 07/12] telemetry: format json response when sending stats
Date: Wed, 10 Oct 2018 11:51:29 +0100 [thread overview]
Message-ID: <20181010105134.48079-8-kevin.laatz@intel.com> (raw)
In-Reply-To: <20181010105134.48079-1-kevin.laatz@intel.com>
From: Ciara Power <ciara.power@intel.com>
This patch adds functionality to create a JSON message in
order to send it to a client socket.
When stats are requested by a client, they are retrieved from
the metrics library and encoded in JSON format.
Signed-off-by: Ciara Power <ciara.power@intel.com>
Signed-off-by: Brian Archbold <brian.archbold@intel.com>
Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
---
lib/librte_telemetry/rte_telemetry.c | 309 ++++++++++++++++++++++++++++++++++-
1 file changed, 307 insertions(+), 2 deletions(-)
diff --git a/lib/librte_telemetry/rte_telemetry.c b/lib/librte_telemetry/rte_telemetry.c
index 700798f..18b8102 100644
--- a/lib/librte_telemetry/rte_telemetry.c
+++ b/lib/librte_telemetry/rte_telemetry.c
@@ -187,7 +187,7 @@ rte_telemetry_send_error_response(struct telemetry_impl *telemetry,
return -EPERM;
}
- json_buffer = json_dumps(root, JSON_INDENT(2));
+ json_buffer = json_dumps(root, 0);
json_decref(root);
ret = rte_telemetry_write_to_socket(telemetry, json_buffer);
@@ -199,6 +199,304 @@ rte_telemetry_send_error_response(struct telemetry_impl *telemetry,
return 0;
}
+static int
+rte_telemetry_get_metrics(struct telemetry_impl *telemetry, uint32_t port_id,
+ struct rte_metric_value *metrics, struct rte_metric_name *names,
+ int num_metrics)
+{
+ int ret, num_values;
+
+ if (num_metrics < 0) {
+ TELEMETRY_LOG_ERR("Invalid metrics count");
+ goto einval_fail;
+ } else if (num_metrics == 0) {
+ TELEMETRY_LOG_ERR("No metrics to display (none have been registered)");
+ goto eperm_fail;
+ }
+
+ if (metrics == NULL) {
+ TELEMETRY_LOG_ERR("Metrics must be initialised.");
+ goto einval_fail;
+ }
+
+ if (names == NULL) {
+ TELEMETRY_LOG_ERR("Names must be initialised.");
+ goto einval_fail;
+ }
+
+ ret = rte_metrics_get_names(names, num_metrics);
+ if (ret < 0 || ret > num_metrics) {
+ TELEMETRY_LOG_ERR("Cannot get metrics names");
+ goto eperm_fail;
+ }
+
+ num_values = rte_metrics_get_values(port_id, NULL, 0);
+ ret = rte_metrics_get_values(port_id, metrics, num_values);
+ if (ret < 0 || ret > num_values) {
+ TELEMETRY_LOG_ERR("Cannot get metrics values");
+ goto eperm_fail;
+ }
+
+ return 0;
+
+eperm_fail:
+ ret = rte_telemetry_send_error_response(telemetry, -EPERM);
+ if (ret < 0)
+ TELEMETRY_LOG_ERR("Could not send error");
+ return -1;
+
+einval_fail:
+ ret = rte_telemetry_send_error_response(telemetry, -EINVAL);
+ if (ret < 0)
+ TELEMETRY_LOG_ERR("Could not send error");
+ return -1;
+
+}
+
+static int32_t
+rte_telemetry_json_format_stat(struct telemetry_impl *telemetry, json_t *stats,
+ const char *metric_name, uint64_t metric_value)
+{
+ int ret;
+ json_t *stat = json_object();
+
+ if (stat == NULL) {
+ TELEMETRY_LOG_ERR("Could not create stat JSON object");
+ goto eperm_fail;
+ }
+
+ ret = json_object_set_new(stat, "name", json_string(metric_name));
+ if (ret < 0) {
+ TELEMETRY_LOG_ERR("Stat Name field cannot be set");
+ goto eperm_fail;
+ }
+
+ ret = json_object_set_new(stat, "value", json_integer(metric_value));
+ if (ret < 0) {
+ TELEMETRY_LOG_ERR("Stat Value field cannot be set");
+ goto eperm_fail;
+ }
+
+ ret = json_array_append_new(stats, stat);
+ if (ret < 0) {
+ TELEMETRY_LOG_ERR("Stat cannot be added to stats json array");
+ goto eperm_fail;
+ }
+
+ return 0;
+
+eperm_fail:
+ ret = rte_telemetry_send_error_response(telemetry, -EPERM);
+ if (ret < 0)
+ TELEMETRY_LOG_ERR("Could not send error");
+ return -1;
+
+}
+
+static int32_t
+rte_telemetry_json_format_port(struct telemetry_impl *telemetry,
+ uint32_t port_id, json_t *ports, uint32_t *metric_ids,
+ uint32_t num_metric_ids)
+{
+ struct rte_metric_value *metrics = 0;
+ struct rte_metric_name *names = 0;
+ int num_metrics, ret, err_ret;
+ json_t *port, *stats;
+ uint32_t i;
+
+ num_metrics = rte_metrics_get_names(NULL, 0);
+ if (num_metrics < 0) {
+ TELEMETRY_LOG_ERR("Cannot get metrics count");
+ goto einval_fail;
+ } else if (num_metrics == 0) {
+ TELEMETRY_LOG_ERR("No metrics to display (none have been registered)");
+ goto eperm_fail;
+ }
+
+ metrics = malloc(sizeof(struct rte_metric_value) * num_metrics);
+ names = malloc(sizeof(struct rte_metric_name) * num_metrics);
+ if (metrics == NULL || names == NULL) {
+ TELEMETRY_LOG_ERR("Cannot allocate memory");
+ free(metrics);
+ free(names);
+
+ err_ret = rte_telemetry_send_error_response(telemetry, -ENOMEM);
+ if (err_ret < 0)
+ TELEMETRY_LOG_ERR("Could not send error");
+ return -1;
+ }
+
+ ret = rte_telemetry_get_metrics(telemetry, port_id, metrics, names,
+ num_metrics);
+ if (ret < 0) {
+ free(metrics);
+ free(names);
+ TELEMETRY_LOG_ERR("rte_telemetry_get_metrics failed");
+ return -1;
+ }
+
+ port = json_object();
+ stats = json_array();
+ if (port == NULL || stats == NULL) {
+ TELEMETRY_LOG_ERR("Could not create port/stats JSON objects");
+ goto eperm_fail;
+ }
+
+ ret = json_object_set_new(port, "port", json_integer(port_id));
+ if (ret < 0) {
+ TELEMETRY_LOG_ERR("Port field cannot be set");
+ goto eperm_fail;
+ }
+
+ for (i = 0; i < num_metric_ids; i++) {
+ int metric_id = metric_ids[i];
+ int metric_index = -1;
+ int metric_name_key = -1;
+ int32_t j;
+ uint64_t metric_value;
+
+ if (metric_id >= num_metrics) {
+ TELEMETRY_LOG_ERR("Metric_id: %d is not valid",
+ metric_id);
+ goto einval_fail;
+ }
+
+ for (j = 0; j < num_metrics; j++) {
+ if (metrics[j].key == metric_id) {
+ metric_name_key = metrics[j].key;
+ metric_index = j;
+ break;
+ }
+ }
+
+ const char *metric_name = names[metric_name_key].name;
+ metric_value = metrics[metric_index].value;
+
+ if (metric_name_key < 0 || metric_index < 0) {
+ TELEMETRY_LOG_ERR("Could not get metric name/index");
+ goto eperm_fail;
+ }
+
+ ret = rte_telemetry_json_format_stat(telemetry, stats,
+ metric_name, metric_value);
+ if (ret < 0) {
+ TELEMETRY_LOG_ERR("Format stat with id: %u failed",
+ metric_id);
+ free(metrics);
+ free(names);
+ return -1;
+ }
+ }
+
+ if (json_array_size(stats) == 0)
+ ret = json_object_set_new(port, "stats", json_null());
+ else
+ ret = json_object_set_new(port, "stats", stats);
+
+ if (ret < 0) {
+ TELEMETRY_LOG_ERR("Stats object cannot be set");
+ goto eperm_fail;
+ }
+
+ ret = json_array_append_new(ports, port);
+ if (ret < 0) {
+ TELEMETRY_LOG_ERR("Port object cannot be added to ports array");
+ goto eperm_fail;
+ }
+
+ free(metrics);
+ free(names);
+ return 0;
+
+eperm_fail:
+ free(metrics);
+ free(names);
+ ret = rte_telemetry_send_error_response(telemetry, -EPERM);
+ if (ret < 0)
+ TELEMETRY_LOG_ERR("Could not send error");
+ return -1;
+
+einval_fail:
+ free(metrics);
+ free(names);
+ ret = rte_telemetry_send_error_response(telemetry, -EINVAL);
+ if (ret < 0)
+ TELEMETRY_LOG_ERR("Could not send error");
+ return -1;
+}
+
+static int32_t
+rte_telemetry_encode_json_format(struct telemetry_impl *telemetry,
+ uint32_t *port_ids, uint32_t num_port_ids, uint32_t *metric_ids,
+ uint32_t num_metric_ids, char **json_buffer)
+{
+ int ret;
+ json_t *root, *ports;
+ uint32_t i;
+
+ if (num_port_ids <= 0 || num_metric_ids <= 0) {
+ TELEMETRY_LOG_ERR("Please provide port and metric ids to query");
+ goto einval_fail;
+ }
+
+ ports = json_array();
+ if (ports == NULL) {
+ TELEMETRY_LOG_ERR("Could not create ports JSON array");
+ goto eperm_fail;
+ }
+
+ for (i = 0; i < num_port_ids; i++) {
+ if (!rte_eth_dev_is_valid_port(port_ids[i])) {
+ TELEMETRY_LOG_ERR("Port: %d invalid", port_ids[i]);
+ goto einval_fail;
+ }
+ }
+
+ for (i = 0; i < num_port_ids; i++) {
+ ret = rte_telemetry_json_format_port(telemetry, port_ids[i],
+ ports, metric_ids, num_metric_ids);
+ if (ret < 0) {
+ TELEMETRY_LOG_ERR("Format port in JSON failed");
+ return -1;
+ }
+ }
+
+ root = json_object();
+ if (root == NULL) {
+ TELEMETRY_LOG_ERR("Could not create root JSON object");
+ goto eperm_fail;
+ }
+
+ ret = json_object_set_new(root, "status_code",
+ json_string("Status OK: 200"));
+ if (ret < 0) {
+ TELEMETRY_LOG_ERR("Status code field cannot be set");
+ goto eperm_fail;
+ }
+
+ ret = json_object_set_new(root, "data", ports);
+ if (ret < 0) {
+ TELEMETRY_LOG_ERR("Data field cannot be set");
+ goto eperm_fail;
+ }
+
+ *json_buffer = json_dumps(root, JSON_INDENT(2));
+ json_decref(root);
+ return 0;
+
+eperm_fail:
+ ret = rte_telemetry_send_error_response(telemetry, -EPERM);
+ if (ret < 0)
+ TELEMETRY_LOG_ERR("Could not send error");
+ return -1;
+
+einval_fail:
+ ret = rte_telemetry_send_error_response(telemetry, -EINVAL);
+ if (ret < 0)
+ TELEMETRY_LOG_ERR("Could not send error");
+ return -1;
+}
+
int32_t
rte_telemetry_send_ports_stats_values(uint32_t *metric_ids, int num_metric_ids,
uint32_t *port_ids, int num_port_ids, struct telemetry_impl *telemetry)
@@ -238,13 +536,20 @@ rte_telemetry_send_ports_stats_values(uint32_t *metric_ids, int num_metric_ids,
}
ret = rte_telemetry_update_metrics_ethdev(telemetry,
- port_ids[i], telemetry->reg_index);
+ port_ids[i], telemetry->reg_index);
if (ret < 0) {
TELEMETRY_LOG_ERR("Failed to update ethdev metrics");
return -1;
}
}
+ ret = rte_telemetry_encode_json_format(telemetry, port_ids,
+ num_port_ids, metric_ids, num_metric_ids, &json_buffer);
+ if (ret < 0) {
+ TELEMETRY_LOG_ERR("JSON encode function failed");
+ return -1;
+ }
+
ret = rte_telemetry_write_to_socket(telemetry, json_buffer);
if (ret < 0) {
TELEMETRY_LOG_ERR("Could not write to socket");
--
2.9.5
next prev parent reply other threads:[~2018-10-10 10:52 UTC|newest]
Thread overview: 219+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-23 12:08 [dpdk-dev] [PATCH 00/11] introduce telemetry library Ciara Power
2018-08-23 12:08 ` [dpdk-dev] [PATCH 01/11] telemetry: initial telemetry infrastructure Ciara Power
2018-08-23 23:17 ` Stephen Hemminger
2018-08-23 23:17 ` Stephen Hemminger
2018-08-23 23:18 ` Stephen Hemminger
2018-08-23 23:19 ` Stephen Hemminger
2018-08-23 23:22 ` Stephen Hemminger
2018-08-28 17:12 ` Van Haaren, Harry
2018-08-24 13:03 ` Shreyansh Jain
2018-08-28 16:50 ` Van Haaren, Harry
2018-08-28 11:46 ` Gaëtan Rivet
2018-08-28 16:54 ` Van Haaren, Harry
2018-08-29 8:23 ` Gaëtan Rivet
2018-08-23 12:08 ` [dpdk-dev] [PATCH 02/11] telemetry: add initial connection socket Ciara Power
2018-08-28 16:40 ` Gaëtan Rivet
2018-08-28 17:03 ` Van Haaren, Harry
2018-09-07 9:48 ` Burakov, Anatoly
2018-08-23 12:08 ` [dpdk-dev] [PATCH 03/11] telemetry: add client feature and sockets Ciara Power
2018-08-23 23:27 ` Stephen Hemminger
2018-08-28 15:26 ` Hunt, David
2018-08-28 17:09 ` Van Haaren, Harry
2018-08-23 12:08 ` [dpdk-dev] [PATCH 04/11] telemetry: add parser for client socket messages Ciara Power
2018-08-30 23:57 ` Gaëtan Rivet
2018-08-23 12:08 ` [dpdk-dev] [PATCH 05/11] telemetry: update metrics before sending stats Ciara Power
2018-08-23 12:08 ` [dpdk-dev] [PATCH 06/11] telemetry: format json response when " Ciara Power
2018-08-23 12:08 ` [dpdk-dev] [PATCH 07/11] telemetry: add tests for telemetry api Ciara Power
2018-08-23 23:15 ` Stephen Hemminger
2018-08-23 12:08 ` [dpdk-dev] [PATCH 08/11] telemetry: add vdev kvargs for selftest Ciara Power
2018-08-23 12:08 ` [dpdk-dev] [PATCH 09/11] doc: add telemetry documentation Ciara Power
2018-09-25 8:53 ` Kovacevic, Marko
2018-08-23 12:08 ` [dpdk-dev] [PATCH 10/11] usertools: add client python script for telemetry Ciara Power
2018-08-23 12:08 ` [dpdk-dev] [PATCH 11/11] telemetry: add collectd plugin patch Ciara Power
2018-09-18 9:52 ` Thomas Monjalon
2018-09-19 11:09 ` Laatz, Kevin
2018-10-03 17:36 ` [dpdk-dev] [PATCH v2 00/10] introduce telemetry library Kevin Laatz
2018-10-03 17:36 ` [dpdk-dev] [PATCH v2 01/10] telemetry: initial telemetry infrastructure Kevin Laatz
2018-10-04 14:13 ` Gaëtan Rivet
2018-10-03 17:36 ` [dpdk-dev] [PATCH v2 02/10] telemetry: add initial connection socket Kevin Laatz
2018-10-03 18:40 ` Mattias Rönnblom
2018-10-03 19:36 ` Thomas Monjalon
2018-10-03 19:49 ` Mattias Rönnblom
2018-10-03 17:36 ` [dpdk-dev] [PATCH v2 03/10] telemetry: add client feature and sockets Kevin Laatz
2018-10-03 19:06 ` Mattias Rönnblom
2018-10-03 17:36 ` [dpdk-dev] [PATCH v2 04/10] telemetry: add parser for client socket messages Kevin Laatz
2018-10-03 17:36 ` [dpdk-dev] [PATCH v2 05/10] telemetry: update metrics before sending stats Kevin Laatz
2018-10-03 17:36 ` [dpdk-dev] [PATCH v2 06/10] telemetry: format json response when " Kevin Laatz
2018-10-03 17:36 ` [dpdk-dev] [PATCH v2 07/10] telemetry: add tests for telemetry api Kevin Laatz
2018-10-03 17:36 ` [dpdk-dev] [PATCH v2 08/10] telemetry: add ability to disable selftest Kevin Laatz
2018-10-03 17:36 ` [dpdk-dev] [PATCH v2 09/10] doc: add telemetry documentation Kevin Laatz
2018-10-03 17:36 ` [dpdk-dev] [PATCH v2 10/10] usertools: add client python script for telemetry Kevin Laatz
2018-10-04 13:00 ` [dpdk-dev] [PATCH v2 00/10] introduce telemetry library Van Haaren, Harry
2018-10-04 13:25 ` Van Haaren, Harry
2018-10-04 15:16 ` Gaëtan Rivet
2018-10-04 15:53 ` Thomas Monjalon
2018-10-05 22:05 ` Gaëtan Rivet
2018-10-09 10:33 ` Van Haaren, Harry
2018-10-09 11:41 ` Thomas Monjalon
2018-10-09 14:56 ` Bruce Richardson
2018-10-09 17:07 ` Thomas Monjalon
2018-10-10 10:51 ` [dpdk-dev] [PATCH v3 00/12] " Kevin Laatz
2018-10-10 10:51 ` [dpdk-dev] [PATCH v3 01/12] eal: add param register infrastructure Kevin Laatz
2018-10-10 12:28 ` Thomas Monjalon
2018-10-10 10:51 ` [dpdk-dev] [PATCH v3 02/12] telemetry: initial telemetry infrastructure Kevin Laatz
2018-10-10 10:51 ` [dpdk-dev] [PATCH v3 03/12] telemetry: add initial connection socket Kevin Laatz
2018-10-10 12:24 ` Thomas Monjalon
2018-10-10 10:51 ` [dpdk-dev] [PATCH v3 04/12] telemetry: add client feature and sockets Kevin Laatz
2018-10-10 10:51 ` [dpdk-dev] [PATCH v3 05/12] telemetry: add parser for client socket messages Kevin Laatz
2018-10-10 10:51 ` [dpdk-dev] [PATCH v3 06/12] telemetry: update metrics before sending stats Kevin Laatz
2018-10-10 10:51 ` Kevin Laatz [this message]
2018-10-10 10:51 ` [dpdk-dev] [PATCH v3 08/12] telemetry: add tests for telemetry api Kevin Laatz
2018-10-10 10:51 ` [dpdk-dev] [PATCH v3 09/12] telemetry: add ability to disable selftest Kevin Laatz
2018-10-10 10:51 ` [dpdk-dev] [PATCH v3 10/12] doc: add telemetry documentation Kevin Laatz
2018-10-10 10:51 ` [dpdk-dev] [PATCH v3 11/12] usertools: add client python script for telemetry Kevin Laatz
2018-10-10 10:51 ` [dpdk-dev] [PATCH v3 12/12] build: add dependency on telemetry to apps in meson Kevin Laatz
2018-10-11 16:58 ` [dpdk-dev] [PATCH v4 00/13] introduce telemetry library Kevin Laatz
2018-10-11 16:58 ` [dpdk-dev] [PATCH v4 01/13] eal: add param register infrastructure Kevin Laatz
2018-10-16 0:45 ` Van Haaren, Harry
2018-10-16 13:42 ` Thomas Monjalon
2018-10-16 14:20 ` Laatz, Kevin
2018-10-11 16:58 ` [dpdk-dev] [PATCH v4 02/13] eal: make get runtime dir function public Kevin Laatz
2018-10-16 0:45 ` Van Haaren, Harry
2018-10-11 16:58 ` [dpdk-dev] [PATCH v4 03/13] telemetry: initial telemetry infrastructure Kevin Laatz
2018-10-16 0:45 ` Van Haaren, Harry
2018-10-11 16:58 ` [dpdk-dev] [PATCH v4 04/13] telemetry: add initial connection socket Kevin Laatz
2018-10-16 0:45 ` Van Haaren, Harry
2018-10-11 16:58 ` [dpdk-dev] [PATCH v4 05/13] telemetry: add client feature and sockets Kevin Laatz
2018-10-16 0:45 ` Van Haaren, Harry
2018-10-11 16:58 ` [dpdk-dev] [PATCH v4 06/13] telemetry: add parser for client socket messages Kevin Laatz
2018-10-16 0:45 ` Van Haaren, Harry
2018-10-11 16:58 ` [dpdk-dev] [PATCH v4 07/13] telemetry: update metrics before sending stats Kevin Laatz
2018-10-16 0:45 ` Van Haaren, Harry
2018-10-11 16:58 ` [dpdk-dev] [PATCH v4 08/13] telemetry: format json response when " Kevin Laatz
2018-10-16 0:46 ` Van Haaren, Harry
2018-10-11 16:58 ` [dpdk-dev] [PATCH v4 09/13] telemetry: add tests for telemetry api Kevin Laatz
2018-10-16 0:46 ` Van Haaren, Harry
2018-10-11 16:58 ` [dpdk-dev] [PATCH v4 10/13] telemetry: add ability to disable selftest Kevin Laatz
2018-10-16 0:47 ` Van Haaren, Harry
2018-10-11 16:58 ` [dpdk-dev] [PATCH v4 11/13] doc: add telemetry documentation Kevin Laatz
2018-10-16 0:47 ` Van Haaren, Harry
2018-10-11 16:58 ` [dpdk-dev] [PATCH v4 12/13] usertools: add client python script for telemetry Kevin Laatz
2018-10-16 0:47 ` Van Haaren, Harry
2018-10-11 16:58 ` [dpdk-dev] [PATCH v4 13/13] build: add dependency on telemetry to apps in meson Kevin Laatz
2018-10-16 0:47 ` Van Haaren, Harry
2018-10-16 15:57 ` [dpdk-dev] [PATCH v5 00/13] introduce telemetry library Kevin Laatz
2018-10-16 15:57 ` [dpdk-dev] [PATCH v5 01/13] eal: add param register infrastructure Kevin Laatz
2018-10-17 9:41 ` Thomas Monjalon
2018-10-17 11:45 ` Gaëtan Rivet
2018-10-17 13:46 ` Thomas Monjalon
2018-10-17 14:09 ` Laatz, Kevin
2018-10-17 14:20 ` Thomas Monjalon
2018-10-17 13:55 ` Laatz, Kevin
2018-10-17 15:56 ` Gaëtan Rivet
2018-10-18 15:58 ` Laatz, Kevin
2018-10-16 15:57 ` [dpdk-dev] [PATCH v5 02/13] eal: make get runtime dir function public Kevin Laatz
2018-10-16 15:57 ` [dpdk-dev] [PATCH v5 03/13] telemetry: initial telemetry infrastructure Kevin Laatz
2018-10-16 15:57 ` [dpdk-dev] [PATCH v5 04/13] telemetry: add initial connection socket Kevin Laatz
2018-10-16 15:57 ` [dpdk-dev] [PATCH v5 05/13] telemetry: add client feature and sockets Kevin Laatz
2018-10-16 15:57 ` [dpdk-dev] [PATCH v5 06/13] telemetry: add parser for client socket messages Kevin Laatz
2018-10-16 15:57 ` [dpdk-dev] [PATCH v5 07/13] telemetry: update metrics before sending stats Kevin Laatz
2018-10-16 15:57 ` [dpdk-dev] [PATCH v5 08/13] telemetry: format json response when " Kevin Laatz
2018-10-16 15:57 ` [dpdk-dev] [PATCH v5 09/13] telemetry: add tests for telemetry api Kevin Laatz
2018-10-16 15:57 ` [dpdk-dev] [PATCH v5 10/13] telemetry: add ability to disable selftest Kevin Laatz
2018-10-16 15:58 ` [dpdk-dev] [PATCH v5 11/13] doc: add telemetry documentation Kevin Laatz
2018-10-16 15:58 ` [dpdk-dev] [PATCH v5 12/13] usertools: add client python script for telemetry Kevin Laatz
2018-10-16 15:58 ` [dpdk-dev] [PATCH v5 13/13] build: add dependency on telemetry to apps in meson Kevin Laatz
2018-10-18 8:07 ` [dpdk-dev] [PATCH v5 00/13] introduce telemetry library Mattias Rönnblom
2018-10-19 10:16 ` Laatz, Kevin
2018-10-22 7:11 ` Mattias Rönnblom
2018-10-22 9:03 ` Laatz, Kevin
2018-10-22 11:00 ` [dpdk-dev] [PATCH v6 " Kevin Laatz
2018-10-22 11:00 ` [dpdk-dev] [PATCH v6 01/13] eal: add option register infrastructure Kevin Laatz
2018-10-22 11:00 ` [dpdk-dev] [PATCH v6 02/13] eal: make get runtime dir function public Kevin Laatz
2018-10-22 11:00 ` [dpdk-dev] [PATCH v6 03/13] telemetry: initial telemetry infrastructure Kevin Laatz
2018-10-22 11:00 ` [dpdk-dev] [PATCH v6 04/13] telemetry: add initial connection socket Kevin Laatz
2018-10-22 13:50 ` Mattias Rönnblom
2018-10-22 11:00 ` [dpdk-dev] [PATCH v6 05/13] telemetry: add client feature and sockets Kevin Laatz
2018-10-22 14:05 ` Mattias Rönnblom
2018-10-23 8:42 ` Laatz, Kevin
2018-10-22 11:00 ` [dpdk-dev] [PATCH v6 06/13] telemetry: add parser for client socket messages Kevin Laatz
2018-10-22 11:00 ` [dpdk-dev] [PATCH v6 07/13] telemetry: update metrics before sending stats Kevin Laatz
2018-10-22 11:00 ` [dpdk-dev] [PATCH v6 08/13] telemetry: format json response when " Kevin Laatz
2018-10-22 11:00 ` [dpdk-dev] [PATCH v6 09/13] telemetry: add tests for telemetry api Kevin Laatz
2018-10-22 11:00 ` [dpdk-dev] [PATCH v6 10/13] telemetry: add ability to disable selftest Kevin Laatz
2018-10-22 11:00 ` [dpdk-dev] [PATCH v6 11/13] doc: add telemetry documentation Kevin Laatz
2018-10-22 12:25 ` Kovacevic, Marko
2018-10-22 11:00 ` [dpdk-dev] [PATCH v6 12/13] usertools: add client python script for telemetry Kevin Laatz
2018-10-22 11:00 ` [dpdk-dev] [PATCH v6 13/13] build: add dependency on telemetry to apps in meson Kevin Laatz
2018-10-24 13:27 ` [dpdk-dev] [PATCH v7 00/13] introduce telemetry library Kevin Laatz
2018-10-24 13:27 ` [dpdk-dev] [PATCH v7 01/13] eal: add option register infrastructure Kevin Laatz
2018-10-24 14:01 ` Gaëtan Rivet
2018-10-24 14:33 ` Thomas Monjalon
2018-10-24 14:52 ` Laatz, Kevin
2018-10-24 15:05 ` Laatz, Kevin
2018-10-24 13:27 ` [dpdk-dev] [PATCH v7 02/13] eal: make get runtime dir function public Kevin Laatz
2018-10-24 13:27 ` [dpdk-dev] [PATCH v7 03/13] telemetry: initial telemetry infrastructure Kevin Laatz
2018-10-24 13:27 ` [dpdk-dev] [PATCH v7 04/13] telemetry: add initial connection socket Kevin Laatz
2018-10-24 13:27 ` [dpdk-dev] [PATCH v7 05/13] telemetry: add client feature and sockets Kevin Laatz
2018-10-24 13:27 ` [dpdk-dev] [PATCH v7 06/13] telemetry: add parser for client socket messages Kevin Laatz
2018-10-24 13:27 ` [dpdk-dev] [PATCH v7 07/13] telemetry: update metrics before sending stats Kevin Laatz
2018-10-24 13:27 ` [dpdk-dev] [PATCH v7 08/13] telemetry: format json response when " Kevin Laatz
2018-10-24 13:27 ` [dpdk-dev] [PATCH v7 09/13] telemetry: add tests for telemetry api Kevin Laatz
2018-10-24 13:27 ` [dpdk-dev] [PATCH v7 10/13] telemetry: add ability to disable selftest Kevin Laatz
2018-10-24 13:27 ` [dpdk-dev] [PATCH v7 11/13] doc: add telemetry documentation Kevin Laatz
2018-10-24 13:27 ` [dpdk-dev] [PATCH v7 12/13] usertools: add client python script for telemetry Kevin Laatz
2018-10-24 13:27 ` [dpdk-dev] [PATCH v7 13/13] build: add dependency on telemetry to apps in meson Kevin Laatz
2018-10-24 14:13 ` [dpdk-dev] [PATCH v7 00/13] introduce telemetry library Thomas Monjalon
2018-10-24 14:49 ` Laatz, Kevin
2018-10-24 16:02 ` [dpdk-dev] [PATCH v8 " Kevin Laatz
2018-10-24 16:02 ` [dpdk-dev] [PATCH v8 01/13] eal: add option register infrastructure Kevin Laatz
2018-10-24 16:03 ` [dpdk-dev] [PATCH v8 02/13] eal: make get runtime dir function public Kevin Laatz
2018-10-24 16:03 ` [dpdk-dev] [PATCH v8 03/13] telemetry: initial telemetry infrastructure Kevin Laatz
2018-10-25 20:33 ` Thomas Monjalon
2018-10-24 16:03 ` [dpdk-dev] [PATCH v8 04/13] telemetry: add initial connection socket Kevin Laatz
2018-10-24 16:03 ` [dpdk-dev] [PATCH v8 05/13] telemetry: add client feature and sockets Kevin Laatz
2018-10-25 20:29 ` Thomas Monjalon
2018-10-25 20:41 ` Thomas Monjalon
2018-10-25 20:44 ` Bruce Richardson
2018-10-25 20:49 ` Thomas Monjalon
2018-10-25 21:16 ` Richardson, Bruce
2018-10-25 23:58 ` Thomas Monjalon
2018-10-24 16:03 ` [dpdk-dev] [PATCH v8 06/13] telemetry: add parser for client socket messages Kevin Laatz
2018-10-24 16:03 ` [dpdk-dev] [PATCH v8 07/13] telemetry: update metrics before sending stats Kevin Laatz
2018-10-24 16:03 ` [dpdk-dev] [PATCH v8 08/13] telemetry: format json response when " Kevin Laatz
2018-10-24 16:03 ` [dpdk-dev] [PATCH v8 09/13] telemetry: add tests for telemetry api Kevin Laatz
2018-10-24 16:03 ` [dpdk-dev] [PATCH v8 10/13] telemetry: add ability to disable selftest Kevin Laatz
2018-10-24 16:03 ` [dpdk-dev] [PATCH v8 11/13] doc: add telemetry documentation Kevin Laatz
2018-10-25 20:31 ` Thomas Monjalon
2018-10-24 16:03 ` [dpdk-dev] [PATCH v8 12/13] usertools: add client python script for telemetry Kevin Laatz
2018-10-24 16:03 ` [dpdk-dev] [PATCH v8 13/13] build: add dependency on telemetry to apps in meson Kevin Laatz
2018-10-26 23:59 ` [dpdk-dev] [PATCH v9 00/12] Introduce Telemetry Library Harry van Haaren
2018-10-26 23:59 ` [dpdk-dev] [PATCH v9 01/12] eal: add option register infrastructure Harry van Haaren
2018-10-26 23:59 ` [dpdk-dev] [PATCH v9 02/12] eal: make get runtime dir function public Harry van Haaren
2018-10-26 23:59 ` [dpdk-dev] [PATCH v9 03/12] telemetry: initial telemetry infrastructure Harry van Haaren
2018-10-27 1:56 ` Thomas Monjalon
2018-10-27 2:19 ` Van Haaren, Harry
2018-10-27 2:33 ` Thomas Monjalon
2018-10-26 23:59 ` [dpdk-dev] [PATCH v9 04/12] telemetry: add initial connection socket Harry van Haaren
2018-10-26 23:59 ` [dpdk-dev] [PATCH v9 05/12] telemetry: add client feature and sockets Harry van Haaren
2018-10-26 23:59 ` [dpdk-dev] [PATCH v9 06/12] telemetry: add parser for client socket messages Harry van Haaren
2018-10-26 23:59 ` [dpdk-dev] [PATCH v9 07/12] telemetry: update metrics before sending stats Harry van Haaren
2018-10-26 23:59 ` [dpdk-dev] [PATCH v9 08/12] telemetry: format json response when " Harry van Haaren
2018-10-26 23:59 ` [dpdk-dev] [PATCH v9 09/12] telemetry: add ability to disable selftest Harry van Haaren
2018-10-26 23:59 ` [dpdk-dev] [PATCH v9 10/12] doc: add telemetry documentation Harry van Haaren
2018-10-26 23:59 ` [dpdk-dev] [PATCH v9 11/12] usertools: add client python script for telemetry Harry van Haaren
2018-10-26 23:59 ` [dpdk-dev] [PATCH v9 12/12] build: add dependency on telemetry to apps in meson Harry van Haaren
2018-10-27 9:17 ` [dpdk-dev] [PATCH v10 00/12] Introduce Telemetry Library Harry van Haaren
2018-10-27 9:17 ` [dpdk-dev] [PATCH v10 01/12] eal: add option register infrastructure Harry van Haaren
2018-10-27 9:17 ` [dpdk-dev] [PATCH v10 02/12] eal: make get runtime dir function public Harry van Haaren
2018-10-27 9:17 ` [dpdk-dev] [PATCH v10 03/12] telemetry: initial telemetry infrastructure Harry van Haaren
2018-10-27 9:17 ` [dpdk-dev] [PATCH v10 04/12] telemetry: add initial connection socket Harry van Haaren
2018-10-27 9:17 ` [dpdk-dev] [PATCH v10 05/12] telemetry: add client feature and sockets Harry van Haaren
2018-10-27 9:17 ` [dpdk-dev] [PATCH v10 06/12] telemetry: add parser for client socket messages Harry van Haaren
2018-10-27 9:17 ` [dpdk-dev] [PATCH v10 07/12] telemetry: update metrics before sending stats Harry van Haaren
2018-10-27 9:17 ` [dpdk-dev] [PATCH v10 08/12] telemetry: format json response when " Harry van Haaren
2018-10-27 9:17 ` [dpdk-dev] [PATCH v10 09/12] telemetry: add ability to disable selftest Harry van Haaren
2018-10-27 9:17 ` [dpdk-dev] [PATCH v10 10/12] doc: add telemetry documentation Harry van Haaren
2018-10-27 9:17 ` [dpdk-dev] [PATCH v10 11/12] usertools: add client python script for telemetry Harry van Haaren
2018-10-27 9:17 ` [dpdk-dev] [PATCH v10 12/12] build: add dependency on telemetry to apps in meson Harry van Haaren
2018-10-27 13:24 ` [dpdk-dev] [PATCH v10 00/12] Introduce Telemetry Library Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181010105134.48079-8-kevin.laatz@intel.com \
--to=kevin.laatz@intel.com \
--cc=brian.archbold@intel.com \
--cc=bruce.richardson@intel.com \
--cc=ciara.power@intel.com \
--cc=dev@dpdk.org \
--cc=gaetan.rivet@6wind.com \
--cc=harry.van.haaren@intel.com \
--cc=mattias.ronnblom@ericsson.com \
--cc=shreyansh.jain@nxp.com \
--cc=stephen@networkplumber.org \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).