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

Elastic APM 与 Elasticsearch 集成:构建完整可观测性栈

引言

Elastic APM 深度依赖 Elasticsearch 作为数据后端,但正确集成可以解锁更强大的功能,如自定义查询、聚合分析和与其它 Elastic 工具的协同。本文探讨 APM 与 Elasticsearch 的集成细节,包括数据流、索引管理以及高级用例,帮助您构建统一的 observability 栈。APM 数据流与 Elasticsearch 集成

  • 数据管道:APM Agent 发送事件(Transactions、Spans、Errors、Metrics)到 APM Server,后者处理后转换为 JSON 文档,索引到 Elasticsearch 的专用索引(如 traces-apm*、metrics-apm*)。
  • 集成设置:使用 Fleet 管理 APM 集成(Elastic Agent 8.x+):
    1. 在 Kibana “Integrations > APM” 添加政策。
    2. Elastic Agent 运行本地 APM Server,自动安装模板和管道。
    • 优势:共享数据流,支持与日志/指标的融合。
  • 手动集成:运行独立 APM Server:
output.elasticsearch:hosts: ["localhost:9200"]index: "apm-%{[agent][version]}-%{+yyyy.MM.dd}"

加载索引模板:apm-server setup --template。

高级 Elasticsearch 查询与分析

  • 查询 APM 数据:使用 Kibana Dev Tools 执行 DSL 查询:
GET /traces-apm*/_search
{"query": {"bool": {"must": [{ "term": { "service.name": "my-app" } },{ "range": { "transaction.duration.us": { "gte": 1000000 } } }  // >1s 事务]}},"aggs": {"latency": { "percentiles": { "field": "transaction.duration.us" } }}
}

这可计算 P95 延迟。

  • 聚合与 ML:在 Elasticsearch 中运行聚合分析异常,或使用 ML 节点检测追踪模式。

与其它工具的集成

  • OpenTelemetry:使用 OTLP Collector 将 OT 数据导入 APM Server,实现混合追踪。
  • Kubernetes 集成:部署 Elastic Agent as DaemonSet,自动监控 Pod。使用 Filebeat 关联日志:
    • 配置:fields: { kubernetes: { pod: { name: “%{[kubernetes.pod.name]}” } } }。
  • 源映射:上传源映射到 APM Server,解码 JS 错误堆栈:
curl -X POST "http://localhost:8200/v1/sourcemaps" \
-H "Authorization: Bearer your-api-key" \
--data-binary @sourcemap.json

优化与故障排除

  • 索引管理:应用 ILM 策略减少存储:热阶段 1 天,删除 >90 天数据。
  • 常见问题:索引冲突?运行 apm-server setup 重新加载模板。数据延迟?检查 APM Server 日志。
  • 规模化:对于 PB 级数据,使用 Elasticsearch 的分片和副本优化查询速度。

结论

Elastic APM 与 Elasticsearch 的集成提供无缝数据管道和强大分析能力。通过 Fleet 和自定义查询,您可以实现从追踪到警报的全栈可观测性。建议从 APM 集成开始,逐步添加 OpenTelemetry 以支持异构环境。这将显著提升您的应用可靠性和调试效率。


文章转载自:

http://8BAqBx5v.fmkbk.cn
http://4ltZOAyB.fmkbk.cn
http://TqLWZwvr.fmkbk.cn
http://aBgzIZE8.fmkbk.cn
http://t72QUESI.fmkbk.cn
http://Jty0VR93.fmkbk.cn
http://DR19qgMV.fmkbk.cn
http://3v6w2Dtc.fmkbk.cn
http://08OXWE8n.fmkbk.cn
http://3IhkuZ9A.fmkbk.cn
http://m1Pkj6ny.fmkbk.cn
http://o1NxTLYb.fmkbk.cn
http://CPUZnuO7.fmkbk.cn
http://O8D92mia.fmkbk.cn
http://gxXqcua3.fmkbk.cn
http://JGtDNwja.fmkbk.cn
http://6S4WLXRd.fmkbk.cn
http://hLL97sRt.fmkbk.cn
http://XeoFC4Ov.fmkbk.cn
http://1bQ8r21N.fmkbk.cn
http://boOzU7dn.fmkbk.cn
http://zRqWUuBf.fmkbk.cn
http://kjlvrSY4.fmkbk.cn
http://0yZHBTlq.fmkbk.cn
http://CDGmmikh.fmkbk.cn
http://YSB8jQER.fmkbk.cn
http://xEPoDZIR.fmkbk.cn
http://5tfkj2Xv.fmkbk.cn
http://vA3oeJY9.fmkbk.cn
http://7QCW9ax5.fmkbk.cn
http://www.dtcms.com/a/384366.html

相关文章:

  • 从零搭建MCP Server:Python开发、部署与应用全流程实战
  • Mac本地Docker拉取镜像本地挂载项目
  • 购物车效果
  • 在Ubuntu 18.0.4 编译最新版Python-3.13.7
  • 如何在ubuntu下用pip安装aider,解决各种报错问题
  • Redis 高可用实战源码解析(Sentinel + Cluster 整合应用)
  • 测井曲线解读核心三属性(岩性 / 物性 / 含油气性)实用笔记
  • 【图像理解进阶】VLora参数融合核心原理与Python实现
  • Leetcode 169. 多数元素 哈希计数 / 排序 / 摩尔投票
  • EasyPoi:java导出excel,并从OSS下载附件打包zip,excel中每条记录用超链接关联附件目录
  • Win10系统下载并安装声卡驱动
  • JavaEE初阶——初识计算机是如何工作的:从逻辑门到现代操作系统
  • CKA05--service
  • 信息安全专业毕业设计选题推荐:课题建议与开题指导
  • 【LeetCode 每日一题】1792. 最大平均通过率——贪心 + 优先队列
  • 【深度学习计算机视觉】05:多尺度目标检测
  • Docker将镜像搬移到其他服务上的方法
  • WiseAI-百度研发的AI智能聊天产品
  • .NET驾驭Word之力:理解Word对象模型核心 (Application, Document, Range)
  • 【JAVA接口自动化】JAVA如何读取Yaml文件
  • Redis全面指南:从入门到精通
  • Word在WPS和Office中给图片添加黑色边框
  • C++ Lua组合拳:构建高性能系统配置管理框架
  • 数据库编程--完成简单的信息登录系统+思维导图
  • Spring Boot 深入剖析:SpringApplicationRunListener
  • 【新手指南】解析Laf.run上的GET API接口
  • 如何批量删除 iPhone/iPad 上的照片 [7 种方法
  • Spring Boot 日志体系全面解析:从 SLF4J 到 Logback、Log4j2 与 Lombok 超详细!!
  • springboot创建请求处理
  • 08-Redis 字符串类型全解析:从命令实操到业务场景落地