监控网络负载平衡

本文档向您提供所需信息,带您了解适用于网络负载平衡的 Cloud Monitoring。

网络负载平衡会将关键指标导出到 Monitoring

监控指标具有以下用途:

  • 评估负载平衡器的配置、使用情况和性能
  • 排查问题
  • 提高资源利用率和改善用户体验

您可以通过 Monitoring 创建自定义信息中心,设置提醒和查询指标。

使用 Cloud Console 配置监控和提醒功能

如需了解搜集的指标的列表,请参阅指标和资源类型。如需了解可用于过滤结果的特性列表,请参阅过滤器

定义 Monitoring 自定义信息中心

您可以创建自定义 Monitoring 信息中心,监控网络负载平衡指标。

  1. 转到 Google Cloud Console 中的监控
    转到 Monitoring
  2. 选择信息中心 > 创建信息中心
  3. 点击添加图表
  4. 给图表添加一个标题。
  5. 选择指标和过滤条件。
    您可以通过搜索 loadbalancing.googleapis.com/l3/external 前缀来查找网络负载平衡指标。
  6. 点击保存

定义 Monitoring 提醒

您可以就各种网络负载平衡指标定义 Monitoring 提醒

  1. 转到 Google Cloud Console 中的监控
    转到 Monitoring
  2. 选择 Alerting > Create a Policy
  3. 选择资源类型和指标。
    您可以在 Find resource type and metric 字段中搜索 loadbalancing.googleapis.com/l3/external,找到网络负载平衡资源类型和指标。
  4. 指定 Configuration,以设置触发提醒的时间。
  5. 如果需要,添加 Filters
  6. 点击 Save

指标报告频率和保留

每隔 1 分钟,系统就会将网络负载平衡器的指标批量导出到 Monitoring 中。监控数据会保留六 (6) 周。默认情况下,信息中心可按 1H(1 小时)、6H(6 小时)、1D(1 天)、1W(1 周)、6W(6 周)时间间隔提供数据分析。您可以在 60 秒 (60s) 到 6 周 (6w) 的任何时间间隔内手动请求执行分析。

指标和资源类型

指标

网络负载平衡器的以下指标报告给 Monitoring。您可以在发出 API 请求时使用这些指标名称。

metric_name 类型 说明
loadbalancing.googleapis.com/l3/external/ingress_bytes_count 计数器 从客户端发送到网络负载平衡器后端的字节数量。 对于 TCP 流,只计算应用流中的字节数量。 每 60 秒采样一次。采样后,数据在最长 150 秒的时间内不会显示。
loadbalancing.googleapis.com/l3/external/ingress_packets_count 计数器 从客户端发送到网络负载平衡器后端的数据包数量。 每 60 秒采样一次。采样后,数据在长达 150 秒的时间内不会显示。
loadbalancing.googleapis.com/l3/external/egress_bytes_count 计数器 从网络负载平衡器后端发送到客户端的字节数量。 对于 TCP 流,只计算应用流中的字节数量。 每 60 秒采样一次。采样后,数据在最长 150 秒的时间内不会显示。
loadbalancing.googleapis.com/l3/external/egress_packets_count 计数器 从网络负载平衡器后端发送到客户端的数据包数量。 每 60 秒采样一次。采样后,数据在最长 150 秒的时间内不会显示。
loadbalancing.googleapis.com/l3/external/rtt_latencies

仅适用于 TCP 流量。
分布 通过 TCP 连接为网络负载平衡器流测量的 RTT 分布。每 60 秒采样一次。采样后,数据在长达 150 秒的时间内不会显示。

资源类型

resource.type = tcp_lb_ruleudp_lb_rule

网络负载平衡器要么支持 TCP 流量,要么支持 UDP 流量。您可以指定资源类型,以将数据限制到 TCP 或 UDP 负载平衡器。

过滤

资源标签

您可以按资源限制查询。您还可以按照这些值对结果进行分组。

resource.label.<var>label_key</var>:
label_key 类型 说明
项目 字符串 与此资源相关联的 Google Cloud 项目的标识符,例如 my-project
load_balancer_name 字符串 负载平衡器的名称。
区域 字符串 负载平衡器的后端实例所在的区域us-central1europe-west1asia-east1
network_name 字符串 负载平衡器后端所在的 VPC 网络。
backend_target_type 字符串 处理连接的后端目标的类型。有效值为 BACKEND_SERVICETARGET_POOL
backend_target_name 字符串 为此网络负载平衡器配置的后端目标的名称。
forwarding_rule_name 字符串 客户端用于连接网络负载平衡器的转发规则的名称。
forwarding_rule_network_tier 字符串 转发规则的网络层级
backend_name 字符串 处理连接的后端实例组的名称。仅适用于基于后端服务的网络负载平衡器。
backend_type 字符串 处理连接的后端的类型。仅适用于基于后端服务的网络负载平衡器。唯一的有效值为 INSTANCE_GROUP。对于基于目标池的网络负载平衡器,其字段设置为 UNSUPPORTED_FOR_TARGET_POOL
backend_scope 字符串 处理连接的后端组(可用区或区域的名称)的范围。
backend_scope_type 字符串 处理连接的后端组范围的类型。有效值为 ZONEREGION
backend_failover_configuration 字符串 处理连接的后端组的故障转移配置。有效值为 PRIMARYBACKUPUNKNOWN
backend_subnetwork_name 字符串 接收连接的实例的子网名称。
endpoint_zone 字符串 处理连接的端点(Compute Engine/GKE 实例)的可用区。

指标标签

您可以按指标标签限制查询。您还可以按照这些值对结果进行分组。

metric.label.<var>label_key</var>:
label_key 类型 说明
client_country 字符串 启动了与网络负载平衡器的连接的客户端所在国家/地区。
client_continent 字符串 启动了与网络负载平衡器的连接的客户端所在大陆。

Monitoring API 请求

您可以使用 Monitoring API 的 v3 projects.timeSeries.list 请求构建针对网络负载平衡指标进行的任意查询。各种定义的确切结构遵循通用的监控过滤器语义。

API 请求示例

  1. 使用 1 分钟聚合获取世界协调时间 2019 年 7 月 1 日下午 12:00-12:02 期间项目中所有网络负载平衡器发送的所有字节数:

其中 timeSeries.list 参数如下:

  • 名称:projects/PROJECT_ID
  • Filter:resource.type = "tcp_lb_rule" AND metric.name="loadbalancing.googleapis.com/l3/external/egress_bytes_count"
  • interval.start_time:2019-07-01T12:00:00Z
  • interval.end_time:2019-07-01T12:02:00Z
  • aggregation.alignmentPeriod:60s
  • aggregation.crossSeriesReducer:REDUCE_SUM
  • aggregation.perSeriesAligner:ALIGN_SUM
  1. 获取世界协调时间 2019 年 7 月 1 日下午 12:19-12:20 期间项目中所有网络负载平衡器的 RTT 中值,按客户端所在国家/地区进行细分:

其中 timeSeries.list 参数如下:

  • 名称:projects/PROJECT_ID
  • Filter:resource.type = "tcp_lb_rule" AND metric.name="loadbalancing.googleapis.com/l3/external/rtt_latencies"
  • interval.start_time:2019-07-01T12:19:00Z
  • interval.end_time:2019-07-01T12:20:00Z
  • aggregation.alignmentPeriod:60s
  • aggregation.crossSeriesReducer:REDUCE_SUM
  • aggregation.groupByFields:metric.label.client_country
  • aggregation.perSeriesAligner:ALIGN_PERCENTILE_50
  1. 获取世界协调时间 2019 年 7 月 1 日下午 12:19-12:20 期间来自特定网络负载平衡器的总字节数,按 endpoint_zone 和客户端所在大陆进行细分:

其中 timeSeries.list 参数如下:

  • 名称:projects/PROJECT_ID
  • Filter:resource.type = "tcp_lb_rule" AND resource.label.load_balancer_name = "netlb-bs-1" AND metric.name="loadbalancing.googleapis.com/l3/external/ingress_bytes_count"
  • interval.start_time:2019-07-01T12:19:00Z
  • interval.end_time:2017-07-01T12:20:00Z
  • aggregation.alignmentPeriod:60s
  • aggregation.crossSeriesReducer:REDUCE_SUM
  • aggregation.groupByFields:metric.label.client_continent
  • aggregation.groupByFields:resource.label.endpoint_zone
  • aggregation.perSeriesAligner:ALIGN_SUM

后续步骤