chiark / gitweb /
journald: mention how long we needed to flush to /var in the logs
authorLennart Poettering <lennart@poettering.net>
Wed, 27 Nov 2013 00:54:25 +0000 (01:54 +0100)
committerLennart Poettering <lennart@poettering.net>
Wed, 27 Nov 2013 01:39:19 +0000 (02:39 +0100)
src/journal/journald-server.c

index ce419d4..01e75b6 100644 (file)
@@ -970,9 +970,12 @@ static int system_journal_open(Server *s) {
 }
 
 int server_flush_to_var(Server *s) {
-        int r;
         sd_id128_t machine;
         sd_journal *j = NULL;
+        char ts[FORMAT_TIMESPAN_MAX];
+        usec_t start;
+        unsigned n = 0;
+        int r;
 
         assert(s);
 
@@ -990,6 +993,8 @@ int server_flush_to_var(Server *s) {
 
         log_debug("Flushing to /var...");
 
+        start = now(CLOCK_MONOTONIC);
+
         r = sd_id128_get_machine(&machine);
         if (r < 0)
                 return r;
@@ -1009,6 +1014,8 @@ int server_flush_to_var(Server *s) {
                 f = j->current_file;
                 assert(f && f->current_offset > 0);
 
+                n++;
+
                 r = journal_file_move_to_object(f, OBJECT_ENTRY, f->current_offset, &o);
                 if (r < 0) {
                         log_error("Can't read entry: %s", strerror(-r));
@@ -1052,6 +1059,8 @@ finish:
 
         sd_journal_close(j);
 
+        server_driver_message(s, SD_ID128_NULL, "Time spent on flushing to /var is %s for %u entries.", format_timespan(ts, sizeof(ts), now(CLOCK_MONOTONIC) - start, 0), n);
+
         return r;
 }