日志查询(实验功能)
::: warning 日志查询接口目前仍处于实验阶段,在未来的版本中可能会有所调整。 :::
GreptimeDB 提供了一个专门用于查询日志数据的 HTTP 接口。通过这个功能,你可以使用简单的查询界面来搜索和处理日志记录。这是对 GreptimeDB 现有功能(如 SQL 查询和 Flow 计算)的补充。你仍然可以像之前一样使用已有的工具和工作流程来查询日志数据。
接口地址
1. POST /v1/logs
请求头
- 认证
Content-Type:application/json
请求格式
请求体应为 JSON 格式(在实验阶段可能会随补丁版本有所变化)。关于最新的请求格式,请参考源代码实现:
响应格式
此接口的响应格式与 SQL 查询接口相同。详情请参阅 SQL 查询响应格式。
使用限制
- 最大结果数量:1000 条记录
- 仅支持包含时间戳和字符串列的表格
使用示例
以下示例展示了如何使用日志查询接口来查询日志数据(请注意,在实验性阶段这个例子可能会失效):
1. curl -X "POST" "http://localhost:4000/v1/logs" \
2. -H "Content-Type: application/json" \
3. -d $'
4. {
5. "table": {
6. "catalog_name": "greptime",
7. "schema_name": "public",
8. "table_name": "my_logs"
9. },
10. "time_filter": {
11. "start": "2025-01-23"
12. },
13. "limit": {
14. "fetch": 1
15. },
16. "columns": [
17. "message"
18. ],
19. "filters": [
20. {
21. "column_name": "message",
22. "filters": [
23. {
24. "Contains": "production"
25. }
26. ]
27. }
28. ],
29. "context": "None",
30. "exprs": []
31. }
32. '
在这个查询中,我们在 greptime.public.my_logs 表中搜索 message 字段包含 production 的日志记录。我们还设定了时间过滤条件,只获取 2025-01-23 当天的日志,并将结果限制为仅返回 1 条记录。
响应结果类似于以下内容:
1. {
2. "output": [
3. {
4. "records": {
5. "schema": {
6. "column_schemas": [
7. {
8. "name": "message",
9. "data_type": "String"
10. }
11. ]
12. },
13. "rows": [
14. [
15. "Everything is in production"
16. ]
17. ],
18. "total_rows": 1
19. }
20. }
21. ],
22. "execution_time_ms": 30
23. }
