查看指标

本主题介绍如何在 Cloud Operations 信息中心内查看 Apigee Hybrid 指标。

Cloud Operations 简介

如需详细了解指标、信息中心和 Cloud Operations,请参阅:

启用 Hybrid 指标

您必须首先启用指标收集,然后才能将 Hybrid 指标发送到 Cloud Operations。请参阅配置指标收集,了解此过程。

Hybrid 指标名称和标签简介

Hybrid 在启用后会自动填充 Cloud Operations 指标。Hybrid 创建的指标的域名前缀为:

apigee.googleapis.com/

例如,/proxy/request_count 指标包含 API 代理收到的请求总数。因此,Cloud Operations 中的指标名称如下:

apigee.googleapis.com/proxy/request_count

借助 Cloud Operations,您可以根据标签对指标数据进行过滤分组。有些标签是预定义的,其他标签则由 Hybrid 显式添加。下面的可用指标部分列出了所有可用的 Hybrid 指标以及专门为过滤和分组指标而添加的所有标签。

查看指标

以下示例展示了如何在 Cloud Operations 中查看指标:
  1. 在浏览器中打开 Monitoring Metrics Explorer。或者,如果您已位于 Cloud Operations Console 中,则选择 Metrics Explorer
  2. Find resource type and metric 中,查找并选择要检查的指标。选择可用指标中列出的一个特定指标,或搜索一个指标。

  3. 选择所需的指标。
  4. 应用过滤条件可用指标列出了每个指标的过滤条件选项。
  5. Cloud Operations 会显示所选指标的图表。
  6. 点击保存

创建信息中心

信息中心是查看和分析对您而言重要的指标数据的一种方式。Cloud Operations 为您使用的资源和服务提供预定义信息中心,您还可以创建自定义信息中心。

您可以使用图表在自定义信息中心内显示 Apigee 指标。利用自定义信息中心,您可以完全控制所显示的图表和它们的配置。如需详细了解如何创建图表,请参阅创建图表

以下示例展示了如何在 Cloud Operations 中创建信息中心,然后添加图表以查看指标数据:

  1. 在浏览器中打开 Monitoring Metrics Explorer,然后选择信息中心
  2. 选择 + 创建信息中心
  3. 为信息中心命名。 例如:混合代理请求流量
  4. 点击确认
  5. 对于要添加到信息中心的每个图表,请按以下步骤操作:

    1. 在信息中心内选择添加图表
    2. 如上面查看指标部分所述,选择所需的指标。
    3. 完成对话框以定义图表。
    4. 点击保存。Cloud Operations 将显示所选指标的数据。

可用指标

下表列出了用于分析代理流量的指标。

代理、目标和服务器流量指标

Open Telemetry 会收集和处理代理、目标和服务器流量的指标(如指标收集中所述)。

下表介绍了 Open Telemetry 收集器使用的指标和标签。这些标签用于指标日志条目。

指标名称 标签 使用
/proxy/request_count method 自上次记录样本以来向 Apigee 代理请求的次数。
/proxy/response_count method

response_code

fault_code

fault_source

apigee_fault

Apigee API 代理发送的响应数量。
/proxy/latencies method 根据从 Apigee 代理接收到请求的那一刻到响应从 Apigee 代理发送至客户端的这段时间计算得出的延迟时间分布。
/proxyv2/request_count method 收到的 API 代理请求总数。
/proxyv2/response_count method

response_code

fault_code

fault_source

apigee_fault

收到的 API 代理响应的总数。
/proxyv2/latencies_percentile method 一个请求的所有 API 政策响应的百分位数。
/target/request_count method

type

target_endpoint

自上次记录样本以来发送到 Apigee 目标的请求数。
/target/response_count method

response_code

type

自上次记录样本以来从 Apigee 目标接收到的响应数。
/target/latencies method

type

根据从请求发送至 Apigee 目标的那一刻到 Apigee 代理接收到响应的这段时间计算得出的延迟时间分布。此时间不包括 Apigee API 代理开销。
/targetv2/request_count method

target_type

target_endpoint

发送到代理目标的请求总数。
/targetv2/response_count method

response_code

target_type

target_endpoint

从代理目标接收到的响应总数。
/server/fault_count source

服务器应用的错误总数。

例如,应用可以是 apigee-runtime apigee-synchronizerapigee-udca。使用 pod_name 标签按应用过滤结果。

/server/nio state 打开的套接字数量。
/server/num_threads 服务器中活跃的非守护程序线程数。
/server/request_count method

type

服务器应用接收的请求总数。

例如,应用可以是 apigee-runtime apigee-synchronizerapigee-udca。使用 pod_name 标签按应用过滤结果。

/server/response_count method

response_code

type

服务器应用发送的响应总数。

例如,应用可以是 apigee-runtime apigee-synchronizerapigee-udca。使用 pod_name 标签按应用过滤结果。

/server/latencies method

response_code

type

延迟时间是指服务器应用引入的延迟时间(以毫秒为单位)。

例如,应用可以是 apigee-runtime apigee-synchronizerapigee-udca。使用 pod_name 标签按应用过滤结果。

/upstream/request_count method

type

服务器应用发送至其上游应用的请求数。

例如,对于 apigee-synchronizer,控制平面是上游。因此,apigee-synchronizerupstream/request_count 指标表示 apigee-synchronizer 向控制平面发出的请求。

/upstream/response_count method

response_code

type

服务器应用从其上游应用接收的响应数量。

例如,对于 apigee-synchronizer,控制平面是上游。因此,apigee-synchronizerupstream/response_count 指标表示 apigee-synchronizer 从控制平面接收的请求。

/upstream/latencies method

response_code

type

上游服务器应用发生的延迟(以毫秒为单位)。

例如,对于 apigee-synchronizer,控制平面是上游。因此,apigee-synchronizerupstream/latencies 指标表示控制平面产生的延迟时间。

UDCA 指标

Open Telemetry 会为 UDCA 服务收集和处理指标(如指标收集中所述),就像处理其他 Hybrid 服务一样。

下表介绍了 Open Telemetry 收集器在 UDCA 指标数据中使用的指标和标签。这些标签用于指标日志条目。

指标名称 标签 使用
/udca/server/local_file_oldest_ts dataset

state

数据集中最早的文件的时间戳,从 Unix Epoch 开始计算(以毫秒为单位)。

该值每 60 秒计算一次,并不实时反映状态。如果 UDCA 是最新版本,并且在计算此指标时没有等待上传的文件,那么此值将为 0。

如果此值继续增大,则说明旧文件仍在磁盘上。

/udca/server/local_file_latest_ts dataset

state

磁盘上最新文件的时间戳(按状态),从 Unix 计时原点开始计算(以毫秒为单位)。

该值每 60 秒计算一次,并不实时反映状态。如果 UDCA 是最新版本,并且在计算此指标时没有等待上传的文件,那么此值将为 0。

/udca/server/local_file_count dataset

state

数据收集 pod 中磁盘上的文件数量计数。

理想情况下,该值将接近 0。如果该值一直很高,则表示文件没有上传,或者 UDCA 无法及时上传这些文件。

此值每 60 秒计算一次,并不实时反映 UDCA 状态。

/udca/server/total_latencies dataset

创建数据文件与成功上传数据文件之间的时间间隔(以秒为单位)。

分桶为 100 毫秒、250 毫秒、500 毫秒、1 秒、2 秒、4 秒、8 秒、16 秒、32 秒和 64 秒。

从文件创建时间到成功上传时间的总延迟时间的直方图。

/udca/server/upload_latencies dataset

UDCA 上传数据文件所花费的总时间(以秒为单位)。

分桶为 100 毫秒、250 毫秒、500 毫秒、1 秒、2 秒、4 秒、8 秒、16 秒、32 秒和 64 秒。

这些指标将显示总上传延迟时间的直方图,包括所有上游调用。

/udca/upstream/http_error_count service

dataset

response_code

UDCA 遇到的 HTTP 错误总数。此指标有助于确定 UDCA 外部依赖项的哪个部分出错以及具体原因。

这些错误可能来自各种服务(getDataLocationCloud storageToken generator)和各种数据集(例如 apitrace),并具有各种响应代码。

/udca/upstream/http_latencies service

dataset

服务的上游延迟时间(以秒为单位)。

分桶为 100 毫秒、250 毫秒、500 毫秒、1 秒、2 秒、4 秒、8 秒、16 秒、32 秒和 64 秒。

来自上游服务的延迟时间的直方图。

/udca/upstream/uploaded_file_sizes dataset

正在上传到 Apigee 服务的文件的大小(以字节为单位)。

分桶为 1KB、10KB、100KB、1MB、10MB、100MB 和 1GB。

按数据集、组织和环境划分的文件大小的直方图。

/udca/upstream/uploaded_file_count dataset UDCA 上传到 Apigee 服务的文件的数量。

请注意以下事项:

  • event 数据集值应持续增长。
  • 如果组织/环境具有稳定的流量,则 api 数据集值应持续增长。
  • 当您使用 Apigee 跟踪记录工具调试或检查请求时,trace 数据集值应增加。
/udca/disk/used_bytes dataset

state

数据收集 pod 磁盘上的数据文件占用的空间(以字节为单位)。

此值随着时间增加:

  • ready_to_upload 表示代理滞后。
  • failed 表示文件正在磁盘上堆积,没有被上传。此值每 60 秒计算一次。
/udca/server/pruned_file_count dataset

state

由于文件存留时间 (TTL) 超过设定阈值而被删除的文件的数量。该数据集可以包含 API、跟踪记录等,其状态可以是 UPLOADEDFAILEDDISCARDED
/udca/server/retry_cache_size dataset

UDCA 正在重试上传的文件数量计数(按数据集)。

每个文件重试 3 次后,UDCA 会将文件移动到 /failed 子目录,并将其从此缓存中移除。此数值随时间推移增加意味着缓存未清除,在 3 次重试后将文件移动到 /failed 子目录时也会发生这种情况。

Cassandra 指标

Open Telemetry 会为 Cassandra 收集和处理指标(如指标收集中所述),就像处理其他 Hybrid 服务一样。

下表介绍了 Open Telemetry 收集器在 Cassandra 指标数据中使用的指标和标签。这些标签用于指标日志条目。

指标名称(不包括网域) 标签 使用
/cassandra/process_max_fds 打开文件描述符数量上限。
/cassandra/process_open_fds 打开文件描述符。
/cassandra/jvm_memory_pool_bytes_max pool 池的 JVM 最大内存用量。
/cassandra/jvm_memory_pool_bytes_init pol 池的 JVM 初始内存用量。
/cassandra/jvm_memory_bytes_max area JVM 堆内存用量上限。
/cassandra/process_cpu_seconds_total 用户和系统 CPU 时间(以秒为单位)。
/cassandra/jvm_memory_bytes_used area JVM 堆内存用量。
/cassandra/compaction_pendingtasks unit Cassandra sstables 的未完成压缩。如需了解详情,请参阅压缩
/cassandra/jvm_memory_bytes_init area JVM 堆初始内存用量。
/cassandra/jvm_memory_pool_bytes_used pool JVM 池内存用量。
/cassandra/jvm_memory_pool_bytes_committed pool JVM 池提交的内存用量。
/cassandra/clientrequest_latency scope

unit

第 75 百分位范围内的读取请求延迟时间(以微秒为单位)。
/cassandra/jvm_memory_bytes_committed area JVM 堆提交的内存用量。

使用 Cassandra 指标

Apigee 建议将以下指标作为监控 Cassandra 数据库的关键:

  • Cassandra 请求速率:使用此指标可监控 Cassandra 读取和写入请求速率。
    指标: apigee.googleapis.com/cassandra/clientrequest_latency
    资源标签: project_idlocationcluster_namenamespace_namepod_namecontainer_name
    指标标签: scopeunit

    使用这些标签过滤特定资源或分组。

    如需监控 cassandra 读取请求率,请应用以下过滤条件。

    过滤条件: metric.scope == 'Read'
    metric.unit == 'OneMinuteRate'

    如需监控 Cassandra 写入请求速率,请应用以下过滤条件。

    过滤条件: metric.scope == 'Write'
    metric.unit == 'OneMinuteRate'
  • Cassandra 请求延迟时间:使用此指标监控 Cassandra 读取和写入请求延迟时间。此指标与请求速率相同,即应用不同过滤条件的 apigee.googleapis.com/cassandra/clientrequest_latency

    如需监控 cassandra 读取请求延迟时间,请应用以下过滤条件。

    过滤条件: metric.scope == 'Read'
    metric.unit == '99thPercentile''95thPercentile''75thPercentile'

    如需监控 cassandra 写入请求延迟时间,请应用以下过滤条件。

    过滤条件: metric.scope == 'Write'
    metric.unit == '99thPercentile''95thPercentile''75thPercentile'
  • Cassandra pod CPU 请求利用率
    指标: kubernetes.io/container/cpu/request_utilization (GKE on Google Cloud)
    kubernetes.io/anthos/container/cpu/request_utilization (Google Distributed Cloud)
    资源标签: project_idlocationcluster_namenamespace_namepod_namecontainer_name

    使用这些标签过滤特定资源或分组。

  • Cassandra 数据量利用率
    指标: kubernetes.io/pod/volume/utilization (GKE on Google Cloud)
    kubernetes.io/anthos/pod/volume/utilization (Google Distributed Cloud)
    资源标签: project_idlocationcluster_namenamespace_namepod_name
    指标标签: volume_name

    使用这些标签过滤特定资源或分组。

Cassandra 集群扩缩建议

以下准则可作为推荐集群,用于决定是否扩缩 Cassandra 集群。通常,如果读取或写入请求持续显示第 99 百分位延迟时间,或者延迟时间不断上升,并且您看到 CPU 请求利用率峰值和读取或写入请求速率的相应峰值,则您的 Cassandra 集群可以是被认为具有压力。您可能需要考虑扩展集群。如需了解详情,请参阅扩缩 Cassandra

指标阈值触发时长
kubernetes.io/pod/volume/utilization85%5 分钟
kubernetes.io/container/cpu/request_utilization85%3 分钟
Read request Latency 99thPercentile5 秒3 分钟
Write request Latency 99thPercentile5 秒3 分钟