Changelog
List of aperture PRs merged since 2.14.0 release. For the full list of changes, see [list of changes][changes]
Du-duplicated policies in aperturectl apply (2605)
- Bug Fix: Added a validation to ensure that policies exist in the
directory before attempting to apply them. This prevents errors and
confusion when the directory is empty or does not contain valid
policies.
- Refactor: Enhanced the `getPolicies` function to handle and skip
duplicate policy names. This improvement ensures that only unique
policies are applied, preventing potential conflicts or unexpected
behavior due to duplicates.
Added milli second support for time based attributes in SDK (2604)
- New Feature: Introduced millisecond timestamp labels for flow start,
flow end, and workload start timestamps. This change provides more
precise time tracking in the SDK.
- Refactor: Updated `AddSDKSpecificLabels` and `_getLabelTimestampValue`
functions to handle both nanosecond and millisecond timestamp labels.
This ensures backward compatibility with older versions of the SDK that
use nanosecond timestamps.
- Test: Modified test cases to accommodate changes in timestamp label
handling, ensuring the new functionality is thoroughly tested.
- Chore: Deprecated certain labels in favor of new ones with millisecond
timestamps, aligning with version 3.0.0 of the SDK.
flowcontrol: use float64 values for tokens (2602)
Put control points in cache even if service doesn't exist (2593)
- Refactor: Updated `populateControlPointCache` function in
`pkg/otelcollector/metricsprocessor/processor.go` to handle cases where
there are no services in the response, improving the processing of
control point IDs.
- Documentation: Enhanced readability and error handling instructions in
`sdks/aperture-go/README.md`. Also updated sleep duration for better
flow control.
- Refactor: Removed deprecated methods `HTTPMiddleware` and
`GRPCUnaryInterceptor` from `apertureClient` struct in
`sdks/aperture-go/sdk/client.go`, promoting use of updated middleware
functions for improved modularity.
Set integrator eval interval to 10sec in adaptive load scheduler (2592)
Description of change
* Set integrator eval interval to 10sec in adaptive load scheduler
* Document 10sec actuation and signal update frequency in load scheduler
docs.
- Documentation: Updated comments and descriptions in `LoadScheduler`
and `AdaptiveLoadScheduler` messages, clarifying that signals are
updated every 10 seconds. Also, added information about the disabling of
pass-through mode when the system re-enters overload state.
- Refactor: Modified the `ParseAdaptiveLoadScheduler` function to
initialize the `InitialValue` field of the `Integrator` struct with
`MaxLoadMultiplier`. Added a new field `EvaluationInterval` to the
`Integrator` struct for better load management.
- Documentation: Enhanced documentation for load management parameters
and LoadScheduler component, providing more accurate information about
their behavior and updates.
Set default tokens in the workload to 1 and switch off auto tokens by default (2590)
![screencapture-localhost-3000-d-1cafa24eadc87e0eeb9217b9179e31473bcfa21d-aperture-service-protection-2023-09-08-10_46_30](https://github.com/fluxninja/aperture/assets/1553055/514806eb-ceea-47f8-9f24-cee9c1d40c83)
- Bug Fix: Changed the default value of `workload_latency_based_tokens`
from `true` to `false` in `LoadScheduler` message to prevent unexpected
behavior.
- Refactor: Set a default value of `1` and a minimum limit of `0` for
`tokens` field in `Scheduler` message to ensure valid token allocation.
- Documentation: Updated the configuration specification and scheduler
concept documents to reflect the changes in default and minimum values.
- New Feature: Modified the token allocation precedence in the `Decide`
function of `Scheduler`. Label tokens now have the highest precedence,
providing users with more control over token allocation.
Synchronize actuation with ticks (2579)
**Release Notes:**
- New Feature: The evaluation interval for various components and
policies has been updated to provide more frequent evaluations. This
includes changes in `Circuit`, `Integrator`, `PIDController` messages,
and various blueprint configurations.
- Refactor: Hardcoded values of '10s' have been introduced for the
`evaluation_interval` parameter in several PromQL queries for
consistency.
- Documentation: Updated documentation to reflect changes in default
values and descriptions of configuration parameters. Notably, the
`Differentiator` component is now marked as deprecated with a suggestion
to use `PIDController` instead.
- Chore: Introduced new properties `circuitEvaluationInterval` and
`metricScrapeInterval` in `blueprints/consts.libsonnet` for better code
modularity and maintainability.
fix tokens type (int vs string) in the policy spec (2578)
Removed defaults for 'tokens_label_key' and 'priorities_label_key' (2573)
- Refactor: Updated `RateLimiter` and `Scheduler` message definitions in
`flowcontrol.proto`. Removed default values for `tokens_label_key` and
`priorities_label_key`, they will now default to empty strings if not
provided.
- Refactor: Changes in configuration fields in `spec.md`. Default values
have been removed and the type has been simplified. This allows more
flexibility when specifying HTTP status codes and duration values.
[changes]: https://github.com/fluxninja/aperture/compare/releases/aperture-controller/v2.14.0...releases/aperture-controller/v2.15.0