fix(telemetry): count bridges referenced in `from` rule clauses
This commit is contained in:
parent
9e706fc76d
commit
47ed9cbc76
|
@ -76,10 +76,10 @@ t_get_basic_usage_info_1(_Config) ->
|
||||||
BasicUsageInfo = emqx_bridge:get_basic_usage_info(),
|
BasicUsageInfo = emqx_bridge:get_basic_usage_info(),
|
||||||
?assertEqual(
|
?assertEqual(
|
||||||
#{
|
#{
|
||||||
num_bridges => 2,
|
num_bridges => 3,
|
||||||
count_by_type => #{
|
count_by_type => #{
|
||||||
http => 1,
|
http => 1,
|
||||||
mqtt => 1
|
mqtt => 2
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
BasicUsageInfo
|
BasicUsageInfo
|
||||||
|
@ -92,17 +92,26 @@ setup_fake_telemetry_data() ->
|
||||||
#{
|
#{
|
||||||
<<"mqtt">> => #{
|
<<"mqtt">> => #{
|
||||||
<<"my_mqtt_connector">> =>
|
<<"my_mqtt_connector">> =>
|
||||||
#{server => "127.0.0.1:1883"}
|
#{server => "127.0.0.1:1883"},
|
||||||
|
<<"my_mqtt_connector2">> =>
|
||||||
|
#{server => "127.0.0.1:1884"}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
MQTTConfig = #{
|
MQTTConfig1 = #{
|
||||||
connector => <<"mqtt:my_mqtt_connector">>,
|
connector => <<"mqtt:my_mqtt_connector">>,
|
||||||
enable => true,
|
enable => true,
|
||||||
direction => ingress,
|
direction => ingress,
|
||||||
remote_topic => <<"aws/#">>,
|
remote_topic => <<"aws/#">>,
|
||||||
remote_qos => 1
|
remote_qos => 1
|
||||||
},
|
},
|
||||||
|
MQTTConfig2 = #{
|
||||||
|
connector => <<"mqtt:my_mqtt_connector2">>,
|
||||||
|
enable => true,
|
||||||
|
direction => ingress,
|
||||||
|
remote_topic => <<"$bridges/mqtt:some_bridge_in">>,
|
||||||
|
remote_qos => 1
|
||||||
|
},
|
||||||
HTTPConfig = #{
|
HTTPConfig = #{
|
||||||
url => <<"http://localhost:9901/messages/${topic}">>,
|
url => <<"http://localhost:9901/messages/${topic}">>,
|
||||||
enable => true,
|
enable => true,
|
||||||
|
@ -124,7 +133,10 @@ setup_fake_telemetry_data() ->
|
||||||
HTTPConfig#{enable => false}
|
HTTPConfig#{enable => false}
|
||||||
},
|
},
|
||||||
<<"mqtt">> =>
|
<<"mqtt">> =>
|
||||||
#{<<"basic_usage_info_mqtt">> => MQTTConfig}
|
#{
|
||||||
|
<<"basic_usage_info_mqtt">> => MQTTConfig1,
|
||||||
|
<<"basic_usage_info_mqtt_from_select">> => MQTTConfig2
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ok = emqx_common_test_helpers:load_config(emqx_connector_schema, ConnectorConf),
|
ok = emqx_common_test_helpers:load_config(emqx_connector_schema, ConnectorConf),
|
||||||
|
|
|
@ -434,7 +434,7 @@ t_rule_engine_and_data_bridge_info(_Config) ->
|
||||||
RuleInfo = get_value(rule_engine, TelemetryData),
|
RuleInfo = get_value(rule_engine, TelemetryData),
|
||||||
BridgeInfo = get_value(bridge, TelemetryData),
|
BridgeInfo = get_value(bridge, TelemetryData),
|
||||||
?assertEqual(
|
?assertEqual(
|
||||||
#{num_rules => 2},
|
#{num_rules => 3},
|
||||||
RuleInfo
|
RuleInfo
|
||||||
),
|
),
|
||||||
?assertEqual(
|
?assertEqual(
|
||||||
|
@ -442,9 +442,9 @@ t_rule_engine_and_data_bridge_info(_Config) ->
|
||||||
data_bridge =>
|
data_bridge =>
|
||||||
#{
|
#{
|
||||||
http => #{num => 1, num_linked_by_rules => 3},
|
http => #{num => 1, num_linked_by_rules => 3},
|
||||||
mqtt => #{num => 1, num_linked_by_rules => 1}
|
mqtt => #{num => 2, num_linked_by_rules => 2}
|
||||||
},
|
},
|
||||||
num_data_bridges => 2
|
num_data_bridges => 3
|
||||||
},
|
},
|
||||||
BridgeInfo
|
BridgeInfo
|
||||||
),
|
),
|
||||||
|
@ -641,6 +641,17 @@ setup_fake_rule_engine_data() ->
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
|
{ok, _} =
|
||||||
|
emqx_rule_engine:create_rule(
|
||||||
|
#{
|
||||||
|
id => <<"rule:t_get_basic_usage_info:3">>,
|
||||||
|
sql => <<"select 1 from \"$bridges/mqtt:mqtt_in\"">>,
|
||||||
|
outputs =>
|
||||||
|
[
|
||||||
|
#{function => console}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
),
|
||||||
ok.
|
ok.
|
||||||
|
|
||||||
set_special_configs(emqx_authz) ->
|
set_special_configs(emqx_authz) ->
|
||||||
|
|
|
@ -265,9 +265,10 @@ get_basic_usage_info() ->
|
||||||
NumRules = length(EnabledRules),
|
NumRules = length(EnabledRules),
|
||||||
ReferencedBridges =
|
ReferencedBridges =
|
||||||
lists:foldl(
|
lists:foldl(
|
||||||
fun(#{outputs := Outputs}, Acc) ->
|
fun(#{outputs := Outputs, from := From}, Acc) ->
|
||||||
BridgeIDs = lists:filter(fun is_binary/1, Outputs),
|
BridgeIDs0 = [BridgeID || <<"$bridges/", BridgeID/binary>> <- From],
|
||||||
tally_referenced_bridges(BridgeIDs, Acc)
|
BridgeIDs1 = lists:filter(fun is_binary/1, Outputs),
|
||||||
|
tally_referenced_bridges(BridgeIDs0 ++ BridgeIDs1, Acc)
|
||||||
end,
|
end,
|
||||||
#{},
|
#{},
|
||||||
EnabledRules
|
EnabledRules
|
||||||
|
|
Loading…
Reference in New Issue