正在加载

存储和容量指南

Elastic Stack

APM 处理和存储成本主要由事务、span 和堆栈帧决定。

  • 事务 描述了由 Elastic APM 代理检测服务捕获的事件。 它们是服务中正在测量的最高级别的工作。
  • Span 属于事务。 它们测量从活动开始到结束的时间,并包含有关已执行的特定代码路径的信息。
  • 堆栈帧 属于 span。 堆栈帧表示调用堆栈上的函数调用,并包括函数名称、文件名和路径、行号等属性。 堆栈帧会严重影响 span 的大小。

由于 APM 数据的高度可变性,很难将事务分类为典型的。 无论如何,本指南将尝试将事务分类为,并根据这些分类提出建议。

事务的大小取决于语言、代理设置以及代理检测的服务。 例如,使用流行的技术堆栈(Web 框架、数据库、缓存库等)自动检测服务的代理更有可能生成更大的事务。

此外,所有代理都支持手动检测。 您使用这些 API 的多少也会影响典型事务的外观。

如果您的采样率非常小,事务将是主要的存储成本。

这是一个推测性的参考

事务大小 Span 数量 堆栈帧数量
5-10 5-10
15-20 15-20
30-40 30-40

总会有数百个 span 或堆栈帧的事务异常值,但这些非常罕见。 小型事务是最常见的。

考虑以下典型的存储参考。 这些数字不包括 Elasticsearch 压缩。

  • 1 个未采样的事务是 ~1 KB
  • 1 个包含 10 个堆栈帧的 span 是 ~4 KB
  • 1 个包含 50 个堆栈帧的 span 是 ~20 KB
  • 1 个包含 10 个 span(每个 span 包含 10 个堆栈帧)的事务是 ~50 KB
  • 1 个包含 25 个 span(每个 span 包含 25 个 span)的事务是 250-300 KB
  • 100 个包含 10 个 span(每个 span 包含 10 个堆栈帧)的事务,以 90% 的采样率采样,是 600 KB

APM 数据压缩效果很好,因此 Elasticsearch 中的存储成本会大大降低

  • 每秒索引 100 个未采样事务 1 小时会导致 360,000 个文档。 这些文档占用大约 50 MB 的磁盘空间。
  • 每秒索引 10 个事务 1 小时,每个事务包含 10 个 span,每个 span 包含 10 个堆栈帧,会导致 396,000 个文档。 这些文档占用大约 200 MB 的磁盘空间。
  • 每秒索引 25 个事务 1 小时,每个事务包含 25 个 span,每个 span 包含 25 个堆栈帧,会导致 2,340,000 个文档。 这些文档占用大约 1.2 GB 的磁盘空间。
注意

这些示例一遍又一遍地索引相同的数据,变化极小。 因此,观察到的 80-90% 的压缩率有些乐观。

© . All rights reserved.