Kaynağa Gözat

Merge pull request #11115 from thalesmg/log-expired-msgs-buffer-workers-master-20230621

feat(buffer_worker): log expired message count
Thales Macedo Garitezi 2 yıl önce
ebeveyn
işleme
c76fa411db

+ 17 - 0
apps/emqx_resource/src/emqx_resource_buffer_worker.erl

@@ -927,6 +927,7 @@ merge_counters(OldCounters, DeltaCounters) ->
 flush_metrics(Data = #{id := Id, counters := Counters}) ->
     bump_counters(Id, Counters),
     set_gauges(Data),
+    log_expired_message_count(Data),
     ensure_metrics_flush_timer(Data#{counters := #{}}).
 
 -spec ensure_metrics_flush_timer(data()) -> data().
@@ -966,6 +967,22 @@ do_bump_counters1(dropped_resource_not_found, Val, Id) ->
 do_bump_counters1(dropped_resource_stopped, Val, Id) ->
     emqx_resource_metrics:dropped_resource_stopped_inc(Id, Val).
 
+-spec log_expired_message_count(data()) -> ok.
+log_expired_message_count(_Data = #{id := Id, index := Index, counters := Counters}) ->
+    ExpiredCount = maps:get(dropped_expired, Counters, 0),
+    case ExpiredCount > 0 of
+        false ->
+            ok;
+        true ->
+            ?SLOG(info, #{
+                msg => "buffer_worker_dropped_expired_messages",
+                resource_id => Id,
+                worker_index => Index,
+                expired_count => ExpiredCount
+            }),
+            ok
+    end.
+
 -spec set_gauges(data()) -> ok.
 set_gauges(_Data = #{id := Id, index := Index, queue := Q, inflight_tid := InflightTID}) ->
     emqx_resource_metrics:queuing_set(Id, Index, queue_count(Q)),

+ 1 - 0
changes/ce/feat-11115.en.md

@@ -0,0 +1 @@
+Added info logs to indicate when buffered messages are dropped due to time-to-live (TTL) expiration.

+ 3 - 1
mix.exs

@@ -95,7 +95,9 @@ defmodule EMQXUmbrella.MixProject do
        github: "emqx/ranch", ref: "de8ba2a00817c0a6eb1b8f20d6fb3e44e2c9a5aa", override: true},
       # in conflict by grpc and eetcd
       {:gpb, "4.19.7", override: true, runtime: false},
-      {:hackney, github: "emqx/hackney", tag: "1.18.1-1", override: true}
+      {:hackney, github: "emqx/hackney", tag: "1.18.1-1", override: true},
+      # set by hackney (dependency)
+      {:ssl_verify_fun, "1.1.6", override: true}
     ] ++
       emqx_apps(profile_info, version) ++
       enterprise_deps(profile_info) ++ bcrypt_dep() ++ jq_dep() ++ quicer_dep()