当前位置: 首页 > news >正文

Elasticsearch:利用 AutoOps 检测长时间运行的搜索查询

作者:来自 Elastic Valentin Crettaz

了解 AutoOps 如何帮助你调查困扰集群的长期搜索查询以提高搜索性能。

AutoOps 于 11 月初在 Elastic Cloud Hosted 上发布,它通过性能建议、资源利用率和成本洞察、实时问题检测和解决路径显著简化了集群管理。

AutoOps 每分钟运行数百次分析之一,用于检查集群的设置、指标和健康警报,当长时间运行的搜索查询困扰你的集群时。长时间运行的搜索查询会严重影响性能,导致高资源消耗。让我们看看它的具体工作原理。

什么是 AutoOps?

它是如何工作的?

AutoOps for Elastic Cloud Hosted 的优点在于无需执行任何操作。在所有支持 AutoOps 的地区,AutoOps 代理会自动附加到任何新的或现有的部署,几分钟内,指标将开始发送,分析将启动,一旦检测到可疑情况,就会引发事件。

无需启用慢速日志并设置 Filebeat 来跟踪和索引它们,只需仔细并定期监控任务管理(Task Management) API 即可开箱即用。

为了知道是否为给定部署启用了 AutoOps,只需转到其 Elastic Cloud 控制台页面并单击 “Manage - 管理” 部署即可。如果屏幕右上角出现 “打开 AutoOps(Open AutoOps)” 按钮,则表示 AutoOps 已启用。

在 AutoOps 中打开部署视图(Deployment view)时,我们会立即看到所有最近事件的简要历史记录。在下面的屏幕截图中,我们可以看到最近打开了一个 “长时间运行的搜索任务 - Long running search task” 事件。

单击事件会打开一个弹出面板,其中显示已检测到的慢速搜索查询的 DSL 以及与该查询的执行上下文相关的大量信息。

长时间运行的搜索任务的剖析

下面的屏幕截图显示了 AutoOps 能够收集并显示在事件弹出面板中的所有信息。我们现在将更详细地回顾每个部分。

1. 涉及的节点

首先,我们获得检测到长时间运行查询的节点的链接,即 instance-0000000223。该链接允许我们直接跳转到 Nodes 视图(Nodes view),我们可以在其中找到有关该特定节点的大量指标和信息。

2. 涉及的索引

我们还可以看到查询在哪些索引上运行。在本例中,我们可以看到查询在 logs-apache.error-default、logs-nginx.error-default 和另外两个索引上运行。

单击这些索引将转到 Shards 视图(Shards view),该视图将允许我们查看已识别节点上这些索引的详细分片细分以及也位于该节点上的其他索引的所有分片。该视图将帮助我们检测是否存在可能导致查询缓慢的热点。

3. 查询延迟高的潜在原因

深入挖掘后,我们可以看到进行了一些基本的查询分析,并且 AutoOps 揭示了查询可能变慢的一些潜在原因。在这种情况下,我们可以看到:

  1. 查询以 30 天的时间间隔运行,这可能代表大量数据
  2. 存在嵌套聚合,众所周知,这些聚合性能不佳
  3. 响应可能包含多达 20,000 个聚合存储桶,这可能会对节点内存造成负担

对于使用正则表达式或脚本的查询,有更多检测规则。此外,新的检测规则将定期添加,并与索引映射一起考虑。

4. 查询上下文

最后,还有一些关于搜索查询上下文的信息需要收集,例如:

  1. 它运行了多长时间,
  2. 它是否可取消,
  3. 附加到 HTTP 调用的所有标头。在这种情况下,我们可以看到 trace.id 标头(这使得在 APM 中很容易找到它),还可以看到 X-Opaque-Id,其中包含发送此查询的客户端的指示。在这里,我们可以看到查询源自 Kibana 中的 SIEM 警报规则,但它也可能是可视化或仪表板,甚至是在 Dev Tools 中运行查询的用户。

也适用于 ES|QL

但等等,还有更多!AutoOps 不仅检测长时间运行的 DSL 查询,还检测 ES|QL 查询。在下面的屏幕截图中,我们可以看到 AutoOps 检测到了一个缓慢的 ES|QL 查询。

所有相同的上下文信息都可用于 ES|QL 查询,只是目前没有进行查询分析。因此,AutoOps 尚未提供任何有关如何改进 ES|QL 查询的见解,但很快就会添加。

接下来可以做什么?

由于此事件是在检测到长时间运行的搜索查询时引发的,因此有几个选项。检查查询时,如果它看起来像一个恶意查询或由粗心的用户从 Dev Tools 运行的查询,那么如果任务仍在运行,则可以简单地取消该任务。

另一方面,如果它看起来像一个合法查询并且不再运行,那么下一步应该是调查 “延迟增加的原因 - reasons for increased latency”,其中 AutoOps 列出了通过检查查询检测到的一些潜在问题。目前这仅适用于 DSL,未来将支持 ES|QL。

多长时间算长?

默认情况下,如果搜索查询已运行超过一分钟,AutoOps 将引发 “长时间运行的搜索任务 - Long running search task” 事件。这是默认配置设置,可以通过单击事件弹出面板右上角的三个点图标,然后选择 “自定义 - Customize” 来轻松修改,以更改默认持续时间阈值。

如果 AutoOps 正在监控多个集群,还可以将自定义设置仅应用于特定集群,而不是所有集群。

总结

正如我们所见,AutoOps 有助于检测长时间运行的搜索查询并挖掘出有关它们的大量信息。确保利用所有这些信息来改进你的搜索查询,并尽可能减轻集群的负载。

另请注意,“长时间运行的搜索任务 - Long running search task” 事件只是 AutoOps 知道要检测的数百个其他有见地的事件之一。如果你的部署位于受支持的区域之一,请随时转到你的 Elastic Cloud 帐户并启动 AutoOps,了解它如何使集群管理变得更加简单。还请继续关注有关其他非常有用的事件和建议的未来文章。

使用 AutoOps 管理 Elastic Cloud 很容易。获得即时性能洞察和成本可见性 - 免费试用 AutoOps 14 天。

原文:https://www.elastic.co/search-labs/blog/slow-search-elasticsearch-query-autoops

相关文章:

Elasticsearch:利用 AutoOps 检测长时间运行的搜索查询

作者:来自 Elastic Valentin Crettaz 了解 AutoOps 如何帮助你调查困扰集群的长期搜索查询以提高搜索性能。 AutoOps 于 11 月初在 Elastic Cloud Hosted 上发布,它通过性能建议、资源利用率和成本洞察、实时问题检测和解决路径显著简化了集群管理。 Au…...

python二元表达式 三元表达式

目录 二元表达式必须要有else,示例: 二元表达式: 三元表达式 可以嵌套成多元表达式 python 代码中,有时写 if else比较占行,把代码变一行的方法就是二元表达式, 二元表达式必须要有else,示例: if img is None:breakcv2.imwrite("aaa.jpg", img) if coun…...

计算机网络 (22)网际协议IP

一、IP协议的基本定义 IP协议是Internet Protocol的缩写,即因特网协议。它是TCP/IP协议簇中最核心的协议,负责在网络中传送数据包,并提供寻址和路由功能。IP协议为每个连接在因特网上的主机(或路由器)分配一个唯一的IP…...

【UI自动化测试】selenium八种定位方式

🏡个人主页:謬熙,欢迎各位大佬到访❤️❤️❤️~ 👲个人简介:本人编程小白,正在学习互联网求职知识…… 如果您觉得本文对您有帮助的话,记得点赞👍、收藏⭐️、评论💬&am…...

REMARK-LLM:用于生成大型语言模型的稳健且高效的水印框架

REMARK-LLM:用于生成大型语言模型的稳健且高效的水印框架 前言 提出这一模型的初衷为了应对大量计算资源和数据集出现伴随的知识产权问题。使用LLM合成类似人类的内容容易受到恶意利用,包括垃圾邮件和抄袭。 ChatGPT等大语言模型LLM的开发取得的进展标志着人机对话交互的范式…...

Android SPRD 工模测试修改

设备有两颗led灯,工模测试需全亮 vendor/sprd/proprietories-source/factorytest/testitem/led.cpp -13,6 13,10 typedef enum{#define LED_BLUE "/sys/class/leds/blue/brightness"#define LED_RED …...

H3C CN3360B光纤存储交换机配置案例

这几天在项目里面遇到了一台光纤存储交换机,需要划Zone来实现服务器外接存储 接下来我就分享我在项目中的配置 我是通过交换机串口进去的,也可以通过网口,串口的配置我就不介绍了 网口配置的地址是:10.77.77.77/24 登入方式&…...

问题:Flask应用中的用户会话(Session)管理失效

我来分享一个常见的PythonWeb开发问题: 问题:Flask应用中的用户会话(Session)管理失效 这是一个在Flask开发中经常遇到的问题。当用户登录后,有时会话会意外失效,导致用户需要重复登录。 解决方案: 1. 首先&#x…...

Backend - C# 操作数据库 DB(ADO.NET、LINQ to SQL、EF)

目录 一、ADO.NET(传统) 二、LINQ to SQL(已过时) 三、EF(推荐) 常见的操作数据库的方法:有三种,分别是 ADO.NET、LINQ to SQL、EF 一、ADO.NET(传统) ADO.NE…...

JMeter + Grafana +InfluxDB性能监控 (二)

您可以通过JMeter、Grafana 和 InfluxDB来搭建一个炫酷的基于JMeter测试数据的性能测试监控平台。 下面,笔者详细介绍具体的搭建过程。 安装并配置InfluxDB 您可以从清华大学开源软件镜像站等获得InfluxDB的RPM包,这里笔者下载的是influxdb-1.8.0.x86_…...

springCloud实战

一、Feign的实战 1、使用 1.1步骤 ①引入feign依赖 ②在启动类上加上EnableFeignClients注解,开启Feign客户端 ③编写FeignClient接口 1.2开启feign调用日志 只需在yml配置文件中开启配置即可 feign:client:default:loggerLevel: FULL #feign接口被调用时的…...

从优化算法到分布式训练-提升AI模型收敛速度的系统性分析【附核心实战代码】

本文收录于专栏:精通AI实战千例专栏合集 https://blog.csdn.net/weixin_52908342/category_11863492.html从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 每一个案例都附带关键代码,详细讲解供大家学习,希望可以帮…...

如何在 Windows 10/11 上录制带有音频的屏幕 [3 种简单方法]

无论您是在上在线课程还是参加在线会议,您都可能需要在 Windows 10/11 上录制带有音频的屏幕。互联网上提供了多种可选方法。在这里,本博客收集了 3 种最简单的方法来指导您如何在 Windows 10/11 上使用音频进行屏幕录制。请继续阅读以探索! …...

鸿蒙应用开发(2)

鸿蒙应用开发启航计划-CSDN博客 鸿蒙应用开发(1)-CSDN博客 没看过前两篇的,建议请先看上面。 如果你学习完了前两篇,那么你学习这篇文章,就很容易理解了。 这一篇文章将介绍声明式UI的 渲染控制。你需要了解的是&…...

单片机-LED点阵实验

要将第一个点点亮,则 1 脚接高电平 a 脚接低电平,则第一个点就亮了;如果要将第一行点亮,则第 1 脚要接高电平,而(a、b、c、d、e、f、g、h )这些引脚接低电平,那么第一行就会点亮&…...

微服务-Nacos(注册中心)

Nacos Nacos可以看作注册中心配置中心&#xff0c;比Eureka更加强大。 注册中心 在父工程中引入SpringCloudAlibaba的版本依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId&g…...

【Linux知识】shell编程知识科普

文章目录 概述文件格式语法及例子 文件读写文件读取文件写入错误处理 后台执行shell1. 使用 & 符号2. 使用 nohup 命令3. 使用 screen 或 tmux使用 screen使用 tmux 4. 使用 disown 命令5. 使用系统服务管理器&#xff08;如 systemd&#xff09; 概述 Linux shell脚本文件…...

小程序学习06——uniapp组件常规引入和easycom引入语法

目录 一 组件注册 1.1 组件全局注册 1.2 组件全局引入 1.3 组件局部引入 页面引入组件方式 1.3.1 传统vue规范&#xff1a; 1.3.2 通过uni-app的easycom 二 组件的类型 2.1 基础组件列表 一 组件注册 1.1 组件全局注册 &#xff08;a&#xff09;新建compoents文件…...

平安产险安徽分公司携手安徽中医药临床研究中心附属医院 共筑儿童安全防护网

为响应金融知识普及教育号召&#xff0c;平安产险安徽分公司联动安徽中医药临床研究中心附属医院&#xff0c;于近日在朝霞小学举办了一场儿童安全防范与健康守护活动。此次活动旨在提升学生的安全防范意识&#xff0c;守护儿童健康成长&#xff0c;同时有力推动金融知识与传统…...

C语言练习:求数组的最大值与最小值

文章目录 1. 提出任务2. 完成任务2.1 方法一&#xff1a;通过返回结构体指针来间接返回结果2.1.1 编写程序&#xff0c;实现功能2.1.2 运行程序&#xff0c;查看结果 2.2 方法二&#xff1a;通过参数传递数组&#xff0c;并在函数中修改传入的参数2.2.1 编写程序&#xff0c;实…...

【Linux基础知识系列】第十一篇-Linux系统安全

Linux系统安全是指通过一系列技术和管理措施&#xff0c;保护Linux系统免受各种威胁和攻击&#xff0c;确保系统的完整性、可用性和机密性。随着网络攻击手段的多样化和复杂化&#xff0c;Linux系统安全成为了系统管理员和开发者必须面对的重要课题。本文将从用户认证、权限管理…...

python:Tkinter 开发邮件客户端,能编写邮件,发送邮件带附件

Python Tkinter 邮件客户端 下面是一个使用 Python Tkinter 开发的简单邮件客户端&#xff0c;支持编写邮件和发送邮件功能&#xff1a; 功能说明 这个邮件客户端包含以下功能&#xff1a; 邮件编写功能&#xff1a; 收件人地址输入抄送地址输入邮件主题输入邮件正文编辑区&…...

Linux 用户层 和 内核层锁的实现

目录 一、系统调用futex介绍1. 核心机制2. 常见操作3. 工作流程示例&#xff08;互斥锁&#xff09;4. 优势5. 注意事项6. 典型应用 二、Linux中用户态的锁和内核的锁不是同一个实现吗&#xff1f;2.1 本质区别2.2 用户态锁如何工作&#xff08;以 pthread_mutex 为例&#xff…...

Virtex II 系列FPGA的配置原理

对FPGA 芯片的配置&#xff0c;本质上是将根据设计生成的包含配置命令和配置数据的比特流文件写入到配置存储器中。 1 配置模式 Virtex II 系列FPGA 一共有五种配置模式&#xff0c;配置模式的选择是根据管脚M[2:0]来决定。 &#xff08;1&#xff09;串行配置模式 串行配置模…...

【MySQL系列】MySQL 执行 SQL 文件

博客目录 一、MySQL 执行 SQL 文件的常见场景二、MySQL 执行 SQL 文件的主要方法1. 使用 MySQL 命令行客户端2. 在 MySQL 交互界面中使用 source 命令3. 使用 MySQL Workbench 等图形化工具4. 使用编程语言接口 三、执行 SQL 文件时的注意事项1. 字符集问题2. 事务处理3. 错误处…...

【工具-Wireshark 抓包工具】

工具-Wireshark 抓包工具 ■ Wireshark 抓包工具■ 通过IP指定查看■■ ■ Wireshark 抓包工具 抓包工具】win 10 / win 11&#xff1a;WireShark 下载、安装、使用 Wireshark下载 阿里云镜像 ■ 通过IP指定查看 ■ ■...

行为型设计模式之Mediator(中介者)

行为型设计模式之Mediator&#xff08;中介者&#xff09; 1&#xff09;意图 用一个中介对象来封装一系列的对象的交互。中介者使各对象不需要显示的相互引用&#xff0c;从而使其耦合松散&#xff0c;而且可以独立地改变它们之间的交互。 2&#xff09;结构 其中&#xff…...

AI Agent 架构设计:ReAct 与 Self-Ask 模式对比与分析

一、引言 (一) AI Agent 技术发展背景 &#x1f680; AI Agent 的演进是一场从“遵循指令”到“自主决策”的深刻变革。早期&#xff0c;以规则引擎为核心的系统&#xff08;如关键词匹配的客服机器人&#xff09;只能在预设的流程上运行。然而&#xff0c;大语言模型的崛起为…...

Golang基础学习

​​​​​​​​​​ 初见golang语法 go项目路径 cd $GOPATH //ls可以看到有bin,pkg,src三个文件 cd src/ mkdir GolangStudy cd GolangStudy mkdir firstGolanggo程序执行: go run hello.go//如果想分两步执行: go build hello.go ./hello导入包的方式 import "f…...

[学习] GNSS信号跟踪环路原理、设计与仿真(仿真代码)

GNSS信号跟踪环路原理、设计与仿真 文章目录 GNSS信号跟踪环路原理、设计与仿真一、GNSS信号跟踪环路概述二、跟踪环路基本原理1. 信号跟踪的概念与目标2. 锁相环&#xff08;PLL&#xff09;原理3. 锁频环&#xff08;FLL&#xff09;原理4. 延迟锁定环&#xff08;DLL&#x…...