formatter: add custom date formatting to downstream cert start and end dates#14502
formatter: add custom date formatting to downstream cert start and end dates#14502mattklein123 merged 10 commits intoenvoyproxy:masterfrom
Conversation
Signed-off-by: John Esmet <john.esmet@gmail.com>
mattklein123
left a comment
There was a problem hiding this comment.
Thanks for working on this!
/wait
…allback Signed-off-by: John Esmet <john.esmet@gmail.com>
Signed-off-by: John Esmet <john.esmet@gmail.com>
| // Matches newline pattern in a StartTimeFormatter format string. | ||
| const std::regex& getStartTimeNewlinePattern() { | ||
| // Matches newline pattern in a system time format string (e.g. start time) | ||
| const std::regex& getDateFormatNewlinePattern() { |
There was a problem hiding this comment.
For consistency I should probably rename this to getSystemTimeNewlinePattern
Signed-off-by: John Esmet <john.esmet@gmail.com>
Signed-off-by: John Esmet <john.esmet@gmail.com>
Signed-off-by: John Esmet <john.esmet@gmail.com>
mattklein123
left a comment
There was a problem hiding this comment.
Thanks LGTM with small comments.
/wait
| * config: added ability to flush stats when the admin's :ref:`/stats endpoint <operations_admin_interface_stats>` is hit instead of on a timer via :ref:`stats_flush_on_admin <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.stats_flush_on_admin>`. | ||
| * config: added new runtime feature `envoy.features.enable_all_deprecated_features` that allows the use of all deprecated features. | ||
| * formatter: added new :ref:`text_format_source <envoy_v3_api_field_config.core.v3.SubstitutionFormatString.text_format_source>` field to support format strings both inline and from a file. | ||
| * formatter: added support for custom date formatting to %DOWNSTREAM_PEER_CERT_V_START% and %DOWNSTREAM_PEER_CERT_V_END%, similar to %START_TIME%. |
There was a problem hiding this comment.
Please ref link to the relevant fields.
| const size_t parameters_length = token.length() - (DownstreamPeerCertVStartParamStart + 1); | ||
| const std::string args = | ||
| token[DownstreamPeerCertVStartParamStart - 1] == '(' | ||
| ? token.substr(DownstreamPeerCertVStartParamStart, parameters_length) | ||
| : ""; |
There was a problem hiding this comment.
Can this part be somehow pushed down into the shared parser/formatter? It's pretty confusing and could use more comments anyway. Until this code is rewritten to use an actual parser grammar I would err on the side of more comments.
There was a problem hiding this comment.
Sounds right. I'll add a shared format parsing function and push the logic into each constructor, which should allow this to become an easy one liner.
Signed-off-by: John Esmet <john.esmet@gmail.com>
Signed-off-by: John Esmet <john.esmet@gmail.com>
|
Thanks this looks good. Can you fix the docs build? /wait |
Signed-off-by: John Esmet <john.esmet@gmail.com>
|
I found and fixed the docs issue locally so CI should be happy this time around. |
* master: (48 commits) Resolve 14506, avoid libidn2 for our curl dependency (envoyproxy#14601) fix new/free mismatch in Mainthread utility (envoyproxy#14596) opencensus: deprecate Zipkin configuration. (envoyproxy#14576) upstream: clean up code location (envoyproxy#14580) configuration impl: add cast for ios compilation (envoyproxy#14590) buffer impl: add cast for android compilation (envoyproxy#14589) ratelimit: add dynamic metadata to ratelimit response (envoyproxy#14508) tcp_proxy: wait for CONNECT response before start streaming data (envoyproxy#14317) stream info: cleanup address handling (envoyproxy#14432) [deps] update upb to latest commit (envoyproxy#14582) Add utility to check whether the execution is in main thread. (envoyproxy#14457) listener: undeprecate bind_to_port (envoyproxy#14480) Fix data race in overload integration test (envoyproxy#14586) deps: update PGV (envoyproxy#14571) dependencies: update cve_scan.py for some libcurl 7.74.0 false positives. (envoyproxy#14572) Network::Connection: Add L4 crash dumping support (envoyproxy#14509) ssl: remember stat names for configured ciphers. (envoyproxy#14534) formatter: add custom date formatting to downstream cert start and end dates (envoyproxy#14502) feat(lua): allow setting response body when the upstream response body is empty (envoyproxy#14486) Generalize the gRPC access logger base classes (envoyproxy#14469) ... Signed-off-by: Michael Puncel <mpuncel@squareup.com>
Commit Message: formatter: add custom date formatting to downstream cert start and end dates
Additional Description: refactor and reuse existing behavior from START_TIME
Risk Level: low (new behavior, though existing code is refactored)
Testing: refactored existing unit test, added test cases for existing behaviors to new fields
Docs Changes: Updated docs/root/configuration/observability/access_log/usage.rst to mention formatting, refers back to START_TIME
Release Notes: formatter: added support for custom date formatting to %DOWNSTREAM_PEER_CERT_V_START% and %DOWNSTREAM_PEER_CERT_V_END%, similar to %START_TIME%.
Fixes: #14501