Changelog
List of aperture PRs merged since 0.10.0 release. For the full list of changes, see [list of changes][changes]
Add GraphQL Demoapp (911)
Description of change
Update documentation in classifier.proto
- Fix links
- Format sentences
Add graphql-demoapp
- Add GraphQL based demoapp
- Add manifest files for graphql-demoapp
Add DecisionType label to rate_limit_counter metric
Update blueprints
- Add example policy for GraphQL rate limiting
- Update rate-limit lib to include classifiers
Control Point Refactor (948)
Description of change
* Control Point is now just a string.
* Remove the notion of a special traffic control point.
* Update Flow Control Concept docs
* Metric docs cleanup
* Merge flow_status and response_status labels
Alerter Component (939)
Adds new component for policy circuit that's sending alerts that are later processed by opentelemetry.
Start warning on entity lookup failure in authz and flowcontrol (943)
Added warnings on client IP retrieval failure and entity lookup failure.
Also, converted these failures to fail-early, so they're more
dicsoverable. We might lose some things (like stats) by not processing
such request further, but since we don't have any metadata about
services, such information was not too helpful.
Drive-by:
* Ripped out comments suggesting that on nil EntityCache we do some sort
of fallback service detection via Host – this logic is long gone now.
* Entity cache is assumed to be non-nil.
* Added helpers in grpc package to simplify "log and return grpc error
reusing the same message".
* Refactored if-else to switch-case in authz Check, as `DecisionType !=
REJECTED` was weird to read.
* Removed Eventually() in authz tests, it's no longer needed from some
time.
Improve visibility of sampled logs (929)
by using zerolog.BurstSampler instead of zerolog.RandomSampler. This
ensures that one-off and low-frequency events are always logged.
* Added log.NewRatelimitingSampler() helper that creates
a zerolog.BurstSampler with sane defaults.
* Added log.Autosample() that automates creation of per-message
BurstSampler variables (this is slightly less performant, so it's not
used on datapath).
Also:
* Added log.Bug(), whic is like Panic() (intended for "impossible"
cases), but for "continuable" errors. Currently it's just Autosample()
Warn() + "bug" label, but in future we should add more visibility, like
sentry reporting.
Drive-by:
* Downgraded various non-critical logs from Error to Warn.
* Removed sampling from Trace() logs, as it seems a bit contradictory.
Note: Demoapp will be changed in some subsequent commit, as it depends
on released version of aperture.
Make otel debug and healthcheck ports configurable (910)
[changes]: https://github.com/fluxninja/aperture/compare/releases/aperture-controller/v0.10.0...releases/aperture-controller/v0.11.0