From edfcea7f4319dcaf348cfaa4e01ea01a560207e3 Mon Sep 17 00:00:00 2001 From: Stefan Strigler Date: Fri, 13 Jan 2023 14:45:44 +0100 Subject: [PATCH 1/4] fix: add log for timeout --- apps/emqx_connector/src/emqx_connector_http.erl | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/emqx_connector/src/emqx_connector_http.erl b/apps/emqx_connector/src/emqx_connector_http.erl index 7f684a858..d68f624e4 100644 --- a/apps/emqx_connector/src/emqx_connector_http.erl +++ b/apps/emqx_connector/src/emqx_connector_http.erl @@ -417,6 +417,10 @@ do_get_status(PoolName, Timeout) -> end catch exit:timeout -> + ?SLOG(error, #{ + msg => "http_connector_pmap_failed", + reason => timeout + }), {error, timeout} end. From 9a53410efb0bd9611d6d76cadea2d9b31107305f Mon Sep 17 00:00:00 2001 From: Stefan Strigler Date: Fri, 13 Jan 2023 14:46:30 +0100 Subject: [PATCH 2/4] fix: don't add empty list element to options proplist --- .../src/emqx_connector_mysql.erl | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/apps/emqx_connector/src/emqx_connector_mysql.erl b/apps/emqx_connector/src/emqx_connector_mysql.erl index b162a21b4..c144c48e9 100644 --- a/apps/emqx_connector/src/emqx_connector_mysql.erl +++ b/apps/emqx_connector/src/emqx_connector_mysql.erl @@ -111,17 +111,19 @@ on_start( false -> [] end, - Options = [ - maybe_password_opt(maps:get(password, Config, undefined)) - | [ - {host, Host}, - {port, Port}, - {user, Username}, - {database, DB}, - {auto_reconnect, ?AUTO_RECONNECT_INTERVAL}, - {pool_size, PoolSize} - ] - ], + Options = + maybe_add_password_opt( + maps:get(password, Config, undefined), + [ + {host, Host}, + {port, Port}, + {user, Username}, + {database, DB}, + {auto_reconnect, ?AUTO_RECONNECT_INTERVAL}, + {pool_size, PoolSize} + ] + ), + PoolName = emqx_plugin_libs_pool:pool_name(InstId), Prepares = parse_prepare_sql(Config), State = maps:merge(#{poolname => PoolName}, Prepares), @@ -136,10 +138,10 @@ on_start( {error, Reason} end. -maybe_password_opt(undefined) -> - []; -maybe_password_opt(Password) -> - {password, Password}. +maybe_add_password_opt(undefined, Options) -> + Options; +maybe_add_password_opt(Password, Options) -> + [{password, Password} | Options]. on_stop(InstId, #{poolname := PoolName}) -> ?SLOG(info, #{ From a19226326ccb44c3064777fab04918fbcc73e45b Mon Sep 17 00:00:00 2001 From: Stefan Strigler Date: Fri, 13 Jan 2023 18:27:00 +0100 Subject: [PATCH 3/4] fix: don't test for strict values as that makes test flaky --- apps/emqx_bridge/test/emqx_bridge_api_SUITE.erl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/emqx_bridge/test/emqx_bridge_api_SUITE.erl b/apps/emqx_bridge/test/emqx_bridge_api_SUITE.erl index 4116a4754..a5d7968a2 100644 --- a/apps/emqx_bridge/test/emqx_bridge_api_SUITE.erl +++ b/apps/emqx_bridge/test/emqx_bridge_api_SUITE.erl @@ -718,7 +718,7 @@ t_metrics(Config) -> {ok, 200, Bridge3Str} = request(get, uri(["bridges", BridgeID, "metrics"]), []), ?assertMatch( #{ - <<"metrics">> := #{<<"success">> := 1}, + <<"metrics">> := #{<<"success">> := _}, <<"node_metrics">> := [_ | _] }, jsx:decode(Bridge3Str) @@ -729,7 +729,7 @@ t_metrics(Config) -> ?assertMatch( [ #{ - <<"metrics">> := #{<<"success">> := 1}, + <<"metrics">> := #{<<"success">> := _}, <<"node_metrics">> := [_ | _] } ], From 67909f0b404db067bf9bf3b71645d360f2389cac Mon Sep 17 00:00:00 2001 From: Stefan Strigler Date: Mon, 16 Jan 2023 12:07:24 +0100 Subject: [PATCH 4/4] fix: testing metrics for emqx_bridge_mqtt_SUITE --- apps/emqx_bridge/test/emqx_bridge_mqtt_SUITE.erl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/emqx_bridge/test/emqx_bridge_mqtt_SUITE.erl b/apps/emqx_bridge/test/emqx_bridge_mqtt_SUITE.erl index 6d0e88254..b3c2b8d85 100644 --- a/apps/emqx_bridge/test/emqx_bridge_mqtt_SUITE.erl +++ b/apps/emqx_bridge/test/emqx_bridge_mqtt_SUITE.erl @@ -280,7 +280,7 @@ t_mqtt_conn_bridge_ingress_no_payload_template(_) -> ), %% verify the metrics of the bridge - {ok, 200, BridgeStr} = request(get, uri(["bridges", BridgeIDIngress]), []), + {ok, 200, BridgeStr} = request(get, uri(["bridges", BridgeIDIngress, "metrics"]), []), ?assertMatch( #{ <<"metrics">> := #{<<"matched">> := 0, <<"received">> := 1}, @@ -421,7 +421,7 @@ t_mqtt_conn_bridge_egress_no_payload_template(_) -> ), %% verify the metrics of the bridge - {ok, 200, BridgeStr} = request(get, uri(["bridges", BridgeIDEgress]), []), + {ok, 200, BridgeStr} = request(get, uri(["bridges", BridgeIDEgress, "metrics"]), []), ?assertMatch( #{ <<"metrics">> := #{<<"matched">> := 1, <<"success">> := 1, <<"failed">> := 0},