你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

如何监视 Azure Cosmos DB 容器或帐户中的操作的服务器端延迟

适用于: NoSQL MongoDB Cassandra Gremlin

适用于 Azure Cosmos DB 的 Azure Monitor 提供一个指标视图,用于监视帐户和创建仪表板。 默认情况下,系统会收集 Azure Cosmos DB 指标,此功能不需要你显式启用或配置任何设置。 直接模式服务器端延迟指标和网关模式服务器端延迟指标用于查看某项操作在两种不同连接模式下的服务器端延迟。 如果请求操作处于网关连接模式,请使用网关模式服务器端延迟指标。 如果请求操作处于直接连接模式,请使用直接模式服务器端延迟指标。 Azure Cosmos DB 通过直接连接为点读取/写入操作提供少于 10 ms 的 SLA。 对于点读和点写操作,SLA 按照 SLA 文档中的详细说明进行计算。 有关连接模式的详细信息,请参阅连接模式一文。

下表指出了哪些 API 支持服务器端延迟指标(直接模式与网关模式):

API 直接模式服务器端延迟 网关模式服务器端延迟
SQL
MongoDB
Cassandra
Gremlin

如果发现如下所述的点操作的延迟异乎寻常地高,可以监视服务器端延迟:

  • 使用分区键和 ID 的 GET 或 SET 操作
  • 读或写操作
  • 查询

你可以查找诊断日志以查看返回的数据的大小。 如果看到查询操作的一直持续的较高延迟,应该在诊断日志中查找所使用的更高吞吐量或 RU/s。 服务器端延迟显示将数据返回到客户端之前在后端基础结构上花费的时间。 请务必查看此指标,排除任何后端延迟问题。

查看服务器端延迟指标

  1. 登录到 Azure 门户

  2. 在左侧导航栏中选择“监视”,然后选择“指标”。

    Azure Monitor 中的“指标”窗格

  3. 从“指标”窗格中选择一个资源,然后选择所需的订阅和资源组>>。 对于“资源类型”,请选择“Azure Cosmos DB 帐户”,接着选择你的现有 Azure Cosmos DB 帐户之一,然后选择“应用”。

    选择要查看指标的帐户范围

  4. 接下来,如果你的操作处于网关连接模式,请从可用指标列表中选择“网关模式服务器端延迟”指标。 如果你的操作处于直接连接模式,请选择“直接模式服务器端延迟”指标。 若要详细了解此列表中的所有可用指标,请参阅按类别划分的指标一文。 在此示例中,让我们选择“网关模式服务器端延迟”和“平均”作为聚合值。 除这些详细信息外,还可以选择指标的“时间范围”和“时间粒度”。 可以查看过去最长 30 天的指标。 应用筛选器后,系统会根据该筛选器显示图表。 可以查看在网关连接模式下,所选时间段内 5 分钟时间间隔的服务器端延迟。

    从 Azure 门户中选择“服务器端延迟网关”指标

服务器端延迟的筛选器

还可以按特定的 CollectionName、DatabaseName、OperationType、Region 和 PublicAPIType 筛选指标并显示相应的图表。

若要筛选指标,请选择“添加筛选器”并选择所需的属性(例如 PublicAPIType),然后选择值“sql”。 为“OperationType”选择“应用拆分”。 然后,图表将显示在网关连接模式下,不同的操作在所选时间段内的服务器端延迟。 不会记录通过存储过程执行的操作,因此 OperationType 指标下不会显示这些操作。

每个操作的“网关模式服务器端延迟”指标如下图所示:

“服务器端延迟网关”指标的筛选器

也可以使用“应用拆分”选项对指标进行分组。

注意

传入 Azure Cosmos DB 的请求并不总是以容器为目标。 例如,你可以在全局分布式帐户内创建数据库,而系统仍会记录服务器端延迟指标的请求。 记录请求是因为创建数据库资源需要时间,但该请求不以容器为目标。 如果看到 CollectionName 指标的值是 <empty>,则意味着目标不是容器,而是 Azure Cosmos DB 中的另一个资源。

若要解决此问题,你可以主动将指标筛选到特定容器 (CollectionName),以排除不是特定于容器(此容器是查询的主题)的请求。

后续步骤