减少存储空间

编辑

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 的 索引管理 允许您管理集群的索引、数据流、索引模板等等。

要打开索引管理,请在主菜单中找到堆栈管理,或使用 全局搜索字段。选择数据流。选择要删除的数据流,然后单击删除数据流

更新现有数据
编辑

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

为此,您可以使用 按查询更新 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 代理配置 中更改服务名称。