配置示例
当前Istio支持三种不同范围的可观测配置方式,与ASM控制台可观测配置的对应关系如下:
全局配置(全局)
特定命名空间配置(命名空间)
特定工作负载配置(自定义)
以下展示了不同范围进行可观测配置的Telemetry YAML文件示例。
全局配置
apiVersion: telemetry.istio.io/v1alpha1
kind: Telemetry
metadata:
labels:
provider: asm
name: default
namespace: istio-system
spec:
accessLogging:
- disabled: false
providers:
- name: envoy
metrics:
- overrides:
- disabled: false
match:
metric: REQUEST_COUNT
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: REQUEST_COUNT
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: REQUEST_DURATION
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: REQUEST_DURATION
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: REQUEST_SIZE
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: REQUEST_SIZE
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: RESPONSE_SIZE
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: RESPONSE_SIZE
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: GRPC_REQUEST_MESSAGES
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: GRPC_REQUEST_MESSAGES
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: GRPC_RESPONSE_MESSAGES
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: GRPC_RESPONSE_MESSAGES
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: TCP_SENT_BYTES
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: TCP_SENT_BYTES
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: TCP_RECEIVED_BYTES
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: TCP_RECEIVED_BYTES
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: TCP_OPENED_CONNECTIONS
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: TCP_OPENED_CONNECTIONS
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: TCP_CLOSED_CONNECTIONS
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: TCP_CLOSED_CONNECTIONS
mode: SERVER
tagOverrides: {}
providers:
- name: prometheus
tracing:
- customTags:
foo:
literal:
value: bar
randomSamplingPercentage: 10
特定命名空间配置
apiVersion: telemetry.istio.io/v1alpha1
kind: Telemetry
metadata:
labels:
provider: asm
name: default
namespace: default
spec:
accessLogging:
- disabled: false
providers:
- name: accesslogging.default.default
metrics:
- overrides:
- disabled: false
match:
metric: REQUEST_COUNT
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: REQUEST_COUNT
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: REQUEST_DURATION
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: REQUEST_DURATION
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: REQUEST_SIZE
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: REQUEST_SIZE
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: RESPONSE_SIZE
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: RESPONSE_SIZE
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: GRPC_REQUEST_MESSAGES
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: GRPC_REQUEST_MESSAGES
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: GRPC_RESPONSE_MESSAGES
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: GRPC_RESPONSE_MESSAGES
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: TCP_SENT_BYTES
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: TCP_SENT_BYTES
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: TCP_RECEIVED_BYTES
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: TCP_RECEIVED_BYTES
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: TCP_OPENED_CONNECTIONS
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: TCP_OPENED_CONNECTIONS
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: TCP_CLOSED_CONNECTIONS
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: TCP_CLOSED_CONNECTIONS
mode: SERVER
tagOverrides: {}
providers:
- name: prometheus
特定工作负载配置
apiVersion: telemetry.istio.io/v1alpha1
kind: Telemetry
metadata:
labels:
provider: asm
name: test
namespace: default
spec:
accessLogging:
- disabled: false
providers:
- name: accesslogging.default.test
metrics:
- overrides:
- disabled: false
match:
metric: REQUEST_COUNT
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: REQUEST_COUNT
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: REQUEST_DURATION
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: REQUEST_DURATION
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: REQUEST_SIZE
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: REQUEST_SIZE
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: RESPONSE_SIZE
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: RESPONSE_SIZE
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: GRPC_REQUEST_MESSAGES
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: GRPC_REQUEST_MESSAGES
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: GRPC_RESPONSE_MESSAGES
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: GRPC_RESPONSE_MESSAGES
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: TCP_SENT_BYTES
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: TCP_SENT_BYTES
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: TCP_RECEIVED_BYTES
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: TCP_RECEIVED_BYTES
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: TCP_OPENED_CONNECTIONS
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: TCP_OPENED_CONNECTIONS
mode: SERVER
tagOverrides: {}
- disabled: false
match:
metric: TCP_CLOSED_CONNECTIONS
mode: CLIENT
tagOverrides: {}
- disabled: false
match:
metric: TCP_CLOSED_CONNECTIONS
mode: SERVER
tagOverrides: {}
providers:
- name: prometheus
selector:
matchLabels:
foo: bar
字段说明
Tracing
属性
| 类型
| 是否必选
| 说明
|
randomSamplingPercentage
| double
| 否
| 控制用于追踪的流量采样率,取值为0时代表不采样。
|
customTags
| map<string, CustomTag>
| 否
| 向tracing中添加额外的自定义标签。
|
Metrics
属性
| 类型
| 是否必选
| 说明
|
overrides
| MetricsOverrides[]
| 否
| 针对某个特定的监控指标,或是所有预设的标准监控指标,自定义其生成的方式和表现形式。
|
providers
| ProviderRef[]
| 否
| 配置应适用的提供者名称,当前只支持配置Prometheus。
|
AccessLogging
属性
| 类型
| 是否必选
| 说明
|
disabled
| bool
| 否
| 控制日志行为。
|
providers
| ProviderRef[]
| 否
| 配置应适用的提供者名称,当前只支持配置Envoy。
|
WorkloadSelector
属性
| 类型
| 是否必选
| 说明
|
matchLabels
| map<string, string>
| 否
| 一个或多个标签,用于指示应用特定策略的一组Pods/虚拟机(VMs)。标签搜索的范围被限制在资源所在的配置命名空间内。
|
MetricsOverrides
属性
| 类型
| 是否必选
| 说明
|
match
| WorkloadSelector | 否
| 匹配需要覆盖的监控指标,需要添加并配置所有客户端以及服务端指标。
|
disabled
| bool
| 否
| 是否禁用指标监控,设定为true则禁用。
|
tagOverrides
| map<string, MetricsOverrides>
| 否
| 一个选定的度量监控指标中,用于覆盖的一系列维度名称和维度表达式的集合。
|
ProviderRef
属性
| 类型
| 是否必选 | 说明
|
name
| string
| 是
| MeshConfig中包含的Telemetry provider。
|
Tracing.Literal
属性
| 类型
| 是否必选
| 说明
|
value
| string
| 是
| 需要使用的标签值。
|
Tracing.Environment
属性
| 类型
| 是否必选
| 说明
|
name
| string
| 是
| 从中提取标签值的环境变量名称。
|
defaultValue
| string
| 否
| 环境变量不存在时使用的默认值。
|
Tracing.RequestHeader
属性
| 类型
| 是否必选
| 说明
|
name
| string
| 是
| 从中提取标签值的header名称。
|
defaultValue
| string
| 否
| header不存在时使用的默认值。
|
MetricsOverrides.TagOverride
MetricSelector.IstioMetric
名称
| 描述
|
REQUEST_COUNT
| 从应用程序发出的请求计数,包括HTTP、HTTP/2和gRPC流量。
|
REQUEST_DURATION
| 针对HTTP、HTTP/2和gRPC流量生成的请求持续时间。
|
REQUEST_SIZE
| 针对HTTP、HTTP/2和gRPC流量生成的请求体大小。
|
RESPONSE_SIZE
| 针对HTTP、HTTP/2和gRPC流量生成的响应体大小。
|
TCP_OPENED_CONNECTIONS
| 工作负载生命周期内打开的TCP连接计数。
|
TCP_CLOSED_CONNECTIONS
| 工作负载生命周期内关闭的TCP连接计数。
|
TCP_SENT_BYTES
| 通过TCP连接在响应期间发送的字节数。
|
TCP_RECEIVED_BYTES
| 通过TCP连接在请求期间接收的字节数。
|
GRPC_REQUEST_MESSAGES
| 客户端发送的gRPC消息数量。
|
GRPC_RESPONSE_MESSAGES
| 服务端发送的gRPC消息数量。
|
MetricsOverrides.TagOverride.Operation
名称
| 描述
|
UPSERT
| 指定该维度需要被添加。
|
REMOVE
| 指定该维度需要被移除。
|
WorkloadMode
名称
| 描述
|
CLIENT
| 工作负载为客户端,作为网络流量起点。
|
SERVER
| 工作负载为服务端,作为网络流量终点。
|
注意事项
对于本文中未列出的字段,ASM在原则上保持与对应版本Istio的兼容,ASM控制台不提供对这些字段的编辑功能,因此如果您希望使用这些字段,需直接操作对应的Telemetry CR(通过kubectl等方式)。更多关于Telemtry资源的字段信息,请参见Telemetry。