减少存储编辑

APM 数据的存储量取决于几个因素:您正在检测的服务数量、服务接收的流量、代理和服务器设置以及您存储数据的时长。

以下是一些可以减少您摄取的 APM 数据量或保留的数据量的方法。

降低采样率编辑

分布式跟踪会生成大量数据。更多数据意味着更高的成本和更多噪音。采样旨在降低摄取的数据量和分析这些数据所需的努力。

有关更多信息,请参阅 事务采样

启用跨度压缩编辑

在某些情况下,APM 代理可能会在事务中收集大量非常相似或相同的跨度。这些重复的、相似的跨度通常不会提供额外的益处,尤其是在它们持续时间非常短的情况下。跨度压缩会将这些相似的跨度压缩成一个跨度,保留重要信息,但减少处理和存储开销。

有关更多信息,请参阅 跨度压缩

减少收集的堆栈跟踪信息编辑

Elastic APM 代理在某些情况下会收集 stacktrace 信息。这对于识别代码中的问题非常有用,但它也会在收集时带来开销并增加存储使用量。

堆栈跟踪收集设置在每个代理中进行管理。

删除数据编辑

您可能只想保留一段时间的数据。这可能意味着定期删除旧文档,删除为特定服务或客户收集的数据,或删除特定索引。

根据您的用例,您可以删除数据

如果您想出于安全或隐私原因删除数据,请参阅 数据安全

使用索引生命周期管理 (ILM) 删除数据编辑

索引生命周期管理使您能够自动化您希望如何随着时间的推移管理索引。您可以根据分片大小和性能要求等因素来执行操作。有关更多信息,请参阅 索引生命周期管理

删除与查询匹配的数据编辑

您可以使用 删除查询 API 删除与特定查询匹配的所有 APM 文档。例如,要删除具有给定 service.name 的所有文档,请使用以下请求

POST /.ds-*-apm*/_delete_by_query
{
  "query": {
    "term": {
      "service.name": {
        "value": "old-service-name"
      }
    }
  }
}
使用 Kibana 索引管理删除数据编辑

Kibana 的 索引管理 允许您管理集群的索引、数据流、索引模板等等。

在 Kibana 中,导航到 堆栈管理 > 索引管理 > 数据流。选择要删除的数据流,然后单击 删除数据流

更新现有数据编辑

您可能希望更新已编入索引的文档。例如,如果您服务的名称设置不正确。

为此,您可以使用 更新查询 API。要重命名服务,请发送以下请求

POST /.ds-*-apm*/_update_by_query?expand_wildcards=all
{
  "query": {
    "term": {
      "service.name": {
        "value": "current-service-name"
      }
    }
  },
  "script": {
    "source": "ctx._source.service.name = 'new-service-name'",
    "lang": "painless"
  }
}

请记住,还要在 APM 代理配置 中更改服务名称。