Commit Graph

60 Commits

Author SHA1 Message Date
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 fab81e4cd4 Add terminator chaos testing and fix issues found. Fixes #1794 Fixes #1369 2024-03-12 10:31:36 -04:00
Paul Lorenz c4abcae949 Link management fixes. Fixes #1692 Fixes #1693 2024-01-19 17:33:21 -05:00
Paul Lorenz 4141668382 Cluster mode -> HA mode for consistency 2023-12-13 11:35:10 -05:00
Paul Lorenz 95f650d4b8 Add support adding/removing members and transferring leadership via REST API. Fixes #1544 and fixes #1543 2023-12-11 16:31:48 -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 9bed8a14a8 Add optional command rate limiter. Fixes #1445 2023-10-23 13:45:49 -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 a77817240c Move REST code into controller 2023-08-16 12:39:59 -04:00
Paul Lorenz f71db654eb Move build and inspect packages to common 2023-08-10 19:45:23 -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 d1d0fe781b Update for storage API changes. 2023-04-25 11:32:33 -04:00
Paul Lorenz 32da1861ca Add router disable flag. Fixes openziti/fabric#651 2023-03-27 14:18:43 -04: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 4a1f234839 Add linter and update deps 2022-10-10 13:29:40 -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 aafa99ae6f Fix some linting issues. svcId -> serviceId 2022-09-15 17:34:44 -04:00
Paul Lorenz c77160ba6d Fix patching tags on routers and services. Fixes openziti/fabric#499 2022-09-14 23:29:07 -04:00
Paul Lorenz 4d05c59df0 Run gofmt -w -s 2022-08-22 14:17:43 -04:00
Paul Lorenz 858642bc38 Move UpdatedFields to fabric. Start moving model layer to generics 2022-07-27 11:33:24 -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 8f0150f242 Add host id to terminator. This will allow tracking usage to hosting entities. Fixes openziti/fabric#440 2022-07-15 23:13:01 -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
Paul Lorenz 3d49022f4a Update for foundation changes 2022-07-01 14:29:12 -04:00
Paul Lorenz b281372757 Retry smart route on failure. Add circuit createdAt 2022-07-01 11:19:37 -04:00
Paul Lorenz b26fcf8909 Fix copyright 2022-06-29 16:59:46 -04:00
Paul Lorenz d3a5d5151f Merge pull request openziti/fabric#425 from openziti/circuit-failed-events
Circuit failed events
2022-06-22 15:00:58 -04:00
Paul Lorenz a731cd9aec Circuit failed events and rename terminator identity -> instanceId 2022-06-22 14:34:32 -04:00
Tod d8f5db8cf6 Prometheus format feedback (#422)
* Adding timestamps to prometheus bucket metrics

* Making Prometheus timestamps optional
2022-06-22 09:20:48 -04:00
Tod 1ccfa2f3dc Adding Metrics API on '/metrics' (#410)
* Adding fabric `/metrics` API/binding to provide metrics in the prometheus text exposition format (https://prometheus.io/docs/instrumenting/exposition_formats/#text-based-format)
2022-06-09 11:17:00 -04:00
Andrew Martinez 660a4af582 upgrades xweb to v2.0.0
- xweb v2 uses different simpler names
- reduce xweb instances to a single instance in fabric
2022-06-06 10:19:44 -04:00
Paul Lorenz a64c626cb4 Controller -> Manager for entity managers 2022-06-02 22:53:22 -04:00
Paul Lorenz eaa75d48c6 Initial support for distributed model via RAFT 2022-06-02 22:49:55 -04:00
tburtchell cf28ad7edc Metrics via inspect (#409)
* Adding inspect handling for 'metrics'
* Adding prometheus metric event format
2022-05-31 16:03:04 -04:00
Andrew Martinez c47f344066 move xweb out of fabric 2022-05-25 15:27:11 -04:00
Paul Lorenz b3c120f389 Add link delete method. Set initial link latency costs high. 2022-05-09 11:46:00 -04:00
Paul Lorenz 8b871b09f2 Fix links list in circuit detail when listing circuits 2022-05-06 13:59:15 -04:00
Paul Lorenz 18539faf87 Add dest type to routing so we don't need to overload ids 2022-04-27 11:20:02 -04:00
Paul Lorenz e2d29d3f07 Rework model for circuit inspections. Add inspect support back to mgmt channel 2022-04-19 10:38:23 -04:00
Paul Lorenz a21fb393bb Add websocket API for mgmt channel 2022-04-19 10:34:57 -04:00
Paul Lorenz b35b532d25 Update to use storage library 2022-03-30 16:22:32 -04:00
tburtchell 2f8a608c4c Replacing link 'type' with 'protocol' and 'costTags' (#336)
* Replacing link 'type' with 'protocol' and 'costTags'
2022-03-22 09:06:02 -04:00
Paul Lorenz ef7c69558b Copy db ops from edge to fabric (for eventual removal from edge). Add snapshot db agent op 2022-03-10 10:07:41 -05:00
Paul Lorenz 2b7db10913 Allow routers more control over link management (#318)
* Allow routers more control over link management
2022-03-07 12:22:17 -05:00