Skip to content

JSON Schema: HTTP Connection Manager access log#412

Merged
ccaraman merged 10 commits intomasterfrom
access-log-schemas
Feb 6, 2017
Merged

JSON Schema: HTTP Connection Manager access log#412
ccaraman merged 10 commits intomasterfrom
access-log-schemas

Conversation

@ccaraman
Copy link
Contributor

@ccaraman ccaraman commented Feb 2, 2017

-Provide support for access log Schemas
-Update test configurations to reflect expected access log format
-Update access log documentation

@ccaraman
Copy link
Contributor Author

ccaraman commented Feb 2, 2017

@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.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

operators?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed.

"filters": [
{
"type": "status_code",
"op": ">=",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you use '=' also in integration test configs, so that it'll have additional coverage

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is already coverage for '=' within access_log_impl_tests.cc

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yup it's tested, just wanted extra test of that here, either way

"type" : "object",
"properties" : {
"oneOf" : [
{"$ref" : "#/definitions/status_code"},
Copy link
Member

@RomanDzhabarov RomanDzhabarov Feb 2, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i'll add a test for nested filters

"minItems" : 2,
"items" : {
"anyOf" : [
{"$ref" : "#/defintions/status_code"},
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

any of the supported filter types can be here

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed.

"minItems" : 2,
"items" : {
"anyOf" : [
{"$ref" : "#/defintions/status_code"},
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ditto

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed.

"type" : "string",
"enum" : ["=>", "="]
},
"value" : {"type" : "integer"},
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how about mix and max here as well?
minimum 0 and maximum 600 (for http)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you link to the runtime access log filter as well?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added.

"type" : "string",
"enum" : ["logical_and"]
},
"filters" : {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, good call. I didn't think about putting those two together at the time. Thank you!

@mattklein123 mattklein123 reopened this Feb 6, 2017
@ccaraman ccaraman merged commit 9b1de5f into master Feb 6, 2017
@ccaraman ccaraman deleted the access-log-schemas branch February 6, 2017 20:40
rshriram pushed a commit to rshriram/envoy that referenced this pull request Oct 30, 2018
rshriram added a commit to rshriram/envoy that referenced this pull request Oct 30, 2018
* Revert "envoy sha update (envoyproxy#414)"

This reverts commit ebb5ef1.

* Revert "Fix mixer forward attribute bug. (envoyproxy#412)"

This reverts commit 4f07917.
rshriram pushed a commit to rshriram/envoy that referenced this pull request Oct 30, 2018
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
```
wolfguoliang pushed a commit to wolfguoliang/envoy that referenced this pull request Jan 23, 2021
….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>
jpsim pushed a commit that referenced this pull request Nov 28, 2022
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>
jpsim pushed a commit that referenced this pull request Nov 29, 2022
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>
nezdolik pushed a commit to nezdolik/envoy that referenced this pull request May 4, 2024
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
mathetake added a commit that referenced this pull request Mar 3, 2026
**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>
mathetake added a commit that referenced this pull request Mar 3, 2026
**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>
mathetake added a commit that referenced this pull request Mar 3, 2026
**Commit Message**

This scaffolds `aigw run [path]` command that allows users to run AI
Gateway natively without k8s/docker.

**Related Issues/PRs (if applicable)**

Extracted from #458
Contributes to #412

---------

Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
mathetake added a commit that referenced this pull request Mar 3, 2026
**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>
mathetake added a commit that referenced this pull request Mar 3, 2026
**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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants