Istio 指标目标未知
Istio metrics destination unknown
场景
EKS 1.14 之上的 Istio 版本 1.5.0。
启用的组件:
- 基地
- 飞行员
注意 Istio 1.5.0 弃用 Mixer,移至 telemetry v2,这发生在 envoy 代理 sidecar 中。
我想使用 Istio 来支持一些开箱即用的指标。
流程如下
我的电脑 -> 网关 -> 虚拟服务 A -> 虚拟服务 B
我确定:
- K8s 服务对象有标签
app
- K8s 部署对象及其 pod 模板具有标签
app
我可以运行流量就好了,说明配置是正确的。
遥测有问题。
istio_requests_total{connection_security_policy="unknown",destination_app="unknown",destination_canonical_revision="latest",destination_canonical_service="unknown",destination_principal="spiffe://cluster.local/ns/default/sa/default",destination_service="svcb.default.svc.cluster.local",destination_service_name="svcb.default.svc.cluster.local",destination_service_namespace="unknown",destination_version="unknown",destination_workload="unknown",destination_workload_namespace="unknown",grpc_response_status="0",instance="10.2.55.80:15090",job="envoy-stats",namespace="default",pod_name="svca-77969dc86b-964p5",reporter="source",request_protocol="grpc",response_code="200",response_flags="-",source_app="svca",source_canonical_revision="latest",source_canonical_service="svca",source_principal="spiffe://cluster.local/ns/default/sa/default",source_version="unknown",source_workload="svca",source_workload_namespace="default"}
问题
- 为什么大多数
destination-*
标签 unknown
?
- official istio mesh dashboard 通常按
reporter=destination
过滤指标。为什么我所有的 istio_requests_total
系列都有 reporter=source
?
哦对了,经过大量挖掘,here's the answer。
Istio supports proxying all TCP traffic by default, but in order to provide additional capabilities, such as routing and rich metrics, the protocol must be determined. This can be done automatically or explicitly specified
我没有在我的服务资源中指定端口名称。一旦我这样做了,问题就解决了。
场景
EKS 1.14 之上的 Istio 版本 1.5.0。 启用的组件:
- 基地
- 飞行员
注意 Istio 1.5.0 弃用 Mixer,移至 telemetry v2,这发生在 envoy 代理 sidecar 中。
我想使用 Istio 来支持一些开箱即用的指标。
流程如下
我的电脑 -> 网关 -> 虚拟服务 A -> 虚拟服务 B
我确定:
- K8s 服务对象有标签
app
- K8s 部署对象及其 pod 模板具有标签
app
我可以运行流量就好了,说明配置是正确的。
遥测有问题。
istio_requests_total{connection_security_policy="unknown",destination_app="unknown",destination_canonical_revision="latest",destination_canonical_service="unknown",destination_principal="spiffe://cluster.local/ns/default/sa/default",destination_service="svcb.default.svc.cluster.local",destination_service_name="svcb.default.svc.cluster.local",destination_service_namespace="unknown",destination_version="unknown",destination_workload="unknown",destination_workload_namespace="unknown",grpc_response_status="0",instance="10.2.55.80:15090",job="envoy-stats",namespace="default",pod_name="svca-77969dc86b-964p5",reporter="source",request_protocol="grpc",response_code="200",response_flags="-",source_app="svca",source_canonical_revision="latest",source_canonical_service="svca",source_principal="spiffe://cluster.local/ns/default/sa/default",source_version="unknown",source_workload="svca",source_workload_namespace="default"}
问题
- 为什么大多数
destination-*
标签unknown
? - official istio mesh dashboard 通常按
reporter=destination
过滤指标。为什么我所有的istio_requests_total
系列都有reporter=source
?
哦对了,经过大量挖掘,here's the answer。
Istio supports proxying all TCP traffic by default, but in order to provide additional capabilities, such as routing and rich metrics, the protocol must be determined. This can be done automatically or explicitly specified
我没有在我的服务资源中指定端口名称。一旦我这样做了,问题就解决了。