在 Google Cloud 控制台中探索 Anthos Service Mesh

Google Cloud 控制台中的 Anthos Service Mesh 页面提供了汇总指标和深度指标、图表及图形,让您可以观察服务行为。您可以监控服务的整体运行状况,或针对特定服务展开细目以设置服务等级目标 (SLO) 或进行问题排查。

查看汇总 SLO 和服务状态

Anthos Service Mesh 页面是您的入口点。该页面顶部附近显示了提醒和 SLO 的汇总。

图片

SLO 状态部分下方是服务网格中服务运行状况的汇总视图:

图片

每个服务名称旁边的图标表示服务的 SLO 状态。如需监控或查看特定服务的详细信息,请点击相应服务名称。您可以应用过滤条件来控制表格中显示哪些服务:

  • 点击 SLO 状态部分中的过滤依据链接可以仅在表格中显示适用服务。例如,您可以对表格进行过滤,使其仅显示未设置 SLO 的服务。
  • 点击表格左上角的 过滤服务可以应用其他条件。

窗口的右上角包含以下控件:

图片

  • 点击时间范围下拉列表可以显示特定时间段的状态信息。
  • 点击拓扑可以显示服务图
  • 点击表格可以切换回表格视图。

探索服务图

您可以探索服务拓扑图可视化,其中显示:

  • 您的网格的服务。
  • 支持这些服务的 Kubernetes 工作负载。
  • 服务之间的关系。

在下面的屏幕截图中,前端服务由单个前端 Kubernetes 工作负载提供支持。工作负载进而将请求发送到多个其他服务。每个服务旁边的图标与表格视图中显示的 SLO 状态图标相同。

图片

当您点击某个服务图标时,系统会显示一个卡片,其中包含有关该服务的详细信息,包括一些关键指标。该卡片还包含指向该特定服务概览页面的链接。

图片

您可以通过多种方式与服务图进行交互:

  • 如需在服务图上平移,请在背景中点击并拖动。
  • 如需缩放服务图,请使用鼠标滚轮。
  • 如需在服务图中重新定位服务或工作负载以方便查看,请点击并拖动服务图节点。

您可以将鼠标指针悬停在工作负载图标上,然后点击该图标右上角显示的加号,从而将工作负载展开到其底层组件。通过点击加号多次,您可以从工作负载到部署、副本集、Pod 甚至容器展开细目。

服务及其通信模式随时间推移而变化时,服务图会跟踪这些更改。您可以使用页面底部的时间轴来定义时间点,从而查看服务图的状态。图例会显示服务图的时间间隔。

图片

通信关系以观察到的网络流量为依据。如果服务未在指定时间进行通信,则这些服务之间不存在边缘。

右侧时间轴上方是启用时间差异比较图标:启用时间差异比较

点击此图标后,服务图将进入差异模式,在该模式下您可以比较两个时间点的服务图。
在差异模式下,您可以使用以下图标在不同的可视化之间切换:差异模式图标

窗口底部的时间轴用于控制要比较的两个时间点。您可以调整两个滑块来更改时间段。

图片

监控特定服务

Service Mesh 页面上,您可以从表格或拓扑视图选择要监控的服务。选择服务后,随即会显示左侧导航栏,其中包含指向以下页面的链接:

  • 概览页面显示有关服务的 SLO 状态、关键指标和详细信息。

  • 运行状况页面会显示 SLO 详细信息。

  • 指标页面显示关键流量和基础架构指标的图表。您可以通过多种方式细分指标,例如按集群和 Pod。

  • 关联的服务页面显示有关入站和出站请求的详细信息。

  • 诊断页面显示错误日志。

  • 基础架构页面显示有关每个 Pod 的关键指标和详细信息。您可以点击 Pod 名称以前往 Google Cloud 控制台中的工作负载页面。

使用时间轴

在特定服务每个页面的顶部,您可以点击时间范围下拉列表,以显示特定时间段的信息。

图片

如需指定自定义时间,请点击 显示时间轴

图片

您可以使用时间轴来细化应用于页面的时间间隔。时间轴显示的总时间范围由时间范围下拉列表控制。当您选择新的时间范围后,页面上的时间轴和其他元素就会更新,以反映该时间范围。例如,指标页面上的图表会显示与所选时间范围对应的数据。如需进一步细化时间范围,请拖动蓝色滑块。

图片

访问 Cloud Logging

Anthos Service Mesh 页面提供以下指向 Cloud Logging 的链接:

  • 指标页面的 选择过滤器链接下,点击查看流量日志链接,以查看服务在指定时间范围内的所有日志。

  • 诊断页面上,点击窗口右上角的在 Logging 中打开链接,以查看指定时间范围内的错误日志。

流量日志被命名为 server-accesslog-stackdriver,并关联到 k8s_container 受监控的资源。流量日志包含以下信息:

  • HTTP 请求属性,例如 ID、网址、大小、延迟时间和常见标头。

  • 源和目标工作负载信息,例如名称、命名空间、身份和常见标签。

  • 如果启用了跟踪,则跟踪信息,例如采样、跟踪 ID 和范围 ID。

您可以通过多种方式使用流量日志。例如:

日志条目示例如下所示:

{
  insertId: "1awb4hug5pos2qi"
  httpRequest: {
    requestMethod: "GET"
    requestUrl: "YOUR-INGRESS/productpage"
    requestSize: "952"
    status: 200
    responseSize: "5875"
    remoteIp: "10.8.0.44:0"
    serverIp: "10.56.4.25:9080"
    latency: "1.587232023s"
    protocol: "http"
  }
  resource: {
    type: "k8s_container"
    labels: {
      location: "us-central1-a"
      project_id: "YOUR-PROJECT"
      pod_name: "productpage-v1-76589d9fdc-ptnt9"
      cluster_name: "YOUR-CLUSTER-NAME"
      container_name: "productpage"
      namespace_name: "default"
    }
  }
  timestamp: "2020-04-28T19:55:21.056759Z"
  severity: "INFO"
  labels: {
    destination_principal: "spiffe://cluster.local/ns/default/sa/bookinfo-productpage"
    response_flag: "-"
    destination_service_host: "productpage.default.svc.cluster.local"
    source_app: "istio-ingressgateway"
    service_authentication_policy: "MUTUAL_TLS"
    source_name: "istio-ingressgateway-5ff85d8dd8-mwplb"
    mesh_uid: "YOUR-MESH-UID"
    request_id: "021ce752-9001-4ac6-b6d6-3b15f5d3632"
    destination_namespace: "default"
    source_principal:  "spiffe://cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account"
    destination_workload: "productpage-v1"
    destination_version: "v1"
    source_namespace: "istio-system"
    source_workload: "istio-ingressgateway"
    destination_name: "productpage-v1-76589d9fdc-ptnt9"
    destination_app: "productpage"
  }
  trace: "projects/YOUR-PROJECT/traces/d4197f59b7a43e3aeff3571bac99d536"
  receiveTimestamp: "2020-04-29T03:07:14.362416217Z"
  spanId: "43226343ca2bb2b1"
  traceSampled: true
  logName: "projects/YOUR-PROJECT/logs/server-accesslog-stackdriver"
  receiveTimestamp: "2020-04-28T19:55:32.185229100Z"
}

后续步骤