Skip to main content

Istio log slicing with angle-grinder

·1 min

For me angle-grinder is a handy tool when it comes to istio log-analysis.
I love the combindation of stern and angle-grinder to gain an quick overview how istio-ingressgateway is doing.

I’ll give you a short overview of statements I use often.

the given examples filter all stern results for start_time to drop unnecessary logs you can also use agrind '* | ...'

ingress logs, p95 and max for upstream_service_time, grouped by path #

stern istio-ingressgateway -o raw -n istio-system \
    | agrind 'start_time | json
    | count, p95(upstream_service_time), max(upstream_service_time)
    by path'

ingress logs, filtered for response_code 5xx, grouped by response_code #

stern istio-ingressgateway -o raw -n istio-system \
    | agrind 'start_time | json
    | where response_code > 499
    | count, p95(upstream_service_time), max(upstream_service_time)
    by response_code'

ingress logs, grouped by user_agent and authority #

stern istio-ingressgateway -o raw -n istio-system \
    | agrind 'start_time | json
    | count
    by user_agent, authority'

ingress logs, filtered by authority, grouped by user_agent #

stern istio-ingressgateway -o raw -n istio-system \
    | agrind 'start_time | json
    | where authority == "tubenhirn.com"
    | count
    by user_agent'

istiod logs, grouped by level #

stern istiod -o raw -n istio-system \
    | agrind '* | json
    | count
    by level'

used tools #