Commit Graph

10612 Commits

Author SHA1 Message Date
JianBo He 2706e005ff
Merge pull request #12354 from SergeTupchiy/EMQX-11751-dashboard-import-timeout-rel55
Apply brdige post config changes in parallel
2024-01-22 17:24:55 +08:00
JimMoen 2061d75b50
docs: prometheus api `mode` field description 2024-01-22 10:39:56 +08:00
JimMoen 2263df0242
fix(prom_push_gw): use format mode `node` for prometheus push gateway 2024-01-22 10:39:55 +08:00
JimMoen b424f8ac12
feat(prom_stats): aggregated/unaggregated prometheus data 2024-01-22 10:39:54 +08:00
JimMoen 6b064dd8eb
fix(prom_stats): missing metric key
- follow https://github.com/emqx/emqx/pull/11497
2024-01-22 10:39:53 +08:00
JimMoen c6c1a7fc28
refactor(prom): prom_auth and prom_di as prom_cluster behaviour 2024-01-22 10:39:52 +08:00
JimMoen b480c5b371
fix(prom): use name `mode` and macros to put/get format mode 2024-01-22 10:39:51 +08:00
JimMoen 8cb12c6a74
refactor: use utils func for prom_auth and prom_di 2024-01-21 00:14:54 +08:00
JimMoen c3da792323
feat(prom_di): cluster aggregated/unaggregated metrics 2024-01-21 00:14:53 +08:00
JimMoen 9627124d67
fix(prom_di): metric `emqx_rule_enable` 2024-01-21 00:14:52 +08:00
JimMoen 5534d5e9de
fix(bpapi): make static_check happy 2024-01-21 00:14:51 +08:00
JimMoen 5914eb5ca5
fix(prom_cert): rm cacertfile expiry epoch 2024-01-21 00:14:50 +08:00
JimMoen 4fb1ff2f9d
fix(prom_api): format-mode example value 2024-01-21 00:14:49 +08:00
JimMoen 57f3efde63
feat(prom_auth): cluster metrics with different format-mode 2024-01-21 00:14:48 +08:00
JimMoen fb330f77e6
feat(prometheus): api `format_mode` parameter support
- node(default):
  The only supported format_mode for PushGateway.
  Return the current node's metrics.
  -  Without label `node_name` with content-type: `text/plain`.
  -  Without key `node_name` with content-type: `application/json`

- nodes_aggregated:
  Return all nodes metrics Arithmetic-Sum or Logical-Sum.
  See details in callback modules.
    - Logical-Sum for metrics named with `xxx_enable` or `xxx_status`.
    - Arithmetic-Sum for other metrics.
  `node_name` field:
    -  Without label `node_name` with content-type: `text/plain`.
    -  Without key `node_name` with content-type: `application/json`

- nodes_unaggregated:
  Return all nodes metrics without aggregated.
  `node_name` field:
    -  _With_ label `node_name` with content-type: `text/plain`.
    -  _With_ key `node_name` with content-type: `application/json`
2024-01-21 00:14:47 +08:00
JimMoen 94032aafb2
fix(prom_data_integration): fix metric type 2024-01-21 00:14:46 +08:00
JimMoen c3e9533260
fix: prometheus auth metrics fields and type
- rm rate fields
- fix few fields type to counter
2024-01-21 00:14:45 +08:00
JimMoen a18c4d193a
refactor: abstract function call 2024-01-21 00:14:44 +08:00
JimMoen 8f7964f435
feat(prom): data integration metrics in josn format 2024-01-21 00:14:42 +08:00
JimMoen 36f009b0c2
fix(prom): connectors specific data 2024-01-21 00:14:41 +08:00
JimMoen 76d9ace582
fix: connector_count contains bridge_v1 and bridge_v2 2024-01-21 00:14:40 +08:00
JimMoen f457def201
fix: use `id` uniformly as the label key for rules and actions 2024-01-21 00:14:39 +08:00
JimMoen 4b23930fce
fix(prometheus): license expiry and schema_registry only for ee 2024-01-21 00:14:38 +08:00
JimMoen 38a90bd273
fix(prom_auth): authn && authz data response by josn 2024-01-21 00:14:37 +08:00
JimMoen 0dca9905dd
test(prometheus): `{Registry, Collector}` tuple 2024-01-21 00:14:36 +08:00
JimMoen 7832bbc0a4
fix(prom): schema registry not in ce edition 2024-01-21 00:14:35 +08:00
JimMoen 5158395bcf
feat(prometheus): data integration prom data 2024-01-21 00:14:34 +08:00
JimMoen bf2e4d134a
refactor(prometheus): generic api response funcs 2024-01-21 00:14:33 +08:00
JimMoen e0feb580b6
feat(prometheus): auth metrics with text/plain 2024-01-21 00:14:32 +08:00
JimMoen 092159b071
feat(prometheus): cert expiry epoch in endpoint `/prometheus/stats` 2024-01-21 00:14:31 +08:00
JimMoen 558c471392
feat(prometheus): license expiry at epoch as gauge 2024-01-21 00:14:30 +08:00
JimMoen fae0cea17f
fix(license): make dialyzer happy 2024-01-21 00:14:29 +08:00
JimMoen 81ba166b49
feat(license): expiry epoch api 2024-01-21 00:14:28 +08:00
JimMoen 89128958ed
fix(dashboard): licence quota not provided to ce edition 2024-01-21 00:14:27 +08:00
JimMoen ecd0da9fde
feat(dashboard): `/monitor_current/nodes/{node}` provide `node_uptime` 2024-01-21 00:14:26 +08:00
JimMoen 7bc3a5090d
fix(dashboard): meck `emqx_retainer` in SUITE 2024-01-21 00:14:25 +08:00
JimMoen 3d6b65aced
chore: emqx_dashboard_monitor:current_rate/0 not exported anymore 2024-01-21 00:14:24 +08:00
JimMoen a35698009c
feat(dashboard): endpoint `/monitor_current` provides mor fields
- `retained_msg_count`
  Current retained_msg_count on each node and should be same on all nodes.

- `license_quota`
  Only for enterprise edition, provides the max limited connections num.
2024-01-21 00:14:23 +08:00
Serge Tupchii dc15d37dcc perf(emqx_bridge/connector): load and unload bridges/connectors in parallel
This should reduce app start/stop time, when a large number of bridges/connectors are not healthy.
2024-01-19 21:44:31 +02:00
Serge Tupchii d3a6870097 feat(emqx_utils): add pforeach/2,3 2024-01-19 21:44:31 +02:00
Serge Tupchii a6568dec75 perf(emqx_bridge/connector): apply post config bridge/connector changes in parallel
This can greatly improve the performance when many bridges/connectors are being changed,
e.g. when a backup file is being imported.

Fixes: EMQX-11751
2024-01-19 21:44:31 +02:00
Serge Tupchii 54457b7093 feat(emqx_utils): allow `infinity` timeout in `pmap/3` 2024-01-19 19:34:04 +02:00
Thales Macedo Garitezi a40a13b786
Merge pull request #12357 from thalesmg/fix-bridge-bpapi-interval-r55-20240119
fix(bridge_api): explicitly state bpapi version ranges
2024-01-19 13:08:44 -03:00
Thales Macedo Garitezi d22092e3da fix(mqtt_source): don't attempt local publish when legacy config is absent
Fixes https://emqx.atlassian.net/browse/EMQX-11765
2024-01-19 10:54:05 -03:00
Thales Macedo Garitezi e369c1b971 docs(mqtt_source): fix example qos 2024-01-19 10:54:05 -03:00
Thales Macedo Garitezi 4068258c78 fix(bridge_api): explicitly state bpapi version ranges
Fixes https://emqx.atlassian.net/browse/EMQX-11767

The currently supported version for a node may not be available at the time it's probed.
2024-01-19 10:20:57 -03:00
Thales Macedo Garitezi e219c3eda1
Merge pull request #12166 from kjellwinblad/kjell/mqtt_conn_action_3/EMQX-11489
feat: refactor MQTT bridge to source, action, and connector
2024-01-18 09:28:14 -03:00
Zaiming (Stone) Shi 6b462a9100
Merge pull request #12349 from zmstone/0118-fix-authz-cache-excludes-type
0118 fix authz cache excludes type
2024-01-18 10:32:38 +00:00
zhongwencool 1b432eadd8
Merge pull request #12348 from emqx/elasticsearch-e550
Elasticsearch e550
2024-01-18 18:06:48 +08:00
zhongwencool dae835635c fix: don't crash in http SUITE 2024-01-18 16:45:46 +08:00
zhongwencool 59797cfea7 feat: es's update support doc_as_upsert 2024-01-18 16:44:56 +08:00
zhongwencool 91368a57ff test: add es docker CI test 2024-01-18 16:44:56 +08:00
zhongwencool 7f5fe91905 fix: es's action is atom not binary 2024-01-18 16:44:56 +08:00
aiotter 7802d6e018 chore: fix typos 2024-01-18 16:35:57 +08:00
Zaiming (Stone) Shi 556092b7d0 feat(authz/prometheus): add authz cache_miss counter 2024-01-18 09:01:17 +01:00
Zaiming (Stone) Shi 85b6a3454c fix(authz): use binary() type instead of string() for cache.excludes 2024-01-18 09:01:17 +01:00
lafirest 6d6242c27a
Merge pull request #12335 from lafirest/fix/type_clause
fix(iotdb): enhances type checking when converting value
2024-01-18 11:28:40 +08:00
firest b2af7fdd70 fix(sysk): fix a update issue for the Syskeeper forwarder 2024-01-17 12:51:10 +08:00
firest 238ecc68cf fix(iotdb): enhances type checking when converting value 2024-01-17 12:00:15 +08:00
Zaiming (Stone) Shi 4fa906731d
Merge pull request #12333 from zmstone/0116-add-tags-for-action-and-connectors
feat: add 'tags' field for action and connector
2024-01-16 18:56:57 +00:00
Zaiming (Stone) Shi 01d52e37c4
fix: resource tag type should be binary string
Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2024-01-16 17:35:22 +01:00
Thales Macedo Garitezi 2a41cad54f fix(sources): remote irrelevant `resource_opts` fields for sources
Since they don't use buffer workers, they shouldn't have buffer-related sub-fields.
2024-01-16 11:29:35 -03:00
Thales Macedo Garitezi a8f9e5676f docs(mqtt_bridge): add API examples 2024-01-16 10:42:52 -03:00
Kjell Winblad 60fab6ee45 refactor: attempt to improve function names 2024-01-16 10:42:52 -03:00
Kjell Winblad c6cd3adccb refactor: fix type upgrade calls and move compatiblitly logic
Some bridge V1 to V2 calls were wrong but did not seem to cause issues
(perhaps due to locking test coverage). This commit also move
compatibility logic from the API module to the emqx_bridge_v2 module
where most of the compatibility logic exists.
2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi 440a543a85 docs: fix typo 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi 938429f351 chore(mqtt_bridge): change schema to remote `remote` sub-fields and hide `local`
`local` is still needed for backwards compatibility
2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi 007af20a30 test(bridge_v2_api): adapt more tests to sources 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi fc88a1ed1e test(sources_api): add some tests to cover `/sources` HTTP API
Also fixes a bug with `DELETE /sources/:id`
2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi 8f304d3456 test(bridge_v2_api): refactor suite to use CT matrix 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi cc24fe6e93 feat(mqtt_consumer): add support for rule engine `FROM` 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi 28de7c89c7 feat: add `/sources*` HTTP APIs 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi e6ccfa5b39 fix(mqtt_bridge): fixes after rebasing onto current `master`
Rebased on top of 7f57ec47d5
2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi 6511693b2e refactor(action_api): prepare for `/sources` HTTP API 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi 12dc9fbeb9 test(mqtt_bridge): fix assertion 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi 862283ff7c test: fix expected connector name after name convention generation changed 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi 7fc069da46 test: fix another broken test 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi 1ad3100cad chore: add i18n 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi 3597ee7c93 fix(mqtt_action): fix resource_opts schema 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi ab1b0dda67 refactor: fix typo 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi 697c8f5ee1 test: fix broken tests 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi cc34660ab9 fix(actions): use backward-compatible ids 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi 14b99737e9 fix(mqtt_bridge): add missing fields to POST api spec; fix test 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi 7befe898d0 fix(mqtt_bridge): fix schema 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi 139da6d720 fix: don't double-write the transformed config; return a triplet in all cases 2024-01-16 10:42:52 -03:00
Kjell Winblad 2ecc775fb7 style: remove commented out code and fix copyright headers 2024-01-16 10:42:52 -03:00
Kjell Winblad 886ed55374 fix: don't call non-existing function 2024-01-16 10:42:52 -03:00
Kjell Winblad 145ed2e632 fix: elvis style error 2024-01-16 10:42:52 -03:00
Kjell Winblad f199a0f24a feat: refactor MQTT bridge to source, action, and connector
This commit:

* refactors the MQTT V1 bridge into connector, source and action
* Extends the compatibility layer so it works for sources
* Fixes the MQTT bridge test suite so that all test cases passes

We still need to add a HTTP API handling sources. Also, we still need to
add HTTP API example schemes and examples for the MQTT
connector/action/source.

We should also make sure that we handle the corner cases of the MQTT V1
bridge automatic upgrade downgrade in a sufficiently good way:

* An error is currently thrown when converting an MQTT V1 bridge without
  egress or ingress config.
* If there is a source and action with the same name we will currently
  throw an error in the compatibility layer.
* We will also throw an error when converting an MQTT V1 bridge with
  both ingress and egress.

The above is probably the right thing to do  but we have to make sure
that we return a reasonable error to the user when this happens.

(partly)
Fixes:
https://emqx.atlassian.net/browse/EMQX-11489
2024-01-16 10:42:52 -03:00
Zaiming (Stone) Shi 996a851cf6 chore: format username as string in log formatter 2024-01-16 14:42:10 +01:00
Zaiming (Stone) Shi 541525c50f fix(authz): fix authz result logs
prior to this fix, it's always the default authz result logged at
warning level
2024-01-16 14:40:53 +01:00
Zaiming (Stone) Shi 1fe1a62fe2 test: fix already exported function warning 2024-01-16 14:00:34 +01:00
Zaiming (Stone) Shi ab66986f16 feat: add 'tags' field for action and connector 2024-01-16 13:57:48 +01:00
JianBo He b6d0365027
Merge pull request #12267 from HJianBo/new-timeout-param-for-invite
feat(cluster): supports inviting nodes to join the cluster in an asynchronous manner
2024-01-16 10:11:20 +08:00
Zaiming (Stone) Shi 58a54adbb4 Merge remote-tracking branch 'origin/master' into release-55 2024-01-15 17:58:48 +01:00
lafirest 04d3e0335b
Merge pull request #12328 from lafirest/fix/iotdb
fix(iotdb): ensure the `data` field is `required`
2024-01-15 23:26:36 +08:00
firest 50ce2384d9 fix(iotdb): ensure the `data` field is `required` 2024-01-15 20:29:58 +08:00
William Yang d2d3ddb72a test(quic): listener port updates 2024-01-15 11:42:45 +01:00
William Yang c77837a9ea feat(quic): support reload with new binding port 2024-01-15 11:33:25 +01:00
zhongwencool 90c2a5445c
Merge pull request #12295 from zhongwencool/elasticsearch
feat: support elasticsearch bridge
2024-01-15 14:13:38 +08:00