创建Logstore

使用CreateLogStore接口在指定的Project中创建一个LogStore,可以指定LogStore的名称、数据保存时间、Shard分区个数、Logstore类型等参数。

前提条件

您已完成以下操作:

参数说明

def create_logstore(self, project_name, logstore_name,
                    ttl=30,
                    shard_count=2,
                    enable_tracking=False,
                    append_meta=True,
                    auto_split=True,
                    max_split_shard=64,
                    preserve_storage=False,
                    encrypt_conf=None,
                    telemetry_type='',
                    hot_ttl=-1,
                    mode=None,
                    infrequent_access_ttl=-1):

请求参数

变量

类型

是否必填

说明

project_name

String

Project名称:项目(Project)是日志服务的资源管理单元,是进行多用户隔离与访问控制的主要边界。更多信息,请参见管理Project

logstore_name

String

Logstore名称Project中全局唯一,且创建后不可修改。

其命名规则如下:

  • 仅支持小写字母、数字、连字符(-)和下划线(_)。

  • 必须以小写字母开头,以小写字母和数字结尾。

  • 名称长度为3~63个字符。

ttl

int

数据保存时间,单位为天。取值范围:1~3650,如果配置为3650,表示永久保存。当设置的保存期限到达时,日志将被删除。

数据保存时间(ttl)是以下三部分时间的总和:

  • 热存储数据保存时间(hot_ttl

  • 低频存储数据保存时间(infrequent_access_ttl

  • 归档存储数据保存时间

shard_count

int

分区(Shard)数量。取值范围为1~10。更多信息,请参见Shard范围

enable_tracking

bool

是否启用WebTracking

  • True:开启WebTracking功能,则表示该Logstore开启互联网匿名写入权限,没有经过有效鉴权,可能产生脏数据。

  • False(默认值):关闭WebTracking

说明

WebTracking支持快速采集各种浏览器以及iOS/Android/APP的访问信息。更多信息,请参见使用Web Tracking采集日志

append_meta

bool

是否开启记录外网IP功能。

  • True:开启记录外网IP功能,开启后日志服务自动把以下信息添加到日志的Tag字段中。

    • __client_ip__:客户端外网IP。

    • __receive_time__:日志到达时间,格式为Unix时间戳。

  • False(默认值):不开启记录外网IP功能。

auto_split

bool

是否开启自动分裂Shard

max_split_shard

int

最大分裂数:开启自动分裂Shard后,最大可支持自动分裂至256个分区。当auto_split参数为True时必须设置。

重要

auto_splitTrue时必须指定。

encrypt_conf

dict

加密配置数据结构,包含参数enableencrypt_typeuser_cmk_info。更多信息,请参见EncryptConf数据加密

telemetry_type

String

可观测数据类型。取值包括:

  • None:日志数据。默认为日志数据。

  • Metrics:时序数据。此时只有以下参数生效:

    • logstore_name

    • ttl

    • shard_count

    • auto_split

    • max_split_shard

    • append_meta

重要

此参数创建后不可修改

hot_ttl

int

数据在Logstore热存储层中的存储时间,单位为天。最小为7,最大不能超过ttl的值,取值为-1代表保存时间ttl内全是热存储。

当数据的存储时间超过您所配置的热存储层数据保存时间后,数据将转为低频存储。关于热存储、低频存储、归档存储的概念和转换流程,请参见管理智能存储分层

  • 热存储数据至少需要保存7天才能转换为低频存储,低频存储至少需要保存30天才能转换为归档存储。

  • 热存储数据至少需要保存30天才能转换为归档存储。

mode

String

日志服务提供Standard(标准型)和Query(查询型)两种类型的Logstore。

  • standard(默认值):支持日志服务一站式数据分析功能,适用于实时监控、交互式分析以及构建完整的可观测性系统等场景。

  • query:支持高性能查询,索引流量费用约为Standard的一半,但不支持SELECT语句,适用于数据量大、存储周期长(周、月级别以上)或无日志分析的场景。

更多信息,请参见Logstore类型对比

infrequent_access_ttl

int

数据在Logstore低频存储层中的存储时间,单位:天。低频存储数据至少需要保存30天才能转换为归档存储。更多信息,请参见管理智能存储分层

返回参数

返回参数请参见:CreateLogStore - 创建LogStore

示例代码

from aliyun.log import LogClient
import os


# 本示例从环境变量中获取AccessKey ID和AccessKey Secret
access_key_id = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
access_key_secret = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')

# 日志服务的服务接入点
endpoint = "cn-hangzhou.log.aliyuncs.com"
# 创建日志服务Client
client = LogClient(endpoint, access_key_id, access_key_secret)

# Project名称
project_name = 'slsproject-1'
# Logstore名称
logstore_name = "logstore-1"


def main():
    # 创建LogStore
    res = client.create_logstore(project_name, logstore_name)
    res.log_print()


if __name__ == '__main__':
    main()

示例返回结果

CreateLogStoreResponse:
headers: {'Server': 'AliyunSLS', 'Content-Length': '0', 'Connection': 'keep-alive', 'Access-Control-Allow-Origin': '*', 'Date': 'Thu, 21 Nov 2024 08:20:24 GMT', 'x-log-time': '1732177224', 'x-log-requestid': '673EED4852EDC9797889****'}

Process finished with exit code 0

相关文档