未完成撰写的文档,因为版本迭代过快,跟新版本会存在一定差异,后续会进行补充完善。
访问日志¶
Telemetry API 为 Inherent gRPC 应用和受管 transit 网关开启访问日志。日志由应用进程或网关直接生成,通过 OTLP 发送到 OpenTelemetry Collector,不需要日志 sidecar。
安装采集器¶
kubectl apply -f examples/addons/opentelemetry.yaml
kubectl -n dubbo-system rollout status deployment/opentelemetry-collector
开启网格访问日志¶
下面配置为 Client 和 Server 开启 OTLP 访问日志,并添加静态属性:
cat <<EOF | kubectl apply -f -
apiVersion: telemetry.dubbo.apache.org/v1alpha3
kind: Telemetry
metadata:
name: logging-tags
namespace: dubbo-system
spec:
logging:
- providers:
- name: otel
match:
mode: CLIENT_AND_SERVER
tags:
- name: environment
value: production
EOF
在业务命名空间创建无 selector 的 Telemetry 可覆盖网格配置;带 selector.matchLabels 的配置只作用于匹配工作负载。mode 支持 CLIENT、SERVER 和 CLIENT_AND_SERVER。
过滤和关闭日志¶
只记录失败请求:
关闭匹配工作负载的日志:
过滤器支持对 response.code、gRPC 状态、请求方法和 reporter 等访问日志字段做比较。无效表达式不会放宽日志范围。
验证¶
产生一次流量后查看 Collector:
记录包含 reporter、服务或路由、方法、状态、耗时及配置的静态标签。transit 同时保留标准输出访问日志;OTLP 日志由 Telemetry 配置控制。