数据流

编辑
数据流命名方案
编辑

APM 数据遵循 <type>-<dataset>-<namespace> 命名方案。 typedataset 由 Elasticsearch apm-data 插件预定义,但 namespace 是您自定义如何在 Elasticsearch 中存储不同类型数据的机会。对于使用什么作为您的命名空间没有推荐 - 它有意地是灵活的。例如,您可以为每个环境创建命名空间,例如 devprodproduction 等。或者,您可以创建与组织内战略业务单元相对应的命名空间。

APM 数据流
编辑

按类型,APM 数据流包括

跟踪

跟踪由 跨度和事务 组成。跟踪存储在以下数据流中

  • 应用跟踪:traces-apm-<namespace>
  • RUM 和 iOS Agent 应用跟踪:traces-apm.rum-<namespace>
指标

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

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

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

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

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

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

  • APM 错误/异常日志记录:logs-apm.error-<namespace>
  • 应用 UI 日志记录:logs-apm.app.<service.name>-<namespace>
APM 数据流重路由
编辑

APM 支持将 APM 数据重路由到用户定义的 APM 数据流名称,而不是默认名称。这可以通过在摄取管道中使用 reroute 处理器 来设置数据流数据集或命名空间来实现。分离 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 存储和处理成本、处理和性能以及其他索引管理功能的信息。