Observability:捕获 Elastic Agent 和 Elasticsearch 之间的延迟

在现代 IT 基础设施的动态环境中,高效的数据收集和分析至关重要。 Elastic Agent 是 Elastic Stack 的关键组件,通过促进将数据无缝摄取到 Elasticsearch 中,在此过程中发挥着至关重要的作用。 然而,显着影响此过程整体有效性的关键性能指标之一是延迟,即数据从 Elastic Agent 传输到 Elasticsearch 所需的时间。 在本文中,我们将深入研究捕获 Elastic Agent 和 Elasticsearch 之间的延迟时间。

有关如何设置 Agent 并采集数据,请阅读文章:

捕获延迟时间指南

利用处理器 (processors) 为所有事件合并代理 (agent) 时间戳。 处理器的目的是最小化导出事件中的字段或使用附加元数据对其进行扩充。 此操作发生在代理内,发生在日志进行解析之前。

让我们以系统 (System) 集成为例,以便更好地理解和计算延迟时间。

System Integration

展开收集指标 (Collect metrics ) 部分并打开 System process metrics -> Advance Options。 添加脚本处理器,它将为所有事件添加代理时间戳。

在上面点击 "Advanced options"

Script Processor:

vbnet 复制代码
1.  - script:
2.     lang: javascript
3.     source: >
4.       function process(event) {
5.           event.Put("event.agent_timestamp",new Date());
6.         return event;
7.       }

如果你想记录每个事件的采集时间,你可以参考下面的脚步代码,并直接计算一个采集时间值。在下面的代码中,它使用运行时字段的方法来进行计算。如果数据比较多,性能还是有一些的影响。

我们必须在映射 metrics-system.process@custom 组件模板中添加 event.agent_timestamp 字段。

单击编辑图标,它将导航到组件模板编辑页面。 现在添加 event.agent_timestamp 字段作为日期类型并保存集成。

就是这样,我们已经将 event.agent_timestamp 字段添加到所有 System process metrics 事件中,我们可以在 Discover 中看到这一点。

现在我们可以使用运行时字段来计算延迟。 在 Kibana 中,转到 "Data Views" 部分,然后单击 "metrics-*" Data view。

创建一个新的运行时字段 event.agent_latency 并使用以下脚本设置延迟值。

通过提供包含以下内容的文档 ID 来预览延迟值 event.agent_timestamp 字段。

Script:

scss 复制代码
1.  def agent_timestamp = doc["event.agent_timestamp"];
2.  if(null != agent_timestamp){
3.  long latency = doc['event.ingested'].value.toInstant().toEpochMilli() - agent_timestamp.value.toInstant().toEpochMilli();
4.   emit(latency);
5.   return;
6.  }
7.  emit(0);

该脚本将时间戳转换为自纪元以来的毫秒数并计算差值。

在 Discover 中,我们可以可视化 event.agent_latency 字段显示 Elastic Agent 和 Elasticsearch 之间的延迟时间。

减少 Elastic Agent 和 Elasticsearch 之间的延迟对于维护响应迅速且高效的数据分析环境至关重要。 通过了解影响延迟的因素并实施优化策略,组织可以确保其 Elastic Stack 发挥最佳性能,从而从其处理的数据中获得及时且可操作的见解。 定期监控、性能调整和及时了解最佳实践将有助于实现良好优化和低延迟的 Elastic Stack 部署。

在最新的 Elastic Stack 8.11 中,我们开始提供 ES|QL 管道查询语言。在查询时,我们可以更方便地生成所需要的字段。详情请阅读文章 "Elasticsearch:ES|QL 查询展示"。

相关推荐
2501_9301040411 小时前
GitCode 疑难问题诊疗:全方位指南
大数据·elasticsearch·gitcode
健康平安的活着11 小时前
es7.17.x es服务yellow状态的排查&查看节点,分片状态数量
大数据·elasticsearch·搜索引擎
Elasticsearch1 天前
Elastic 的托管 OTLP 端点:为 SRE 提供更简单、可扩展的 OpenTelemetry
elasticsearch
Yusei_05231 天前
迅速掌握Git通用指令
大数据·git·elasticsearch
水无痕simon2 天前
5 索引的操作
数据库·elasticsearch
Qlittleboy4 天前
tp5集成elasticsearch笔记
大数据·笔记·elasticsearch
Elasticsearch4 天前
Elasticsearch:使用 Gradio 来创建一个简单的 RAG 应用界面
elasticsearch
kong@react4 天前
spring boot配置es
spring boot·后端·elasticsearch
Elasticsearch4 天前
Elasticsearch:如何使用 Qwen3 来做向量搜索
elasticsearch
Elastic 中国社区官方博客4 天前
Elasticsearch:如何使用 Qwen3 来做向量搜索
大数据·人工智能·elasticsearch·搜索引擎·全文检索