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

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

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

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

  • Observability:使用 Elastic Agent 来摄入日志及指标 - Elastic Stack 8.0

  • Observability:如何使用 Elastic Agents 把定制的日志摄入到 Elasticsearch 中

捕获延迟时间指南

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

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

System Integration

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

在上面点击 “Advanced options

Script Processor:

- script:lang: javascriptsource: >function process(event) {event.Put("event.agent_timestamp",new Date());return event;}

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

我们必须在映射 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:

def agent_timestamp = doc["event.agent_timestamp"];
if(null != agent_timestamp){
long latency = doc['event.ingested'].value.toInstant().toEpochMilli() - agent_timestamp.value.toInstant().toEpochMilli();emit(latency);return;
}
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 查询展示”。

http://www.lryc.cn/news/265157.html

相关文章:

  • Ubuntu 常用命令之 less 命令用法介绍
  • 探索Node.js包管理器npm:介绍与使用指南
  • 探讨APP自动化测试工具的重要性
  • el-date-picker日期时间插件只允许选择年月日小时并做可选择范围限制(精确到小时的范围)
  • 在MongoDB中使用数组字段和子文档字段进行索引
  • <JavaEE> 网络编程 -- 网络编程和 Socket 套接字
  • 【计算机系统结构实验】实验2 流水线中的冲突实验
  • conda环境下执行conda命令提示无法识别解决方案
  • 链接未来:深入理解链表数据结构(二.c语言实现带头双向循环链表)
  • 论文笔记 | Nature 2023 FunSearch:利用大语言模型在数学科学领域探索新的发现
  • JavaScript 对象和 JSON 字符串的区别
  • 基于 Flink SQL 和 Paimon 构建流式湖仓新方案
  • MFC静态链接+libtiff静态链接提示LNK2005和LNK4098
  • 桶装水送水小程序:提升服务质量的利器
  • 深度学习在训练什么,什么是模型
  • Andorid 使用bp或者mk编译C文件生成so
  • 只更新软件,座椅为何能获得加热功能?——一文读懂OTA
  • EfficientDet:Scalable and Efficient Object Detection中文版 (BiFPN)
  • 视频监控技术经历了哪些发展阶段?视频监控技术未来趋势展望
  • 德人合科技 | 设计公司文件加密系统——天锐绿盾自动智能透明加密防泄密系统
  • 类和对象(下篇)
  • 华为鸿蒙(HarmonyOS):连接一切,智慧无限
  • 劈窗算法反演地表温度
  • 持续集成交付CICD:基于ArgoCD 的GitOps 自动化完成前端项目应用发布与回滚
  • SSH无密登陆配置
  • 【bug日记】如何切换jdk版本,如何解决java和javac版本不一致
  • 【C语言】6-5 判断回文字符串 分数 20
  • STL中优先队列(堆)的详解
  • @vue/cli脚手架
  • 在 MyBatis 中<应该怎么写