监视 Azure Cosmos DB

本文介绍:

  • 可以为此服务收集的监视数据的类型。
  • 如何分析这些数据。

注意

如果已熟悉此服务和/或 Azure Monitor,并且只想了解如何分析监视数据,请参阅本文末尾附近的“分析”部分。

如果具有依赖于 Azure 资源的关键应用程序和业务流程,则需要监视并获取系统的警报。 Azure Monitor 服务会从系统的每个组件收集并聚合指标和日志。 Azure Monitor 提供可用性、性能和复原能力视图,并在出现问题时向你发送通知。 可以使用 Azure 门户、PowerShell、Azure CLI、REST API 或客户端库来设置和查看监视数据。

洞察力

Azure 中的某些服务在 Azure 门户中具有内置的监视仪表板,可以从此入手来监视服务。 这些仪表板称为“见解”,可以在 Azure 门户的 Azure Monitor 的“见解中心”找到它们。

Azure Cosmos DB 见解

Azure Cosmos DB 见解是一项基于 Azure Monitor 工作簿功能的功能。 使用 Azure Cosmos DB 见解获取关于所有 Azure Cosmos DB 资源的整体性能、故障、容量和运行状况的统一交互式体验视图。

有关 Azure Cosmos DB 见解的详细信息,请参阅以下文章:

资源类型

Azure 使用资源类型和 ID 的概念来标识订阅中的所有内容。 同样的,Azure Monitor 根据资源类型(也称为“命名空间”)将核心监视数据组织为指标和日志。 不同的指标和日志可用于不同的资源类型。 服务可能与多种资源类型关联。

资源类型也是 Azure 中运行的每个资源的资源 ID 的一部分。 例如,虚拟机的一种资源类型是 Microsoft.Compute/virtualMachines。 有关服务及其关联资源类型的列表,请参阅资源提供程序。 有关 Azure Cosmos DB 的资源类型的详细信息,请参阅 Azure Cosmos DB 监视数据参考

数据存储

对于 Azure Monitor:

  • 指标数据存储在 Azure Monitor 指标数据库中。
  • 日志数据存储在 Azure Monitor 日志存储中。 Log Analytics 是 Azure 门户中可以查询此存储的工具。
  • Azure 活动日志是一个单独的存储区,在 Azure 门户中有自己的接口。
  • 可选择将指标和活动日志数据路由到 Azure Monitor 日志数据库存储,以便可使用 Log Analytics 查询数据并将其与其他日志数据关联。

有关 Azure Monitor 如何存储数据的详细信息,请参阅 Azure Monitor 数据平台

Azure Monitor 平台指标

Azure Monitor 为大多数服务提供平台指标。 这些指标是:

  • 针对每个命名空间单独定义。
  • 存储在 Azure Monitor 时序指标数据库中。
  • 是轻型数据,并且能够支持准实时警报。
  • 用于跟踪资源随时间推移的性能变化。

集合:Azure Monitor 会自动收集平台指标。 不需要任何配置。

路由:通常还可将平台指标路由到 Azure Monitor 日志/Log Analytics,从而可以使用其他日志数据对其进行查询。 有关详细信息,请参阅指标诊断设置。 有关如何为服务配置诊断设置,请参阅在 Azure Monitor 中创建诊断设置

有关可以为 Azure Monitor 中的所有资源收集的所有指标的列表,请参阅 Azure Monitor 中支持的指标

默认情况下,Azure Monitor 会收集 Azure Cosmos DB 指标。 无需显式配置任何内容。 大多数指标都可以从 Azure Cosmos DB 门户页或 Azure Monitor 页获取。 默认情况下,以一分钟为粒度收集指标。 粒度可能因所选指标而异。 默认情况下,这些指标的保留期为 30 天。

Azure Cosmos DB 服务器端指标包括吞吐量、存储、可用性、延迟、一致性和系统级指标。 可以在客户端上收集有关请求费用、活动 ID、异常和堆栈跟踪信息、HTTP 状态和子状态代码以及诊断字符串的详细信息。 默认情况下,这些指标的保留期为 7 天。 可以使用此数据来调试问题,或者根据需要联系 Azure Cosmos DB 支持团队。

指标的维度值(例如容器名称)不区分大小写。 这种情况可能会导致具有此类名称的容器上的遥测和操作混淆或冲突。 在对这些维度值进行字符串比较时,请使用不区分大小写的比较。

有关 Azure Cosmos DB 的可用指标列表,请参阅 Azure Cosmos DB 监视数据参考

自定义指标

还可使用 Azure Monitor REST API 将自己的指标发送到 Azure Monitor 指标数据库中。 然后,可在 Azure 门户中查看它们,并像任何其他指标一样对其发出警报。 有关详细信息,请参阅从 Azure 资源收集自定义指标

Azure Monitor 资源日志

借助资源日志,可以深入了解 Azure 资源已执行的操作。 日志是自动生成的,但必须将日志路由到 Azure Monitor 日志以保存或查询它们。 日志按类别组织。 给定的命名空间可能具有多个资源日志类别。

收集:在创建诊断设置并将日志路由到一个或多个位置之前,不会收集和存储资源日志。 创建诊断设置时,请指定要收集的日志类别。 可以通过多种方式创建和维护诊断设置,包括 Azure 门户、编程方式以及通过 Azure Policy。

路由:建议的默认设置是将资源日志路由到 Azure Monitor 日志,以便可以使用其他日志数据查询它们。 也可使用其他位置(例如 Azure 存储、Azure 事件中心和某些 Microsoft 监视合作伙伴)。 有关详细信息,请参阅 Azure 资源日志资源日志目标

有关收集、存储和路由资源日志的详细信息,请参阅 Azure Monitor 中的诊断设置

有关 Azure Monitor 中所有可用资源日志类别的列表,请参阅 Azure Monitor 中支持的资源日志

Azure Monitor 中的所有资源日志都具有相同的标头字段,后跟特定于服务的字段。 Azure Monitor 资源日志架构概述了常见架构。

可以监视 Azure Cosmos DB 帐户的诊断日志,并从 Azure Monitor 中创建仪表板。 以秒粒度发生的数据(例如,事件和跟踪)将作为日志进行存储。 例如,如果容器的吞吐量发生变化,Azure Cosmos DB 帐户的属性也会发生变化。 日志会捕获这些事件。 可以通过对收集的数据运行查询来分析这些日志。

有关可用的资源日志类别、其关联的 Log Analytics 表以及 Azure Cosmos DB 的日志架构,请参阅 Azure Cosmos DB 监视数据参考

Azure 活动日志

活动日志包含订阅级事件,这些事件跟踪从资源外部看到的每个 Azure 资源的操作;例如,创建新资源或启动虚拟机。

收集:活动日志事件会自动生成并收集在单独的存储中,以便在 Azure 门户中查看。

路由:可将活动日志数据发送到 Azure Monitor 日志,以便可以将它们与其他日志数据一起进行分析。 也可使用其他位置(例如 Azure 存储、Azure 事件中心和某些 Microsoft 监视合作伙伴)。 有关如何路由活动日志的详细信息,请参阅 Azure 活动日志概述

分析监视数据

有许多工具可用于分析监视数据。

Azure Monitor 工具

Azure Monitor 支持以下基本工具:

支持更复杂可视化效果的工具包括:

  • 仪表板,它支持将不同类型的数据合并到 Azure 门户的单个窗格中。
  • 工作簿,它们是可在 Azure 门户中创建的可自定义报表。 工作簿可以包括文本、指标和日志查询。
  • Grafana,它是一个适用于操作仪表板的开放平台工具。 可以使用 Grafana 创建包含来自除 Azure Monitor 以外多个源的数据的仪表板。
  • Power BI,它是一项业务分析服务,可提供跨各种数据源的交互式可视化效果。 可将 Power BI 配置为自动从 Azure Monitor 导入日志数据,以利用这些可视化效果。

Azure Monitor 导出工具

可以使用以下方法将数据从 Azure Monitor 中提取到其他工具中:

要开始使用适用于 Azure Monitor 的 REST API,请参阅 Azure 监视 REST API 演练

分析 Azure Cosmos DB 指标

可以使用 Azure Monitor 指标资源管理器,通过在 Azure Cosmos DB 帐户门户导航中选择“监视”下的“指标”来分析 Azure Cosmos DB 的指标和其他 Azure 服务的指标。 有关如何使用指标资源管理器的详细信息,请参阅使用 Azure Monitor 指标资源管理器分析指标

可以监视 Azure Cosmos DB 资源的服务器端延迟、请求单位使用情况和规范化请求单位使用情况。 可以选择特定于请求单位、存储、延迟、可用性、Cassandra 和其他方面的指标。

可以在客户端上收集有关请求费用、活动 ID、异常和堆栈跟踪信息、HTTP 状态和子状态代码以及诊断字符串的详细信息来调试问题。

有关详细信息和说明,请参阅以下文章:

有关 Azure Monitor 中所有受支持的资源指标列表,请参阅支持的 Azure Monitor 指标。 有关为 Azure Cosmos DB 收集的平台指标的列表,请参阅监视 Azure Cosmos DB 数据参考指标

以编程方式监视 Azure Cosmos DB

门户中提供的帐户级指标(如帐户存储使用率和总请求数)不可使用 API for NoSQL 获得。 但是,可以使用 API for NoSQL 在集合级别检索使用情况数据。 若要检索集合级别数据,请使用以下方法之一:

若要访问更多指标,请使用 Azure Monitor SDK。 可以使用此格式来检索可用的指标定义:

https://management.chinacloudapi.cn/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroup}/providers/Microsoft.DocumentDb/databaseAccounts/{DocumentDBAccountName}/providers/microsoft.insights/metricDefinitions?api-version=2018-01-01

若要检索单个指标,请使用以下格式:

https://management.chinacloudapi.cn/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroup}/providers/Microsoft.DocumentDb/databaseAccounts/{DocumentDBAccountName}/providers/microsoft.insights/metrics?timespan={StartTime}/{EndTime}&interval={AggregationInterval}&metricnames={MetricName}&aggregation={AggregationType}&`$filter={Filter}&api-version=2018-01-01

若要了解详细信息,请参阅 Azure 监视 REST API

分析 Azure Cosmos DB 日志

Azure Monitor 日志中的数据存储在表中。 每个表都有自己的唯一属性集。 Azure Monitor 中的所有资源日志都具有后跟服务特定字段的相同字段。 Azure Monitor 资源日志架构概述了常见架构。

有关为 Azure Cosmos DB 收集的资源日志类型,请参阅 Azure Cosmos DB 监视数据参考

有关使用适用于 Azure Cosmos DB 的 Azure Monitor 日志的详细信息,请参阅以下文章:

Kusto 查询

可使用 Kusto 查询语言 (KQL) 来分析 Azure Monitor 日志/Log Analytics 存储中的监视数据。

重要

在门户的服务菜单中选择“日志”时,会打开 Log Analytics,并且其查询范围设置为当前服务。 此范围意味着日志查询将仅包含来自该资源类型的数据。 如果希望运行的查询包含来自其他 Azure 服务的数据,请从“Azure Monitor”菜单中选择“日志”。 有关详细信息,请参阅 Azure Monitor Log Analytics 中的日志查询范围和时间范围

有关任何服务的常见查询的列表,请参阅 Log Analytics 查询界面

在使用 Log Analytics 发出 Kusto 查询之前,必须启用控制平面操作的诊断日志。 启用诊断日志后,请选择将数据存储在特定于资源的表或单个 AzureDiagnostics 表(旧)中。 Kusto 查询的确切文本取决于所选收集模式

可在“日志搜索”搜索栏中输入下面这些查询,以便监视 Azure Cosmos DB 资源。

若要从 Azure Cosmos DB 查询所有控制平面日志:

CDBControlPlaneRequests

若要从 Azure Cosmos DB 查询所有数据平面日志:

CDBDataPlaneRequests

若要查询筛选的数据平面日志列表,特定于单个资源:

CDBDataPlaneRequests
| where AccountName=="<account-name>"

若要获取数据平面日志计数,按资源分组:

CDBDataPlaneRequests
| summarize count() by AccountName

若要为数据平面日志生成图表,按操作类型分组:

CDBDataPlaneRequests
| summarize count() by OperationName
| render piechart

对于可用于排查 Azure Cosmos DB 问题的 Kusto 查询,请参阅以下文章:

这些示例只是可以使用 Kusto 查询语言 (KQL) 在 Azure Monitor 中执行的丰富查询的一小部分。 有关更多示例,请参阅 Kusto 查询示例

警报

在监视数据中发现特定情况时,Azure Monitor 警报会主动向你发出通知。 有了警报,你就可以在客户注意到你的系统中的问题之前找出和解决问题。 有关详细信息,请参阅 Azure Monitor 警报

Azure 资源的常见警报具有许多来源。 有关 Azure 资源常见警报的示例,请参阅示例日志警报查询Azure Monitor 基线警报 (AMBA) 站点提供了 Azure 登陆区域 (ALZ) 方案的关键警报指标、仪表板和指南。

通用警报模式对 Azure Monitor 警报通知的使用体验进行了标准化。 有关详细信息,请参阅常见警报架构

警报类型

可以针对 Azure Monitor 数据平台中的任何指标或日志数据源发出警报。 警报具有许多不同类型,具体取决于要监视的服务以及要收集的监视数据。 不同类型的警报各有优缺点。 有关详细信息,请参阅选择正确的监视警报类型

以下列表介绍了可以创建的 Azure Monitor 警报类型:

  • 指标警报会定期评估资源指标。 指标可以是平台指标、自定义指标、Azure Monitor 中的日志转换为的指标或 Application Insights 指标。 指标警报还可以应用多个条件和动态阈值。
  • 日志警报支持用户使用 Log Analytics 查询按照预定义的频率评估资源日志。
  • 当发生匹配所定义条件的新活动日志事件时,会触发活动日志警报。 资源运行状况警报和服务运行状况警报是报告服务和资源运行状况的活动日志警报。

某些 Azure 服务还支持智能检测警报Prometheus 警报建议的警报规则

对于某些服务,你可以通过将相同的指标警报规则应用于同一 Azure 区域中的多个相同类型资源,进行大规模的监视。 将为每个受监视的资源发送单独通知。 有关受支持的 Azure 服务和云,请参阅使用一项警报规则监视多个资源

Azure Cosmos DB 警报规则

下表列出了 Azure Cosmos DB 的一些常见和推荐的警报规则。

警报类型 条件 描述
请求单位的速率限制(指标警报) 维度名称:StatusCode;运算符:等于;维度值:429 如果容器或数据库已超出预配的吞吐量限制,则会发出警报。
已故障转移区域 运算符:大于;聚合类型:计数;阈值:1 单个区域发生故障转移时。 如果未启用服务托管故障转移,则此警报非常有用。
轮换密钥(活动日志警报) 事件级别:信息性;状态:已启动 当轮换帐户密钥时发出警报。 你可以用新密钥更新你的应用程序。

有关为 Azure Cosmos DB 创建警报的详细信息和说明,请参阅针对指标创建警报。 若要创建警报来监视逻辑分区键的存储是否接近 20 GB,请参阅针对逻辑分区键大小创建警报

顾问建议

对于某些服务,如果在资源操作期间出现严重情况或即将发生变化,则门户中的服务“概述”页面上会显示一个警报。 可以在左侧菜单“监视”下的“顾问建议”中找到警报的详细信息和建议修补程序。 在正常操作期间,不会显示任何顾问建议。

有关 Azure 顾问的详细信息,请参阅 Azure 顾问概述