Skip to content

yaojialyu/sls

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

log service Python sdk

python sdk 是对所有log service提供的API的封装,通过该sdk,可以调用所有log service 开放的API: http://gitlab.alibaba-inc.com/sls/api_doc/

Code sample

#!/usr/bin/env python
#encoding: utf-8

import time

from aliyun.log.logexception import LogException
from aliyun.log.logitem import LogItem
from aliyun.log.logclient import LogClient
from aliyun.log.getlogsrequest import GetLogsRequest
from aliyun.log.putlogsrequest import PutLogsRequest
from aliyun.log.listtopicsrequest import ListTopicsRequest
from aliyun.log.listlogstoresrequest import ListLogstoresRequest
from aliyun.log.gethistogramsrequest import GetHistogramsRequest
from aliyun.log.index_config import *
from aliyun.log.logtail_config_detail import *
from aliyun.log.machine_group_detail import *

def sample_put_logs(client, project, logstore):
    topic = 'TestTopic_2'
    source = ''
    contents = [
        ('key_1', 'key_1'),
        ('avg', '30')
    ]
    logitemList = [] # LogItem list
    logItem = LogItem()
    logItem.set_time(int(time.time()))
    logItem.set_contents(contents)
    for i in range(0, 1) : 
        logitemList.append(logItem)
    request = PutLogsRequest(project, logstore, topic, source, logitemList)
    
    response = client.put_logs(request)
    response.log_print()

def sample_pull_logs(client, project, logstore) : 
    res = client.get_cursor(project, logstore, 0, (int)(time.time() - 60))
    res.log_print()
    cursor = res.get_cursor()

    res = client.pull_logs(project, logstore, 0, cursor, 1)
    res.log_print()


def sample_list_logstores(client, project):
    request = ListLogstoresRequest(project)
    response = client.list_logstores(request)
    response.log_print()
    

def sample_list_topics(client, project, logstore):
    request = ListTopicsRequest(project, logstore, "", 2)
    response = client.list_topics(request)
    response.log_print()


def sample_get_logs(client, project, logstore):
    topic = 'TestTopic_2'
    From = int(time.time())-3600
    To = int(time.time())
    request = GetLogsRequest(project, logstore, From, To, topic)
    response = client.get_logs(request)
    response.log_print()


def sample_get_histograms(client, project, logstore):
    topic = 'TestTopic_2'
    From = int(time.time())-3600
    To = int(time.time())
    request = GetHistogramsRequest(project, logstore, From, To, topic)
    response = client.get_histograms(request)
    response.log_print()


def sample_machine_group(client, project) :
    
    machine_group = MachineGroupDetail("test-group", "ip", ["127.0.0.1", "127.0.0.2"], "Armory", {"externalName" : "test-1", "groupTopic":"yyy"})

    res = client.create_machine_group(project, machine_group)
    res.log_print()
    
    res = client.list_machine_group(project)
    res.log_print()

    res = client.get_machine_group(project, "test-group")
    res.log_print()


    machine_group = MachineGroupDetail("test-group", "userdefined", ["127.0.0.1", "127.0.0.3"], "Armory", {"externalName" : "test-1", "groupTopic":"yyy"})
    res = client.update_machine_group(project, machine_group)
    res.log_print()

    res = client.get_machine_group(project, "test-group")
    res.log_print()

def sample_index(client, project, logstore) : 
    line_config = IndexLineConfig([" ", "\\t", "\\n", ","], False, ["key_1", "key_2"])

    key_config_list = {}
    key_config_list["key_1"] = IndexKeyConfig([",", "\t", ";"], True)

    index_detail = IndexConfig(7, line_config, key_config_list)
    
    res = client.create_index(project, logstore, index_detail)

    res.log_print()

    key_config_list = {}
    key_config_list["key_1"] = IndexKeyConfig([",", "\t", ";"], True)

    index_detail = IndexConfig(7, line_config, key_config_list)
    
    res = client.update_index(project, logstore, index_detail)

    res.log_print()

    res = client.get_index_config(project, logstore)
    res.log_print()


def sample_logtail_config(client, project, logstore) : 
    logtail_config = CommonRegLogConfigDetail("xxx_1-logtail", logstore, "http://cn-hangzhou-devcommon-intranet.sls.aliyuncs.com", "/apsara/xxx", "*.LOG", 
            "%Y-%m-%d %H:%M:%S", "xxx.*", "(.*)(.*)" , ["time", "value"])

    res = client.create_logtail_config(project, logtail_config)
    res.log_print()
    
    res = client.get_logtail_config(project, 'xxx_1-logtail')
    res.log_print()

    res = client.delete_logtail_config(project, "xxx_1-logtail")
    res.log_print()


def sample_apply_config(client, project):
    logtail_config = CommonRegLogConfigDetail("yyy_1-logtail", logstore, "http://cn-hangzhou-devcommon-intranet.sls.aliyuncs.com", "/apsara/xxx", "*.LOG", 
            "%Y-%m-%d %H:%M:%S", "xxx.*", "(.*)(.*)" , ["time", "value"])

    res = client.create_logtail_config(project, logtail_config)
    res = client.get_machine_group_applied_configs(project, "test-group")
    res.log_print()

    res = client.get_config_applied_machine_groups(project, "yyy_1-logtail")
    res.log_print()

    res = client.apply_config_to_machine_group(project, "yyy_1-logtail", "test-group")
    res.log_print()

    res = client.get_machine_group_applied_configs(project, "test-group")
    res.log_print()

    res = client.get_config_applied_machine_groups(project, "yyy_1-logtail")
    res.log_print()

    res = client.delete_logtail_config(project, "yyy_1-logtail")
    res.log_print()

def sample_logstore(client, project, logstore) : 
    res = client.create_logstore(project, logstore, 1, 1)
    res.log_print()

    res = client.list_logstore(project, logstore)
    res.log_print()
    
    res = client.delete_logstore(project, logstore)
    res.log_print()


if __name__=='__main__':
    endpoint = ''
    accessKeyId = ''
    accessKey = ''
    project = ''
    logstore = ''
    token = None

    client = LogClient(endpoint, accessKeyId, accessKey,token)

    sample_logstore(client, project, logstore) 

    res = client.create_logstore(project, logstore, 1, 1)
    time.sleep(0.1)

    try : 
        sample_list_logstores(client, project)
        sample_logtail_config(client, project, logstore) 
        sample_machine_group(client, project)
        sample_apply_config(client, project)
        sample_index(client, project, logstore)
        sample_list_topics(client, project, logstore)
        sample_put_logs(client, project, logstore)
        sample_pull_logs(client, project, logstore)
        sample_get_logs(client, project, logstore)
    except LogException, e:
        print e

    #client.delete_logstore(project, logstore)

About

aliyun sls python sdk

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published