Grafana Loki HTTP API
Grafana Loki公开了一个HTTP API,用于推送、查询和跟踪日志数据。注意,针对API进行身份验证超出了Loki的范围。
Microservices模式
在微服务模式下部署Loki时,每个组件公开的端点集是不同的。
这些端点由所有组件公开:
这些端点由查询器和查询前端公开:
GET /洛基/ api / v1 /查询
得到/洛基/ api / v1 / query_range
GET /洛基/ api / v1 /标签
得到洛基/ api / v1 /标签/ <名称> /值
GET /洛基/ api / v1 /系列
GET /洛基/ api / v1 /索引/统计数据
GET /洛基/ api / v1 /尾巴
POST /洛基/ api / v1 /推动
准备好/
GET /指标
- 弃用
GET / api /舞会/尾巴
- 弃用
GET / api /舞会/查询
- 弃用
GET / api /舞会/标签
- 弃用
GET / api /舞会/标签/ <名称> /值
- 弃用
POST / api /舞会/推动
这些端点由分发程序公开:
这些端点由摄取者公开:
API端点从洛基/
是普罗米修斯API-compatible结果格式可以互换使用。
标尺将这些端点暴露出来:
获得/统治者/环
GET /洛基/ api / v1 /规则
GET /洛基/ api / v1 /规则/{名称}
得到洛基/ api / v1 /规定/{名称空间}/ {groupName}
POST /洛基/ api / v1 /规定/{名称}
删除/洛基/ api / v1 /规定/{名称空间}/ {groupName}
删除/洛基/ api / v1 /规则/{名称}
GET / api /舞会/规则
GET / api /舞会/规定/{名称}
GET / api /舞会/规则/{名称空间}/ {groupName}
POST / api /舞会/规则/{名称}
删除/ api /舞会/规则/{名称空间}/ {groupName}
删除/ api /舞会/规定/{名称}
GET /普罗米修斯/ api / v1 /规则
GET /普罗米修斯/ api / v1 /警报
这些端点由压实器暴露:
一个客户名单可以在客户端文档中找到。
矩阵,向量和流
一些Loki API端点返回矩阵、向量或流的结果:
矩阵:一个值表,其中每一行代表一个不同的标签集,列是查询时间内该行的每个样本值。矩阵类型仅在运行计算某个值的查询时返回。
即时向量:在类型中表示为just
向量
,瞬时向量表示给定标签集的最新计算值。即时向量仅在对单个时间点进行查询时返回。流:流是给定标签集在查询时间范围内的所有值(日志)的集合。流是唯一会导致返回日志行的类型。
时间戳的格式
API接受时间戳的几种格式。10位或更少数字的整数被解释为以秒为单位的Unix时间戳。超过10个数字被解释为以纳秒为单位的Unix时间戳。浮点数是以秒为单位的Unix时间戳。
时间戳也可以写入RFC3339
而且RFC3339Nano
Go 's所支持的时间包中。
查询洛基
GET /洛基/ api / v1 /查询
洛基/ api / v1 /查询
允许对单个时间点进行查询。URL查询参数支持如下值:
查询
:LogQL要执行的查询限制
:要返回的最大条目数。默认为One hundred.
.仅适用于产生流(日志行)响应的查询类型。时间
:查询的计算时间,以纳秒为单位的Unix纪元或其他支持的格式.默认为现在。方向
:决定日志的排序顺序。支持的值为向前
或落后的
.默认为落后的
.
微服务模式下,洛基/ api / v1 /查询
由查询器和前端公开。
响应格式:
{"status": "success", "data": {"resultType": "vector" | "streams", "result": []| [],"stats": []}}
在哪里<矢量值>
是:
{"metric": {
而且<流值>
是:
{"stream": {
的项目值
数组按时间戳排序。使用时,最近的项目放在前面向后方向=
.使用时,最古老的物品优先向前方向=
.
看到统计数据获取洛基返回的统计信息。
例子
这个查询示例
curl -G -s "http://localhost:3100/loki/api/v1/query" \——data-urlencode \ 'query=sum(rate({job="varlogs"}[10m])) by (level)' | jq
给出了这样的回答:
{“状态”:“成功”,“数据”:{“resultType”:“向量”、“结果”:[{“指标”:{},“价值”:1267.1266666666666(1588889221,” " ] }, { " 规”:{“级别”:“警告”},“价值”:37.77166666666667(1588889221,” " ] }, { " 规”:{“级别”:“信息”},“价值”:37.69(1588889221,” " ] } ], " 统计”:{…}}}
如果您的集群有Grafana Loki多租户启用,设置X-Scope-OrgID
头来标识要查询的租户。下面是对单个租户调用的相同示例查询Tenant1
:
curl -H 'X-Scope-OrgID:Tenant1' \ -G -s "http://localhost:3100/loki/api/v1/query" \——data-urlencode \ 'query=sum(rate({job="varlogs"}[10m])) by (level)' | jq
查询三个租户Tenant1
,Tenant2
,Tenant3
,指定由管道(|
)性格:
curl -H 'X-Scope-OrgID:Tenant1|Tenant2|Tenant3' \ -G -s "http://localhost:3100/loki/api/v1/query" \——data-urlencode \ 'query=sum(rate({job="varlogs"}[10m])) by (level)' | jq
Grafana Enterprise Logs的相同示例查询使用基本身份验证,并将租户名称指定为用户
.租户名称由管道(|
)字符。方法中定义的访问策略令牌API_TOKEN
环境变量:
curl -u "Tenant1|Tenant2|Tenant3:$API_TOKEN" \ -G -s "http://localhost:3100/loki/api/v1/query" \——data-urlencode \ 'query=sum(rate({job="varlogs"}[10m])) by (level)' | jq
在一定时间范围内查询洛基
得到/洛基/ api / v1 / query_range
洛基/ api / v1 / query_range
用于在一段时间内进行查询,并在URL中接受以下查询参数:
查询
:LogQL要执行的查询限制
:要返回的最大条目数。默认为One hundred.
.仅适用于产生流(日志行)响应的查询类型。开始
:查询的开始时间,以纳秒Unix纪元或其他单位表示支持的格式.默认为一小时前。结束
:查询的结束时间,以纳秒Unix纪元或其他单位表示支持的格式.默认为现在。一步
:在中查询分辨率步宽持续时间
格式或浮点数秒。持续时间
为形式的普罗米修斯持续时间字符串[0 - 9] + [smhdwy]
.例如5m为5分钟。的动态值开始
而且结束
.仅适用于产生矩阵响应的查询类型。时间间隔
:此参数为实验性参数;参见Step vs . interval中的解释。只返回条目在(或大于)指定的间隔,可以持续时间
格式或浮点数秒。仅适用于产生流响应的查询。方向
:决定日志的排序顺序。支持的值为向前
或落后的
.默认为落后。
微服务模式下,洛基/ api / v1 / query_range
由查询器和前端公开。
步长与间隔
使用一步
参数时进行度量查询Loki,或查询返回一个矩阵响应。它的评估方法与普罗米修斯的评估方法完全相同一步
.首先,将在开始
然后在开始+步骤
再次在开始+步骤+步骤
直到结束
是达到了。结果将是每个步骤计算的查询结果的矩阵。
使用时间间隔
参数,当对Loki进行日志查询,或返回流响应的查询。它通过返回一个日志条目来计算开始
,则下一个条目将返回时间戳为>=的条目开始+间隔
,又在Start + interval + interval
以此类推,直到结束
是达到了。它不填充缺失的条目。
注意interval参数的实验性质:这个标志将来可能会被移除,如果是这样,可能会有利于LogQL表达式执行类似的行为,但目前还不确定。发行1779被创建来跟踪讨论,如果你在使用时间间隔
请将您的用例和想法添加到该问题中。
回应:
{"status": "success", "data": {"resultType": "matrix" | "streams", "result":[<矩阵值>]|[<流值>]"stats":[<统计>]}}
在哪里<矩阵值>
是:
{"metric": {
的项目值
数组按时间戳排序,最老的项在第一个。
和<流值>
是:
{"stream": {
的项目值
数组按时间戳排序。使用时,最近的项目放在前面向后方向=
.使用时,最古老的物品优先向前方向=
.
看到统计数据获取洛基返回的统计信息。
例子
$ curl -G -s "http://localhost:3100/loki/api/v1/query_range"——data-urlencode 'query=sum(rate({job="varlogs"}[10m])) by (level)'——data-urlencode 'step=300' | jq {"status": "success", "data": {"resultType": "matrix", "result": [{"metric": {"level": "info"}, "values": [[1588889221, "137.95"], [1588889221, "467.115"], [1588889221, "658.8516666666667"]]}, {"metric": {"level": "warn"}, "values":[[1588889221, "137.27833333333334"], [1588889221, "467.69"], [1588889221, "660.6933333333334"]]}], "stats":{…}}}
$ curl -G -s "http://localhost:3100/loki/api/v1/query_range"——data-urlencode 'query={job="varlogs"}' | jq {"status": "success", "data": {"resultType": "streams", "result": [{"stream": {"filename": "/var/log/myproject.log", "job": "varlogs", "level": "info"}, "values": [["1569266492548155000", "bar"]]}], "stats":{…}}}
列出一段时间内的标签
GET /洛基/ api / v1 /标签
洛基/ api / v1 /标签
检索给定时间范围内已知标签的列表。洛基可以使用比指定的更大的时间跨度。它在URL中接受以下查询参数:
开始
:查询的开始时间,以纳秒为单位的Unix纪元。默认为6小时前。结束
:查询的结束时间,以纳秒为单位的Unix纪元。默认为现在。
微服务模式下,洛基/ api / v1 /标签
由查询器公开。
回应:
{“状态”:“成功”,“数据”:[<字符串>标签,…]}
例子
$ curl -G -s "http://localhost:3100/loki/api/v1/labels" | jq {"status": "success", "data": ["foo", "bar", "baz"]}
列出一段时间内的标签值
得到洛基/ api / v1 /标签/ <名称> /值
洛基/ api / v1 /标签/ <名称> /值
检索给定时间跨度内给定标签的已知值的列表。洛基可以使用比指定的更大的时间跨度。它在URL中接受以下查询参数:
开始
:查询的开始时间,以纳秒为单位的Unix纪元。默认为6小时前。结束
:查询的结束时间,以纳秒为单位的Unix纪元。默认为现在。
微服务模式下,洛基/ api / v1 /标签/ <名称> /值
由查询器公开。
回应:
{“状态”:“成功”,“数据”:[< >标签值,…]}
例子
$ curl -G -s "http://localhost:3100/loki/api/v1/label/foo/values" | jq {"status": "success", "data":["猫","狗","美西螈"]}
流日志消息
GET /洛基/ api / v1 /尾巴
洛基/ api / v1 /尾巴
是一个WebSocket端点,它将基于查询流日志消息。它在URL中接受以下查询参数:
查询
:LogQL要执行的查询delay_for
:延迟检索日志的秒数,以便让慢的日志记录器赶上。默认值为0,不能大于5。限制
:要返回的最大条目数。默认为One hundred.
.开始
:查询的开始时间,以纳秒为单位的Unix纪元。默认为一小时前。
微服务模式下,洛基/ api / v1 /尾巴
由查询器公开。
响应(流):
{"streams": [{"stream":{<标签键值对>},"values":[[<字符串:纳秒Unix纪元>,<字符串:日志行>]]}],"dropped_entries": [{"labels":{<标签键值对>},"timestamp": "<纳秒Unix纪元>"}]}
把日志推送给洛基
POST /洛基/ api / v1 /推动
洛基/ api / v1 /推动
是用于向Loki发送日志条目的端点。POST正文的默认行为是一个snap -compressed protobuf消息:
或者,如果内容类型
头被设置为application / json
, JSON post正文可以以以下格式发送:
{"streams": [{"stream": {"label": "value"}, "values": [["", "<日志行>"],["", "<日志行>"]]}]}]}
你可以设置内容编码:gzip
请求头和post gzip JSON。
洛基可以配置为接受乱序写入.
微服务模式下,洛基/ api / v1 /推动
由分配器曝光。
例子
$ curl -v -H "Content-Type: application/json" -XPOST -s "http://localhost:3100/loki/api/v1/push"——data-raw \ '{"streams": [{"stream": {" foo": "bar2"}, "values": [["1570818238000000000", "fizzbuzz"]]}]}'
确认洛基实例
准备好/
/准备
当Loki实例准备好接受流量时返回HTTP 200。如果在Kubernetes上运行洛基/准备
可用作准备探针。
在微服务模式下/准备
端点由所有组件公开。
将内存块刷新到备份存储区
POST /冲刷
/平
触发将所有内存中由入口器持有的块刷新到后备存储区。主要用于局部测试。
在微服务模式下/平
端点由摄取器公开。
刷新内存块并关闭
POST /吸收/关闭
/吸收/关闭
触发摄取器的关闭,特别是将总是刷新它持有的所有in内存块。这有助于减少WAL-enabled的摄取器,因为我们希望确保旧的WAL目录不是孤立的,而是被刷新到我们的块后端。
它接受三个URL查询参数冲洗
,delete_ring_tokens
,终止
.
URL查询参数:
冲洗= < bool >
:控制是否刷新摄取器持有的内存块的标志。默认为真正的
.delete_ring_tokens = < bool >
:标志,用于控制是否删除包含实例的入器环令牌的文件-ingester.token-file-path
都是确定的。终止= < bool >
:控制服务关闭后是否终止Loki进程的标志。默认为真正的
.
此处理程序与已弃用的处理程序相反/吸收/ flush_shutdown
默认情况下终止Loki进程。属性可以更改此行为终止
查询参数到假
.
在微服务模式下/吸收/关闭
端点由摄取器公开。
显示分发服务器一致的散列环状态
获得/分销商/环
显示具有分发服务器散列环状态的web页面,包括每个分发服务器的状态、正常状态和最后一次心跳时间。
返回暴露的普罗米修斯度量
GET /指标
/指标
返回暴露的普罗米修斯度量。看到观察洛基获取导出指标的列表。
在微服务模式下/指标
端点由所有组件公开。
列出当前配置
GET /配置
/配置
公开当前配置。可选模式
查询参数可以修改输出。如果它有这个值diff
只返回默认配置和当前配置之间的差异。值为违约
返回默认配置。
在微服务模式下/配置
端点由所有组件公开。
列出正在运行的服务
GET /服务
/服务
返回所有正在运行的服务及其当前状态的列表。
服务可以有以下状态:
- 新:服务是新的,还没有运行(初始状态)
- 开始:服务正在启动;如果启动成功,则进入服务运行状态
- 运行:服务已完全运行;当服务停止运行时,它进入停止状态
- 停止:服务关闭
- 终止:服务已成功停止(终端状态)
- 失败的:服务失败开始,运行或停止状态(终端状态)
列出构建信息
得到洛基/ api / v1 /地位/ buildinfo
/洛基/ api / v1 /地位/ buildinfo
在JSON对象中公开构建信息。这些字段是版本
,修订
,分支
,buildDate
,buildUser
,goVersion
.
列表系列
该系列API可在以下网址获得:
GET /洛基/ api / v1 /系列
POST /洛基/ api / v1 /系列
GET / api /舞会系列
POST / api /舞会/系列
该端点返回与某个标签集匹配的时间序列列表。
URL查询参数:
匹配[]= < series_selector >
:重复的日志流选择器参数,选择要返回的流。至少一个匹配[]
参数必须提供。start=<纳秒Unix纪元>
:开始时间戳。结束=<纳秒Unix纪元>
结束时间戳。
您可以使用POST方法和直接在请求体中对这些参数进行url编码内容类型:应用程序/ x-www-form-urlencoded
头。当指定大量或动态数量的流选择器可能违反服务器端URL字符限制时,这非常有用。
在微服务模式中,这些端点由查询器公开。
例子
$ curl -s "http://localhost:3100/loki/api/v1/series"——data-urlencode 'match[]={container_name=~"prometheus. "*”、组件= "服务器"}”——data-urlencode '匹配[]= =“洛基”}{应用“|金桥”。{"status": "success", "data": [{"container_name": "loki", "app": "loki", "stream": "stderr", "filename": "/var/log/pods/default_loki-stack-0_50835643-1df0- 11ia -ba79-025000000001/loki/0.log", "name": "loki", "job": "default/loki", "controller_revision_hash": "loki-stack-757479754d", "statefulset_kubernetes_io_pod_name": "loki-stack-0", "release": "loki-stack", "namespace": "default", "instance": "loki-stack-0"}, {"chart": "prometheus-9.3.3", "container_name":“普罗米修斯-server-configmap-reload”,“文件名”:“/var/log/pods/default_loki-stack-普罗米修斯-server-696cc9ddff-87lmq_507b1db4-1df0-11ea-ba79-025000000001/普罗米修斯-server-696cc9ddff-87lmq”,“pod_template_hash”:“696cc9ddff”,“app”:“普罗米修斯”,“component”:“server”,“heritage”:“Tiller”,“job”:“default/普罗米修斯”,“namespace”:“default”,“release”:“loki-stack”,“stream”:“stderr”},{“app”:“prometheus”,“component”:“server”,“heritage”:“Tiller”,“job”:“default/prometheus”,“stderr”},{“app”:“prometheus”,“component”:“component”:“component”:“stream”:“stderr”:"server", "filename": "/var/log/pods/default_loki-stack-普罗米修斯-server-696cc9ddff-87lmq_507b1db4-1df0- 11mea -ba79-025000000001/普罗米修斯-server/0.log", "release": "loki-stack", "namespace": "default", "pod_template_hash": "696cc9ddff", "stream": "stderr", "chart": "普罗米修斯-9.3.3","container_name": "普罗米修斯-server", "heritage": "Tiller", "instance": "loki-stack-普罗米修斯-server-696cc9ddff-87lmq", "job": "default/普罗米修斯"}]}
索引统计数据
的洛基/ api / v1 /索引/统计数据
端点可用于查询索引的个数流
,块
,条目
,字节
查询解析到的。
URL查询参数:
查询
:LogQL要检查的匹配器(即{工作= " foo ", env != " dev "}
)start=<纳秒Unix纪元>
:开始时间戳。结束=<纳秒Unix纪元>
结束时间戳。
您可以使用POST方法和直接在请求体中对这些参数进行url编码内容类型:应用程序/ x-www-form-urlencoded
头。当指定大量或动态数量的流选择器可能违反服务器端URL字符限制时,这非常有用。
回应:
{"streams": 100, "chunks": 1000, "entries": 5000, "bytes": 100000,}
这是一个近似值,但有以下注意事项:
- 它不包括来自摄取者的数据
- 这是一种概率技术
- 跨多个周期配置的流/块可能被计数两次。
这使得它通常对较大的查询更有帮助。它可以用于更好地理解一段时间内匹配器列表的吞吐量需求和数据拓扑。
统计数据
查询端点,例如/ api /舞会/查询
,洛基/ api / v1 /查询
而且洛基/ api / v1 / query_range
返回一组关于查询执行的统计信息。这些统计数据允许用户了解处理的数据量和速度。
下面的示例显示了所有可能返回的统计信息及其各自的描述。
{"status": "success", "data": {"resultType": "streams", "result": [], "stats": {"ingester": {"compressedBytes": 0, // ingester压缩块(块)处理的字节总数"decompressedBytes": 0, // ingester解压处理的字节总数"decompressedLines": 0, //从ingester头部块中读取的字节总数"headChunkBytes": 0, //从ingester头部块中读取的行数总数" totalbatch ":0, //摄取者发送的批次总数"totalChunksMatched": 0, //摄取者匹配的块总数" totalduplcopies ": 0, //摄取者发现的重复的行数总数"totalLinesSent": 0, //摄取者发送的行数总数"totalReached": 0 //摄取者到达的数量。}, "store": {"compressedBytes": 0, // store处理的压缩块(块)的总字节数"decompressedBytes": 0, // store解压处理的总字节数"decompressedLines": 0, // store解压处理的总行数"chunksDownloadTime": 0, //下载块所花费的总时间,单位为秒(float)"totalChunksRef": 0, //在当前查询索引中找到的块总数" totalchunksdownloads ": 0, //下载的块总数" totalduplcopies ": 0 //从复制中删除的副本总数},"summary": {"bytesProcessedPerSecond": 0, //每秒处理的字节总数"execTime": 0, //总执行时间(以秒为单位)"linesProcessedPerSecond": 0, //每秒处理的行数总数"queueTime": 0, //以秒为单位的队列总时间(浮点数)"totalBytesProcessed":0, //此请求处理的总字节数"totalLinesProcessed":0 //此请求处理的总行数}}}}
统治者
标尺API端点需要配置一个后端对象存储来存储记录规则和警报。标尺API在创建规则组时使用“名称空间”的概念。这是Prometheus中规则文件名称的替身。规则组必须在命名空间内唯一命名。
尺环状态
获得/统治者/环
显示带有标尺哈希环状态的网页,包括每个标尺的状态、健康状态和最后一次心跳时间。
列出规则组
GET /洛基/ api / v1 /规则
列出为已验证的租户配置的所有规则。该端点返回一个YAML字典,其中包含每个名称空间和的所有规则组200
成功的状态码。
示例响应
——:—name: expr: for: annotations: - name: labels: : interval: rules:—alert: expr: for: annotations: : labels: : :—name: interval: rules:—alert: expr: for: annotations:: labels: :
按名称空间获取规则组
GET /洛基/ api / v1 /规则/{名称}
返回为给定名称空间定义的规则组。
示例响应
Name: interval: rules:—alert: expr: for: annotations: : labels: :
获取规则组
得到洛基/ api / v1 /规定/{名称空间}/ {groupName}
返回与请求名称空间和组名匹配的规则组。
设置规则组
POST /洛基/ api / v1 /规定/{名称}
创建或更新规则组。此端点期望使用内容类型:应用程序/ yaml
头文件和规则YAML请求体中的定义,并返回202
在成功。
示例请求
请求头信息:
内容类型:应用程序/ yaml
请求主体:
Name: interval: rules:—alert: expr: for: annotations: : labels: :
删除规则组
删除/洛基/ api / v1 /规定/{名称空间}/ {groupName}
根据名称空间和组名删除规则组。这个端点返回202
在成功。
删除名称空间
删除/洛基/ api / v1 /规则/{名称}
删除名称空间中的所有规则组(包括名称空间本身)。这个端点返回202
在成功。
规则列表
GET /普罗米修斯/ api / v1 /规则
与普罗米修斯兼容的规则端点列出当前加载的警报和记录规则。
有关更多信息,请参阅普罗米修斯规则文档。
警报列表
GET /普罗米修斯/ api / v1 /警报
与普罗米修斯兼容的规则端点列出所有活动警报。
欲了解更多信息,请查看普罗米修斯警报文档。
压实机
压实机环状态
压实机/环
显示具有压缩器散列环状态的网页,包括每个压缩器的状态、运行状况和最后一次心跳时间。
请求删除日志
POST /loki/api/v1/delete PUT /loki/api/v1/delete
为经过身份验证的租户创建一个新的删除请求。的日志条目删除文档中有配置详细信息。
支持删除日志条目只有当为索引存储区配置了BoltDB托运人时。
查询参数:
查询= < series_selector >
:查询参数,用于标识要使用可选行过滤器删除的流。开始=
:一个时间戳,用于标识将在其中删除条目的时间窗口的开始。必选参数。. txt 结束=
:一个时间戳,用于标识将在其中删除条目的时间窗口的结束。如果未指定,默认为当前时间。. txt max_interval = <时间>
:删除请求的最大时间范围。如果请求大于此值,则将其拆分为几个<=的请求max_interval
.有效时间单位为年代
,米
,h
.
204响应表示成功。
查询参数还可以包括筛选操作。例如查询={foo="bar"} |= "other"
将过滤掉包含字符串“其他”的流匹配流选择器的行{foo = "栏"}
.
例子
URL编码查询
参数。这个cURL命令URL编码的示例表单查询= {foo = "栏"}
:
curl -g -X POST \ 'http://127.0.0.1:3100/loki/api/v1/delete?查询= {foo =“酒吧”}开始= 1591616227,结束= 1591616227 '\ -H 'X-Scope-OrgID: 1'
Grafana Enterprise Logs的相同示例删除请求使用基本身份验证,并指定租户名称为用户;Tenant1
本例中的租户名称。本例中的密码是在API_TOKEN环境变量中定义的访问策略令牌。令牌必须用于访问策略日志:删除
user字段中指定租户的范围:
curl -u "Tenant1:$API_TOKEN" \ -g -X POST \ 'http://127.0.0.1:3100/loki/api/v1/delete?查询= {foo =“酒吧”}开始= 1591616227,结束= 1591616227 '
列出日志删除请求
得到洛基/ api / v1 /删除
列出已验证的租户的现有删除请求。的日志条目删除文档中有配置详细信息。
支持删除日志条目只有当为索引存储区配置了BoltDB托运人时。
使用以下API列出现有的删除请求:
得到洛基/ api / v1 /删除
此端点返回已处理和未处理的删除请求。它不会列出已取消的请求,因为这些请求已经从存储中删除了。
例子
使用实例cURL命令:
curl -X GET \ /loki/api/v1/delete \ -H 'X-Scope-OrgID: '
Grafana Enterprise Logs的相同示例删除请求使用基本身份验证,并指定租户名称为用户;Tenant1
本例中的租户名称。本例中的密码是在API_TOKEN环境变量中定义的访问策略令牌。令牌必须用于访问策略日志:删除
用户字段中指定的租户的范围。
curl -u "Tenant1:$API_TOKEN" \ -X GET \ /loki/api/v1/delete . txt \
请求取消删除请求
删除/洛基/ api / v1 /删除
为经过身份验证的租户删除删除请求。的日志条目删除文档中有配置详细信息。
Loki允许取消删除请求,直到取下请求进行处理。它是由delete_request_cancel_period
调用Loki时,YAML配置或等效的命令行选项。若要取消已拾取以进行处理或部分完成的删除请求,请传递力= true
查询参数到API。
支持删除日志条目只有当为索引存储区配置了BoltDB托运人时。
使用这个压缩器端点取消删除请求:
删除/洛基/ api / v1 /删除
查询参数:
request_id = < request_id >
:标识要取消的删除请求;属性来查找id删除
端点。力= <布尔>
:当力
查询参数为true,部分完成的删除请求将被取消。注意:请求中的某些数据仍可能被删除,被删除的请求将被列为“处理中”
204响应表示成功。
例子
使用实例cURL命令:
curl -X DELETE \ '/loki/api/v1/ DELETE ?request_id = < request_id >”\ -H 'X-Scope-OrgID: '
Grafana Enterprise Logs的相同示例删除取消请求使用基本身份验证,并指定租户名称为用户;Tenant1
本例中的租户名称。本例中的密码是在API_TOKEN环境变量中定义的访问策略令牌。令牌必须用于访问策略日志:删除
用户字段中指定的租户的范围。
curl -u "Tenant1:$API_TOKEN" \ -X DELETE \ '/loki/api/v1/ DELETE ?request_id = < request_id >”
弃用端点
GET / api /舞会/尾巴
弃用:
/ api /舞会/尾巴
弃用。使用洛基/ api / v1 /尾巴
代替。
/ api /舞会/尾巴
是一个WebSocket端点,它将基于查询流日志消息。它在URL中接受以下查询参数:
查询
:LogQL要执行的查询delay_for
:延迟检索日志的秒数,以便让慢的日志记录器赶上。默认值为0,不能大于5。限制
:要返回的最大条目数开始
:查询的开始时间,以纳秒为单位的Unix纪元。默认为一小时前。
微服务模式下,/ api /舞会/尾巴
由查询器公开。
响应(流):
{"streams": [{"labels": "","entries": [{"ts": "","line": "<日志行>"}]}],"dropped_entries": [{" timestamp ": "","labels": ""}]}
dropped_entries
当尾巴无法跟上洛基的流量时,就会被填充。当存在时,它表示在流中接收到的条目不是Loki中存在的全部日志量。注意,键在dropped_entries
将作为大写发送时间戳
而且标签
而不是标签
而且ts
就像在流的条目中。
当响应流化时,由上述响应格式定义的对象将通过WebSocket发送多次。
GET / api /舞会/查询
警告:
/ api /舞会/查询
弃用;使用洛基/ api / v1 / query_range
代替。
/ api /舞会/查询
支持常规查询。URL查询参数支持如下值:
查询
:LogQL要执行的查询限制
:要返回的最大条目数开始
:查询的开始时间,以纳秒为单位的Unix纪元。默认为一小时前。结束
:查询的结束时间,以纳秒为单位的Unix纪元。默认为现在。方向
:决定日志的排序顺序。支持的值为向前
或落后的
.默认为落后。
正则表达式
:用于过滤返回结果的正则表达式
微服务模式下,/ api /舞会/查询
由查询器和前端公开。
注意,时间跨度越大开始
而且结束
会对Loki和索引存储造成额外的负载,导致查询速度变慢。
回应:
{“流”:[{“标签”:“键值< LogQL标签>”,“条目”:[{“t”:“<字符串> RFC3339Nano”,“线”:“< >日志行"},…],},…, "stats": []}
看到统计数据获取洛基返回的统计信息。
例子
美元curl - g - s " http://localhost: 3100 / api /舞会/查询”——data-urlencode”查询= {foo =“酒吧”}' |金桥{“流”:[{“标签”:“{文件名= \“/ var / log / myproject.log \”,工作= \“varlogs \”,水平= \“info \”}”,“条目”:[{“t”:“2019 - 06 - 06 t19:25:41.972739z”,“线”:“foo”},{“t”:“2019 - 06 - 06 t19:25:41.972722z”,“线”:“酒吧 " } ] } ], " 统计”:{…}}
GET / api /舞会/标签/ <名称> /值
警告:
/ api /舞会/标签/ <名称> /值
弃用;使用洛基/ api / v1 /标签/ <名称> /值
/ api /舞会/标签/ <名称> /值
检索给定时间跨度内给定标签的已知值的列表。它在URL中接受以下查询参数:
开始
:查询的开始时间,以纳秒为单位的Unix纪元。默认为6小时前。结束
:查询的结束时间,以纳秒为单位的Unix纪元。默认为现在。
微服务模式下,/ api /舞会/标签/ <名称> /值
由查询器公开。
回应:
{"values":[<标签值>,…]]}
例子
$ curl -G -s "http://localhost:3100/api/prom/label/foo/values" | jq {"values":["猫","狗","蝾螈"]}
GET / api /舞会/标签
警告:
/ api /舞会/标签
弃用;使用洛基/ api / v1 /标签
/ api /舞会/标签
检索给定时间范围内已知标签的列表。它在URL中接受以下查询参数:
开始
:查询的开始时间,以纳秒为单位的Unix纪元。默认为6小时前。结束
:查询的结束时间,以纳秒为单位的Unix纪元。默认为现在。
微服务模式下,/ api /舞会/标签
由查询器公开。
回应:
{"values": [
例子
$ curl -G -s "http://localhost:3100/api/prom/label" | jq {"values": ["foo", "bar", "baz"]}
POST / api /舞会/推动
警告:
/ api /舞会/推动
弃用;使用洛基/ api / v1 /推动
代替。
/ api /舞会/推动
是用于向Loki发送日志条目的端点。POST正文的默认行为是一个snap -compressed protobuf消息:
或者,如果内容类型
头被设置为application / json
, JSON post正文可以以以下格式发送:
{"streams": [{"labels": "","entries": [{"ts": "", "line": "<日志行>"}]}]}
洛基可以配置为接受乱序写入.
微服务模式下,/ api /舞会/推动
由分配器曝光。
例子
$ curl - h " application / json - type: " -XPOST - s”https://localhost: 3100 / api /舞会/推”——data-raw \ '{“流”:[{“标签”:“{foo = \”栏\“}”,“条目”:[{“t”:“2018 - 12 - 18 - t08:28:06.801064内”,“线”:“fizzbuzz”}]}]}”
POST /吸收/ flush_shutdown
警告:
/吸收/ flush_shutdown
弃用;使用/摄取/关闭?冲洗= true
代替。
/吸收/ flush_shutdown
触发摄取器的关闭,特别是将总是刷新它持有的所有in内存块。这有助于减少WAL-enabled的摄取器,因为我们希望确保旧的WAL目录不是孤立的,而是被刷新到我们的块后端。
在微服务模式下/吸收/ flush_shutdown
端点由摄取器公开。
Loki相关资源
开始伐木和Grafana Loki (3 / 4)
加入本次网络研讨会,了解为什么在整个开发生命周期中相关的度量和日志是至关重要的,以及Loki如何帮助降低日志记录成本和操作开销。
洛基日志:基本配置设置
本次网络研讨会的重点是Grafana Loki配置,包括代理Promtail和Docker;洛基服务器;以及流行的后端洛基存储。
测井和Grafana的可观察性
了解如何使用Grafana和Grafana的日志应用程序Loki来利用、管理和可视化日志事件。