Selaa lähdekoodia

Merge pull request #14034 from HJianBo/expose_influxdb_connector_poolsize

feat: expose the pool_size for influxdb and datalayers connector
JianBo He 1 vuosi sitten
vanhempi
commit
197cc318ab

+ 1 - 1
apps/emqx_bridge_datalayers/src/emqx_bridge_datalayers.app.src

@@ -1,6 +1,6 @@
 {application, emqx_bridge_datalayers, [
     {description, "EMQX Enterprise Datalayers Bridge"},
-    {vsn, "0.1.1"},
+    {vsn, "0.1.2"},
     {registered, []},
     {applications, [
         kernel,

+ 1 - 0
apps/emqx_bridge_datalayers/src/emqx_bridge_datalayers.erl

@@ -86,6 +86,7 @@ basic_connector_values() ->
     #{
         enable => true,
         server => <<"127.0.0.1:8361">>,
+        pool_size => 8,
         ssl => #{enable => false}
     }.
 

+ 12 - 4
apps/emqx_bridge_datalayers/src/emqx_bridge_datalayers_connector.erl

@@ -47,6 +47,8 @@
     default_port => ?DATALAYERS_DEFAULT_PORT
 }).
 
+-define(DEFAULT_POOL_SIZE, 8).
+
 %%--------------------------------------------------------------------
 %% resource callback
 
@@ -143,7 +145,16 @@ roots() ->
 
 fields("connector") ->
     [
-        server_field(),
+        {server, server()},
+        {pool_size,
+            mk(
+                integer(),
+                #{
+                    required => false,
+                    default => ?DEFAULT_POOL_SIZE,
+                    desc => ?DESC("pool_size")
+                }
+            )},
         {parameters,
             mk(
                 hoconsc:union([
@@ -155,9 +166,6 @@ fields("connector") ->
 fields("datalayers_influxdb_v1_parameters") ->
     datalayers_parameters_fields().
 
-server_field() ->
-    {server, server()}.
-
 precision_field() ->
     {precision,
         %% The influxdb only supports these 4 precision:

+ 1 - 1
apps/emqx_bridge_influxdb/src/emqx_bridge_influxdb.app.src

@@ -1,6 +1,6 @@
 {application, emqx_bridge_influxdb, [
     {description, "EMQX Enterprise InfluxDB Bridge"},
-    {vsn, "0.2.4"},
+    {vsn, "0.2.5"},
     {registered, []},
     {applications, [
         kernel,

+ 1 - 0
apps/emqx_bridge_influxdb/src/emqx_bridge_influxdb.erl

@@ -123,6 +123,7 @@ basic_connector_values() ->
     #{
         enable => true,
         server => <<"127.0.0.1:8086">>,
+        pool_size => 8,
         ssl => #{enable => false}
     }.
 

+ 17 - 2
apps/emqx_bridge_influxdb/src/emqx_bridge_influxdb_connector.erl

@@ -69,6 +69,8 @@
         (STATUS_CODE < 200 orelse STATUS_CODE >= 300))
 ).
 
+-define(DEFAULT_POOL_SIZE, 8).
+
 %% -------------------------------------------------------------------------------------------------
 %% resource callback
 resource_type() -> influxdb.
@@ -254,6 +256,7 @@ roots() ->
 fields("connector") ->
     [
         server_field(),
+        pool_size_field(),
         parameter_field()
     ] ++ emqx_connector_schema_lib:ssl_fields();
 fields("connector_influxdb_api_v1") ->
@@ -268,7 +271,8 @@ fields(influxdb_api_v2) ->
 fields(common) ->
     [
         server_field(),
-        precision_field()
+        precision_field(),
+        pool_size_field()
     ] ++ emqx_connector_schema_lib:ssl_fields().
 %% ============ end: schema for old bridge configs ============
 
@@ -293,6 +297,17 @@ precision_field() ->
             required => false, default => ms, desc => ?DESC("precision")
         })}.
 
+pool_size_field() ->
+    {pool_size,
+        mk(
+            integer(),
+            #{
+                required => false,
+                default => ?DEFAULT_POOL_SIZE,
+                desc => ?DESC("pool_size")
+            }
+        )}.
+
 parameter_field() ->
     {parameters,
         mk(
@@ -444,7 +459,7 @@ client_config(
     [
         {host, str(Host)},
         {port, Port},
-        {pool_size, erlang:system_info(schedulers)},
+        {pool_size, maps:get(pool_size, Config, ?DEFAULT_POOL_SIZE)},
         {pool, InstId}
     ] ++ protocol_config(Config).
 

+ 1 - 0
changes/ee/feat-14034.md

@@ -0,0 +1 @@
+Expose the `pool_size` parameter of Influxdb and Datalayers connectors to configurable. Previously it fixed to the number of CPU cores of the operating system.

+ 6 - 0
rel/i18n/emqx_bridge_datalayers_connector.hocon

@@ -32,6 +32,12 @@ The Datalayers default port 8361 is used if `[:Port]` is not specified."""
 server.label:
 """Server Host"""
 
+pool_size.desc:
+"""Size of the connection pool towards the bridge target service."""
+
+pool_size.label:
+"""Connection Pool Size"""
+
 username.desc:
 """Datalayers username."""
 

+ 6 - 0
rel/i18n/emqx_bridge_influxdb_connector.hocon

@@ -42,6 +42,12 @@ precision.desc:
 precision.label:
 """Time Precision"""
 
+pool_size.desc:
+"""Size of the connection pool towards the bridge target service."""
+
+pool_size.label:
+"""Connection Pool Size"""
+
 protocol.desc:
 """InfluxDB's protocol. HTTP API or HTTP API V2."""