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