|
@@ -273,6 +273,7 @@ init({Id, Index, Opts}) ->
|
|
|
QueueOpts = replayq_opts(Id, Index, Opts),
|
|
QueueOpts = replayq_opts(Id, Index, Opts),
|
|
|
Queue = replayq:open(QueueOpts),
|
|
Queue = replayq:open(QueueOpts),
|
|
|
emqx_resource_metrics:queuing_set(Id, Index, queue_count(Queue)),
|
|
emqx_resource_metrics:queuing_set(Id, Index, queue_count(Queue)),
|
|
|
|
|
+ emqx_resource_metrics:queuing_bytes_set(Id, Index, queue_bytes(Queue)),
|
|
|
emqx_resource_metrics:inflight_set(Id, Index, 0),
|
|
emqx_resource_metrics:inflight_set(Id, Index, 0),
|
|
|
InflightWinSize = maps:get(inflight_window, Opts, ?DEFAULT_INFLIGHT),
|
|
InflightWinSize = maps:get(inflight_window, Opts, ?DEFAULT_INFLIGHT),
|
|
|
InflightTID = inflight_new(InflightWinSize),
|
|
InflightTID = inflight_new(InflightWinSize),
|
|
@@ -375,6 +376,7 @@ terminate(_Reason, #{id := Id, index := Index, queue := Q}) ->
|
|
|
%% since we want volatile queues, this will be 0 after
|
|
%% since we want volatile queues, this will be 0 after
|
|
|
%% termination.
|
|
%% termination.
|
|
|
emqx_resource_metrics:queuing_set(Id, Index, 0),
|
|
emqx_resource_metrics:queuing_set(Id, Index, 0),
|
|
|
|
|
+ emqx_resource_metrics:queuing_bytes_set(Id, Index, 0),
|
|
|
gproc_pool:disconnect_worker(Id, {Id, Index}),
|
|
gproc_pool:disconnect_worker(Id, {Id, Index}),
|
|
|
ok.
|
|
ok.
|
|
|
|
|
|
|
@@ -1207,6 +1209,7 @@ log_expired_message_count(_Data = #{id := Id, index := Index, counters := Counte
|
|
|
-spec set_gauges(data()) -> ok.
|
|
-spec set_gauges(data()) -> ok.
|
|
|
set_gauges(_Data = #{id := Id, index := Index, queue := Q, inflight_tid := InflightTID}) ->
|
|
set_gauges(_Data = #{id := Id, index := Index, queue := Q, inflight_tid := InflightTID}) ->
|
|
|
emqx_resource_metrics:queuing_set(Id, Index, queue_count(Q)),
|
|
emqx_resource_metrics:queuing_set(Id, Index, queue_count(Q)),
|
|
|
|
|
+ emqx_resource_metrics:queuing_bytes_set(Id, Index, queue_bytes(Q)),
|
|
|
emqx_resource_metrics:inflight_set(Id, Index, inflight_num_msgs(InflightTID)),
|
|
emqx_resource_metrics:inflight_set(Id, Index, inflight_num_msgs(InflightTID)),
|
|
|
ok.
|
|
ok.
|
|
|
|
|
|
|
@@ -2117,6 +2120,9 @@ assert_ok_result(R) ->
|
|
|
queue_count(Q) ->
|
|
queue_count(Q) ->
|
|
|
replayq:count(Q).
|
|
replayq:count(Q).
|
|
|
|
|
|
|
|
|
|
+queue_bytes(Q) ->
|
|
|
|
|
+ replayq:bytes(Q).
|
|
|
|
|
+
|
|
|
disk_queue_dir(Id, Index) ->
|
|
disk_queue_dir(Id, Index) ->
|
|
|
QDir0 = binary_to_list(Id) ++ ":" ++ integer_to_list(Index),
|
|
QDir0 = binary_to_list(Id) ++ ":" ++ integer_to_list(Index),
|
|
|
QDir = filename:join([emqx:data_dir(), "bufs", node(), QDir0]),
|
|
QDir = filename:join([emqx:data_dir(), "bufs", node(), QDir0]),
|