]> source.dussan.org Git - rspamd.git/commitdiff
return item status and reasons on bulk push error
authorDmitriy Alekseev <1865999+dragoangel@users.noreply.github.com>
Tue, 15 Oct 2024 21:50:48 +0000 (23:50 +0200)
committerDmitriy Alekseev <1865999+dragoangel@users.noreply.github.com>
Wed, 16 Oct 2024 08:34:43 +0000 (10:34 +0200)
src/plugins/lua/elastic.lua

index e90c70260d47801a9734c3f0b4ccfdcf193641d5..ae7e577f34b0d15ab777ca7795de6833892fdc7f 100644 (file)
@@ -380,7 +380,17 @@ local function elastic_send_data(flush_all, task, cfg, ev_base)
         push_done = true
         rspamd_logger.debugm(N, log_object, 'successfully sent payload with %s logs', nlogs_to_send)
         if obj['errors'] then
-          rspamd_logger.debugm(N, log_object, 'faced errors while pushing logs to elastic (%s): %s', obj['errors'])
+          for _, value in pairs(obj['items']) do
+            if value['index'] and value['index']['status'] >= 400 then
+              local status = value['index']['status']
+              local index = safe_get(value, 'index', '_index') or ''
+              local error_type = safe_get(value, 'index', 'error', 'type') or ''
+              local error_reason = safe_get(value, 'index', 'error', 'reason') or ''
+              rspamd_logger.warnx(log_object,
+                'error while pushing logs to elastic, status: %s, index: %s, type: %s, reason: %s',
+                status, index, error_type, error_reason)
+            end
+          end
         end
       else
         rspamd_logger.errx(log_object,