新增指标

Istio 支持 自定义指标、日志 以及 TCP 指标。可以通过指标配置来新增这些度量,每个配置包括三方面的内容:

  1. 从 Istio 属性中生成度量实例,如logentry 、metrics 等。
  2. 创建处理器(适配 Mixer),用来处理生成的度量实例,如 prometheus。
  3. 根据一系列的股则,把度量实例传递给处理器,即创建 rule。
  1. # 指标 instance 的配置
  2. apiVersion: "config.istio.io/v1alpha2"
  3. kind: metric
  4. metadata:
  5. name: doublerequestcount
  6. namespace: istio-system
  7. spec:
  8. value: "2" # 每个请求计数两次
  9. dimensions:
  10. source: source.service | "unknown"
  11. destination: destination.service | "unknown"
  12. message: '"twice the fun!"'
  13. monitored_resource_type: '"UNSPECIFIED"'
  14. ---
  15. # prometheus handler 的配置
  16. apiVersion: "config.istio.io/v1alpha2"
  17. kind: prometheus
  18. metadata:
  19. name: doublehandler
  20. namespace: istio-system
  21. spec:
  22. metrics:
  23. - name: double_request_count # Prometheus 指标名称
  24. instance_name: doublerequestcount.metric.istio-system # Mixer Instance 名称(全限定名称)
  25. kind: COUNTER
  26. label_names:
  27. - source
  28. - destination
  29. - message
  30. ---
  31. # 将指标 Instance 发送给 prometheus handler 的 rule 对象
  32. apiVersion: "config.istio.io/v1alpha2"
  33. kind: rule
  34. metadata:
  35. name: doubleprom
  36. namespace: istio-system
  37. spec:
  38. actions:
  39. - handler: doublehandler.prometheus
  40. instances:
  41. - doublerequestcount.metric

Prometheus

在命令行中执行以下命令:

  1. $ kubectl -n istio-system port-forward service/prometheus 9090:9090 &

在 Web 浏览器中访问 http://localhost:9090 即可以访问 Prometheus UI,查询度量指标。

Jaeger 分布式跟踪

在命令行中执行以下命令:

  1. $ kubectl -n istio-system port-forward service/jaeger-query 16686:16686 &

在 Web 浏览器中访问 http://localhost:16686 即可以访问 Jaeger UI。

Grafana 可视化

在命令行中执行以下命令:

  1. $ kubectl -n istio-system port-forward service/grafana 3000:3000 &

在 Web 浏览器中访问 http://localhost:3000 即可以访问 Grafana 界面。

服务图

在命令行中执行以下命令:

  1. $ kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=servicegraph -o jsonpath='{.items[0].metadata.name}') 8088:8088 &

在 Web 浏览器中访问 http://localhost:8088/force/forcegraph.html 即可以访问生成的服务图。