生成服务图

此任务说明如何在Istio网格中生成服务图。 作为此任务的一部分,您将安装 Servicegraph 附加组件,使用基于 Web 的界面查看服务网格的服务图。

Bookinfo 示例应用程序在整个任务中用作示例应用程序。

前提条件

生成服务图

  1. 要查看服务网格的图形表示,请安装 Servicegraph 附加组件。

    在Kubernetes环境中,执行以下命令:

    $ kubectl apply -f install/kubernetes/addons/servicegraph.yaml
  2. 验证服务是否在集群中运行。

    在 Kubernetes 环境中,执行以下命令:

    $ 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 示例,请在 Web 浏览器中访问 http://$GATEWAY_URL/productpage 或发出以下命令:

    $ curl http://$GATEWAY_URL/productpage

    刷新页面几次(或发送命令几次)以产生少量流量。

    $GATEWAY_URLBookinfo 示例中设置的值。

  4. 打开 Servicegraph UI。

    在 Kubernetes 环境中,执行以下命令:

    $ 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 , 尝试单击服务以查看服务的详细信息, 实时交通数据显示在下面的面板中。

    结果将类似于:

    Servicegraph 示例
    Servicegraph 示例
  5. 试验查询参数

    在Web浏览器中访问http://localhost:8088/force/forcegraph.html?time_horizon=15s&filter_empty=true, 请注意提供的查询参数。

    filter_empty=true 将仅显示当前在时间范围内接收流量的服务。

    time_horizon=15s 影响上面的过滤器,并且还会在单击服务时影响报告的流量信息, 交通信息将在指定的时间范围内汇总。

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

关于 Servicegraph 附加组件

Servicegraph 服务提供端点,用于生成和可视化网格内的服务图, 它公开了以下端点:

  • /force/forcegraph.html 如上所述,这是一个交互式D3.js 可视化。

  • /dotviz 是一个静态的Graphviz 可视化。

  • /dotgraph 提供DOT序列化。

  • /d3graph 为 D3 可视化提供了 JSON 序列化。

  • /graph 提供通用的 JSON 序列化。

所有端点都采用上面探讨的查询参数。

Servicegraph 示例建立在 Prometheus 查询之上,取决于标准的 Istio 度量标准配置。

清理

  • 在 Kubernetes 环境中,执行以下命令以删除 Servicegraph 附加组件:

    $ kubectl delete -f install/kubernetes/addons/servicegraph.yaml
  • 如果您不打算探索任何后续任务,请参阅Bookinfo 清理 说明以关闭应用程序。

See also

此任务说明如何设置和使用 Istio 仪表板来监视网格流量。

概要说明 Mixer 的插件架构。

演示如何使用 Istio Mixer 和 Istio sidecar 获取指标和日志,并在不同的服务间进行跟踪。

本任务展示了如何配置 Istio 进行 TCP 服务的指标收集。

这一任务讲述如何配置 Istio,进行指标和日志的收集工作。

如何进行代理配置将跟踪请求发送给 Zipkin 或 Jaeger。