summaryrefslogtreecommitdiffstats
path: root/src/collectors/systemd-journal.plugin/systemd-journal-files.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/collectors/systemd-journal.plugin/systemd-journal-files.c (renamed from collectors/systemd-journal.plugin/systemd-journal-files.c)154
1 files changed, 77 insertions, 77 deletions
diff --git a/collectors/systemd-journal.plugin/systemd-journal-files.c b/src/collectors/systemd-journal.plugin/systemd-journal-files.c
index 56496df22..a05cd1c5c 100644
--- a/collectors/systemd-journal.plugin/systemd-journal-files.c
+++ b/src/collectors/systemd-journal.plugin/systemd-journal-files.c
@@ -39,74 +39,74 @@ static bool journal_sd_id128_parse(const char *in, sd_id128_t *ret) {
return false;
}
-static void journal_file_get_header_from_journalctl(const char *filename, struct journal_file *jf) {
- // unfortunately, our capabilities are not inheritted by journalctl
- // so, it fails to give us the information we need.
-
- bool read_writer = false, read_head = false, read_tail = false;
-
- char cmd[FILENAME_MAX * 2];
- snprintfz(cmd, sizeof(cmd), "journalctl --header --file '%s'", filename);
- CLEAN_BUFFER *wb = run_command_and_get_output_to_buffer(cmd, 1024);
- if(wb) {
- const char *s = buffer_tostring(wb);
-
- const char *sequential_id_header = "Sequential Number ID:";
- const char *sequential_id_data = strcasestr(s, sequential_id_header);
- if(sequential_id_data) {
- sequential_id_data += strlen(sequential_id_header);
- if(journal_sd_id128_parse(sequential_id_data, &jf->first_writer_id))
- read_writer = true;
- }
-
- const char *head_sequential_number_header = "Head sequential number:";
- const char *head_sequential_number_data = strcasestr(s, head_sequential_number_header);
- if(head_sequential_number_data) {
- head_sequential_number_data += strlen(head_sequential_number_header);
-
- while(isspace(*head_sequential_number_data))
- head_sequential_number_data++;
-
- if(isdigit(*head_sequential_number_data)) {
- jf->first_seqnum = strtoul(head_sequential_number_data, NULL, 10);
- if(jf->first_seqnum)
- read_head = true;
- }
- }
-
- const char *tail_sequential_number_header = "Tail sequential number:";
- const char *tail_sequential_number_data = strcasestr(s, tail_sequential_number_header);
- if(tail_sequential_number_data) {
- tail_sequential_number_data += strlen(tail_sequential_number_header);
-
- while(isspace(*tail_sequential_number_data))
- tail_sequential_number_data++;
-
- if(isdigit(*tail_sequential_number_data)) {
- jf->last_seqnum = strtoul(tail_sequential_number_data, NULL, 10);
- if(jf->last_seqnum)
- read_tail = true;
- }
- }
-
- if(read_head && read_tail && jf->last_seqnum > jf->first_seqnum)
- jf->messages_in_file = jf->last_seqnum - jf->first_seqnum;
- }
-
- if(!jf->logged_journalctl_failure && (!read_head || !read_head || !read_tail)) {
-
- nd_log(NDLS_COLLECTORS, NDLP_NOTICE,
- "Failed to read %s%s%s from journalctl's output on filename '%s', using the command: %s",
- read_writer?"":"writer id,",
- read_head?"":"head id,",
- read_tail?"":"tail id,",
- filename, cmd);
-
- jf->logged_journalctl_failure = true;
- }
-}
-
-usec_t journal_file_update_annotation_boot_id(sd_journal *j, struct journal_file *jf, const char *boot_id) {
+//static void journal_file_get_header_from_journalctl(const char *filename, struct journal_file *jf) {
+// // unfortunately, our capabilities are not inheritted by journalctl
+// // so, it fails to give us the information we need.
+//
+// bool read_writer = false, read_head = false, read_tail = false;
+//
+// char cmd[FILENAME_MAX * 2];
+// snprintfz(cmd, sizeof(cmd), "journalctl --header --file '%s'", filename);
+// CLEAN_BUFFER *wb = run_command_and_get_output_to_buffer(cmd, 1024);
+// if(wb) {
+// const char *s = buffer_tostring(wb);
+//
+// const char *sequential_id_header = "Sequential Number ID:";
+// const char *sequential_id_data = strcasestr(s, sequential_id_header);
+// if(sequential_id_data) {
+// sequential_id_data += strlen(sequential_id_header);
+// if(journal_sd_id128_parse(sequential_id_data, &jf->first_writer_id))
+// read_writer = true;
+// }
+//
+// const char *head_sequential_number_header = "Head sequential number:";
+// const char *head_sequential_number_data = strcasestr(s, head_sequential_number_header);
+// if(head_sequential_number_data) {
+// head_sequential_number_data += strlen(head_sequential_number_header);
+//
+// while(isspace(*head_sequential_number_data))
+// head_sequential_number_data++;
+//
+// if(isdigit(*head_sequential_number_data)) {
+// jf->first_seqnum = strtoul(head_sequential_number_data, NULL, 10);
+// if(jf->first_seqnum)
+// read_head = true;
+// }
+// }
+//
+// const char *tail_sequential_number_header = "Tail sequential number:";
+// const char *tail_sequential_number_data = strcasestr(s, tail_sequential_number_header);
+// if(tail_sequential_number_data) {
+// tail_sequential_number_data += strlen(tail_sequential_number_header);
+//
+// while(isspace(*tail_sequential_number_data))
+// tail_sequential_number_data++;
+//
+// if(isdigit(*tail_sequential_number_data)) {
+// jf->last_seqnum = strtoul(tail_sequential_number_data, NULL, 10);
+// if(jf->last_seqnum)
+// read_tail = true;
+// }
+// }
+//
+// if(read_head && read_tail && jf->last_seqnum > jf->first_seqnum)
+// jf->messages_in_file = jf->last_seqnum - jf->first_seqnum;
+// }
+//
+// if(!jf->logged_journalctl_failure && (!read_head || !read_tail)) {
+//
+// nd_log(NDLS_COLLECTORS, NDLP_NOTICE,
+// "Failed to read %s%s%s from journalctl's output on filename '%s', using the command: %s",
+// read_writer?"":"writer id,",
+// read_head?"":"head id,",
+// read_tail?"":"tail id,",
+// filename, cmd);
+//
+// jf->logged_journalctl_failure = true;
+// }
+//}
+
+usec_t journal_file_update_annotation_boot_id(sd_journal *j, struct journal_file *jf __maybe_unused, const char *boot_id) {
usec_t ut = UINT64_MAX;
int r;
@@ -447,7 +447,7 @@ static void files_registry_insert_cb(const DICTIONARY_ITEM *item, void *value, v
jf->filename);
}
-static bool files_registry_conflict_cb(const DICTIONARY_ITEM *item, void *old_value, void *new_value, void *data __maybe_unused) {
+static bool files_registry_conflict_cb(const DICTIONARY_ITEM *item __maybe_unused, void *old_value, void *new_value, void *data __maybe_unused) {
struct journal_file *jf = old_value;
struct journal_file *njf = new_value;
@@ -639,7 +639,7 @@ void journal_directory_scan_recursively(DICTIONARY *files, DICTIONARY *dirs, con
if(files)
dictionary_set(files, full_path, NULL, 0);
- send_newline_and_flush();
+ send_newline_and_flush(&stdout_mutex);
}
else if (entry->d_type == DT_LNK) {
struct stat info;
@@ -657,7 +657,7 @@ void journal_directory_scan_recursively(DICTIONARY *files, DICTIONARY *dirs, con
if(files)
dictionary_set(files, full_path, NULL, 0);
- send_newline_and_flush();
+ send_newline_and_flush(&stdout_mutex);
}
}
}
@@ -715,7 +715,7 @@ void journal_files_registry_update(void) {
for(unsigned i = 0; i < MAX_JOURNAL_DIRECTORIES; i++) {
if(!journal_directories[i].path) break;
- journal_directory_scan_recursively(files, dirs, journal_directories[i].path, 0);
+ journal_directory_scan_recursively(files, dirs, string2str(journal_directories[i].path), 0);
}
const char **array = mallocz(sizeof(const char *) * dictionary_entries(files));
@@ -801,7 +801,7 @@ int journal_file_dict_items_forward_compar(const void *a, const void *b) {
return -journal_file_dict_items_backward_compar(a, b);
}
-static bool boot_id_conflict_cb(const DICTIONARY_ITEM *item, void *old_value, void *new_value, void *data __maybe_unused) {
+static bool boot_id_conflict_cb(const DICTIONARY_ITEM *item __maybe_unused, void *old_value, void *new_value, void *data __maybe_unused) {
usec_t *old_usec = old_value;
usec_t *new_usec = new_value;
@@ -819,15 +819,15 @@ void journal_init_files_and_directories(void) {
// ------------------------------------------------------------------------
// setup the journal directories
- journal_directories[d++].path = strdupz("/run/log/journal");
- journal_directories[d++].path = strdupz("/var/log/journal");
+ journal_directories[d++].path = string_strdupz("/run/log/journal");
+ journal_directories[d++].path = string_strdupz("/var/log/journal");
if(*netdata_configured_host_prefix) {
char path[PATH_MAX];
snprintfz(path, sizeof(path), "%s/var/log/journal", netdata_configured_host_prefix);
- journal_directories[d++].path = strdupz(path);
+ journal_directories[d++].path = string_strdupz(path);
snprintfz(path, sizeof(path), "%s/run/log/journal", netdata_configured_host_prefix);
- journal_directories[d++].path = strdupz(path);
+ journal_directories[d++].path = string_strdupz(path);
}
// terminate the list