summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Klishin <klishinm@vmware.com>2022-06-07 08:41:25 +0400
committerGitHub <noreply@github.com>2022-06-07 08:41:25 +0400
commita8dd5ac456438ef54ed13c2920afead1a4be4b65 (patch)
treedb33a46b63f3c494356f0d8eac61c2fb89abbe4f
parentaced9fb7ee4032b9be3bc1d1245ddc00ae8c9453 (diff)
parentaf094c5628560b5a093582ed415ce07fa7dccc9e (diff)
downloadrabbitmq-server-git-oid.tar.gz
Merge pull request #4950 from rabbitmq/mergify/bp/v3.10.x/pr-4928oid
Seshat 0.3.2 (backport #4928)
-rw-r--r--MODULE.bazel15
-rw-r--r--deps/rabbit/Makefile4
-rw-r--r--deps/rabbit/src/rabbit_global_counters.erl16
-rw-r--r--deps/rabbit/src/rabbit_stream_queue.erl47
-rw-r--r--workspace_helpers.bzl26
5 files changed, 54 insertions, 54 deletions
diff --git a/MODULE.bazel b/MODULE.bazel
index ab3dd7e837..18d3c64f87 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -130,7 +130,14 @@ erlang_package.hex(
erlang_package.git(
repository = "rabbitmq/osiris",
- tag = "v1.2.6",
+ branch = "main",
+ patch_cmds = ["""
+VERSION=$(git rev-parse HEAD)
+echo "Injecting ${VERSION} into Makefile..."
+sed -i"_orig" -E '/PROJECT_VERSION/ s/[0-9]+\\.[0-9]+\\.[0-9]+/'${VERSION}'/' Makefile
+echo "Injecting ${VERSION} into BUILD.bazel..."
+sed -i"_orig" -E '/VERSION/ s/[0-9]+\\.[0-9]+\\.[0-9]+/'${VERSION}'/' BUILD.bazel
+"""],
)
erlang_package.hex(
@@ -186,9 +193,9 @@ erlang_package.hex(
sha256 = "3624feb7a4b78fd9ae0e66cc3158fe7422770ad6987a1ebf8df4d3303b1c4b0c",
)
-erlang_package.git(
- repository = "rabbitmq/seshat",
- tag = "0.1.0",
+erlang_package.hex(
+ name = "seshat",
+ version = "0.3.2",
)
erlang_package.hex(
diff --git a/deps/rabbit/Makefile b/deps/rabbit/Makefile
index 5193fd7367..5e45f5b84d 100644
--- a/deps/rabbit/Makefile
+++ b/deps/rabbit/Makefile
@@ -145,9 +145,9 @@ TEST_DEPS = rabbitmq_ct_helpers rabbitmq_ct_client_helpers amqp_client meck prop
PLT_APPS += mnesia
dep_syslog = git https://github.com/schlagert/syslog 4.0.0
-dep_osiris = git https://github.com/rabbitmq/osiris v1.2.6
+dep_osiris = git https://github.com/rabbitmq/osiris main
dep_systemd = hex 0.6.1
-dep_seshat = git https://github.com/rabbitmq/seshat 0.1.0
+dep_seshat = hex 0.3.2
define usage_xml_to_erl
$(subst __,_,$(patsubst $(DOCS_DIR)/rabbitmq%.1.xml, src/rabbit_%_usage.erl, $(subst -,_,$(1))))
diff --git a/deps/rabbit/src/rabbit_global_counters.erl b/deps/rabbit/src/rabbit_global_counters.erl
index 6b1377f228..6787556fe5 100644
--- a/deps/rabbit/src/rabbit_global_counters.erl
+++ b/deps/rabbit/src/rabbit_global_counters.erl
@@ -186,23 +186,23 @@ init(Labels) ->
init(Labels, []).
init(Labels = [{protocol, Protocol}, {queue_type, QueueType}], Extra) ->
- _ = seshat_counters:new_group(?MODULE),
- Counters = seshat_counters:new(?MODULE, Labels, ?PROTOCOL_QUEUE_TYPE_COUNTERS ++ Extra),
+ _ = seshat:new_group(?MODULE),
+ Counters = seshat:new(?MODULE, Labels, ?PROTOCOL_QUEUE_TYPE_COUNTERS ++ Extra),
persistent_term:put({?MODULE, Protocol, QueueType}, Counters);
init(Labels = [{protocol, Protocol}], Extra) ->
- _ = seshat_counters:new_group(?MODULE),
- Counters = seshat_counters:new(?MODULE, Labels, ?PROTOCOL_COUNTERS ++ Extra),
+ _ = seshat:new_group(?MODULE),
+ Counters = seshat:new(?MODULE, Labels, ?PROTOCOL_COUNTERS ++ Extra),
persistent_term:put({?MODULE, Protocol}, Counters);
init(Labels = [{queue_type, QueueType}, {dead_letter_strategy, DLS}], Extra) ->
- _ = seshat_counters:new_group(?MODULE),
- Counters = seshat_counters:new(?MODULE, Labels, ?MESSAGES_DEAD_LETTERED_COUNTERS ++ Extra),
+ _ = seshat:new_group(?MODULE),
+ Counters = seshat:new(?MODULE, Labels, ?MESSAGES_DEAD_LETTERED_COUNTERS ++ Extra),
persistent_term:put({?MODULE, QueueType, DLS}, Counters).
overview() ->
- seshat_counters:overview(?MODULE).
+ seshat:overview(?MODULE).
prometheus_format() ->
- seshat_counters:prometheus_format(?MODULE).
+ seshat:format(?MODULE).
increase_protocol_counter(Protocol, Counter, Num) ->
counters:add(fetch(Protocol), Counter, Num).
diff --git a/deps/rabbit/src/rabbit_stream_queue.erl b/deps/rabbit/src/rabbit_stream_queue.erl
index 6307bb75e9..7c0d2318f3 100644
--- a/deps/rabbit/src/rabbit_stream_queue.erl
+++ b/deps/rabbit/src/rabbit_stream_queue.erl
@@ -42,7 +42,8 @@
-export([parse_offset_arg/1]).
-export([status/2,
- tracking_status/2]).
+ tracking_status/2,
+ get_overview/1]).
-include_lib("rabbit_common/include/rabbit.hrl").
-include("amqqueue.hrl").
@@ -561,9 +562,13 @@ i(committed_offset, Q) ->
%% TODO should it be on a metrics table?
%% The queue could be removed between the list() and this call
%% to retrieve the overview. Let's default to '' if it's gone.
- Data = osiris_counters:overview(),
- maps:get(committed_offset,
- maps:get({osiris_writer, amqqueue:get_name(Q)}, Data, #{}), '');
+ Key = {osiris_writer, amqqueue:get_name(Q)},
+ case osiris_counters:overview(Key) of
+ undefined ->
+ '';
+ Data ->
+ maps:get(committed_offset, Data, '')
+ end;
i(policy, Q) ->
case rabbit_policy:name(Q) of
none -> '';
@@ -602,7 +607,6 @@ status(Vhost, QueueName) ->
{error, quorum_queue_not_supported};
{ok, Q} when ?amqqueue_is_stream(Q) ->
_Pid = amqqueue:get_pid(Q),
- % Max = maps:get(max_segment_size_bytes, Conf, osiris_log:get_default_max_segment_size_bytes()),
[begin
[{role, Role},
get_key(node, C),
@@ -624,33 +628,31 @@ get_counters(Q) ->
{ok, Members} = rabbit_stream_coordinator:members(StreamId),
QName = amqqueue:get_name(Q),
Counters = [begin
- Data = safe_get_overview(Node),
- get_counter(QName, Data, #{node => Node})
+ safe_get_overview(Node, QName)
end || Node <- maps:keys(Members)],
lists:filter(fun (X) -> X =/= undefined end, Counters).
-safe_get_overview(Node) ->
- case rpc:call(Node, osiris_counters, overview, []) of
+safe_get_overview(Node, QName) ->
+ case rpc:call(Node, ?MODULE, get_overview, [QName]) of
{badrpc, _} ->
#{node => Node};
- Data ->
- Data
+ Result ->
+ Result
end.
-get_counter(QName, Data, Add) ->
- case maps:get({osiris_writer, QName}, Data, undefined) of
+get_overview(QName) ->
+ case osiris_counters:overview({osiris_writer, QName}) of
undefined ->
- case maps:get({osiris_replica, QName}, Data, undefined) of
+ case osiris_counters:overview({osiris_replica, QName}) of
undefined ->
- {undefined, Add};
+ undefined;
M ->
- {replica, maps:merge(Add, M)}
+ {replica, M#{node => node()}}
end;
M ->
- {writer, maps:merge(Add, M)}
+ {writer, M#{node => node()}}
end.
-
-spec tracking_status(rabbit_types:vhost(), Name :: rabbit_misc:resource_name()) ->
[[{atom(), term()}]] | {error, term()}.
tracking_status(Vhost, QueueName) ->
@@ -679,13 +681,8 @@ tracking_status(Vhost, QueueName) ->
readers(QName) ->
try
- Data = osiris_counters:overview(),
- Readers = case maps:get({osiris_writer, QName}, Data, not_found) of
- not_found ->
- maps:get(readers, maps:get({osiris_replica, QName}, Data, #{}), 0);
- Map ->
- maps:get(readers, Map, 0)
- end,
+ {_Role, Counters} = get_overview(QName),
+ Readers = maps:get(readers, Counters, 0),
{node(), Readers}
catch
_:_ ->
diff --git a/workspace_helpers.bzl b/workspace_helpers.bzl
index a269749564..395ff21b20 100644
--- a/workspace_helpers.bzl
+++ b/workspace_helpers.bzl
@@ -152,13 +152,10 @@ erlang_app(
sha256 = "a41b6d3e11a3444e063e09cc225f7f3e631ce14019e5fbcaebfda89b1bd788ea",
)
- github_erlang_app(
+ git_repository(
name = "osiris",
- org = "rabbitmq",
- ref = "refs/tags/v1.2.6",
- version = "1.2.6",
- sha256 = "abfe9bc53b0eb1c14713152314f612562ecb76465b9f804313e3510b73e5720b",
- build_file = rabbitmq_workspace + "//:BUILD.osiris",
+ branch = "main",
+ remote = "https://github.com/rabbitmq/osiris.git",
)
hex_pm_erlang_app(
@@ -213,16 +210,15 @@ erlang_app(
sha256 = "2c7523c8dee91dff41f6b3d63cba2bd49eb6d2fe5bf1eec0df7f87eb5e230e1c",
)
- github_erlang_app(
+ hex_pm_erlang_app(
+ name = "redbug",
+ version = "2.0.7",
+ sha256 = "3624feb7a4b78fd9ae0e66cc3158fe7422770ad6987a1ebf8df4d3303b1c4b0c",
+ )
+
+ hex_pm_erlang_app(
name = "seshat",
- org = "rabbitmq",
- ref = "0.1.0",
- version = "0.1.0",
- extra_apps = [
- "sasl",
- "crypto",
- ],
- sha256 = "fd20039322eabed814d0dfe75743652846007ec93faae3e141c9602c21152b14",
+ version = "0.3.2",
)
hex_pm_erlang_app(