Loki Http API 使用

一、查询日志流

1. 查询某个时间点日志

GET /loki/api/v1/query

示例:

http://192.168.15.139:30100/loki/api/v1/query?direction=BACKWARD&limit=1000&query=sum(rate({job="anychatlog"}[2d]))

参数说明:

query:要执行的LogQL查询

limit: 要返回的最大条目数

time: 查询的评估时间作为一个纳秒的 Unix 纪元。默认为现在。

direction:确定日志的排序顺序。支持的值为forward或backward。默认为backward

2. 查询某个时间段日志

GET /loki/api/v1/query_range

示例:

http://192.168.15.139:30100/loki/api/v1/query_range?direction=BACKWARD&limit=1000&query={job="anychatlog"} &start=1641280408415000000&end=1641453208415000000&step=120

参数说明:

query:要执行的LogQL查询

limit: 要返回的最大条目数

start: 查询的开始时间,以纳秒 Unix 纪元表示。默认为一小时前。

end: 查询的结束时间,以纳秒 Unix 纪元表示。默认为现在。

step: 以duration格式或浮点秒数查询分辨率步长。duration指形式为 的 Prometheus 持续时间字符串[0-9]+[smhdwy]。例如,5m 表示持续时间为 5 分钟。默认为基于start和的动态值end。仅适用于产生矩阵响应的查询类型。

interval:这个参数是实验性的;请参阅步骤与间隔下的说明。只返回(或大于)指定间隔的条目,可以是duration格式或浮点数。仅适用于产生流响应的查询。

direction:确定日志的排序顺序。支持的值为forward或backward。默认为backward.

二、查询标签

1. 查询标签列表

GET /loki/api/v1/labels

参数:

start: 查询的开始时间,以纳秒 Unix 纪元表示。默认为 6 小时前。

end: 查询的结束时间,以纳秒 Unix 纪元表示。默认为现在。

示例:

 http://192.168.15.139:30100/loki/api/v1/labels

2. 查询标签值

查询给定时间跨度内给定标签的已知值列表

GET /api/prom/label/<name>/values

参数:

name: GET /loki/api/v1/label中的标签

start: 查询的开始时间,以纳秒 Unix 纪元表示。默认为 6 小时前。

end: 查询的结束时间,以纳秒 Unix 纪元表示。默认为现在。

示例:

http://192.168.15.139:30100/loki/api/v1/label/job/values

三、匹配特定标签集列表

返回匹配特定标签集的时间序列列表

GET /loki/api/v1/series

POST /loki/api/v1/series

参数:

match[]=<series_selector>:选择要返回的日志流的标签。match[]必须至少提供一个参数。

start=: 开始时间戳。

end=: 结束时间戳。

示例:

http://192.168.15.139:30100/loki/api/v1/series?start=1640922291907000000&end=1641527091908000000&match[]={host="192.168.11.123"}

四、删除日志流

说明:需要2.3.0以上版本的Loki,并按官方文档进行配置

1. 删除日志流

POST loki_addr/loki/api/admin/delete?match[]

参数:

match[]:标签匹配器,用于标识要从中删除的流,必须至少提供一个参数

<series_selector>:查询参数

start:开始的时间戳

end:结束的时间戳

204 响应表示成功。

cURL 命令的示例形式:

示例:

http://192.168.15.139:30100/loki/api/admin/delete?match[]={job="anychatlog"}

2. 列出删除请求

使用以下 API 列出现有的删除请求:

GET /loki/api/admin/delete

示例:

http://192.168.15.139:30100/loki/api/admin/delete

3. 取消删除请求

POST /loki/api/admin/cancel_delete_request

示例:

http://192.168.15.139:30100/loki/api/admin/cancel_delete_request?request_id=dad569a8

四、其它常用API

GET /ready

当 Loki 摄取器准备好接受流量时,返回 HTTP 200。如果在 Kubernetes 上运行 Loki/ready可以用作就绪探针。

POST /flush

将摄取器持有的所有内存块刷新到后备存储。主要用于本地测试。

POST /ingester/flush_shutdown

摄取器的关闭,特别是将始终刷新它持有的任何内存块。这有助于缩小启用 WAL 的摄取器,我们希望确保旧的 WAL 目录不是孤立的,而是刷新到我们的块后端。

GET /metrics

公开 Prometheus 指标。有关 导出的指标列表,请参阅 loki

GET /config

/config公开当前配置。可选的mode查询参数可用于修改输出。如果它具有该值,则diff仅返回默认配置和当前配置之间的差异。值defaults返回默认配置

GET /loki/api/v1/status/buildinfo

在 JSON 对象中公开构建信息。字段包括version,revision,branch,buildDate,buildUser,和goVersion。

五、Loki http Api 官方说明

https://grafana.com/docs/loki/latest/api/

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐