]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
stats: event export - Add log transport support
authorJosef 'Jeff' Sipek <jeff.sipek@open-xchange.com>
Thu, 4 Apr 2019 11:24:24 +0000 (14:24 +0300)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Tue, 25 Jun 2019 12:17:39 +0000 (12:17 +0000)
This commit adds support for transport=log.

The log transport ignores transport_args.

src/stats/Makefile.am
src/stats/event-exporter-transport-log.c [new file with mode: 0644]
src/stats/event-exporter.h
src/stats/stats-metrics.c
src/stats/stats-settings.c

index 97200a27d0b4eafb9877b4d6a706c5cb84cf55e5..3be93f38e0646abd40e416754a97cb04e0f5464f 100644 (file)
@@ -20,6 +20,7 @@ stats_SOURCES = \
        event-exporter-fmt-json.c \
        event-exporter-fmt-none.c \
        event-exporter-transport-drop.c \
+       event-exporter-transport-log.c \
        main.c \
        stats-event-category.c \
        stats-metrics.c \
diff --git a/src/stats/event-exporter-transport-log.c b/src/stats/event-exporter-transport-log.c
new file mode 100644 (file)
index 0000000..a0cf67f
--- /dev/null
@@ -0,0 +1,12 @@
+/* Copyright (c) 2019 Dovecot authors, see the included COPYING file */
+
+#include "lib.h"
+#include "ioloop.h"
+#include "str.h"
+#include "event-exporter.h"
+
+void event_export_transport_log(const struct exporter *exporter ATTR_UNUSED,
+                               const buffer_t *buf)
+{
+       i_info("%.*s", (int)buf->used, (const char *)buf->data);
+}
index 9cff61a43d40849ddc12eda3f08aab2ec5f21f97..a203f45215466a7c48ecf23981175114ea934d8c 100644 (file)
@@ -9,6 +9,7 @@ void event_export_fmt_none(const struct metric *metric, struct event *event, buf
 
 /* transport functions */
 void event_export_transport_drop(const struct exporter *exporter, const buffer_t *buf);
+void event_export_transport_log(const struct exporter *exporter, const buffer_t *buf);
 
 /* append a microsecond resolution RFC3339 UTC timestamp */
 void event_export_helper_fmt_rfc3339_time(string_t *dest, const struct timeval *time);
index bd33e688cbed037f259029ed3b792accccb6d582..20763603c4c6f2716a84e149b09afa9017cf8af4 100644 (file)
@@ -81,6 +81,8 @@ static void stats_exporters_add_set(struct stats_metrics *metrics,
         */
        if (strcmp(set->transport, "drop") == 0) {
                exporter->transport = event_export_transport_drop;
+       } else if (strcmp(set->transport, "log") == 0) {
+               exporter->transport = event_export_transport_log;
        } else {
                i_unreached();
        }
@@ -216,6 +218,7 @@ static void stats_metric_free(struct metric *metric)
 static void stats_export_deinit(void)
 {
        /* no need for event_export_transport_drop_deinit() - no-op */
+       /* no need for event_export_transport_log_deinit() - no-op */
 }
 
 void stats_metrics_deinit(struct stats_metrics **_metrics)
index 0a614fef69aeeb7c86a0c9cbd98a636759f615ee..2202d24b96b6d78f5eaf9cb85d27667a5234a62d 100644 (file)
@@ -250,7 +250,8 @@ static bool stats_exporter_settings_check(void *_set, pool_t pool ATTR_UNUSED,
        if (set->transport[0] == '\0') {
                *error_r = "Exporter transport name can't be empty";
                return FALSE;
-       } else if (strcmp(set->transport, "drop") == 0) {
+       } else if (strcmp(set->transport, "drop") == 0 ||
+                  strcmp(set->transport, "log") == 0) {
                /* no-op */
        } else {
                *error_r = t_strdup_printf("Unknown transport type '%s'",