Generating a Service Graph

这个task向你展示如何为Istio网格中的服务生成一个图。在这个task中,你将安装Servicegraph 插件并使用基于web的界面来查看服务网格的服务图。

这个task使用 Bookinfo 作为示例应用。

Before you begin

  • 在你的集群安装Istio并部署一个应用
  • 安装Prometheus 插件。这个插件的安装指南在 Querying Metrics 中。

service graph必须使用Prometheus 插件。

Generating a Service Graph

1.为了在你的服务网格中查看图像表示,安装Servicegraph 插件。
在k8s环境中,执行:

kubectl apply -f install/kubernetes/addons/servicegraph.yaml

2.确认你的集群中服务正在运行
在k8s环境中,执行:

kubectl -n istio-system get svc servicegraph

输出类似:

NAME           CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
servicegraph   10.59.253.165   <none>        8088/TCP   30s

3.向网格发送流量。
对于Bookinfo ,在你的浏览器访问 http://$GATEWAY_URL/productpage 或执行命令:

curl http://$GATEWAY_URL/productpage

刷新几次页面(或发送几次命令)来生成一些流量。

注意: $GATEWAY_URL 是 Bookinfo 指南中设置的。

4.打开Servicegraph UI
在k8s环境中,执行:

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

在你的浏览器访问 http://localhost:8088/force/forcegraph.html 。试着点击一个服务来查看细节。实时流量数据在下面的面板上展示。
结果类似:
这里写图片描述

1.尝试带查询参数
在浏览器访问 http://localhost:8088/force/forcegraph.html?time_horizon=15s&filter_empty=true 。注意提供的查询参数。
filter_empty=true 将只展示在这个时间范围内当前接受流量的服务。
time_horizon=15s 影响上面的过滤,同时影响点击一个服务时报告的流量信息。流量信息将会在这个特定的时间范围进行聚合。

默认行为是不过滤空服务,并使用一个5分钟的时间范围。

About the Servicegraph Add-on

Servicegraph 服务提供一个端点来生成和可视化网格中的服务到一张图中。它暴露了如下端点:

  • /force/forcegraph.html 。如上所述,这是一个交互的 D3.js 可视化。
  • /dotviz 是一个标准的Graphviz 可视化。
  • /dotgraph 提供了一个 DOT 序列化
  • /d3graph 为D3可视化提供了一个JSON 序列化。
  • /graph 提供了一个通用JSON 序列化

所有端点采用如上所述的查询参数。

Servicegraph 例子建立在Prometheus 查询的顶部,并依赖Istio metric的标准配置。

Cleanup

  • 在k8s环境中,执行如下命令移除Servicegraph 插件:
kubectl delete -f install/kubernetes/addons/servicegraph.yaml
  • 如果你不打算探索接下来地任何课题,参考 Bookinfo cleanup 指南来关闭应用。

猜你喜欢

转载自blog.csdn.net/ybt_c_index/article/details/80354181
今日推荐