Google Cloud 控制台中的 Anthos Service Mesh 页面提供了汇总指标和深度指标、图表及图形,让您可以观察服务行为。您可以监控服务的整体运行状况,或针对特定服务展开细目以设置服务等级目标 (SLO) 或进行问题排查。
查看汇总 SLO 和服务状态
Anthos Service Mesh 页面是您的入口点。该页面顶部附近显示了提醒和 SLO 的汇总。
SLO 状态部分下方是服务网格中服务运行状况的汇总视图:
每个服务名称旁边的图标表示服务的 SLO 状态。如需监控或查看特定服务的详细信息,请点击相应服务名称。您可以应用过滤条件来控制表格中显示哪些服务:
- 点击 SLO 状态部分中的过滤依据链接可以仅在表格中显示适用服务。例如,您可以对表格进行过滤,使其仅显示未设置 SLO 的服务。
- 点击表格左上角的 filter_list 过滤服务可以应用其他条件。
窗口的右上角包含以下控件:
- 点击时间范围下拉列表可以显示特定时间段的状态信息。
- 点击拓扑可以显示服务图。
- 点击表格可以切换回表格视图。
探索服务图
您可以探索服务拓扑图可视化,其中显示:
- 您的网格的服务。
- 支持这些服务的 Kubernetes 工作负载。
- 服务之间的关系。
在下面的屏幕截图中,前端服务由单个前端 Kubernetes 工作负载提供支持。工作负载进而将请求发送到多个其他服务。每个服务旁边的图标与表格视图中显示的 SLO 状态图标相同。
当您点击某个服务图标时,系统会显示一个卡片,其中包含有关该服务的详细信息,包括一些关键指标。该卡片还包含指向该特定服务概览页面的链接。
您可以通过多种方式与服务图进行交互:
- 如需在服务图上平移,请在背景中点击并拖动。
- 如需缩放服务图,请使用鼠标滚轮。
- 如需在服务图中重新定位服务或工作负载以方便查看,请点击并拖动服务图节点。
您可以将鼠标指针悬停在工作负载图标上,然后点击该图标右上角显示的加号,从而将工作负载展开到其底层组件。通过点击加号多次,您可以从工作负载到部署、副本集、Pod 甚至容器展开细目。
服务及其通信模式随时间推移而变化时,服务图会跟踪这些更改。您可以使用页面底部的时间轴来定义时间点,从而查看服务图的状态。图例会显示服务图的时间间隔。
通信关系以观察到的网络流量为依据。如果服务未在指定时间进行通信,则这些服务之间不存在边缘。
右侧时间轴上方是启用时间差异比较图标:
点击此图标后,服务图将进入差异模式,在该模式下您可以比较两个时间点的服务图。
在差异模式下,您可以使用以下图标在不同的可视化之间切换:
窗口底部的时间轴用于控制要比较的两个时间点。您可以调整两个滑块来更改时间段。
监控特定服务
在 Service Mesh 页面上,您可以从表格或拓扑视图选择要监控的服务。选择服务后,随即会显示左侧导航栏,其中包含指向以下页面的链接:
概览页面显示有关服务的 SLO 状态、关键指标和详细信息。
运行状况页面会显示 SLO 详细信息。
指标页面显示关键流量和基础架构指标的图表。您可以通过多种方式细分指标,例如按集群和 Pod。
关联的服务页面显示有关入站和出站请求的详细信息。
诊断页面显示错误日志。
基础架构页面显示有关每个 Pod 的关键指标和详细信息。您可以点击 Pod 名称以前往 Google Cloud 控制台中的工作负载页面。
使用时间轴
在特定服务每个页面的顶部,您可以点击时间范围下拉列表,以显示特定时间段的信息。
如需指定自定义时间,请点击 access_time 显示时间轴。
您可以使用时间轴来细化应用于页面的时间间隔。时间轴显示的总时间范围由时间范围下拉列表控制。当您选择新的时间范围后,页面上的时间轴和其他元素就会更新,以反映该时间范围。例如,指标页面上的图表会显示与所选时间范围对应的数据。如需进一步细化时间范围,请拖动蓝色滑块。
访问 Cloud Logging
Anthos Service Mesh 页面提供以下指向 Cloud Logging 的链接:
在指标页面的filter_list 选择过滤器链接下,点击查看流量日志链接,以查看服务在指定时间范围内的所有日志。
在诊断页面上,点击窗口右上角的在 Logging 中打开链接,以查看指定时间范围内的错误日志。
流量日志被命名为 server-accesslog-stackdriver,并关联到 k8s_container 受监控的资源。流量日志包含以下信息:
HTTP 请求属性,例如 ID、网址、大小、延迟时间和常见标头。
源和目标工作负载信息,例如名称、命名空间、身份和常见标签。
如果启用了跟踪,则跟踪信息,例如采样、跟踪 ID 和范围 ID。
您可以通过多种方式使用流量日志。例如:
与 Cloud Trace 集成。Cloud Trace 是 Anthos Service Mesh 中的可选功能。
将流量日志导出至 BigQuery,您可以在其中执行
select all requests take more than 5 seconds
等查询。创建基于日志的指标。
日志条目示例如下所示:
{ 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" }