Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
本文介绍如何通过内置指标和诊断日志记录来衡量查询性能和查询量。 它还介绍如何获取应用程序用户输入的查询字符串。
Azure 门户显示有关查询延迟、查询负载 (QPS) 和限制的基本指标。 可在 Azure 门户中访问馈送到这些指标的历史数据 30 天。 若要延长保留期,或针对操作数据和查询字符串进行报告,必须 启用诊断日志记录,并选择用于保存日志操作和指标的存储选项。 我们建议将“Log Analytics 工作区”作为已记录操作的目标。 Kusto 查询和数据浏览面向 Log Analytics 工作区。
可最大程度地提高数据度量完整性的条件包括:
使用可计费服务(在“基本”或“标准”层创建的服务)。 免费服务由多个订阅者共享,当负载变化时,这会造成某种程度的波动。
如果可能,请使用单个副本和分区创建包容性的隔离环境。 如果使用多个副本,将会计算多个节点中的查询指标的平均值,这可能会降低结果的精确度。 同样,使用多个分区意味着数据将被分割,如果同时正在进行索引编制,则某些分区有可能包含不同的数据。 优化查询性能时,单个节点和分区就能提供更稳定的环境用于测试。
查询量 (QPS)
查询量以每秒搜索查询数 (QPS) 度量。QPS 是一个内置指标,可按一分钟时间范围内执行的查询数的平均、计数、最小或最大值来报告。 指标的一分钟间隔 (TimeGrain = "PT1M") 在系统中是固定的。
要详细了解 SearchQueriesPerSecond 指标,请参阅每秒搜索查询数。
查询性能
服务范围内的查询性能按搜索延迟和受限查询进行测量。
搜索延迟
搜索延迟表示完成查询需要使用的时长。 要了解有关 SearchLatency 指标的详细信息,请参阅搜索延迟。
考虑以下“搜索延迟”指标示例:已采样 86 个查询,平均持续时间为 23.26 毫秒。 最小值 0 表示丢弃了某些查询。 运行时间最长的查询花费了 1000 毫秒才完成。 总执行时间为 2 秒。
受限制的查询
受限制的查询是指已丢弃而未处理的查询。 在大多数情况下,限制是运行服务的正常组成部分。 发生限制并不一定表示出现了问题。 要了解有关 ThrottledSearchQueriesPercentage 指标的详细信息,请参阅受限搜索查询百分比。
在以下屏幕截图中,第一个数字是计数(或发送到日志的指标数)。 显示在顶部或者将鼠标悬停在指标上显示的其他聚合包括平均值、最大值和总计。 在此示例中,未丢弃任何请求。
在 Azure 门户中浏览指标
为了让用户快速查看当前数字,服务“概述”页上的“监视”选项卡会显示三个按固定间隔以小时、天和周度量的指标(“搜索延迟”、“每秒搜索查询数(每搜索单位)”和“受限制的搜索查询百分比”),并提供用于更改聚合类型的选项。
若要进行更深入的浏览,请从“监视”菜单中打开指标资源管理器,以便可以分层、放大和可视化数据,从而浏览趋势或异常情况。 在这篇有关创建指标图表的教程中详细了解指标资源管理器。
在“监视”部分下,选择“指标”打开指标资源管理器,其中的数据范围是根据搜索服务设置的。
在“指标”下,从下拉列表中选择一个指标,并查看偏好类型的可用聚合列表。 聚合定义在每个时间间隔如何对收集的值采样。
在右上角设置时间间隔。
选择可视化效果。 默认设置为折线图。
选择“添加指标”并选择不同的聚合来叠加更多聚合。
在折线图上放大感兴趣的区域。 将鼠标指针放在区域的开头位置,选中并按住鼠标左键,拖动到区域的另一侧,然后松开按钮。 图表会在该时间范围内放大。
返回用户输入的查询字符串
启用资源日志记录时,系统将捕获“AzureDiagnostics”表中的查询请求。 你必须已指定已记录操作的目标(即 Log Analytics 工作区或其他存储选项),这是先决条件。
在“监视”部分下,选择“日志”在 Log Analytics 中打开一个空查询窗口。
运行以下表达式来搜索
Query.Search操作,这会返回表格格式的结果集,其中包含操作名称、查询字符串、查询的索引以及找到的文档数。 最后两条语句排除针对样本索引运行的、包含空的或未指定的搜索的查询字符串,这可以减少结果中的干扰信息。AzureDiagnostics | project OperationName, Query_s, IndexName_s, Documents_d | where OperationName == "Query.Search" | where Query_s != "?api-version=2025-09-01&search=*" | where IndexName_s != "hotels-sample-index"(可选)在 Query_s 中设置列筛选器,以基于特定的语法或字符串进行搜索。 例如,可以基于“等于 ”进行筛选
?api-version=2025-09-01&search=*&%24filter=HotelName。
尽管此方法适用于临时调查,但生成报告可以在更有利于分析的布局中合并和呈现查询字符串。
识别长时间运行的查询
添加持续时间列以获取所有查询的数量,而不仅仅是作为指标选取的查询的数量。 将此数据排序可以显示完成哪些查询所花费的时间最长。
在“监视”部分下,选择“日志”以查询日志信息。
运行以下基本查询以返回按持续时间(以毫秒为单位)排序的查询。 运行时间最长的查询列在最前面。
AzureDiagnostics | project OperationName, resultSignature_d, DurationMs, Query_s, Documents_d, IndexName_s | where OperationName == "Query.Search" | sort by DurationMs
创建指标警报
指标警报会确定一个阈值,用于发送通知或触发提前定义的纠正操作。 你可以创建与查询执行相关的警报,但也可以针对资源健康状况、搜索服务配置更改、技能执行和文档处理(索引)创建警报。
所有阈值都是用户定义的,因此你应该了解什么活动级别应该触发警报。
对于查询监视,通常会针对搜索延迟和受限制的查询创建指标警报。 如果你知道何时丢弃了查询,可以查看降低负载或增加容量的补救措施。 例如,如果受限制的查询在索引编制期间增加,可将其推迟到查询活动减少时。
如果推送特定副本分区配置的限制,则针对查询量阈值 (QPS) 设置警报也很有帮助。
在“监视”下,选择“警报”,然后选择“创建预警规则”。
在“条件”下,选择“添加”。
配置信号逻辑。 对于信号类型,请选择“指标”,然后选择信号。
选择信号后,可以使用图表来可视化历史数据,以便在如何继续设置条件方面做出明智的决策。
接下来,向下滚动到“警报逻辑”。 对于概念证明,可以人为地指定一个较小值进行测试。
接下来,指定或创建操作组。 这是在达到阈值时要调用的响应措施。 该措施可以是推送通知或自动响应。
最后,指定警报详细信息。 命名并描述警报,分配严重性值,并指定是要以启用还是禁用状态创建规则。
如果指定了电子邮件通知,将收到来自“Azure”的主题行为“Azure:已激活的严重性:3 <your rule name>”的电子邮件。
后续步骤
如果尚未这样做,请查看搜索服务监视基础知识,以全方面地了解监督功能。