Skip to content

Commit cfc9a88

Browse files
author
Daniil Fedotov
committed
Write per queue upgrade log to a separate file
1 parent 475e86b commit cfc9a88

File tree

5 files changed

+43
-16
lines changed

5 files changed

+43
-16
lines changed

scripts/rabbitmq-env

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -236,9 +236,11 @@ rmq_normalize_path_var RABBITMQ_PLUGINS_DIR
236236
[ "x" = "x$RABBITMQ_LOGS" ] && RABBITMQ_LOGS=${LOGS}
237237
[ "x" != "x$RABBITMQ_LOGS" ] && export RABBITMQ_LOGS_source=environment
238238
[ "x" = "x$RABBITMQ_LOGS" ] && RABBITMQ_LOGS="${RABBITMQ_LOG_BASE}/${RABBITMQ_NODENAME}.log"
239+
[ "x" = "x$RABBITMQ_UPGRADE_LOG" ] && RABBITMQ_UPGRADE_LOG="${RABBITMQ_LOG_BASE}/${RABBITMQ_NODENAME}_upgrade.log"
239240

240-
rmq_normalize_path_var \
241-
RABBITMQ_LOGS
241+
rmq_normalize_path_var RABBITMQ_LOGS
242+
243+
rmq_normalize_path_var RABBITMQ_UPGRADE_LOG
242244

243245
[ "x" = "x$RABBITMQ_CTL_ERL_ARGS" ] && RABBITMQ_CTL_ERL_ARGS=${CTL_ERL_ARGS}
244246

@@ -254,7 +256,8 @@ rmq_check_if_shared_with_mnesia \
254256
RABBITMQ_PLUGINS_EXPAND_DIR \
255257
RABBITMQ_ENABLED_PLUGINS_FILE \
256258
RABBITMQ_PLUGINS_DIR \
257-
RABBITMQ_LOGS
259+
RABBITMQ_LOGS \
260+
RABBITMQ_UPGRADE_LOG
258261

259262
##--- End of overridden <var_name> variables
260263

scripts/rabbitmq-server

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,9 +156,11 @@ RABBITMQ_LISTEN_ARG=
156156
if [ "$RABBITMQ_LOGS" = '-' ]; then
157157
SASL_ERROR_LOGGER=tty
158158
RABBIT_LAGER_HANDLER=tty
159+
RABBITMQ_LAGER_HANDLER_UPGRADE=tty
159160
else
160161
SASL_ERROR_LOGGER=false
161162
RABBIT_LAGER_HANDLER='"'${RABBITMQ_LOGS}'"'
163+
RABBITMQ_LAGER_HANDLER_UPGRADE='"'${RABBITMQ_UPGRADE_LOG}'"'
162164
fi
163165

164166
# we need to turn off path expansion because some of the vars, notably
@@ -206,6 +208,7 @@ start_rabbitmq_server() {
206208
-sasl sasl_error_logger "$SASL_ERROR_LOGGER" \
207209
-rabbit lager_log_root "\"$RABBITMQ_LOG_BASE\"" \
208210
-rabbit lager_handler "$RABBIT_LAGER_HANDLER" \
211+
-rabbit lager_handler_upgrade "$RABBITMQ_LAGER_HANDLER_UPGRADE" \
209212
-rabbit enabled_plugins_file "\"$RABBITMQ_ENABLED_PLUGINS_FILE\"" \
210213
-rabbit plugins_dir "\"$RABBITMQ_PLUGINS_DIR\"" \
211214
-rabbit plugins_expand_dir "\"$RABBITMQ_PLUGINS_EXPAND_DIR\"" \

src/rabbit_lager.erl

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ configure_lager() ->
210210
%% messages to the default sink. To know the list of expected extra
211211
%% sinks, we look at the 'lager_extra_sinks' compilation option.
212212
Sinks0 = application:get_env(lager, extra_sinks, []),
213-
Sinks1 = configure_extra_sinks(Sinks0,
213+
Sinks1 = configure_extra_sinks(Sinks0,
214214
[error_logger | list_expected_sinks()]),
215215
%% TODO Waiting for basho/lager#303
216216
%% Sinks2 = lists:keystore(error_logger_lager_event, 1, Sinks1,
@@ -231,18 +231,26 @@ configure_lager() ->
231231
configure_extra_sinks(Sinks, [SinkName | Rest]) ->
232232
Sink0 = proplists:get_value(SinkName, Sinks, []),
233233
Sink1 = case proplists:is_defined(handlers, Sink0) of
234-
false -> lists:keystore(handlers, 1, Sink0,
235-
{handlers,
236-
[{lager_forwarder_backend,
237-
lager_util:make_internal_sink_name(lager)
238-
}]});
234+
false -> default_sink_config(SinkName, Sink0);
239235
true -> Sink0
240236
end,
241237
Sinks1 = lists:keystore(SinkName, 1, Sinks, {SinkName, Sink1}),
242238
configure_extra_sinks(Sinks1, Rest);
243239
configure_extra_sinks(Sinks, []) ->
244240
Sinks.
245241

242+
default_sink_config(rabbit_log_upgrade_lager_event, Sink) ->
243+
io:format("I AM UPGRADE SINK"),
244+
Handlers = lager_handlers(application:get_env(rabbit,
245+
lager_handler_upgrade,
246+
tty)),
247+
lists:keystore(handlers, 1, Sink, {handlers, Handlers});
248+
default_sink_config(_, Sink) ->
249+
lists:keystore(handlers, 1, Sink,
250+
{handlers,
251+
[{lager_forwarder_backend,
252+
lager_util:make_internal_sink_name(lager)}]}).
253+
246254
list_expected_sinks() ->
247255
case application:get_env(rabbit, lager_extra_sinks) of
248256
{ok, List} ->

src/rabbit_log.erl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ make_internal_sink_name(rabbit_log_channel) -> rabbit_log_channel_lager_event;
7979
make_internal_sink_name(rabbit_log_mirroring) -> rabbit_log_mirroring_lager_event;
8080
make_internal_sink_name(rabbit_log_queue) -> rabbit_log_queue_lager_event;
8181
make_internal_sink_name(rabbit_log_federation) -> rabbit_log_federation_lager_event;
82+
make_internal_sink_name(rabbit_log_upgrade) -> rabbit_log_upgrade_lager_event;
8283
make_internal_sink_name(Category) ->
8384
lager_util:make_internal_sink_name(Category).
8485

src/rabbit_variable_queue.erl

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2715,7 +2715,7 @@ transform_store(Store, TransformFun) ->
27152715
rabbit_msg_store:transform_dir(rabbit_mnesia:dir(), Store, TransformFun).
27162716

27172717
move_messages_to_vhost_store() ->
2718-
rabbit_log:info("Moving messages to per-vhost message store"),
2718+
log_upgrade("Moving messages to per-vhost message store"),
27192719
Queues = list_persistent_queues(),
27202720
%% Move the queue index for each persistent queue to the new store
27212721
lists:foreach(
@@ -2736,7 +2736,7 @@ move_messages_to_vhost_store() ->
27362736
{rabbit_variable_queue, migrate_queue, [OldStore, NewStoreSup]},
27372737
QueuesWithTerms),
27382738

2739-
rabbit_log:info("Message store migration finished"),
2739+
log_upgrade("Message store migration finished"),
27402740
delete_old_store(OldStore),
27412741

27422742
ok = rabbit_queue_index:stop(),
@@ -2752,7 +2752,7 @@ in_batches(Size, BatchNum, MFA, List) ->
27522752
true -> {List, []};
27532753
false -> lists:split(Size, List)
27542754
end,
2755-
rabbit_log:info("Migrating batch ~p of ~p queues ~n", [BatchNum, Size]),
2755+
log_upgrade("Migrating batch ~p of ~p queues ~n", [BatchNum, Size]),
27562756
{M, F, A} = MFA,
27572757
Keys = [ rpc:async_call(node(), M, F, [El | A]) || El <- Batch ],
27582758
lists:foreach(fun(Key) ->
@@ -2762,12 +2762,13 @@ in_batches(Size, BatchNum, MFA, List) ->
27622762
end
27632763
end,
27642764
Keys),
2765-
rabbit_log:info("Batch ~p of ~p queues migrated ~n", [BatchNum, Size]),
2765+
log_upgrade("Batch ~p of ~p queues migrated ~n", [BatchNum, Size]),
27662766
in_batches(Size, BatchNum + 1, MFA, Tail).
27672767

27682768
migrate_queue({QueueName, RecoveryTerm}, OldStore, NewStoreSup) ->
2769-
rabbit_log:info("Migrating messages in queue ~s in vhost ~s to per-vhost message store~n",
2770-
[QueueName#resource.name, QueueName#resource.virtual_host]),
2769+
log_upgrade_verbose(
2770+
"Migrating messages in queue ~s in vhost ~s to per-vhost message store~n",
2771+
[QueueName#resource.name, QueueName#resource.virtual_host]),
27712772
OldStoreClient = get_global_store_client(OldStore),
27722773
NewStoreClient = get_per_vhost_store_client(QueueName, NewStoreSup),
27732774
%% WARNING: During scan_queue_segments queue index state is being recovered
@@ -2790,7 +2791,7 @@ migrate_queue({QueueName, RecoveryTerm}, OldStore, NewStoreSup) ->
27902791
NewRecoveryTerm = lists:keyreplace(persistent_ref, 1, RecoveryTerm,
27912792
{persistent_ref, NewClientRef}),
27922793
rabbit_queue_index:update_recovery_term(QueueName, NewRecoveryTerm),
2793-
rabbit_log:info("Queue migration finished ~p", [QueueName]),
2794+
log_upgrade_verbose("Queue migration finished ~p", [QueueName]),
27942795
{QueueName, NewClientRef}.
27952796

27962797
migrate_message(MsgId, OldC, NewC) ->
@@ -2859,3 +2860,14 @@ delete_old_store(OldStore) ->
28592860
rabbit_file:recursive_delete(
28602861
[filename:join([rabbit_mnesia:dir(), ?TRANSIENT_MSG_STORE])]).
28612862

2863+
log_upgrade(Msg) ->
2864+
log_upgrade(Msg, []).
2865+
2866+
log_upgrade(Msg, Args) ->
2867+
rabbit_log:info("message_store upgrades: " ++ Msg, Args).
2868+
2869+
log_upgrade_verbose(Msg) ->
2870+
log_upgrade_verbose(Msg, []).
2871+
2872+
log_upgrade_verbose(Msg, Args) ->
2873+
rabbit_log_upgrade:info(Msg, Args).

0 commit comments

Comments
 (0)