get_log

调用CLI命令查询日志。该命令适用于获取指定数量日志数据的场景。

请求语法

aliyunlog log get_log --project=<value> --logstore=<value> --from_time=<value> --to_time=<value> [--topic=<value>] [--query=<value>] [--reverse=<value>] [--offset=<value>] [--size=<value>] [--power_sql=<value>] [--access-id=<value>] [--access-key=<value>] [--sts-token=<value>] [--region-endpoint=<value>] [--client-name=<value>] [--jmes-filter=<value>] [--format-output=<value>] [--decode-output=<value>] [--profile=<value>]

请求参数

该命令的必选和特有参数描述如下。

参数名称

数值类型

是否必选

示例值

描述

--project

String

aliyun-test-project

Project名称。

--logstore

String

logstore-a

Logstore名称。

--from_time

String

2021-05-28 15:33:00+8:00

开始时间,Unix时间戳格式或者“%Y-%m-%d %H:%M:%S<time_zone>” 格式,例如“2018-01-02 12:12:10+8:00”

--to_time

String

2021-05-28 15:40:00+8:00

结束时间,Unix时间戳格式或者“%Y-%m-%d %H:%M:%S<time_zone>” ,例如“2018-01-02 12:12:10+8:00”

--topic

String

""

日志主题。默认值为双引号("")。更多信息,请参见日志主题(Topic)

--query

String

level:Information|select event_id as Key1,COUNT(*) as Key2 group by Key1

查询语句或者分析语句。更多信息,请参见查询概述分析概述

在query参数的分析语句中加上set session parallel_sql=true;,表示使用SQL独享版。例如* | set session parallel_sql=true; select count(*) as pv

说明

query参数中有分析语句(SQL语句)时,size参数和offset参数需要设置为0,需通过SQL语句的LIMIT语法实现翻页。更多信息,请参见分析结果分页

--reverse

Boolean

true

用于指定返回结果是否按日志时间戳降序返回日志,精确到分钟级别。

  • true:按照日志时间戳降序返回日志。

  • false(默认值):按照日志时间戳升序返回日志。

重要
  • 当query参数为查询语句时,reverse参数有效,用于指定返回日志排序方式。

  • 当query参数为查询和分析语句时,reverse参数无效,由SQL分析语句中order by语法指定排序方式。如果order by为asc(默认),则为升序;如果order by为desc,则为降序。

--offset

Integer

0

仅当query参数为查询语句时,该参数有效,表示查询开始行。默认值为0。

--size

Integer

10

仅当query参数为查询语句时,该参数有效,表示请求返回的最大日志条数。最小值为0,最大值为100,默认值为100。

--power_sql

Boolean

false

是否使用SQL独享版。更多信息,请参见开启SQL独享版

  • true:使用SQL独享版。

  • false(默认值):使用SQL普通版。

除通过powerSql参数配置SQL独享版外,您还可以使用query参数指定。

关于该命令的全局参数,请参见全局参数

示例

  • 请求示例

    使用默认账号查询请求状态为POST的20条事件日志。命令示例如下:

    aliyunlog log get_log --project="aliyun-test-project" --logstore="logstore-a" --from_time="2021-05-28 15:33:00+8:00" --to_time="2021-05-28 15:40:00+8:00" --query="request_method:POST | select status,COUNT(*) as pv group by status order by pv desc limit 20" --format-output=json
  • 返回示例

    {
      "data": [
        {
          "__source__": "",
          "__time__": "1719382500",
          "pv": "17",
          "status": "200"
        },
        {
          "__source__": "",
          "__time__": "1719382500",
          "pv": "3",
          "status": "500"
        }
      ],
      "meta": {
        "aggQuery": "select status,COUNT(*) as pv group by status order by pv desc limit 20",
        "columnTypes": [
          "long",
          "long"
        ],
        "count": 2,
        "cpuSec": 0.025,
        "elapsedMillisecond": 0,
        "hasSQL": true,
        "insertedSQL": "1,29, from \"gs-api\" ",
        "isAccurate": true,
        "keys": [
          "status",
          "pv"
        ],
        "processedBytes": 226,
        "processedRows": 20,
        "progress": "Complete",
        "telementryType": "logging",
        "telemetryType": "logging",
        "terms": [
          {
            "key": "",
            "term": "*"
          }
        ],
        "whereQuery": "*"
      }
    }

更多参考

命令

使用场景

get_logs

使用JSON配置文件精确查询日志数据。

get_log_all

查询大批量日志数据。