@cryptotaxi247 / netdata-1 / commits / 714446c1c

Function systemd-journal: always have a nd_journal_process (#15798)

Costa Tsaousis committed Aug 13, 2023 at 11:34 UTC 714446c1c038112571c27c2429d5e40da01b2ca5
3 files changed +15 -5
collectors/systemd-journal.plugin/systemd-journal.c
+13 -4
@@ -305,14 +305,23 @@ static void systemd_journal_transform_gid(FACETS *facets __maybe_unused, BUFFER
305 }
306
307 static void systemd_journal_dynamic_row_id(FACETS *facets __maybe_unused, BUFFER *json_array, FACET_ROW_KEY_VALUE *rkv, FACET_ROW *row, void *data __maybe_unused) {
308 - FACET_ROW_KEY_VALUE *syslog_identifier_rkv = dictionary_get(row->dict, "SYSLOG_IDENTIFIER");
308 FACET_ROW_KEY_VALUE *pid_rkv = dictionary_get(row->dict, "_PID");
309 + const char *pid = pid_rkv ? buffer_tostring(pid_rkv->wb) : FACET_VALUE_UNSET;
310 +
311 + FACET_ROW_KEY_VALUE *syslog_identifier_rkv = dictionary_get(row->dict, "SYSLOG_IDENTIFIER");
312 + const char *identifier = syslog_identifier_rkv ? buffer_tostring(syslog_identifier_rkv->wb) : FACET_VALUE_UNSET;
313
311 - const char *identifier = syslog_identifier_rkv ? buffer_tostring(syslog_identifier_rkv->wb) : "UNKNOWN";
312 - const char *pid = pid_rkv ? buffer_tostring(pid_rkv->wb) : "UNKNOWN";
314 + if(strcmp(identifier, FACET_VALUE_UNSET) == 0) {
315 + FACET_ROW_KEY_VALUE *comm_rkv = dictionary_get(row->dict, "_COMM");
316 + identifier = comm_rkv ? buffer_tostring(comm_rkv->wb) : FACET_VALUE_UNSET;
317 + }
318
319 buffer_flush(rkv->wb);
315 - buffer_sprintf(rkv->wb, "%s[%s]", identifier, pid);
320 +
321 + if(strcmp(pid, FACET_VALUE_UNSET) == 0)
322 + buffer_strcat(rkv->wb, identifier);
323 + else
324 + buffer_sprintf(rkv->wb, "%s[%s]", identifier, pid);
325
326 buffer_json_add_array_item_string(json_array, buffer_tostring(rkv->wb));
327 }
libnetdata/facets/facets.c
-1
@@ -1,6 +1,5 @@
1 #include "facets.h"
2
3 -#define FACET_VALUE_UNSET "-"
3 #define HISTOGRAM_COLUMNS 60
4
5 static void facets_row_free(FACETS *facets __maybe_unused, FACET_ROW *row);
libnetdata/facets/facets.h
+2
@@ -3,6 +3,8 @@
3
4 #include "../libnetdata.h"
5
6 +#define FACET_VALUE_UNSET "-"
7 +
8 typedef enum __attribute__((packed)) {
9 FACET_KEY_OPTION_FACET = (1 << 0), // filterable values
10 FACET_KEY_OPTION_NO_FACET = (1 << 1), // non-filterable value