Paul Lorenz
898e41ae2a
Implement router data model changesets. Fixes #1966
2024-04-23 11:56:10 -04:00
Paul Lorenz
8d11af3d97
Optimize network run loop. Fixes #1897
...
* When routers change (connect/disconnect), we re-check the mesh. We are passing in the routers to the channel and they can build up, which is unnecessary. We only need to signal once for all the routers that change since the last time we checked, that the mesh needs to be checked.
* We pass link changes through the run method, which is unnecessary since we pass it to a new goroutine. This inefficiency should be fixed.
* We're evaluating all faulted links for rerouting, even if they were still pending. Only reroute connected links.
* We're using time.After in each for loop, which can accumulate timers. Use a single Ticker instead.
2024-04-04 18:46:50 -04:00
Paul Lorenz
aaceb84a0f
Don't save old link statues in memory, the info is in link events. Fixes #1896
2024-04-04 18:18:35 -04:00
Paul Lorenz
3c3bfb69f7
Fix panic if router is disconnected in unroute. Fixes #1854
2024-03-21 10:02:39 -04:00
Paul Lorenz
fab81e4cd4
Add terminator chaos testing and fix issues found. Fixes #1794 Fixes #1369
2024-03-12 10:31:36 -04:00
Paul Lorenz
8423a8dd6a
Fix link management race conditions found by chaos testing. Fixes #1709
2024-01-29 17:23:51 -05:00
Paul Lorenz
c03c3c2851
Additional fixes and tweaks
2024-01-19 17:35:25 -05:00
Paul Lorenz
c4abcae949
Link management fixes. Fixes #1692 Fixes #1693
2024-01-19 17:33:21 -05:00
Paul Lorenz
41a37ebe7e
Add initial router link validation utility. Fixes #1678
2024-01-05 13:10:02 -05:00
Paul Lorenz
df2ab68ad5
Make sure link accepts are not single threaded. Fixes #1669
2023-12-29 10:18:50 -05:00
Paul Lorenz
9ddd1b941d
Add service max idle time. Fixes #1496 . Add decomission router support. Fixes #1402
2023-12-08 12:48:56 -05:00
Paul Lorenz
16cf13ac08
Support filter/sort/page on circuits and links. Fixes #1547
2023-12-05 10:30:08 -05:00
Paul Lorenz
47a00aaf3d
Shutdown network watchdog when controller stops. Fixes #1442
2023-10-16 13:05:48 -04:00
Paul Lorenz
f3d67b7f49
Update fabric imports
2023-09-28 23:34:28 -04:00
Paul Lorenz
bed7b0eb02
Allow specifying snapshot name with templating. Fixes #794 Fixes openziti/fabric#792
2023-09-18 15:19:23 -04:00
Paul Lorenz
a7fe59e184
Do some configuration tidying
2023-08-22 20:37:25 -04:00
Paul Lorenz
509364d908
Remove trace events from dispatcher. Move trace to common
2023-08-16 12:39:42 -04:00
Paul Lorenz
cdfd037da9
Move protobuf definitions to common
2023-08-10 19:38:48 -04:00
Paul Lorenz
13fc2a12c1
Move metrics package to common
2023-08-10 18:08:06 -04:00
Paul Lorenz
00a39c9900
Move logcontext package to common
2023-08-10 18:07:00 -04:00
Paul Lorenz
368d6e5568
Move config, ctrl_msg and handler_common to common/
2023-08-10 17:29:08 -04:00
Paul Lorenz
8dbc759d45
move event and events packages to controller
2023-08-10 17:10:17 -04:00
Paul Lorenz
2ee9539f9c
Move link calculation to routers. Fixes #692 , fixes #749 , fixes openziti/fabric#343
2023-08-03 17:07:48 -04:00
Paul Lorenz
ef555a536e
Notify controller of forward faults on links. Fixes #724 . If reroute fails, circuit should be torn down. Fixes openziti/fabric#725
2023-05-25 15:05:28 -04:00
Paul Lorenz
a19a2ab2fe
Annotate circuit events with circuit tags, similar to usage. Fixes openziti/fabric#684
2023-04-25 22:54:22 -04:00
Paul Lorenz
d1d0fe781b
Update for storage API changes.
2023-04-25 11:32:33 -04:00
Paul Lorenz
9bb47428b7
Add network.run watchdog. Closes openziti/fabric#668
2023-04-11 17:11:27 -04:00
Paul Lorenz
a7957d0e4a
Fix concurrent map error. Fixes openziti/fabric#622
2023-03-02 11:09:13 -05:00
Michael Quigley
cdb550892b
externalize the interval age threshold
2023-03-01 14:04:05 -05:00
Michael Quigley
7e5340a298
use the already provided metrics report interval
2023-03-01 13:57:49 -05:00
Michael Quigley
53dcd24e26
tweaks for reporting interval
2023-02-28 11:56:39 -05:00
Paul Lorenz
1379618165
Update inspect names from routers -> connected-routers and clusterconfig -> cluster-config
2023-02-17 13:39:40 -05:00
Paul Lorenz
cf2ee0347a
Support showing connected routers. Fixes openziti/fabric#598
2023-02-16 17:11:58 -05:00
Paul Lorenz
abb0eb96fb
Add more raft configuration options. Fixes openziti/fabric#597
...
Add more raft config knobs
Refactor peer handles to be consistent with other handlers
Allow inspect to work across controllers
Add config and clusterconfig inspect support
2023-02-15 23:47:57 -05:00
Paul Lorenz
8f5b5b5c33
Compress snapshots with gzip for efficiency. Fixes openziti/fabric#583
2023-02-09 14:40:34 -05:00
Paul Lorenz
3a110eccc7
Add ability to report initiator local/remote addr. Add to circuit events. Fixes openziti/fabric#592
2023-01-24 16:16:53 -05:00
Cam Otts
c299a06669
Added raft leave and raft list members ( #580 )
...
* Added raft leave and raft list members
* reordered agent raft leave to only check address if is is not found
* instead of adding second raft ctrl, just cast the dispatcher
2023-01-12 10:18:13 -06:00
Paul Lorenz
374b74ea79
Support auto-migrate and agent initiated migration. Fixes openziti/fabric#569
2022-12-28 17:06:27 -05:00
Paul Lorenz
ec885daed5
Always use a new router instance for connected routers so we can ensure
...
disconnect handling applies to the right instance
2022-10-24 14:44:27 -04:00
Paul Lorenz
02539e9e16
Support multiple control channels. Fixes openziti/fabric#469
2022-09-29 12:06:41 -04:00
Paul Lorenz
519574497e
Update to channel v2
2022-09-26 17:00:34 -04:00
Paul Lorenz
aa6124105d
Update to usage v3. Adds circuit tags to usage. Fixes openziti/fabric#496
2022-09-15 17:34:33 -04:00
Paul Lorenz
096e981959
Add remote addr to circuit events. Fixes openziti/fabric#459
2022-09-06 22:58:06 -04:00
Paul Lorenz
e0f5092a08
Use one port for ctrl channel to router and controllers. Allow syncing existing DB to raft. Fixes #471 . Fixes openziti/fabric#479 .
2022-08-22 12:09:07 -04:00
Paul Lorenz
40ef589193
Fixes panic when dialing service with terminator but none for instanceId. Fixes openziti/fabric#463
2022-08-04 21:42:01 -04:00
Paul Lorenz
98160bb8b0
Merge pull request openziti/fabric#448 from openziti/link-events
...
Refactor events subsystem. Add link events. Fixes openziti/fabric#415
2022-07-19 10:59:27 -04:00
Paul Lorenz
7abe5d5605
Cleanup circuits for deleted routers. Fixes openziti/fabric#452
2022-07-18 15:03:35 -04:00
Paul Lorenz
960dfe88f6
Report high latency on latency timeout. Use marker value of 88.888888888 seconds. Fixes openziti/fabric#443
2022-07-15 23:45:31 -04:00
Paul Lorenz
77bce93e85
Refactor events subsystem. Add link events. Fixes openziti/fabric#415
...
Previously we often had two sets of events, one in the network
package, and then another in the events package. We now only
have one, in the events package. Events now have a public API,
with minimal deps. There's an implementation package which has
the dependencies. This allows the network package to generate
events, without have a circular dependency on the events
implementation package.
2022-07-15 18:31:52 -04:00
Paul Lorenz
70d37bf44a
Merge pull request openziti/fabric#430 from openziti/prevent-strange-loops
...
Prevent strange loops
2022-07-01 15:37:59 -04:00