Thales Macedo Garitezi
39b8cb1789
Merge pull request #13487 from thalesmg/20240715-m-refactor-cluster-link-api
...
feat(cluster link): refactor http api, add status and metrics
2024-07-25 14:51:36 -03:00
Thales Macedo Garitezi
03821c7b49
fix(cluster link metrics): route count metric is cluster-wide
2024-07-25 13:12:08 -03:00
Thales Macedo Garitezi
6da71200f3
refactor: improve bookkeeping api
2024-07-25 13:12:08 -03:00
Thales Macedo Garitezi
6dbf015c93
refactor: demote hidden config to hardcoded value
2024-07-25 13:12:08 -03:00
Thales Macedo Garitezi
30259284d1
chore: namespace metrics by type
2024-07-25 13:12:08 -03:00
Thales Macedo Garitezi
87e4e2340d
refactor: better metric and error fold
2024-07-25 13:12:08 -03:00
Thales Macedo Garitezi
dda73651c5
fix(cluster link metrics): use periodic full table scan and gauge to count routes
2024-07-24 16:46:04 -03:00
Thales Macedo Garitezi
7829838dc5
feat(cluster link api): add forwarding resource metrics to response
2024-07-24 14:53:57 -03:00
Thales Macedo Garitezi
34f5a886ce
refactor(cluster link api): return erpc errors in status and metrics responses
2024-07-24 12:07:34 -03:00
Thales Macedo Garitezi
79db2e6d7f
test: fix flaky test
2024-07-24 11:17:00 -03:00
Thales Macedo Garitezi
3e4eeddb78
fix: add missing `resource_type` callback implementations
2024-07-24 10:53:33 -03:00
Thales Macedo Garitezi
76e51fa532
fix: correctly use maybe match clause
2024-07-24 10:17:45 -03:00
Thales Macedo Garitezi
82bb876de0
docs: improve descriptions
...
Co-authored-by: Andrew Mayorov <encube.ul@gmail.com>
2024-07-24 10:15:01 -03:00
Thales Macedo Garitezi
2d507146ab
refactor: change style of case clause
2024-07-24 10:13:48 -03:00
Thales Macedo Garitezi
216a6abed9
refactor: rename CRUD functions
2024-07-24 10:11:03 -03:00
Thales Macedo Garitezi
ca2d4ad2a0
refactor: move metrics logic to separate module
2024-07-24 10:04:27 -03:00
Thales Macedo Garitezi
d9832252d8
refactor: add namespace to avoid clashes with operations or other resources
2024-07-22 16:04:19 -03:00
Thales Macedo Garitezi
6a5849488c
feat(cluster link): add metrics
...
Fixes https://emqx.atlassian.net/browse/EMQX-12627
2024-07-22 16:04:19 -03:00
Thales Macedo Garitezi
07cb147d38
fix(cluster link schema): username is not required
2024-07-22 16:04:19 -03:00
Thales Macedo Garitezi
ba3cbe02e3
feat(cluster link api): add status to responses
...
Fixes https://emqx.atlassian.net/browse/EMQX-12627
2024-07-22 16:04:19 -03:00
Thales Macedo Garitezi
0b1f0db73c
chore(cluster link): refactor HTTP API for CRUD operations
...
Fixes https://emqx.atlassian.net/browse/EMQX-12627
2024-07-22 16:04:19 -03:00
zhongwencool
3c832db13d
test: test cluster.links reloaded
2024-07-17 21:06:48 +08:00
zhongwencool
7b6b9580c8
test: add test for updating cluster.links
2024-07-17 21:06:48 +08:00
Thales Macedo Garitezi
420493deb4
chore: add missing mix files to new apps
2024-07-04 10:27:59 -03:00
Serge Tupchii
ef5cf4fac3
chore(clusterlink): fix comment
2024-06-19 20:46:00 +03:00
Serge Tupchii
a905a6048c
chore(clusterlink): rename link `upstream` field to `name`
2024-06-17 12:24:51 +03:00
Serge Tupchii
a95a08efd3
test(clusterlink): add more test cases
2024-06-17 12:24:51 +03:00
Serge Tupchii
44c37571cc
fix(clusterlink): ignore not_registered error
2024-06-17 12:24:51 +03:00
Andrew Mayorov
ed16ff07df
refactor(broker): simplify external broker behaviour
2024-06-17 12:24:51 +03:00
Serge Tupchii
d282c61120
feat(clusterlink): update only necessary resources when a link config is changed
2024-06-17 12:24:50 +03:00
Serge Tupchii
ff16521d4f
fix(clusterlink): add schema descriptions, fix dialyzer warnings, add resource_opts
2024-06-17 12:23:52 +03:00
Serge Tupchii
94e81ba812
feat(clusterlink): implement actor config handler
2024-06-17 12:23:52 +03:00
Serge Tupchii
c871b37453
fix(clusterlink): add link topics schema validator
2024-06-17 12:23:52 +03:00
Andrew Mayorov
780a0bf807
fix(cluster-link): clear exit signal of failed-to-connect client
2024-06-17 12:23:52 +03:00
Andrew Mayorov
d0df4de2a3
test(cluster-link): add e2e replication actor GC testcase
2024-06-17 12:23:52 +03:00
Andrew Mayorov
c4840b30d2
fix(cluster-link): deduplicate routes down to dest cluster
2024-06-17 12:23:52 +03:00
Andrew Mayorov
ede35df24a
fix(cluster-link): cancel heartbeats on client down
2024-06-17 12:23:52 +03:00
Andrew Mayorov
e0604e3af6
fix(cluster-link): anticipate clients may occasionally retry
2024-06-17 12:23:52 +03:00
Andrew Mayorov
0219b8bd4d
feat(cluster-link): add simple replication actor GC process
2024-06-17 12:23:52 +03:00
Andrew Mayorov
de1ac131f7
test(cluster-link): fix test suite setup
2024-06-17 12:23:51 +03:00
Serge Tupchii
58eaf07627
fix(clusterlink): valide config to disallow duplicated cluster links
2024-06-17 12:23:51 +03:00
Andrew Mayorov
54d51d0982
test(cluster-link): draft basic integration test suite
2024-06-17 12:23:51 +03:00
Andrew Mayorov
e9c24090d4
fix(cluster-link): avoid starting ps syncer if persistence disabled
2024-06-17 12:23:51 +03:00
Andrew Mayorov
036c7e8492
test(cluster-link): adapt extrouter testsuite to new APIs
2024-06-17 12:23:51 +03:00
Andrew Mayorov
45eda4f3b9
fix(cluster-link): adapt heartbeat / reincarnation handling to new API
2024-06-17 12:23:51 +03:00
Andrew Mayorov
43d114546c
feat(cluster-link): preserve replication actor state in pdict
2024-06-17 12:23:51 +03:00
Andrew Mayorov
5771a41a32
fix(cluster-link): ensure replication actor bootstraps do heartbeats
2024-06-17 12:23:51 +03:00
Andrew Mayorov
d4b449c6e1
feat(cluster-link): implement replication actor heartbeats
2024-06-17 12:23:51 +03:00
Serge Tupchii
faa4420e1f
fix(clusterlink): improve actor error handling
...
Add status and error reason to the actor state, report alarms.
2024-06-17 12:23:51 +03:00
Serge Tupchii
21711c6e0d
fix(clusterlink): communicate bootstrap requirements via actor handshake
...
`session_present` flag is not reliable to decide whether bootstrap is needed if durable sessions is enabled.
In this case, the client session may survive cluster restart while all the external routes are lost, as they are not persistent.
2024-06-17 12:23:51 +03:00