When envoy communicates with mixer, mixer needs sourceUID
and DestionationUID
to get source pod/destination pod’s attributes. And those attributes are necessary for other adapters like reporting to prometheus. Envoy can know sourceUID
from its own metadata. But how can the envoy knows the destinationUID of its upstreams?
I have dump the config of a bookinfo’s envoy and cannot find upstreams’ metadata:
"mixer_attributes": {
"attributes": {
"destination.service.host": {
"string_value": "reviews.default.svc.cluster.local"
},
"destination.service.uid": {
"string_value": "istio://default/services/reviews"
},
"destination.service.name": {
"string_value": "reviews"
},
"destination.service.namespace": {
"string_value": "default"
},
"destination.service": {
"string_value": "reviews.default.svc.cluster.local"
}
}
},
The destination.service.uid:istio://default/services/reviews
is different than the one mixer got, like reviews-v1-b4c984bdc-br9pz.default
. And with destination.service.uid:istio://default/services/reviews
, we can not distinguish different pods of the same service…