Istio- 可观测性【九】
网格可观测性:
网格层:
指标:服务间的通信指标,Envoy Stats指标,控制平面的专有指标
日志:访问日志,Envoy自身的程序日志
链路追踪:Envoy启动传播机制
应用程序需要完成的功能:
指标:应用程序自身的指标的暴露
日志:应用程序自身的日志
链路追踪:应用程序自身要提供兼容到跟踪系统的埋点
配置逻辑:主要在网格上进行定义的;
指标:
Envoy Stats指标:Envoy内置了该功能
非常多,应该只抓关键指标
服务间的通信指标:
Envoy实例本身没有内置该功能
Telemetry V1: Mixer
Telemetry v2: 插件化扩展出这类功能
插件:
硬编码内置插件
WASM插件
日志:
启用日志,并指定日志格式(存在默认格式)
输出到控制台
链路跟踪:
前提:业务代码必须得支持目标跟踪系统
启用链路跟踪功能
入向网关,为每个请求生成一个request id
Provider:
指标:Prometheus/Grafana
日志:ELFK
跟踪系统:取决于业务代码埋点的支持
如何配置可观测性功能:
(1)集群部署文件,profile,MeshConfig段
(2)Telemetry CRD
定义在根名称空间:全网格生效
定义业务所在名称空间:生效一个名称空间
使用workloadSelector:生效其所在的名称空间下的特定的工作负载实例上
默认暴露的stats指标:
kubectl exec -it $POD.$NAMESPACE -c istio-proxy -- pilot-agent request GET /stats/prometheus
# 配置的要抓取的指标:
istioctl proxy-config bootstrap demoappv10-54757f48d6-lvtn9 | jq .bootstrap.statsConfig
"statsMatcher": {
"inclusionList": {
"patterns": [
{
"prefix": "reporter="
},
{
"prefix": "cluster_manager"
},
{
"prefix": "listener_manager"
},
{
"prefix": "server"
},
{
"prefix": "cluster.xds-grpc"
},
{
"prefix": "wasm"
},
{
"suffix": "rbac.allowed"
},
{
"suffix": "rbac.denied"
},
{
"suffix": "shadow_allowed"
},
{
"suffix": "shadow_denied"
},
{
"safeRegex": {
"regex": "vhost\\.*\\.route\\.*"
}
},
{
"prefix": "component"
},
{
"prefix": "istio"
}
]
}
}
},
# 在bootstrap文件生成时进行配置的,因而只会对配置后创建的Pod有效。
meshConfig:
outboundTrafficPolicy:
mode: REGISTRY_ONLY
accessLogFile: /dev/stdout
defaultConfig:
proxyMetadata: {}
proxyStatsMatcher:
inclusionPrefixes:
- "upstream_rq_retry"
- "upstream_cx"
服务级指标:
服务质量相关的指标
Google SRE 服务质量的四个黄金指标
延迟
流量
错误
饱和度
借助特定的WASM扩展进行:被动指标收集
stats: 固定定义了几个扩展出来的指标
metadata-exchange:标签上的数据通过连接属性进行获取,这双方交换这些元数据
配置服务级指标:
添加标签:
移除标签
定义告警规则,借助alertmanager完成告警。
日志:
全局配置方式:
meshConfig:
accessLogFile: /dev/stdout
accessLogFormat: 支持Envoy原生的格式字串或者格式字典
accessLogEncoding: 编码格式,TEXT,JSON
分布式跟踪:
启用或禁用跟踪
meshCOnfig.enableTracing: true|false
额外需要配置的参数是采样率:
默认是100%
需要对接自定义的跟踪系统时,Envoy原生支持SkyWalking,额外的依赖是代码本身内置了SkyWalking的跟踪器
在istio上将SkyWalking定义为一个Provider
随后定义Telemetry CRD,设定应用将跟踪数据发往该Provider即可。

浙公网安备 33010602011771号