- one simple web service(one API: ping) running on k8s under namespace default
- no sidecar is injected
- istio-ingressgateway is used to access the service
- one simple metric: request count. configured with one instance, one prometheus handler and one rule. similar to example
access service API: curl
monitor metric: port-forward to query via prometheus UI
1: metric configured under default namespace + no sidecar injected
the configured metric has no data point:
it exists in the query dropdown menu, but no data point.
yet some other default metrics have valid data point, for example
2: metric configured under istio-system namespace + no sidecar injected
the configured metric has correct data point.
3: metric configured under default namespace + sidecar injected
same result as test 1
4: metric configured under istio-system namespace + sidecar injected
same result as test 2
seems like metric need to be defined under
istio-systemnamespace in order to be recorded correctly. I may have missed this while reading documentation, can someone point me to where this behavior is explained?
what’s the best practice on what namespace to use for non-default metrics? if I need to created a metric not under
istio-systemnamespace, is there a way to configure mixer to accept that?
I would like to confirm: attributes will be gathered regardless of whether recipient uses an istio sidecar / envoy. i.e. a request from a pod / service running on k8s with istio sidecar injected will generate instances asynchronously inside mixer, regardless of where the desired recipient is.
Thanks in advance!