失败存储:查看未成功的内容

作者:来自 Elastic James Baiera 及 Graham Hudgins

了解失败存储,这是 Elastic Stack 的一项新功能,用于捕获和索引之前丢失的事件。

想获得 Elastic 认证吗?看看下一期 Elasticsearch Engineer 培训什么时候开始!

Elasticsearch 拥有丰富的新功能,帮助你为自己的用例构建最佳搜索解决方案。深入学习我们的示例笔记本,开始免费的云试用,或立即在本地运行 Elastic。


如果一棵树在森林里倒下,而周围没有人,它会发出声音吗?答案是会的。就像一条日志消息被发出但未能处理进你的可观测性平台时,这条日志确实发生了 —— 而且如果它很重要,你几乎肯定最终会听说它。

Elastic 能够适应系统发出的各种数据:日志、指标、跟踪、自定义遥测等。但当这些数据因为模式变化、代理配置错误或某个异常服务发出意外字段而不符合预期格式时,它可能无法处理,并会悄无声息地消失。

这种缺失本身就是一种信号。但它很难被检测、很难调试、也很难报告。更糟的是,它把问题甩给了客户端去查明原因。

这就是我们构建 失败存储 的原因:一种全新的方式,可以直接在 Elastic Stack 中捕获、调试和分析失败的事件。在这篇博客中,我们将介绍 Elastic 的失败存储,并解释它如何提供数据摄取问题的可见性、帮助调试模式变化、让团队能够监控数据质量并精准定位失败模式。

关于失败存储

失败存储让你能够看到以前只有发送数据的客户端和死信队列才能看到的失败事件。它通过将失败的文档捕获并索引到专用的 ::failures 索引中来工作,这些索引与生产数据一起存在于你的数据流中。你可以按数据流启用它,也可以通过一个集群设置在多个数据流中启用。

重要性

团队通常处于真实数据源的下游。他们不写代码,只是维持系统运行。当上游团队发布的更改破坏了映射或引入了意外字段时,就会发生失败。但如果无法访问原始的失败数据,调试就只能靠猜。

更糟的是,当数据无法被索引时,它就不存在于你的索引中 —— 这意味着更难评估影响。你无法追踪哪个数据流失败最频繁,也无法量化管道损坏的程度。如果平台从未接收到这些数据,你当然无法对缺失内容发出告警(除了当数据缺失时的告警)。

故障存储使开发人员能够了解哪些数据索引失败以及失败原因,从而为可观测性工程师提供快速了解和修复数据提取故障所需的工具。由于故障存储在 Elasticsearch 中,因此分类也非常迅速,无需从远程客户端或数据采集器收集信息。

开始使用

为新的数据流进行设置…

PUT _index_template/my-index-template
{"index_patterns": ["my-datastream-*"],"data_stream": { },"template": {"data_stream_options": {"failure_store": { // ✨"enabled": true } }}
}

…或为现有数据流启用

在 Kibana 的 Stack 管理中为单个数据流启用失败存储,或使用 _data_stream API:

PUT _data_stream/my-existing-datastream/_options
{"failure_store": {"enabled": true}
}

通过集群设置启用失败存储

如果你有大量现有数据流,可能希望在一个地方统一启用它们的失败存储。无需单独更新每个数据流的选项,只需在集群设置中将 data_streams.failure_store.enabled 设置为索引模式列表。任何匹配这些模式的数据流都将启用失败存储。

PUT _cluster/settings
{"persistent" : {"data_streams.failure_store.enabled" : [ "my-datastream-*", "logs-*" ]}
}

失败文档响应

启用失败存储后,以前会失败的请求现在会有不同的处理方式。客户端现在会收到 201 Created,而不是 400 Bad Request。特别是如果你使用自定义应用或我们的语言客户端,请确保相应更新代码。当文档进入失败存储时,响应中会包含 failure_store: used 属性。

{"_index": ".fs-logs-generic.otel-default-2025.07.31-000010","_id": "2K9IYpgBfukt97YIaUPG","_version": 1,"result": "created","_shards": {"total": 2,"successful": 1,"failed": 0},"_seq_no": 0,"_primary_term": 1,"failure_store": "used"
}

像处理其他日志一样搜索和筛选失败数据,支持 ES|QL 和 Kibana 工具:

  FROM logs-generic.otel-default::failures

失败存储中的数据包含所有上下文信息,使调试更简单。每个 ::failures 索引都包含管道失败的信息,以及具体的错误消息、堆栈跟踪和错误类型,帮助你识别模式。

如果你遇到大量错误,不知道从哪里开始,可以使用 ES|QL 和 ML 功能。通过 ES|QL 暴露的数据,可以利用 ML 功能(如 CATEGORIZE)分析错误,帮助解析错误并提取模式。在我们的文档中可以关于数据修复的技术。

使用你已经用于其他数据的数据流生命周期来控制成本和保留时间。如果没有自定义保留策略,失败存储数据将保留 30 天。

通过失败指标和按失败百分比可排序的仪表板随时间监控数据质量,发现需要调查的新问题区域。在文档中可以关于数据质量监控的内容。

了解更多

失败存储从 Elastic 9.1 和 8.19 开始可用,并将在即将发布的版本中默认在 logs-*-* 索引上启用。想了解更多,请查阅文档获取设置说明和最佳实践。

原文:Failure store: see what didn’t make it - Elasticsearch Labs

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/919233.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/919233.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Spring Boot+Vue的莱元元电商数据分析系统 销售数据分析 天猫电商订单系统

🔥作者:it毕设实战小研🔥 💖简介:java、微信小程序、安卓;定制开发,远程调试 代码讲解,文档指导,ppt制作💖 精彩专栏推荐订阅:在下方专栏&#x1…

Node.js/Python 实战:封装淘宝商品详情 API 客户端库(SDK)

在开发电商相关应用时,我们经常需要与淘宝 API 交互获取商品数据。直接在业务代码中处理 API 调用逻辑会导致代码冗余且难以维护。本文将实战演示如何使用 Node.js 和 Python 封装一个高质量的淘宝商品详情 API 客户端库(SDK),使开…

【Docker】关于hub.docker.com,无法打开,国内使用dockers.xuanyuan.me搜索容器镜像、查看容器镜像的使用文档

🔧 一、国内镜像搜索替代方案 国内镜像源网站 毫秒镜像:支持镜像搜索(如 https://dockers.xuanyuan.me),提供中文文档服务(https://dockerdocs.xuanyuan.me),可直接搜索镜像名称并…

2025盛夏AI热浪:八大技术浪潮重构数字未来

——从大模型革命到物理智能,AI如何重塑产业与人机关系🌟 引言:AI从“技术爆炸”迈向“应用深水区」代码示例:AI商业化闭环验证模型# 验证AI商业化闭环的飞轮效应 def validate_ai_flywheel(compute_invest, app_adoption): re…

从希格斯玻色子到 QPU:C++ 的跨维度征服

一、引言:粒子物理与量子计算的交汇点在当代物理学和计算机科学的前沿领域,希格斯玻色子研究与量子计算技术的交汇正形成一个激动人心的跨学科研究方向。希格斯玻色子作为标准模型中最后被发现的基本粒子,其性质和行为对我们理解物质质量的起…

Elasticsearch:如何使用 Qwen3 来做向量搜索

在这篇文章中,我们将使用 Qwen3 来针对数据进行向量搜索。我们将对数据使用 qwen3 嵌入模型来进行向量化,并使用 Qwen3 来对它进行推理。在阅读这篇文章之前,请阅读之前的文章 “如何使用 Ollama 在本地设置并运行 Qwen3”。 安装 Elasticsea…

Mybatis实现页面增删改查

一、改变路由警告 二、实现新增数据 1.UserMapper.xml 2.Controller层 注意:前端传的是json对象,所以后台也需要使用JSON 3.设置提交的表单 <el-dialog title"信息" v-model"data.formVisible" width"30%" destroy-on-close><el-form…

Rabbitmq+STS+discovery_k8s +localpv部署排坑详解

#作者&#xff1a;朱雷 文章目录一、部署排坑1.1. configmap配置文件1.2. pv文件1.3. sc文件1.4. serviceAccount文件1.5. headless-service文件1.6. sts文件二、RabbitMQ集群部署关键问题总结一、部署排坑 1.1. configmap配置文件 编辑cm.yaml 文件 apiVersion: v1 kind: C…

8.14 模拟

lc658. deque 定长滑窗class Solution { public:vector<int> findClosestElements(vector<int>& arr, int k, int x) {int n arr.size();int l 0, r 0;deque<int> dq;while (r < n) {dq.push_back(arr[r]);if (dq.size() > k) {// 核心&#xf…

JavaScript 核心语法与实战笔记:从基础到面试高频题

一、面试高频:apply 与 call 调用模式的区别 apply 和 call 的核心作用一致——改变函数内 this 的指向并立即执行函数,唯一区别是参数传递方式不同: apply:第二个参数需以数组形式传入,格式为 函数名.apply(this指向, [参数1, 参数2, ...]) 示例:test.apply(param, [1,…

自动驾驶系统“测试”的“要求”与“规范体系”

让数据真正闭环的&#xff0c;L4级自动驾驶仿真工具链-杭州千岑智能科技有限公司&#xff1a;RSim。 自动驾驶系统测试的要求与规范体系 自动驾驶技术作为汽车产业智能化转型的核心领域&#xff0c;其测试验证环节直接关系到技术的安全性和可靠性。随着自动驾驶等级的提高&…

人工智能——CNN基础:卷积和池化

一、CNN入门介绍1、卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;简称 CNN&#xff09;是一种专门为处理具有网格结构数据&#xff08;如图像、音频&#xff09;而设计的深度学习模型。在传统的全连接神经网络&#xff08;FNN&#xff09;中&#xff0c;输…

适用监测农作物长势和病虫害的高光谱/多光谱相机有哪些?

面对农作物长势分析和病虫害监测&#xff0c;光谱技术在农业中得到了有效的应用。本篇文章给大家介绍下适合监测农作物长势和病虫害的高光谱/多光谱相机。农作物在遭受病虫害侵袭时&#xff0c;其叶片的细胞结构、水分含量、色素组成会发生变化&#xff0c;从而导致农作物对不同…

深度学习——03 神经网络(4)-正则化方法价格分类案例

4 正则化 4.1 概述模型拟合的3种状态左边&#xff08;Underfitting 欠拟合&#xff09;&#xff1a;模型太简单&#xff0c;没抓住数据规律。比如用直线硬套弯曲的数据&#xff0c;预测效果差&#xff0c;训练误差和测试误差都大&#xff1b;中间&#xff08;Just right 拟合合…

java16学习笔记

Java16是一个重要的特性发布&#xff0c;它为JAVA带来了许多JVM特定的更改和语言特定的更改。它遵循了自JavaJava10以来引入的Java发布步调&#xff0c;并于2021年3月发布&#xff0c;仅在Java15发布后的六个月内发布。 Java 16是一个非LTS版本。 338:Vector API (Incubator)…

useCallback 的陷阱:当 React Hooks 反而拖了后腿

我有一支技术全面、经验丰富的小型团队&#xff0c;专注高效交付中等规模外包项目&#xff0c;有需要外包项目的可以联系我很多代码库到处都是 useCallback / useMemo。初衷是好的&#xff1a;减少不必要的重新渲染、稳定引用、提速。然而&#xff0c;用错场景或铺天盖地地包一…

【IntelliJ IDEA】如何在pom.xml中去除maven中未使用的依赖

pom.xml中去除maven中未使用的依赖主要解决的问题一、怎么做&#xff1f;二、重点依赖类型解析说明三、什么时候做&#xff1f;四、有什么风险要注意的&#xff1f;五、补充一个快捷方法使用六、IDEA的terminal中如何才能使用命令mvn呢&#xff1f;主要解决的问题 你的项目中p…

安卓9.0系统修改定制化____关于自启脚本的规律、编写与实战示例 推荐收藏【二】

在定制化ROM服务中,许多功能都需要通过自启脚本来实现。上期博文详细解析了脚本编写的规律、权限设置以及常见错误踩坑的排查与修复方法,并逐行解释了脚本代码的含义。掌握这些基础知识后,这期再以实例演示的过程来使我们使用更得心应手。。 通过博文了解💝💝💝 1�…

选择gpt-5还是claude-4-sonnect

了解我的朋友都知道&#xff0c;我是一个伪全栈工程师&#xff0c;一个人加AI编程工具打天下。 最近&#xff0c;gpt-5已经出来有一段时间了&#xff0c;cursor第一时间就支持了gpt-5模型&#xff0c;我第一时间就尝试了gpt-5效果。说实话&#xff0c;gpt-5和claude-4-sonnect都…

自动化运维实验(二)---自动识别设备,并导出配置

目录 一、实验拓扑 二、实验目的 三、实验步骤 实验思路&#xff1a; 代码部分&#xff1a; 四、实验结果&#xff1a; 一、实验拓扑 二、实验目的 ssh远程登录后&#xff0c;识别设备类型&#xff08;华三、华为、锐捷、山石、飞塔、深信服等&#xff09;&#xff0c;再…