Changelog
List of aperture PRs merged since 2.23.0 release. For the full list of changes, see [list of changes][changes]
Revise API keys terminology (2954)
Description of change
* Revise API keys terminology
* Agent API Key -> API Key
* Personal API Key -> Personal Access Token
- **New Features**
- Introduced a new `AccessToken` field for enhanced security and
authentication.
- Added a search bar to the main interface for improved user experience.
- Implemented a new `Search` functionality for fetching and displaying
results.
- **Documentation**
- Updated all references from "Agent API Key" to "API Key" across
various documentation pages.
- Provided instructions for creating and using personal access tokens.
- Clarified the usage of API keys within SDK initialization and
configuration.
- **Refactor**
- Deprecated the `APIKey` field in favor of the new `AccessToken` field
for user authentication.
- Updated flag names from `api-key` to `access-token` in command-line
interface options.
- **Style**
- Enhanced styles for the new search bar component.
- **Chores**
- Renamed environment variables and parameters to align with the new
authentication approach.
- Updated script logic to utilize `access_token` instead of `api_key`.
- **Bug Fixes**
- Addressed issues with backward compatibility by ensuring new `APIKey`
fields accept previous `AgentAPIKey` values.
Caching (2935)
- **New Features**
- Introduced caching capabilities to the FlowControlService with new
RPCs for cache management.
- Added cache key and value fields to request and response messages for
enhanced service functionality.
- Implemented a new cache package with upsert and delete operations for
distributed caching.
- Expanded SDKs with new cache-related types and methods for managing
cached values.
- **Enhancements**
- Updated SDKs to include new cache-related RPCs and message types.
- Improved error handling and added new utility functions in SDKs for
better integration with caching features.
- Refactored existing code to accommodate caching logic and improve
readability.
- **Documentation**
- Updated example usage in SDKs to demonstrate new caching features and
API changes.
- **Refactor**
- Renamed packages and updated import paths to align with new caching
functionality.
- Replaced logging packages for consistency across the codebase.
- **Style**
- Made minor adjustments to code formatting for better consistency and
readability.
- **Chores**
- Updated Makefile to copy new generated SDK stubs for flow control to
respective SDK directories.
---------
Co-authored-by: Hasit Mistry <hasitfluxninja.com>
Csharp sdk (2930)
Docs aperture infra (2936)
Here are the release notes for the pull request:
- **Documentation Updates**
- Updated installation path and documentation links across various
guides and references to reflect the new directory structure, changing
from `/self-hosting/` to `/aperture-for-infra/`.
- Introduced a new "API Quota Management" guide with detailed
instructions and visual aids.
- Added a new "Per-user Rate Limiting" guide with comprehensive
strategy, configuration, and implementation details.
- Modified existing documentation to update references to "Agent API
Keys" to "Define Control Points" in the Aperture Cloud UI.
- Updated code examples in SDK usage guides to align with the latest
Aperture SDK interfaces and best practices.
- **New Features**
- Added new documentation pages for "Define Control Points" and
"Per-user Rate Limiting" with detailed explanations and code examples.
- **Refactor**
- Changed the title from "Self-Hosting Aperture" to "Aperture for Infra"
in the main documentation page to reflect product rebranding.
- **Chores**
- Adjusted sidebar positions and updated keywords in documentation
metadata for better organization and searchability.
- Updated Makefile and shell scripts to align with the new documentation
paths.
- **Style**
- Made minor text adjustments in sign-up instructions and other
documentation pages for clarity and consistency.
---------
Co-authored-by: Sudhanshu Prajapati <spsupraj2dgmail.com>
Co-authored-by: Jai Desai <jai.desaifluxninja.com>
Update Sampler label_key to session_label_key (2929)
- **Refactor**
- Renamed a configuration field to better reflect its purpose for
session labeling.
- **Documentation**
- Updated configuration specifications to align with the new field names
and types.
- Provided revised descriptions for the updated configuration fields.
- **Style**
- Adjusted the JSON structure in documentation examples to match the new
configuration schema.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Blueprints cleanup (2928)
Description of change
![screencapture-localhost-3000-d-f5fafd6dbdc3fef42960b4d75615afd5463b2564-policy-summary-service1-demo-app-2023-11-13-16_48_53](https://github.com/fluxninja/aperture/assets/1553055/95a8ff81-c6cd-4ce3-bf38-261d69a73616)
- **New Features**
- Introduced `AdaptiveLoadScheduler` field to enhance rate limiting
capabilities.
- Added new `limit_by_label_key` configuration parameter for more
precise rate limiting.
- **Documentation**
- Updated documentation to reflect new rate limiting configuration
options.
- Deprecated usage instructions for the old `label_key` field in favor
of `limit_by_label_key`.
- **Refactor**
- Renamed `label_key` to `limit_by_label_key` across various
configuration files and code to align with new rate limiting strategy.
- **Bug Fixes**
- Adjusted Grafana dashboard conditional checks to accommodate the new
`limit_by_label_key` field.
- **Chores**
- Cleaned up comments and descriptions in proto files to streamline the
configuration process.
Add support for workload_label_key in Scheduler configuration (2927)
- **Documentation**
- Updated comments for clarity in policy language definitions.
- Revised configuration object descriptions in documentation for better
understanding.
- Modified parameter types and references in blueprint documentation to
reflect new configurations.
- **New Features**
- Introduced new configuration keys for scheduling policies.
- **Refactor**
- Removed unused `flatten_config` function from the blueprint assets
generator.
- Changed how configuration defaults are structured in quota scheduling.
- Updated policy library to use direct parameter references.
- **Bug Fixes**
- Fixed configuration handling in quota scheduling and rate limiting
blueprints.
- **Style**
- Enhanced consistency in comments and documentation.
- **Chores**
- Altered sample config rendering logic by setting `is_dynamic_config`
to true.
Add support for Alerter in Quota Scheduler (2926)
![screencapture-localhost-3000-d-063ea58bde0d11be49a12f68f7590bc858226d63-policy-summary-quota-scheduler-2023-11-12-23_39_47](https://github.com/fluxninja/aperture/assets/1553055/6a42051e-a687-41c2-a596-2271d83cabd8)
The existing bullet-point list is still valid and accurately summarizes
the changes. No updates are necessary.
Update go to v1.21.4 (2923)
- **Chores**
- Updated Golang version from 1.21.3 to 1.21.4 across multiple
Dockerfiles, improving the Golang environment and tooling.
- Enhanced cache management in CircleCI configuration files for better
system caching behavior.
agent group label for flowcontrol_decisions_total metric (2921)
Description of change
- Add agent group label for the flowcontrol_decisions_total metric
Signed-off-by: Sahil Lakhwani <sahilakhwanigmail.com>
Remove unused dashboard config from blueprints (2918)
- **Refactor**
- Updated the structure of the main configuration file to handle
policies instead of both policies and dashboards.
- **Bug Fixes**
- Removed dashboard configurations from various sections of the
codebase, focusing on policy handling.
- **Documentation**
- Updated contributing guidelines and various documentation files to
reflect the removal of dashboard configurations.
Add required policy labels for ACCEPT_PERCENTAGE (2919)
- **Bug Fixes**
- Improved accuracy of rate limiting by considering specific policy
parameters in calculations.
Fix query for ACCEPT_PERCENTAGE signal (2917)
Separate dashboard sub-command for dashboard generation (2914)
Description of change
1. `blueprints generate` only generates graphs and policy
2. A new `dashboard` sub-command which will only generate the dashboards
3. Keep the `dashboard_group.libsonnet` just as a signature for backward
compatibility of aperturectl
4. Move dashboards related mixins to a separate top-level directory so
`blueprints generate` doesn't have to pull all the grafana dependencies
- **New Features**
- Introduced a new command `dashboard` to generate dashboards for
Aperture.
- Added a search functionality to pull content from a URI.
- **Bug Fixes**
- Updated file paths and names used for rendering dashboards.
- **Refactor**
- Replaced several local imports and function calls with a new function
for managing components.
- Replaced direct function calls with calls to functions from the
`utils` package.
- **Documentation**
- Added a new markdown file for the "aperturectl dashboard" command,
providing details about its usage, options, and related commands.
- Updated the documentation to include the new command for generating a
dashboard using `aperturectl`.
Add support for Alerter in Rate Limiter (2899)
Description of change
- Make nested component for rate limiter that in-turn makes the private
rate limiter component
- Introduce rate limiter private component
- Separate out component construction from config sync of rate limiter
<img width="1624" alt="Screenshot 2023-11-03 at 2 48 12 PM"
src="https://github.com/fluxninja/aperture/assets/1553055/c7d2f00c-6bfc-4bf4-88ee-707b6c666bc7">
- **New Features**
- Introduced a new Rate Limiter component with enhanced functionality
and configuration options.
- Added an alert system to notify when more than 90% of requests are
being rate-limited.
- **Bug Fixes**
- Adjusted the metrics scrape interval for better performance
monitoring.
- **Documentation**
- Updated the documentation for the Rate Limiter component, including
new sections and updated descriptions.
- **Refactor**
- Updated the version of the "com.google.protobuf" plugin for better
compatibility and performance.
Streamline dashboard generation (2905)
- **New Features**
- Enhanced Grafana dashboard with new panels for better data
visualization.
- Introduced a refresh interval and time range for the dashboard.
- Added support for generating multiple dashboards based on policy file.
- Improved search functionality with additional filters.
- **Bug Fixes**
- Updated Grafonnet version to fix potential issues.
- **Refactor**
- Updated import statements and function calls for better code
organization.
- **Chores**
- Increased verbosity of the "aperturectl" tool for detailed output
during blueprint generation.
[changes]: https://github.com/fluxninja/aperture/compare/releases/aperture-controller/v2.23.0...releases/aperture-controller/v2.24.0