数据流

编辑
数据流命名方案
编辑

APM 数据遵循 <类型>-<数据集>-<命名空间> 命名方案。类型数据集 由 Elasticsearch apm-data 插件预定义,但 命名空间 为您提供了自定义如何在 Elasticsearch 中存储不同类型数据的机会。对于将什么用作您的命名空间没有建议——它的目的是具有灵活性。例如,您可以为每个环境创建命名空间,如 devprodproduction 等。或者,您可以创建与组织内战略业务部门对应的命名空间。

APM 数据流
编辑

按类型划分,APM 数据流如下

追踪

追踪由span 和事务组成。追踪存储在以下数据流中

  • 应用程序追踪:traces-apm-<命名空间>
  • RUM 和 iOS 代理应用程序追踪:traces-apm.rum-<命名空间>
指标

指标包括基于应用程序的指标、聚合指标和基本系统指标。指标存储在以下数据流中

  • APM 内部指标:metrics-apm.internal-<命名空间>
  • APM 事务指标:metrics-apm.transaction.<metricset.interval>-<命名空间>
  • APM 服务目标指标:metrics-apm.service_destination.<metricset.interval>-<命名空间>
  • APM 服务事务指标:metrics-apm.service_transaction.<metricset.interval>-<命名空间>
  • APM 服务摘要指标:metrics-apm.service_summary.<metricset.interval>-<命名空间>
  • 应用程序指标:metrics-apm.app.<service.name>-<命名空间>

    应用程序指标在数据流名称中包括已检测服务的名称,该名称在每个 APM 代理的配置中定义。因此,服务名称必须遵循某些索引命名规则。

    服务名称规则
    • 服务名称不区分大小写,并且必须是唯一的。例如,您不能拥有一个名为 Foo 的服务和另一个名为 foo 的服务。
    • 特殊字符将从服务名称中删除,并替换为下划线 (_)。特殊字符包括

      '\\', '/', '*', '?', '"', '<', '>', '|', ' ', ',', '#', ':', '-'

    拥有适当许可证的用户可以使用合成 _source提供的额外存储效率。

日志

日志包括应用程序错误事件和应用程序日志。日志存储在以下数据流中

  • APM 错误/异常日志:logs-apm.error-<命名空间>
  • 应用程序 UI 日志:logs-apm.app.<service.name>-<命名空间>
APM 数据流重定向
编辑

APM 支持将 APM 数据重定向到用户定义的 APM 数据流名称,而不是默认名称。这可以通过在摄取管道中使用重定向处理器来设置数据流数据集或命名空间来实现。分离 APM 数据流的好处是可以使用自定义保留和安全策略。

例如,考虑最初索引到 traces-apm-default 的追踪。要从追踪的 service.environment 设置数据流命名空间,并回退到静态字符串 "default",请创建一个名为 traces-apm@custom 的摄取管道,该管道将自动使用

[
  {
    "reroute": {
      "namespace": [
        "{{service.environment}}",
        "default"
      ]
    }
  }
]

要查找默认情况下由 Elasticsearch apm-data 插件调用的其他摄取管道,请转到 堆栈管理摄取管道 在 Kibana 中并搜索 apm。默认的 APM 摄取管道将遵循模式 *-apm*@default-pipeline

有关更多自定义 APM 摄取管道指南,请参阅使用摄取管道解析数据

下一步是什么?
编辑
  • 数据流不仅定义了数据在 Elasticsearch 中的存储方式,还定义了数据随时间的保留方式。请参阅索引生命周期管理,了解如何创建自己的数据保留策略。
  • 有关 APM 存储和处理成本、处理和性能以及其他索引管理功能的信息,请参阅管理存储