使用 Ingest Pipeline 解析数据

编辑

Ingest Pipeline 在索引 APM 文档之前对其进行预处理和丰富。例如,一个 Pipeline 可能定义一个用于删除字段的处理器,一个用于转换字段的处理器,以及另一个用于重命名字段的处理器。

默认的 APM Pipeline 在 Elasticsearch apm-data 插件索引模板中定义。然后,Elasticsearch 使用这些索引模板中的索引模式来将 Pipeline 与 APM 数据流匹配。

自定义 Ingest Pipeline
编辑

Elastic APM 支持自定义 Ingest Pipeline。自定义 Pipeline 允许您转换数据以更好地匹配您的特定用例。例如,这对于通过删除或混淆敏感信息来确保数据安全非常有用。

每个数据流都附带一个默认 Pipeline。此默认 Pipeline 调用一个最初不存在且无版本的“@custom”Ingest Pipeline。如果未创建,此 Pipeline 对您的数据没有任何影响。但是,如果使用,此 Pipeline 可用于自定义数据处理、添加字段、清理数据等。

此外,Ingest Pipeline 还可用于将应用程序指标(metrics-apm.app.*)定向到具有不同数据集的数据流,例如,将两个应用程序的指标组合在一起。目前不支持将其他 APM 数据发送到备用数据流,例如跟踪(traces-apm.*)、日志(logs-apm.*)和内部指标(metrics-apm.internal*)。

@custom Ingest Pipeline 命名约定
编辑

@custom Pipeline 特定于每个数据流,并遵循类似的命名约定:<type>-<dataset>@custom。提醒一下,默认的 APM 数据流是:

  • 应用程序跟踪:traces-apm-<namespace>
  • RUM 和 iOS 代理应用程序跟踪: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 错误/异常日志记录:logs-apm.error-<namespace>
  • 应用程序 UI 日志记录:logs-apm.app.<service.name>-<namespace>

要使自定义 Ingest Pipeline 与数据流匹配,请遵循 <type>-<dataset>@custom 模板,或将上表中的 -namespace 替换为 @custom。例如,要定位应用程序跟踪,您将创建一个名为 traces-apm@custom 的 Pipeline。

@custom Pipeline 可以直接包含处理器,或者您可以使用 Pipeline 处理器来调用其他 Pipeline,这些 Pipeline 可以在多个数据流或集成之间共享。@custom Pipeline 将在所有版本升级中保留。

创建 @custom Ingest Pipeline
编辑

创建自定义 Ingest Pipeline 的过程如下:

  • 创建具有特定于您的用例的处理器的 Pipeline
  • 将新创建的 Pipeline 添加到与 APM 数据流匹配的 @custom Pipeline

如果您希望获得更多指导,请参阅以下教程之一: