From 64ff5606bc04e43f4a2d8c816960adc7689377d6 Mon Sep 17 00:00:00 2001 From: Andrew Martinez Date: Fri, 19 Mar 2021 14:33:58 -0400 Subject: [PATCH] changelog, doc --- CHANGELOG.md | 26 ++++++++++++++++++++++++++ etc/ctrl.with.edge.yml | 4 ++++ 2 files changed, 30 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e5f95ee82..2770fe4f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ * Ziti Controller Remove All Ziti Controller Remove API Sessions and Edge Sessions API Sessions and Edge Sessions * Fixed posture check error responses to include only failed checks +* Heartbeat Collection And Batching * Add Service Request Failures for Posture Checks * Remove database migration code for versions older than 0.17.1 @@ -87,6 +88,31 @@ Example Output: [ 58.325] INFO ziti/ziti-controller/subcmd.deleteSessions.func3: done removing edge session indexes ``` +### Heartbeat Collection And Batching + +In previous versions heartbeats from REST API usage and discrete Edge Router connection would all cause writes +for the same API Session as they were encountered. In situations where one or more REST API requests were issues and/or one or more +Edge Router connections were held by a ZitI Application, multiple simultaneous heartbeats could occur for no apparent benefit +and consume disk write I/O. + +Heartbeats are now aggregated over a window of time in a cache and written to disk on an interval. The write interval defaults to 90s +and the batch size (for write transactions) to 250. Additionally, all heartbeats are flush to disk when the controller is properly shut down. + +These settings can be defined in the `edge.api` section for the Ziti Controller configuration. + +Example: +``` +edge: + api: + ... + #(optional, default 90s) Alters how frequently heartbeat and last activity values are persisted + activityUpdateInterval: 90s + #(optional, default 250) The number of API Sessions updated for last activity per transaction + activityUpdateBatchSize: 250 + ... +``` + + ### Add Service Request Failures for Posture Checks When a Ziti Identity (endpoint) requests a service that is provided via a Service Policy with diff --git a/etc/ctrl.with.edge.yml b/etc/ctrl.with.edge.yml index ee576d62f..9bd715d29 100644 --- a/etc/ctrl.with.edge.yml +++ b/etc/ctrl.with.edge.yml @@ -93,6 +93,10 @@ edge: # (optional, defaults to 10) The number of minutes before an Edge API session will timeout. Timeouts are reset by # API requests and connections that are maintained to Edge Routers sessionTimeoutMinutes: 30 + #(optional, default 90s) Alters how frequently heartbeat and last activity values are persisted + # activityUpdateInterval: 90s + #(optional, default 250) The number of API Sessions updated for last activity per transaction + # activityUpdateBatchSize: 250 #(optional, defaults to the root identity) An alternate "identity" to use for the Edge API. If this section is not # defined the root identity section will be used. This is useful for situations where Edge API will present a # publicly signed certificate instead of one generated by a private PKI created by ziti pki create