Aperture-py

Latest version: v2.26.0

Safety actively analyzes 688674 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 24 of 53

2.7.0rc.1

Changelog

List of aperture PRs merged since 2.6.0 release. For the full list of changes, see [list of changes][changes]

Better FX error handling (2233)

This adds better error handling for platform FX errors. Before that, some errors were not logged properly.

Stop sending label values when Telemetry: false (2222)

* Values for Classifier-created labels which have Telemetry: false are
now hidden from OLAP telemetry.
* Values of HTTP Headers are also hidden now.

Drive-by: Use interface for labels map to avoid copying.

Resolves: 2183

Update use case docs (2230)

Release Notes:
- Documentation: Updated terminology and descriptions related to load
ramping, replacing "rollout" with "load ramp" for clarity.
- Documentation: Improved documentation for integrating CollectD's
`write_http` plugin JSON metrics with the OpenTelemetry Collector.
- Documentation: Updated section titles and URLs for load management
features, replacing "load ramp" with "percentage rollouts".
- Documentation: Updated links in the documentation for adaptive service
protection and workload prioritization tutorials.
- Documentation: Updated wording in the configuration documentation,
replacing "via dynamic configuration" with "through dynamic
configuration".
- Refactor: Renamed variables and fields related to a rollout policy to
reflect a load ramp policy.
- Refactor: Renamed user control components and corresponding signal
names in a code block.

> "Load ramps and metrics galore,
> With clarity, we explore.
> Terminology refined and bright,
> Integration made just right.
> Adaptive protection, workload's might,
> Release notes shine, a delightful sight!"

---------

Co-authored-by: Harjot Gill <harjot.gillfluxninja.com>

Remove policy metadata from annotations (2228)

Description of change


![screencapture-localhost-3000-d-1cafa24eadc87e0eeb9217b9179e31473bcfa21d-aperture-service-protection-2023-06-29-12_50_23](https://github.com/fluxninja/aperture/assets/1553055/441cc95e-9c15-4f10-8f01-bec0216dce43)

Release Notes:
- Refactor: Removed `PolicyMetadata` message from `policy.proto` in
`api/aperture/policy/language/v1`.
- Refactor: Removed `policy_metadata` field from `PolicyWrapper` message
in `api/aperture/policy/sync/v1`.
- Refactor: Modified logic and functionality to remove policy metadata
from annotations in various `policy.libsonnet` files.
- Refactor: Simplified code by removing unnecessary operations on policy
metadata in `cmd/aperturectl/cmd/apply/policy.go`.
- Refactor: Removed `BlueprintName` field and its usage from `metadata`
struct in `cmd/aperturectl/cmd/blueprints/generate.go`.
- Refactor: Updated paths and blueprint names in various shell scripts
and JSONnet files.
- Refactor: Modified logic in `docs/tools/aperturectl/validate_all.sh`
to correctly execute the `validate.sh` script in each directory.
- Refactor: Removed usage of policy metadata from
`pkg/policies/controlplane/crwatcher/watcher.go`.
- Refactor: Removed `PolicyMetadata` field and its handling from
`pkg/policies/controlplane/iface/policy.go`.
- Refactor: Removed storage and retrieval of policy metadata from
annotations in `pkg/policies/controlplane/policy-service.go`.

> "Code refactored, metadata removed,
> Logic simplified, improvements bestowed.
> Bugs exterminated, changes embraced,
> A cleaner codebase, with elegance laced."

Allow additional unary/streaming server interceptors (2223)

This allows injecting additional interceptors into GRPC Server.

perf: Speed up proto unmarshaling using vtprotobuf plugin (2213)

Speed up marshaling / unmarshaling of check(http) requests & responses by using
optimized methods generated by vtprotobuf plugin and some use of pooling.

Results: ~6% speedup (total (un)marshaling: ~15% โ†’ย ~8%), 10% reduction in
allocs.

Drive-by: Expose heap profiler endpoint.

Resolves 2212

Updated version of tools (2220)

**Chore:**
- Updated ASDF cache version from v9 to v10 in CircleCI configuration
files.
- Upgraded versions of Python, gcloud, Golang, and golangci-lint in
.tool-versions file.
- Updated Golang version from 1.20.4 to 1.20.5 in various Dockerfiles.

> ๐ŸŽ‰ Here's to the code that never rests,
> With updates and upgrades, we're giving our best.
> From Python to Golang, all shiny and new,
> For bugs and vulnerabilities, it's a firm adieu! ๐ŸŽ‰

blueprints: use imports to get the common config annotations (2210)

**New Features:**
- Introduced recursive parsing of imported config files in
`blueprint-assets-generator.py`.
- Added schema annotations for various controller and dashboard
parameters in multiple `.libsonnet` files.
- Refactored logic and functionality, including changes to import
statements, introduction of new annotations, merging configurations,
generating policies and dashboards based on provided parameters,
performing validation on parameter objects, and refactoring to use
imports for common config annotations.

**Bug Fixes:**
- Corrected a typo from `allwaysForward` to `alwaysForward`.

**Documentation:**
- Updated import paths and reference links in documentation files.

> ๐ŸŽ‰ Here's to the code that we've refined, ๐Ÿฅ‚
> To bugs squashed and typos left behind. ๐Ÿ›๐Ÿ”จ
> With each PR, our software shines more bright, ๐Ÿ’ก
> Oh, what a joy, this coder's delight! ๐ŸŽˆ๐ŸŽŠ

---------

Co-authored-by: Harjot Gill <harjot.gillfluxninja.com>
Co-authored-by: Hasit Mistry <hasitfluxninja.com>

[changes]: https://github.com/fluxninja/aperture/compare/releases/aperture-controller/v2.6.0...releases/aperture-controller/v2.7.0-rc.1

2.6.0

Changelog

List of aperture PRs merged since 2.5.0 release. For the full list of changes, see [list of changes][changes]

blueprints: required values based on defaults instead of annotations (2197)

Description of change

- Required values are now determined based on `__REQUIRED_FIELD__` in
the default value instead of the `required` annotation
- Removed `--only-required` flag in aperturectl
- Tweaked auto-scale blueprint by sharing controller schema and renaming
`threshold` to `setpoint`

![Screenshot 2023-06-26 at 5 24 09
PM](https://github.com/fluxninja/aperture/assets/18579817/e01b5f55-5dc5-441b-bdab-f9d58d15ae87)

**New Feature:**
- Added Pod Auto-scaler policy for auto-scaling based on resource usage
- Introduced Feature Rollout policies with Average Latency, Percentile
Latency, and PromQL configurations
- Implemented EMA Latency policy for feature rollout

**Documentation:**
- Updated documentation for blueprints, policies, and ApertureCTL
commands

**Refactor:**
- Refactored blueprint-assets-generator.py and related scripts

> ๐ŸŽ‰ A new era of scaling, we embrace,
> With policies refined, and features to trace.
> ๐Ÿš€ Our systems adapt, as demands arise,
> Ensuring performance, reaching for the skies. ๐ŸŒŸ

blueprints: remove autoscale escalation and jmx blueprint (2192)

Description of change

Remove auto-scale escalation (within service protection) and JMX
blueprint

<img width="1301" alt="Screenshot 2023-06-25 at 4 35 36 PM"
src="https://github.com/fluxninja/aperture/assets/18579817/8efa89f9-f0c3-436e-bd35-052fc7ea22e2">

**Removed Feature:**
- Load-based auto-scaling and service protection blueprints,
configurations, and documentation

**Documentation:**
- Removed various auto-scaling and JMX related documentation

**Chore:**
- Deleted Grafana dashboards and load testing scripts for removed
features

> ๐ŸŽ‰ Farewell to auto-scaling, we part ways today,
> Service protection, too, has gone away.
> Though features are lost, our code remains strong,
> Optimized and focused, we'll keep moving along. ๐Ÿš€

perf: Misc speedups in otelcollector processors (2186)

* Speed up sorting in rollupprocessor.key:
~7.5ยตs โ†’ย ~4.5ยตs improvement of key() (translating to ~%0.5 total).
Also: add bench, tweak initial capacity.
* metricsprocessor:
* Speed up AddCheckResponseBasedLabels: 2% โ†’ย 1%
* Avoid Sprintf + Join (do a single Sprintf instead).
* Remove intermediate labels map.
* Avoid deep copies (CopyTo).
* Don't lookup an attribute multiple times (every attribute is Put
exactly once).
* Try to ensure slice capacity where possible.
* Avoid getters on checkResponse, use fields directly (it's never nil,
so we can do it).
* Avoid String() for stringifying enums, because they for some reason go
through protoreflect.
* Simplify EnforceInclude/ExcludeList: 0.6% โ†’ 0.4%.
Leveraging Map.RemoveIf added in collector v0.59.

Change PromQL Query Interval (2168)

Description of change

![screencapture-localhost-3000-d-1cafa24eadc87e0eeb9217b9179e31473bcfa21d-aperture-service-protection-2023-06-22-14_36_42](https://github.com/fluxninja/aperture/assets/1553055/db4212e9-a9c0-475e-a91b-39c7a15232ea)


- New Feature: Updated evaluation intervals for PromQL queries in various files
- Refactor: Adjusted Grafana dashboard intervals
- Documentation: Updated documentation to reflect new interval values
- Performance: Modified scrape intervals and batch processing settings in extensions/fluxninja/otel/provide.go


> ๐ŸŽ‰ With intervals refined, our queries align,
> Performance enhanced, as stars do shine! โœจ
> Dashboards adapt, with grace and ease,
> A pull request that aims to please! ๐Ÿ˜„

Refactored infra_meters: Replaced telemetry_collectors with infra_meters (2185)

![image](https://github.com/fluxninja/aperture/assets/34568645/20c13419-0cbe-4b5f-bc06-6ef73c24df41)


New Feature:
- Replaced deprecated `telemetry_collectors` with new `infra_meters` map
- Updated related fields and objects in various configuration files and documentation

Refactor:
- Modified control structures and variable assignments for infra meters implementation


> ๐ŸŽ‰ Infra meters rise, telemetry collectors fall,
> A new era dawns, as we heed the call.
> With maps and fields, configurations align,
> Our code evolves, ever more refined. ๐Ÿš€

Added metrics labels for flux meter and telemetry collectors (2180)

**New Feature:**
- Added `policy_name` field to FluxMeterWrapper,
TelemetryCollectorWrapper, and InfraMeterWrapper messages
- Updated PromQL queries and dashboards to include `policy_name` label
- Modified OpenTelemetry configuration to handle new InfraMeterWrapper
type

**Refactor:**
- Changed `customConfig` map to `allInfraMeters` map in otel-config.go
- Updated AddInfraMeters function to accept new parameter types

> ๐ŸŽ‰ A new dawn for policies, we cheer! ๐Ÿฅณ
> With names attached, the path is clear. ๐Ÿ›ฃ๏ธ
> Dashboards refined, metrics aligned, ๐Ÿ“Š
> In this PR, great progress we find! ๐ŸŒŸ

Avoid deep copy in entity lookup (2178)

We never mutate entities directly in the maps, so copying was not necessary.
Also, added added a type wrapper so it's less likely someone tries mutating the
returned entity.

Drive-by:
* Stop using proto-generated structs for Entities datastructure.
* Fix lock in Clear() (fortunately, used only in tests).

Part of 2170

Avoid calling RequestToInput when not needed (2173)

Now RequestToInput convertion is done only when there are matching
classifiers.

Also: Speed up slightly RequestToInput in cases when it is run (~16ยตs
โ†’ย 13ยตs,
244 allocs โ†’ย 190 allocs).

Resolves: 2171

Remove protoc-gen-go-deepcopy buf plugin (2176)

Description of change

- Replace deepcopy with `proto.Clone`
- Maintain local types in static service discovery instead of using the
proto one
- Fix error in dashboard generation of adaptive-load-scheduler


![screencapture-localhost-3000-d-1cafa24eadc87e0eeb9217b9179e31473bcfa21d-aperture-service-protection-2023-06-20-14_32_15](https://github.com/fluxninja/aperture/assets/1553055/530d920b-50b6-4c5e-86ba-bbc051ba7939)

**Bug fix:**
- Fixed an error in dashboard generation of adaptive-load-scheduler

**Refactor:**
- Replaced `protoc-gen-go-deepcopy` buf plugin with `proto.Clone`
- Maintained local types in static service discovery instead of using
the proto one
- Minor changes in peers package that do not affect code logic
significantly

> ๐ŸŽ‰ With bugs fixed and refactors done,
> Our code shines bright like the morning sun. ๐ŸŒž
> Cloning made easy, types now aligned,
> A better release, users will find. ๐Ÿš€

Add QuotaScheduler processing to CheckResponse label adding (2169)


[changes]: https://github.com/fluxninja/aperture/compare/releases/aperture-controller/v2.5.0...releases/aperture-controller/v2.6.0

2.6.0rc.4

Changelog

List of aperture PRs merged since 2.5.0 release. For the full list of changes, see [list of changes][changes]

blueprints: required values based on defaults instead of annotations (2197)

Description of change

- Required values are now determined based on `__REQUIRED_FIELD__` in
the default value instead of the `required` annotation
- Removed `--only-required` flag in aperturectl
- Tweaked auto-scale blueprint by sharing controller schema and renaming
`threshold` to `setpoint`

![Screenshot 2023-06-26 at 5 24 09
PM](https://github.com/fluxninja/aperture/assets/18579817/e01b5f55-5dc5-441b-bdab-f9d58d15ae87)

**New Feature:**
- Added Pod Auto-scaler policy for auto-scaling based on resource usage
- Introduced Feature Rollout policies with Average Latency, Percentile
Latency, and PromQL configurations
- Implemented EMA Latency policy for feature rollout

**Documentation:**
- Updated documentation for blueprints, policies, and ApertureCTL
commands

**Refactor:**
- Refactored blueprint-assets-generator.py and related scripts

> ๐ŸŽ‰ A new era of scaling, we embrace,
> With policies refined, and features to trace.
> ๐Ÿš€ Our systems adapt, as demands arise,
> Ensuring performance, reaching for the skies. ๐ŸŒŸ

blueprints: remove autoscale escalation and jmx blueprint (2192)

Description of change

Remove auto-scale escalation (within service protection) and JMX
blueprint

<img width="1301" alt="Screenshot 2023-06-25 at 4 35 36 PM"
src="https://github.com/fluxninja/aperture/assets/18579817/8efa89f9-f0c3-436e-bd35-052fc7ea22e2">

**Removed Feature:**
- Load-based auto-scaling and service protection blueprints,
configurations, and documentation

**Documentation:**
- Removed various auto-scaling and JMX related documentation

**Chore:**
- Deleted Grafana dashboards and load testing scripts for removed
features

> ๐ŸŽ‰ Farewell to auto-scaling, we part ways today,
> Service protection, too, has gone away.
> Though features are lost, our code remains strong,
> Optimized and focused, we'll keep moving along. ๐Ÿš€

perf: Misc speedups in otelcollector processors (2186)

* Speed up sorting in rollupprocessor.key:
~7.5ยตs โ†’ย ~4.5ยตs improvement of key() (translating to ~%0.5 total).
Also: add bench, tweak initial capacity.
* metricsprocessor:
* Speed up AddCheckResponseBasedLabels: 2% โ†’ย 1%
* Avoid Sprintf + Join (do a single Sprintf instead).
* Remove intermediate labels map.
* Avoid deep copies (CopyTo).
* Don't lookup an attribute multiple times (every attribute is Put
exactly once).
* Try to ensure slice capacity where possible.
* Avoid getters on checkResponse, use fields directly (it's never nil,
so we can do it).
* Avoid String() for stringifying enums, because they for some reason go
through protoreflect.
* Simplify EnforceInclude/ExcludeList: 0.6% โ†’ 0.4%.
Leveraging Map.RemoveIf added in collector v0.59.

Change PromQL Query Interval (2168)

Description of change

![screencapture-localhost-3000-d-1cafa24eadc87e0eeb9217b9179e31473bcfa21d-aperture-service-protection-2023-06-22-14_36_42](https://github.com/fluxninja/aperture/assets/1553055/db4212e9-a9c0-475e-a91b-39c7a15232ea)


- New Feature: Updated evaluation intervals for PromQL queries in various files
- Refactor: Adjusted Grafana dashboard intervals
- Documentation: Updated documentation to reflect new interval values
- Performance: Modified scrape intervals and batch processing settings in extensions/fluxninja/otel/provide.go


> ๐ŸŽ‰ With intervals refined, our queries align,
> Performance enhanced, as stars do shine! โœจ
> Dashboards adapt, with grace and ease,
> A pull request that aims to please! ๐Ÿ˜„

Refactored infra_meters: Replaced telemetry_collectors with infra_meters (2185)

![image](https://github.com/fluxninja/aperture/assets/34568645/20c13419-0cbe-4b5f-bc06-6ef73c24df41)


New Feature:
- Replaced deprecated `telemetry_collectors` with new `infra_meters` map
- Updated related fields and objects in various configuration files and documentation

Refactor:
- Modified control structures and variable assignments for infra meters implementation


> ๐ŸŽ‰ Infra meters rise, telemetry collectors fall,
> A new era dawns, as we heed the call.
> With maps and fields, configurations align,
> Our code evolves, ever more refined. ๐Ÿš€

Added metrics labels for flux meter and telemetry collectors (2180)

**New Feature:**
- Added `policy_name` field to FluxMeterWrapper,
TelemetryCollectorWrapper, and InfraMeterWrapper messages
- Updated PromQL queries and dashboards to include `policy_name` label
- Modified OpenTelemetry configuration to handle new InfraMeterWrapper
type

**Refactor:**
- Changed `customConfig` map to `allInfraMeters` map in otel-config.go
- Updated AddInfraMeters function to accept new parameter types

> ๐ŸŽ‰ A new dawn for policies, we cheer! ๐Ÿฅณ
> With names attached, the path is clear. ๐Ÿ›ฃ๏ธ
> Dashboards refined, metrics aligned, ๐Ÿ“Š
> In this PR, great progress we find! ๐ŸŒŸ

Avoid deep copy in entity lookup (2178)

We never mutate entities directly in the maps, so copying was not necessary.
Also, added added a type wrapper so it's less likely someone tries mutating the
returned entity.

Drive-by:
* Stop using proto-generated structs for Entities datastructure.
* Fix lock in Clear() (fortunately, used only in tests).

Part of 2170

Avoid calling RequestToInput when not needed (2173)

Now RequestToInput convertion is done only when there are matching
classifiers.

Also: Speed up slightly RequestToInput in cases when it is run (~16ยตs
โ†’ย 13ยตs,
244 allocs โ†’ย 190 allocs).

Resolves: 2171

Remove protoc-gen-go-deepcopy buf plugin (2176)

Description of change

- Replace deepcopy with `proto.Clone`
- Maintain local types in static service discovery instead of using the
proto one
- Fix error in dashboard generation of adaptive-load-scheduler


![screencapture-localhost-3000-d-1cafa24eadc87e0eeb9217b9179e31473bcfa21d-aperture-service-protection-2023-06-20-14_32_15](https://github.com/fluxninja/aperture/assets/1553055/530d920b-50b6-4c5e-86ba-bbc051ba7939)

**Bug fix:**
- Fixed an error in dashboard generation of adaptive-load-scheduler

**Refactor:**
- Replaced `protoc-gen-go-deepcopy` buf plugin with `proto.Clone`
- Maintained local types in static service discovery instead of using
the proto one
- Minor changes in peers package that do not affect code logic
significantly

> ๐ŸŽ‰ With bugs fixed and refactors done,
> Our code shines bright like the morning sun. ๐ŸŒž
> Cloning made easy, types now aligned,
> A better release, users will find. ๐Ÿš€

Add QuotaScheduler processing to CheckResponse label adding (2169)


[changes]: https://github.com/fluxninja/aperture/compare/releases/aperture-controller/v2.5.0...releases/aperture-controller/v2.6.0-rc.4

2.6.0rc.3

Changelog

List of aperture PRs merged since 2.5.0 release. For the full list of changes, see [list of changes][changes]

blueprints: required values based on defaults instead of annotations (2197)

Description of change

- Required values are now determined based on `__REQUIRED_FIELD__` in
the default value instead of the `required` annotation
- Removed `--only-required` flag in aperturectl
- Tweaked auto-scale blueprint by sharing controller schema and renaming
`threshold` to `setpoint`

![Screenshot 2023-06-26 at 5 24 09
PM](https://github.com/fluxninja/aperture/assets/18579817/e01b5f55-5dc5-441b-bdab-f9d58d15ae87)

**New Feature:**
- Added Pod Auto-scaler policy for auto-scaling based on resource usage
- Introduced Feature Rollout policies with Average Latency, Percentile
Latency, and PromQL configurations
- Implemented EMA Latency policy for feature rollout

**Documentation:**
- Updated documentation for blueprints, policies, and ApertureCTL
commands

**Refactor:**
- Refactored blueprint-assets-generator.py and related scripts

> ๐ŸŽ‰ A new era of scaling, we embrace,
> With policies refined, and features to trace.
> ๐Ÿš€ Our systems adapt, as demands arise,
> Ensuring performance, reaching for the skies. ๐ŸŒŸ

blueprints: remove autoscale escalation and jmx blueprint (2192)

Description of change

Remove auto-scale escalation (within service protection) and JMX
blueprint

<img width="1301" alt="Screenshot 2023-06-25 at 4 35 36 PM"
src="https://github.com/fluxninja/aperture/assets/18579817/8efa89f9-f0c3-436e-bd35-052fc7ea22e2">

**Removed Feature:**
- Load-based auto-scaling and service protection blueprints,
configurations, and documentation

**Documentation:**
- Removed various auto-scaling and JMX related documentation

**Chore:**
- Deleted Grafana dashboards and load testing scripts for removed
features

> ๐ŸŽ‰ Farewell to auto-scaling, we part ways today,
> Service protection, too, has gone away.
> Though features are lost, our code remains strong,
> Optimized and focused, we'll keep moving along. ๐Ÿš€

perf: Misc speedups in otelcollector processors (2186)

* Speed up sorting in rollupprocessor.key:
~7.5ยตs โ†’ย ~4.5ยตs improvement of key() (translating to ~%0.5 total).
Also: add bench, tweak initial capacity.
* metricsprocessor:
* Speed up AddCheckResponseBasedLabels: 2% โ†’ย 1%
* Avoid Sprintf + Join (do a single Sprintf instead).
* Remove intermediate labels map.
* Avoid deep copies (CopyTo).
* Don't lookup an attribute multiple times (every attribute is Put
exactly once).
* Try to ensure slice capacity where possible.
* Avoid getters on checkResponse, use fields directly (it's never nil,
so we can do it).
* Avoid String() for stringifying enums, because they for some reason go
through protoreflect.
* Simplify EnforceInclude/ExcludeList: 0.6% โ†’ 0.4%.
Leveraging Map.RemoveIf added in collector v0.59.

Change PromQL Query Interval (2168)

Description of change

![screencapture-localhost-3000-d-1cafa24eadc87e0eeb9217b9179e31473bcfa21d-aperture-service-protection-2023-06-22-14_36_42](https://github.com/fluxninja/aperture/assets/1553055/db4212e9-a9c0-475e-a91b-39c7a15232ea)


- New Feature: Updated evaluation intervals for PromQL queries in various files
- Refactor: Adjusted Grafana dashboard intervals
- Documentation: Updated documentation to reflect new interval values
- Performance: Modified scrape intervals and batch processing settings in extensions/fluxninja/otel/provide.go


> ๐ŸŽ‰ With intervals refined, our queries align,
> Performance enhanced, as stars do shine! โœจ
> Dashboards adapt, with grace and ease,
> A pull request that aims to please! ๐Ÿ˜„

Refactored infra_meters: Replaced telemetry_collectors with infra_meters (2185)

![image](https://github.com/fluxninja/aperture/assets/34568645/20c13419-0cbe-4b5f-bc06-6ef73c24df41)


New Feature:
- Replaced deprecated `telemetry_collectors` with new `infra_meters` map
- Updated related fields and objects in various configuration files and documentation

Refactor:
- Modified control structures and variable assignments for infra meters implementation


> ๐ŸŽ‰ Infra meters rise, telemetry collectors fall,
> A new era dawns, as we heed the call.
> With maps and fields, configurations align,
> Our code evolves, ever more refined. ๐Ÿš€

Added metrics labels for flux meter and telemetry collectors (2180)

**New Feature:**
- Added `policy_name` field to FluxMeterWrapper,
TelemetryCollectorWrapper, and InfraMeterWrapper messages
- Updated PromQL queries and dashboards to include `policy_name` label
- Modified OpenTelemetry configuration to handle new InfraMeterWrapper
type

**Refactor:**
- Changed `customConfig` map to `allInfraMeters` map in otel-config.go
- Updated AddInfraMeters function to accept new parameter types

> ๐ŸŽ‰ A new dawn for policies, we cheer! ๐Ÿฅณ
> With names attached, the path is clear. ๐Ÿ›ฃ๏ธ
> Dashboards refined, metrics aligned, ๐Ÿ“Š
> In this PR, great progress we find! ๐ŸŒŸ

Avoid deep copy in entity lookup (2178)

We never mutate entities directly in the maps, so copying was not necessary.
Also, added added a type wrapper so it's less likely someone tries mutating the
returned entity.

Drive-by:
* Stop using proto-generated structs for Entities datastructure.
* Fix lock in Clear() (fortunately, used only in tests).

Part of 2170

Avoid calling RequestToInput when not needed (2173)

Now RequestToInput convertion is done only when there are matching
classifiers.

Also: Speed up slightly RequestToInput in cases when it is run (~16ยตs
โ†’ย 13ยตs,
244 allocs โ†’ย 190 allocs).

Resolves: 2171

Remove protoc-gen-go-deepcopy buf plugin (2176)

Description of change

- Replace deepcopy with `proto.Clone`
- Maintain local types in static service discovery instead of using the
proto one
- Fix error in dashboard generation of adaptive-load-scheduler


![screencapture-localhost-3000-d-1cafa24eadc87e0eeb9217b9179e31473bcfa21d-aperture-service-protection-2023-06-20-14_32_15](https://github.com/fluxninja/aperture/assets/1553055/530d920b-50b6-4c5e-86ba-bbc051ba7939)

**Bug fix:**
- Fixed an error in dashboard generation of adaptive-load-scheduler

**Refactor:**
- Replaced `protoc-gen-go-deepcopy` buf plugin with `proto.Clone`
- Maintained local types in static service discovery instead of using
the proto one
- Minor changes in peers package that do not affect code logic
significantly

> ๐ŸŽ‰ With bugs fixed and refactors done,
> Our code shines bright like the morning sun. ๐ŸŒž
> Cloning made easy, types now aligned,
> A better release, users will find. ๐Ÿš€

Add QuotaScheduler processing to CheckResponse label adding (2169)


[changes]: https://github.com/fluxninja/aperture/compare/releases/aperture-controller/v2.5.0...releases/aperture-controller/v2.6.0-rc.3

2.6.0rc.2

Changelog

List of aperture PRs merged since 2.5.0 release. For the full list of changes, see [list of changes][changes]

blueprints: required values based on defaults instead of annotations (2197)

Description of change

- Required values are now determined based on `__REQUIRED_FIELD__` in
the default value instead of the `required` annotation
- Removed `--only-required` flag in aperturectl
- Tweaked auto-scale blueprint by sharing controller schema and renaming
`threshold` to `setpoint`

![Screenshot 2023-06-26 at 5 24 09
PM](https://github.com/fluxninja/aperture/assets/18579817/e01b5f55-5dc5-441b-bdab-f9d58d15ae87)

**New Feature:**
- Added Pod Auto-scaler policy for auto-scaling based on resource usage
- Introduced Feature Rollout policies with Average Latency, Percentile
Latency, and PromQL configurations
- Implemented EMA Latency policy for feature rollout

**Documentation:**
- Updated documentation for blueprints, policies, and ApertureCTL
commands

**Refactor:**
- Refactored blueprint-assets-generator.py and related scripts

> ๐ŸŽ‰ A new era of scaling, we embrace,
> With policies refined, and features to trace.
> ๐Ÿš€ Our systems adapt, as demands arise,
> Ensuring performance, reaching for the skies. ๐ŸŒŸ

blueprints: remove autoscale escalation and jmx blueprint (2192)

Description of change

Remove auto-scale escalation (within service protection) and JMX
blueprint

<img width="1301" alt="Screenshot 2023-06-25 at 4 35 36 PM"
src="https://github.com/fluxninja/aperture/assets/18579817/8efa89f9-f0c3-436e-bd35-052fc7ea22e2">

**Removed Feature:**
- Load-based auto-scaling and service protection blueprints,
configurations, and documentation

**Documentation:**
- Removed various auto-scaling and JMX related documentation

**Chore:**
- Deleted Grafana dashboards and load testing scripts for removed
features

> ๐ŸŽ‰ Farewell to auto-scaling, we part ways today,
> Service protection, too, has gone away.
> Though features are lost, our code remains strong,
> Optimized and focused, we'll keep moving along. ๐Ÿš€

perf: Misc speedups in otelcollector processors (2186)

* Speed up sorting in rollupprocessor.key:
~7.5ยตs โ†’ย ~4.5ยตs improvement of key() (translating to ~%0.5 total).
Also: add bench, tweak initial capacity.
* metricsprocessor:
* Speed up AddCheckResponseBasedLabels: 2% โ†’ย 1%
* Avoid Sprintf + Join (do a single Sprintf instead).
* Remove intermediate labels map.
* Avoid deep copies (CopyTo).
* Don't lookup an attribute multiple times (every attribute is Put
exactly once).
* Try to ensure slice capacity where possible.
* Avoid getters on checkResponse, use fields directly (it's never nil,
so we can do it).
* Avoid String() for stringifying enums, because they for some reason go
through protoreflect.
* Simplify EnforceInclude/ExcludeList: 0.6% โ†’ 0.4%.
Leveraging Map.RemoveIf added in collector v0.59.

Change PromQL Query Interval (2168)

Description of change

![screencapture-localhost-3000-d-1cafa24eadc87e0eeb9217b9179e31473bcfa21d-aperture-service-protection-2023-06-22-14_36_42](https://github.com/fluxninja/aperture/assets/1553055/db4212e9-a9c0-475e-a91b-39c7a15232ea)


- New Feature: Updated evaluation intervals for PromQL queries in various files
- Refactor: Adjusted Grafana dashboard intervals
- Documentation: Updated documentation to reflect new interval values
- Performance: Modified scrape intervals and batch processing settings in extensions/fluxninja/otel/provide.go


> ๐ŸŽ‰ With intervals refined, our queries align,
> Performance enhanced, as stars do shine! โœจ
> Dashboards adapt, with grace and ease,
> A pull request that aims to please! ๐Ÿ˜„

Refactored infra_meters: Replaced telemetry_collectors with infra_meters (2185)

![image](https://github.com/fluxninja/aperture/assets/34568645/20c13419-0cbe-4b5f-bc06-6ef73c24df41)


New Feature:
- Replaced deprecated `telemetry_collectors` with new `infra_meters` map
- Updated related fields and objects in various configuration files and documentation

Refactor:
- Modified control structures and variable assignments for infra meters implementation


> ๐ŸŽ‰ Infra meters rise, telemetry collectors fall,
> A new era dawns, as we heed the call.
> With maps and fields, configurations align,
> Our code evolves, ever more refined. ๐Ÿš€

Added metrics labels for flux meter and telemetry collectors (2180)

**New Feature:**
- Added `policy_name` field to FluxMeterWrapper,
TelemetryCollectorWrapper, and InfraMeterWrapper messages
- Updated PromQL queries and dashboards to include `policy_name` label
- Modified OpenTelemetry configuration to handle new InfraMeterWrapper
type

**Refactor:**
- Changed `customConfig` map to `allInfraMeters` map in otel-config.go
- Updated AddInfraMeters function to accept new parameter types

> ๐ŸŽ‰ A new dawn for policies, we cheer! ๐Ÿฅณ
> With names attached, the path is clear. ๐Ÿ›ฃ๏ธ
> Dashboards refined, metrics aligned, ๐Ÿ“Š
> In this PR, great progress we find! ๐ŸŒŸ

Avoid deep copy in entity lookup (2178)

We never mutate entities directly in the maps, so copying was not necessary.
Also, added added a type wrapper so it's less likely someone tries mutating the
returned entity.

Drive-by:
* Stop using proto-generated structs for Entities datastructure.
* Fix lock in Clear() (fortunately, used only in tests).

Part of 2170

Avoid calling RequestToInput when not needed (2173)

Now RequestToInput convertion is done only when there are matching
classifiers.

Also: Speed up slightly RequestToInput in cases when it is run (~16ยตs
โ†’ย 13ยตs,
244 allocs โ†’ย 190 allocs).

Resolves: 2171

Remove protoc-gen-go-deepcopy buf plugin (2176)

Description of change

- Replace deepcopy with `proto.Clone`
- Maintain local types in static service discovery instead of using the
proto one
- Fix error in dashboard generation of adaptive-load-scheduler


![screencapture-localhost-3000-d-1cafa24eadc87e0eeb9217b9179e31473bcfa21d-aperture-service-protection-2023-06-20-14_32_15](https://github.com/fluxninja/aperture/assets/1553055/530d920b-50b6-4c5e-86ba-bbc051ba7939)

**Bug fix:**
- Fixed an error in dashboard generation of adaptive-load-scheduler

**Refactor:**
- Replaced `protoc-gen-go-deepcopy` buf plugin with `proto.Clone`
- Maintained local types in static service discovery instead of using
the proto one
- Minor changes in peers package that do not affect code logic
significantly

> ๐ŸŽ‰ With bugs fixed and refactors done,
> Our code shines bright like the morning sun. ๐ŸŒž
> Cloning made easy, types now aligned,
> A better release, users will find. ๐Ÿš€

Add QuotaScheduler processing to CheckResponse label adding (2169)


[changes]: https://github.com/fluxninja/aperture/compare/releases/aperture-controller/v2.5.0...releases/aperture-controller/v2.6.0-rc.2

2.6.0rc.1

Changelog

List of aperture PRs merged since 2.5.0 release. For the full list of changes, see [list of changes][changes]

Refactored infra_meters: Replaced telemetry_collectors with infra_meters (2185)

![image](https://github.com/fluxninja/aperture/assets/34568645/20c13419-0cbe-4b5f-bc06-6ef73c24df41)


New Feature:
- Replaced deprecated `telemetry_collectors` with new `infra_meters` map
- Updated related fields and objects in various configuration files and documentation

Refactor:
- Modified control structures and variable assignments for infra meters implementation


> ๐ŸŽ‰ Infra meters rise, telemetry collectors fall,
> A new era dawns, as we heed the call.
> With maps and fields, configurations align,
> Our code evolves, ever more refined. ๐Ÿš€

Added metrics labels for flux meter and telemetry collectors (2180)

**New Feature:**
- Added `policy_name` field to FluxMeterWrapper,
TelemetryCollectorWrapper, and InfraMeterWrapper messages
- Updated PromQL queries and dashboards to include `policy_name` label
- Modified OpenTelemetry configuration to handle new InfraMeterWrapper
type

**Refactor:**
- Changed `customConfig` map to `allInfraMeters` map in otel-config.go
- Updated AddInfraMeters function to accept new parameter types

> ๐ŸŽ‰ A new dawn for policies, we cheer! ๐Ÿฅณ
> With names attached, the path is clear. ๐Ÿ›ฃ๏ธ
> Dashboards refined, metrics aligned, ๐Ÿ“Š
> In this PR, great progress we find! ๐ŸŒŸ

Avoid deep copy in entity lookup (2178)

We never mutate entities directly in the maps, so copying was not necessary.
Also, added added a type wrapper so it's less likely someone tries mutating the
returned entity.

Drive-by:
* Stop using proto-generated structs for Entities datastructure.
* Fix lock in Clear() (fortunately, used only in tests).

Part of 2170

Avoid calling RequestToInput when not needed (2173)

Now RequestToInput convertion is done only when there are matching
classifiers.

Also: Speed up slightly RequestToInput in cases when it is run (~16ยตs
โ†’ย 13ยตs,
244 allocs โ†’ย 190 allocs).

Resolves: 2171

Remove protoc-gen-go-deepcopy buf plugin (2176)

Description of change

- Replace deepcopy with `proto.Clone`
- Maintain local types in static service discovery instead of using the
proto one
- Fix error in dashboard generation of adaptive-load-scheduler


![screencapture-localhost-3000-d-1cafa24eadc87e0eeb9217b9179e31473bcfa21d-aperture-service-protection-2023-06-20-14_32_15](https://github.com/fluxninja/aperture/assets/1553055/530d920b-50b6-4c5e-86ba-bbc051ba7939)

**Bug fix:**
- Fixed an error in dashboard generation of adaptive-load-scheduler

**Refactor:**
- Replaced `protoc-gen-go-deepcopy` buf plugin with `proto.Clone`
- Maintained local types in static service discovery instead of using
the proto one
- Minor changes in peers package that do not affect code logic
significantly

> ๐ŸŽ‰ With bugs fixed and refactors done,
> Our code shines bright like the morning sun. ๐ŸŒž
> Cloning made easy, types now aligned,
> A better release, users will find. ๐Ÿš€

Add QuotaScheduler processing to CheckResponse label adding (2169)


[changes]: https://github.com/fluxninja/aperture/compare/releases/aperture-controller/v2.5.0...releases/aperture-controller/v2.6.0-rc.1

Page 24 of 53

Links

Releases

Has known vulnerabilities

ยฉ 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.