feat(grpc status codes): report grpc status codes via mixer#20036
feat(grpc status codes): report grpc status codes via mixer#20036istio-testing merged 8 commits intoistio:masterfrom
Conversation
There was a problem hiding this comment.
why are these removed? cardinality issue?
There was a problem hiding this comment.
For months I've been asking if these are used, and have yet to find anyone that is actually using these dimensions. I thought we were not carrying them forward into v2 (though the code now says otherwise).
@mandarjog objections to removing?
There was a problem hiding this comment.
Yes please remove, @yangminzhu last chance to object.
There was a problem hiding this comment.
Sorry I missed this PR. It should be fine to remove because the new authorization policy doesn't support the permissive mode but I'm not sure if it's used by anyone in the old RBAC policy for now. cc @liminw
There was a problem hiding this comment.
is the status an int or a string? I think it's a string (by mistake)
There was a problem hiding this comment.
apparently it is a string (based on the test failures). Is "0" the right default, or "unknown" ?
There was a problem hiding this comment.
it's set if grpc status header is present, and not set at all otherwise (see src/envoy/http/mixer/report_data.h`)
There was a problem hiding this comment.
right, but do we want the unset to be represented in metrics as "0" (like we default to "200" for http) or "unknown" ?
There was a problem hiding this comment.
I think empty is better. It shouldn't really be unknown for grpc ever.
There was a problem hiding this comment.
So just to confirm, the decision to have separate response_code and grpc_response_status fields is because even if request_protocol=grpc, response.code is still set?
Also, I think 0 is good for unset, just like the 200. I like a default being the same type as an actual value.
There was a problem hiding this comment.
@douglas-reid I know the ship has sailed but perhaps the new field should have been "request_protocol_status" or something like that. And contained the response status for the specified request_protocol. Basically replacing request_code, which has now been relegated to effectively being "http_code". So existing consumer code could still assume http codes in request_code and write new code using the new field, which could support the two existing protocols and if necessary, additional protocols somewhere down the line. And "response_code" could have been deprecated.
There was a problem hiding this comment.
@jshaughn perhaps -- that's closer to my original desire. I think we can rethink that for 1.6/1.7 when maybe we do an overhaul of the metrics (and they are controlled all via v2). however, at this point, i'd like to get the approved design implemented and into istio/istio first.
There was a problem hiding this comment.
@douglas-reid yup, totally agree. And I've been coding kiali the past days in anticipation of the new grpc_request_status field, and to be back compatible.
dd5a1e1 to
591180e
Compare
|
Ping. This now includes updates for the merged |
|
i am not qualified to review, lmk once a mixer owner approves and I can give it the approval |
|
@douglas-reid Will this make it into 1.5? |
|
@jshaughn i hope so. i'm certainly trying to make it happen. |
|
@jshaughn the biggest issue is making sure we have equivalent functionality with v2. |
9d31911 to
5ab8caf
Compare
Signed-off-by: Douglas Reid <douglas-reid@users.noreply.github.com>
Signed-off-by: Douglas Reid <douglas-reid@users.noreply.github.com>
Signed-off-by: Douglas Reid <douglas-reid@users.noreply.github.com>
9a2a26f to
412143a
Compare
Signed-off-by: Douglas Reid <douglas-reid@users.noreply.github.com>
|
Gentle ping on a review here. This PR brings the v1 telemetry pipeline in line with changes already made to v2. |
mandarjog
left a comment
There was a problem hiding this comment.
This is one of the last features added Mixer.
) * feat(grpc status codes): report grpc status codes via mixer * response.grpc_status is a string * force string instead of auto-detect duration * update manifest files as well * update to match istio/proxy PR Signed-off-by: Douglas Reid <douglas-reid@users.noreply.github.com> * update golden files Signed-off-by: Douglas Reid <douglas-reid@users.noreply.github.com> * add generated file Signed-off-by: Douglas Reid <douglas-reid@users.noreply.github.com> * running make gen a second time produces new results Signed-off-by: Douglas Reid <douglas-reid@users.noreply.github.com>
* DO NOT MERGE Test PR * Update proxy SHA * Debug test by printing all metrics * Check if failure repros on server side too * Add debug logging in integ tests * Add envoy debug logging * feat(grpc status codes): report grpc status codes via mixer (#20036) * feat(grpc status codes): report grpc status codes via mixer * response.grpc_status is a string * force string instead of auto-detect duration * update manifest files as well * update to match istio/proxy PR Signed-off-by: Douglas Reid <douglas-reid@users.noreply.github.com> * update golden files Signed-off-by: Douglas Reid <douglas-reid@users.noreply.github.com> * add generated file Signed-off-by: Douglas Reid <douglas-reid@users.noreply.github.com> * running make gen a second time produces new results Signed-off-by: Douglas Reid <douglas-reid@users.noreply.github.com> * More debug * Update Istio Proxy SHA (#20745) * Add TCP Stats and Metadata Filters for Istio 1.6 * Update Istio Proxy SHA * Run make gen * Use Istio generated Metadata Exchange and Stats filters in TCP Stats Test (#20818) * Add TCP Stats and Metadata Filters for Istio 1.6 * Use Istio generated Metadata Exchange and Stats filters in TCP Stats test * Run make gen * Remove debugging steps * Update to latest SHA Co-authored-by: Douglas Reid <douglas-reid@users.noreply.github.com>
) * feat(grpc status codes): report grpc status codes via mixer * response.grpc_status is a string * force string instead of auto-detect duration * update manifest files as well * update to match istio/proxy PR Signed-off-by: Douglas Reid <douglas-reid@users.noreply.github.com> * update golden files Signed-off-by: Douglas Reid <douglas-reid@users.noreply.github.com> * add generated file Signed-off-by: Douglas Reid <douglas-reid@users.noreply.github.com> * running make gen a second time produces new results Signed-off-by: Douglas Reid <douglas-reid@users.noreply.github.com>
|
Perhaps, could you update the Default Metrics page? https://istio.io/docs/reference/config/policy-and-telemetry/metrics/ I also see on that page the sentence |
This PR implements the changes approved in https://tinyurl.com/yy2cwmv5 to report gRPC status codes in metrics (and provide better alignment with logs and metrics when reporting protocol). It also cleans up unused metrics dimensions.
Other PRs will be required to support the same feature set in v2 telemetry and to update the operator/installer config templates.
Partial fix for #12846
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ X ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure