You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Loki API实现一键删除所有存储日志?

解决Loki单体模式下批量删除所有日志的问题

关于filter-only模式的澄清

你对filter-only的理解完全正确——这个模式不会物理删除存储中的日志,只是在后续查询时过滤掉匹配的条目。测试后没删除数据是预期行为,它的作用是让你先验证删除规则的匹配范围,避免误删,不是用来执行实际删除操作的。

用filter-and-delete模式删除所有日志的方法

要实现一次请求删除所有日志,关键是构造一个能匹配所有日志流的查询表达式,不需要逐个指定标签:

  • 如果你的日志流都带有job标签,用{job=~".*"}(正则匹配任意job值)
  • 如果没有统一的业务标签,用Loki内置的__name__标签匹配所有流:{__name__=~".*"}

具体API请求示例

用curl调用删除接口,时间范围覆盖所有历史日志(start设为0,end设为当前Unix时间戳):

curl -X POST http://<你的Loki地址>/loki/api/v1/delete \
  -H "Content-Type: application/json" \
  -d '{
    "query": "{__name__=~\".*\"}",
    "start": 0,
    "end": <当前Unix时间戳>,
    "deletion_mode": "filter-and-delete"
  }'

注意事项

  1. 执行删除前,建议先用filter-only模式测试查询表达式,确认匹配了所有预期的日志流
  2. 单体模式下Loki会直接处理删除请求,不需要额外的分布式协调操作
  3. 删除操作完成后,日志不会立即从存储中消失,Loki会在后续的清理周期(由retention_period等配置控制)中物理移除数据

内容的提问来源于stack exchange,提问作者Chase

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 10:24:56