JSON Schema: HTTP Connection Manager access log#412
Conversation
|
@lyft/network-team |
|
|
||
| op | ||
| *(required, string)* Comparison operator. Currently *>=* is the only supported operator. | ||
| *(required, string)* Comparison operator. Currently *>=* and *=* are the only supported operator. |
| "filters": [ | ||
| { | ||
| "type": "status_code", | ||
| "op": ">=", |
There was a problem hiding this comment.
can you use '=' also in integration test configs, so that it'll have additional coverage
There was a problem hiding this comment.
There is already coverage for '=' within access_log_impl_tests.cc
There was a problem hiding this comment.
yup it's tested, just wanted extra test of that here, either way
source/common/json/config_schemas.cc
Outdated
| "type" : "object", | ||
| "properties" : { | ||
| "oneOf" : [ | ||
| {"$ref" : "#/definitions/status_code"}, |
There was a problem hiding this comment.
if (type == "status_code") {
return FilterPtr{new StatusCodeFilter(json, runtime)};
} else if (type == "duration") {
return FilterPtr{new DurationFilter(json, runtime)};
} else if (type == "runtime") {
return FilterPtr{new RuntimeFilter(json, runtime)};
} else if (type == "logical_or") {
return FilterPtr{new OrFilter(json, runtime)};
} else if (type == "logical_and") {
return FilterPtr{new AndFilter(json, runtime)};
} else if (type == "not_healthcheck") {
return FilterPtr{new NotHealthCheckFilter()};
} else if (type == "traceable_request") {
return FilterPtr{new TraceableRequestFilter(runtime)};
ref should be updated
these are all supported access log filters, why tests not catching it?
There was a problem hiding this comment.
i'll add a test for nested filters
source/common/json/config_schemas.cc
Outdated
| "minItems" : 2, | ||
| "items" : { | ||
| "anyOf" : [ | ||
| {"$ref" : "#/defintions/status_code"}, |
There was a problem hiding this comment.
any of the supported filter types can be here
source/common/json/config_schemas.cc
Outdated
| "minItems" : 2, | ||
| "items" : { | ||
| "anyOf" : [ | ||
| {"$ref" : "#/defintions/status_code"}, |
source/common/json/config_schemas.cc
Outdated
| "type" : "string", | ||
| "enum" : ["=>", "="] | ||
| }, | ||
| "value" : {"type" : "integer"}, |
There was a problem hiding this comment.
how about mix and max here as well?
minimum 0 and maximum 600 (for http)
There was a problem hiding this comment.
Great suggestion. Added.
| following features are available: | ||
|
|
||
| * Stable :ref:`access logging <config_http_conn_man_access_log>` via the sampling filter. | ||
| * Stable :ref:`access logging <config_http_conn_man_access_log>` via the runtime filter. |
There was a problem hiding this comment.
can you link to the runtime access log filter as well?
| "type" : "string", | ||
| "enum" : ["logical_and"] | ||
| }, | ||
| "filters" : { |
There was a problem hiding this comment.
change looks good to me, if only we could extract "filters" from here and from logical_or into separate thing and reference it from here and other place.
There was a problem hiding this comment.
Yes, good call. I didn't think about putting those two together at the time. Thank you!
* Revert "envoy sha update (envoyproxy#414)" This reverts commit ebb5ef1. * Revert "Fix mixer forward attribute bug. (envoyproxy#412)" This reverts commit 4f07917.
Automatic merge from submit-queue. [DO NOT MERGE] Auto PR to update dependencies of mixerclient This PR will be merged automatically once checks are successful. ```release-note none ```
….rst (envoyproxy#412) * zh-translation:docs/root/configuration/observability/access_log/stats.rst * zh-translation:docs/root/configuration/observability/access_log/stats.rst Co-authored-by: 包仁义 <renyi.bao@yiducloud.cn>
Description: This also provides support for on-heap byte arrays since they can be passed via ByteBuffer.wrap(). Signed-off-by: Mike Schore <mike.schore@gmail.com> Signed-off-by: JP Simard <jp@jpsim.com>
Description: This also provides support for on-heap byte arrays since they can be passed via ByteBuffer.wrap(). Signed-off-by: Mike Schore <mike.schore@gmail.com> Signed-off-by: JP Simard <jp@jpsim.com>
If we don't avoid there is possibility of deadlock. Like this: *) thread A runs malloc and happens to have some lock(s) there. It gets profiling signal. *) thread B runs ProfileHandler::UnregisterCallback or similar and has both control_lock_ and signal_lock_. *) thread B calls memory allocator (it used to delete token under lock) and hits the malloc lock, so waits *) thread A that has malloc lock wants to get signal_lock_ and waits too. Correct behavior is since we grab signal_lock_ from pretty much anywhere as part of signal handler, it then implies transitively that anything that grabs that lock cannot call into anything that grabs any other lock (e.g. including malloc). I.e. signal_lock_ "nests" under every other lock in the program. So we refector the code some. When removing callbacks we simply copy entire list with right token removed. Then grab signal_lock_ and only swap copy with old callback list. Then signal_lock_ lock is released and all the memory freeing operations are performed. When adding callback we utilize splice to also avoid anything "heavy" under signal_lock_. And as part of that change we're now able to have UpdateTimer method only needing control_lock_ instead of signal_lock_. We add somewhat elaborate unit test that was able to catch the issue without fix and now works fine. Closes github issue envoyproxy#412
**Commit Message** This commit adds the initial implementation of aigw CLI. As an initial functionality, this implements the static translator of Envoy AI Gateway resources into Envoy Gateway and Kubernetes resources. The implementation is partially done and follow up PR will improve the functionality. The implementation uses the fake Kubernetes client and reuses the controller code as-is. That allows us to avoid re-implementing the translation logic twice, which could easily drift and would be hard to maintain. **Related Issues/PRs (if applicable)** contributes to #412 --------- Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
**Commit Message** This removes the unnecessary fields from the expected output of translation test case. **Related Issues/PRs (if applicable)** Contributes to #412 Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
**Commit Message** This implements the `aigw run` command that runs the AI Gateway locally. This utilizes the Envoy Gateway's standalone mode [1]. With this command, users are now able to use the AI Gateway, without Docker or Kubernetes. The follow up PRs to further modify the default configuration to add more de-facto services such as ollama, and will add the command to show the default configuration. 1: https://gateway.envoyproxy.io/docs/tasks/operations/standalone-deployment-mode/ **Related Issues/PRs (if applicable)** Contributes to #412 Follow up on #498 --------- Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
**Commit Message** This adds a basic documentation about `aigw` CLi recently implemented merged. **Related Issues/PRs (if applicable)** Closes #412 --------- Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
-Provide support for access log Schemas
-Update test configurations to reflect expected access log format
-Update access log documentation