You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: new event-based decisions log buffer implementation (#7446)
This new event-based buffer provides a performance improvement over
the existing buffer by reducing locks and allowing concurrent writes and uploads.
The buffer size is managed by number of individual events opposed to total bytes.
Signed-off-by: sspaink <[email protected]>
|`decision_logs.service`|`string`| No | Name of the service to use to contact remote server. If no `plugin` is specified, and `console` logging is disabled, this will default to the first `service` name defined in the Services configuration. |
785
-
|`decision_logs.partition_name`|`string`| No | Deprecated: Use `resource` instead. Path segment to include in status updates. |
786
-
|`decision_logs.resource`|`string`| No (default: `/logs`) | Full path to use for sending decision logs to a remote server. |
787
-
|`decision_logs.reporting.buffer_size_limit_bytes`|`int64`| No | Decision log buffer size limit in bytes. OPA will drop old events from the log if this limit is exceeded. By default, no limit is set. Only one of `buffer_size_limit_bytes`, `max_decisions_per_second` may be set. |
788
-
|`decision_logs.reporting.max_decisions_per_second`|`float64`| No | Maximum number of decision log events to buffer per second. OPA will drop events if the rate limit is exceeded. Only one of `buffer_size_limit_bytes`, `max_decisions_per_second` may be set. |
789
-
|`decision_logs.reporting.upload_size_limit_bytes`|`int64`| No (default: `32768`) | Decision log upload size limit in bytes. OPA will chunk uploads to cap message body to this limit. |
790
-
|`decision_logs.reporting.min_delay_seconds`|`int64`| No (default: `300`) | Minimum amount of time to wait between uploads. |
791
-
|`decision_logs.reporting.max_delay_seconds`|`int64`| No (default: `600`) | Maximum amount of time to wait between uploads. |
792
-
|`decision_logs.reporting.trigger`|`string`| No (default: `periodic`) | Controls how decision logs are reported to the remote server. Allowed values are `periodic` and `manual` (`manual` triggers are only possible when using OPA as a Go package). |
793
-
|`decision_logs.mask_decision`|`string`| No (default: `/system/log/mask`) | Set path of masking decision. |
794
-
|`decision_logs.drop_decision`|`string`| No (default: `/system/log/drop`) | Set path of drop decision. |
795
-
|`decision_logs.plugin`|`string`| No | Use the named plugin for decision logging. If this field exists, the other configuration fields are not required. |
796
-
|`decision_logs.console`|`boolean`| No (default: `false`) | Log the decisions locally to the console. When enabled alongside a remote decision logging API the `service` must be configured, the default `service` selection will be disabled. |
797
-
|`decision_logs.request_context.http.headers`|`array`| No | List of HTTP headers to include in the decision log. OPA will include the values for these headers in the decision log if they exist in the incoming HTTP request. |
|`decision_logs.service`|`string`| No | Name of the service to use to contact remote server. If no `plugin` is specified, and `console` logging is disabled, this will default to the first `service` name defined in the Services configuration. |
785
+
|`decision_logs.partition_name`|`string`| No | Deprecated: Use `resource` instead. Path segment to include in status updates. |
786
+
|`decision_logs.resource`|`string`| No (default: `/logs`) | Full path to use for sending decision logs to a remote server. |
787
+
|`decision_logs.reporting.buffer_type`|`string`| No (default: `size`) | Toggles the type of buffer to use. The two available options are "size" or "event". Refer to the [Decision Log Plugin README](https://github.com/open-policy-agent/opa/tree/main/v1/plugins/logs/README.md) for for a detailed comparison. |
788
+
|`decision_logs.reporting.buffer_size_limit_events`|`int64`| No (default: `10000`) | Decision log buffer size limit by events. OPA will drop old events from the log if this limit is exceeded. By default, 100 events are held. This number has to be greater than zero. Only works with "event" buffer type. |
789
+
|`decision_logs.reporting.buffer_size_limit_bytes`|`int64`| No (default: `unlimited`) | Decision log buffer size limit in bytes. OPA will drop old events from the log if this limit is exceeded. By default, no limit is set. Only one of `buffer_size_limit_bytes`, `max_decisions_per_second` may be set. Only works with "size" buffer type. |
790
+
|`decision_logs.reporting.max_decisions_per_second`|`float64`| No | Maximum number of decision log events to buffer per second. OPA will drop events if the rate limit is exceeded. Only one of `buffer_size_limit_bytes`, `max_decisions_per_second` may be set. |
791
+
|`decision_logs.reporting.upload_size_limit_bytes`|`int64`| No (default: `32768`) | Decision log upload size limit in bytes. OPA will chunk uploads to cap message body to this limit. |
792
+
|`decision_logs.reporting.min_delay_seconds`|`int64`| No (default: `300`) | Minimum amount of time to wait between uploads. |
793
+
|`decision_logs.reporting.max_delay_seconds`|`int64`| No (default: `600`) | Maximum amount of time to wait between uploads. |
794
+
|`decision_logs.reporting.trigger`|`string`| No (default: `periodic`) | Controls how decision logs are reported to the remote server. Allowed values are `periodic` and `manual` (`manual` triggers are only possible when using OPA as a Go package). |
795
+
|`decision_logs.mask_decision`|`string`| No (default: `/system/log/mask`) | Set path of masking decision. |
796
+
|`decision_logs.drop_decision`|`string`| No (default: `/system/log/drop`) | Set path of drop decision. |
797
+
|`decision_logs.plugin`|`string`| No | Use the named plugin for decision logging. If this field exists, the other configuration fields are not required. |
798
+
|`decision_logs.console`|`boolean`| No (default: `false`) | Log the decisions locally to the console. When enabled alongside a remote decision logging API the `service` must be configured, the default `service` selection will be disabled. |
799
+
|`decision_logs.request_context.http.headers`|`array`| No | List of HTTP headers to include in the decision log. OPA will include the values for these headers in the decision log if they exist in the incoming HTTP request. |
0 commit comments