from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from volcengine.tls.TLSService import TLSService
from volcengine.tls.tls_requests import *
if __name__ == "__main__":
# 初始化客户端时,推荐通过环境变量动态获取火山引擎密钥等身份认证信息,以免 AccessKey 硬编码引发数据安全风险。详细说明请参考 https://www.volcengine.com/docs/6470/1166455。
# 使用 STS 时,VOLCENGINE_ACCESS_KEY_ID 和 VOLCENGINE_ACCESS_KEY_SECRET 均使用临时访问密钥,且需设置 VOLCENGINE_TOKEN。
endpoint = os.environ["VOLCENGINE_ENDPOINT"]
region = os.environ["VOLCENGINE_REGION"]
access_key_id = os.environ["VOLCENGINE_ACCESS_KEY_ID"]
access_key_secret = os.environ["VOLCENGINE_ACCESS_KEY_SECRET"]
tls_service = TLSService(endpoint, access_key_id, access_key_secret, region)
create_project_request = CreateProjectRequest(project_name="project-name", region=region,
description="project-description")
create_project_response = tls_service.create_project(create_project_request)
project_id = create_project_response.project_id
create_topic_request = CreateTopicRequest(topic_name="topic-name", project_id=project_id,
ttl=3650, description="topic-description", shard_count=2)
create_topic_response = tls_service.create_topic(create_topic_request)
topic_id = create_topic_response.topic_id
full_text = FullTextInfo(case_sensitive=False, delimiter=",-;", include_chinese=False)
value_info_a = ValueInfo(value_type="text", delimiter="", case_sensitive=True,
include_chinese=False, sql_flag=False)
value_info_b = ValueInfo(value_type="long", delimiter="", case_sensitive=False,
include_chinese=False, sql_flag=True)
key_value_info_a = KeyValueInfo(key="key1", value=value_info_a)
key_value_info_b = KeyValueInfo(key="key2", value=value_info_b)
key_value = [key_value_info_a, key_value_info_b]
create_index_request = CreateIndexRequest(topic_id, full_text, key_value)
create_index_response = tls_service.create_index(create_index_request)
logs = PutLogsV2Logs(source="192.168.1.1", filename="sys.log")
logs.add_log(contents={"key1": "value1-" + str(i + 1), "key2": "value2-" + str(i + 1)},
log_time=int(round(time.time())))
tls_service.put_logs_v2(PutLogsV2Request(topic_id, logs))
describe_cursor_request = DescribeCursorRequest(topic_id, shard_id=0, from_time="begin")
describe_cursor_response = tls_service.describe_cursor(describe_cursor_request)
consume_logs_request = ConsumeLogsRequest(topic_id, shard_id=0, cursor=describe_cursor_response.cursor)
consume_logs_response = tls_service.consume_logs(consume_logs_request)
# 当您需要检索分析日志时,推荐您使用 Python SDK 提供的 search_logs_v2 方法,下面的代码提供了具体的调用示例。
search_logs_request = SearchLogsRequest(topic_id, query="error", limit=10,
start_time=1346457600000, end_time=1630454400000)
search_logs_response = tls_service.search_logs_v2(search_logs_request)
search_logs_request = SearchLogsRequest(topic_id, query="key1:error", limit=10,
start_time=1346457600000, end_time=1630454400000)
search_logs_response = tls_service.search_logs_v2(search_logs_request)
search_logs_request = SearchLogsRequest(topic_id, query="* | select key1, key2", limit=10,
start_time=1346457600000, end_time=1630454400000)
search_logs_response = tls_service.search_logs_v2(search_logs_request)
search_logs_request = SearchLogsRequest(topic_id, query="* | select key1, key2", limit=10,
start_time=1346457600000, end_time=1630454400000)
search_logs_response = tls_service.search_logs(search_logs_request)