Git Product home page Git Product logo

aliyun-log-python-sdk's People

Contributors

brucewu-fly avatar chaolee50 avatar crhan avatar crimson-gao avatar fanzhonghao avatar haoruilee avatar hhr66 avatar kunlunyijian avatar lichengseu avatar liketic avatar linrunqi08 avatar liyoudao6 avatar mayunlei avatar messense avatar neverafraid1 avatar panawala avatar razorsnow001 avatar shabicheng avatar songroger avatar suntingtao007 avatar tangkai1719 avatar vapao avatar wjo1212 avatar xuxiaoahang2018 avatar yonghua-sun avatar yuanqj avatar zhangtiantianx avatar zrz2233 avatar zzboy avatar zzxwill avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aliyun-log-python-sdk's Issues

cannot get logtail config for plug-in

e.g. add config for mysql, fail to get log tail config with below error:
{"errorCode": "InvalidInput", "errorMessage": "input json string missed necessary fields: input_type and/or logType", "requestId": ""}

fail to update logtailconfig via json file via CLI

>> aliyun log update_logtail_config --project_name=dlq-test-sls-project1 --config_detail="file://./test1.json" --client-name=beijing
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.6/bin/aliyun", line 11, in <module>
    sys.exit(main())
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/aliyunlogcli/cli_core.py", line 148, in main
    ret = getattr(client, method_name)(**args)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/aliyun/log/logclient.py", line 1205, in update_logtail_config
    resource = "/configs/" + config_detail.config_name
AttributeError: 'SeperatorFileConfigDetail' object has no attribute 'config_name'

QueuedLogHandler不支持twistd

/code/main.py文件:

def polling():
    reactor.callLater(5, polling)
    print 'polling...   '
    try:
        ''+1
    except:
        log.error("some error")


if __name__ == '__builtin__':
    reactor.callLater(0, polling) 
    application = service.Application('main')

启动命令:

cd /code && twistd --python=/code/main.py

OOM error when using consumer group to get large volume of logstore

consume large data, but got OOM error, logstore count > 50.

*** start to consume data...
No handlers could be found for logger "aliyun.log.consumer.tasks"
No handlers could be found for logger "aliyun.log.consumer.tasks"
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\aliyun\log\consumer\shard_worker.py", line
 56, in get_task_result
    return task_future.result()
  File "C:\Python27\lib\site-packages\concurrent\futures\_base.py", line 455, in
 result
    return self.__get_result()
  File "C:\Python27\lib\site-packages\concurrent\futures\thread.py", line 63, in
 run
    result = self.fn(*self.args, **self.kwargs)
  File "C:\Python27\lib\site-packages\aliyun\log\consumer\tasks.py", line 136, i
n consumer_fetch_task
    raise Exception(e1)
Exception
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\aliyun\log\consumer\shard_worker.py", line
 56, in get_task_result
    return task_future.result()
  File "C:\Python27\lib\site-packages\concurrent\futures\_base.py", line 455, in
 result
    return self.__get_result()
  File "C:\Python27\lib\site-packages\concurrent\futures\thread.py", line 63, in
 run
    result = self.fn(*self.args, **self.kwargs)
  File "C:\Python27\lib\site-packages\aliyun\log\consumer\tasks.py", line 136, i
n consumer_fetch_task
    raise Exception(e1)
Exception
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\aliyun\log\consumer\shard_worker.py", line
 56, in get_task_result
    return task_future.result()
  File "C:\Python27\lib\site-packages\concurrent\futures\_base.py", line 455, in
 result
    return self.__get_result()
  File "C:\Python27\lib\site-packages\concurrent\futures\thread.py", line 63, in
 run
    result = self.fn(*self.args, **self.kwargs)
  File "C:\Python27\lib\site-packages\aliyun\log\consumer\tasks.py", line 135, i
n consumer_fetch_task
    logger.error(e1, exc_info=True)
  File "C:\Python27\lib\logging\__init__.py", line 1193, in error
    self._log(ERROR, msg, args, **kwargs)
  File "C:\Python27\lib\logging\__init__.py", line 1285, in _log
    record = self.makeRecord(self.name, level, fn, lno, msg, args, exc_info, fun
c, extra)
  File "C:\Python27\lib\logging\__init__.py", line 1259, in makeRecord
    rv = LogRecord(name, level, fn, lno, msg, args, exc_info, func)
  File "C:\Python27\lib\logging\__init__.py", line 271, in __init__
    self.filename = os.path.basename(pathname)
  File "C:\Python27\lib\ntpath.py", line 208, in basename
    return split(p)[1]
  File "C:\Python27\lib\ntpath.py", line 188, in split
    while head2 and head2[-1] in '/\\':
MemoryError

用python SDK获取的日志数量不对

我用这个 脚本获取的 日志数量 很少 只有大概1分钟的数量,不管我怎么 选择 写
From = int(time.time())-86400
To = int(time.time())
函数 sample_get_logs
总是获得很少 日志数量,在web控制台上可以查到很多

when query contains new line with complex SQL, it might not return in get_log

e.g.

* |
            select ip,time, __time__ as sls_query_time,
                from_unixtime(MIN(to_unixtime(time))) AS min_data_time,
                to_unixtime(current_timestamp) as now,
                to_unixtime(current_timestamp) - MIN(to_unixtime(time)) as diff_time 
            group by ip,time, sls_query_time
            HAVING to_unixtime(current_timestamp) - MIN(to_unixtime(time)) > 90
            LIMIT 10000

Logging Handler支持特定格式识别: JSON

  1. 自动识别特定格式, 例如dict为JSON, KV等等
data = {'a':1, 'b': 2}
logger.error(data)

可以构建字段为a, b的域
问题1: 与现有冲突时, 处理策略是什么?
问题2: 将message索引构建为JSON的区别(更加灵活, 因为打log时, 格式是混合的)

其他情况:
2. KV格式, 例如字符串的, 自动提取Key

data = 'name=xiaoming home="nanjing"  score=12.5'
logger.info(data)

自动构建name, home, score字段, 能够识别双引号等

python2.6 support issue

  1. protobuf latest version doesn't support py2.6 any more, but we could use older version in setup.py
  2. other issue found:
Traceback (most recent call last):
  File "tests/sample.py", line 354, in <module>
    main()
  File "tests/sample.py", line 330, in main
    sample_pull_logs(client, project, logstore)
  File "tests/sample.py", line 53, in sample_pull_logs
    datetime.fromtimestamp(int(time.time() - 60)).strftime('%Y-%m-%d %H:%M:%S'))
  File "/home/travis/virtualenv/python2.6.9/lib/python2.6/site-packages/aliyun/log/logclient.py", line 566, in get_cursor
    params = {'type': 'cursor', 'from': str(start_time) if start_time in ("begin", "end") else parse_timestamp(start_time)}
  File "/home/travis/virtualenv/python2.6.9/lib/python2.6/site-packages/aliyun/log/util.py", line 215, in parse_timestamp
    return int((dt - datetime(1970, 1, 1)).total_seconds())
AttributeError: 'datetime.timedelta' object has no attribute 'total_seconds'

support copy logstore

def copy_logstore(from_client, from_project, from_logstore, to_logstore, to_project=None, to_client=None):
    """
    copy logstore, index, logtail config to target logstore, machine group are not included yet.
    the target logstore will be crated if not existing

    :type from_client: LogClient
    :param from_client: logclient instance

    :type from_project: string
    :param from_project: project name

    :type from_logstore: string
    :param from_logstore: logstore name

    :type to_logstore: string
    :param to_logstore: logstore name

    :type to_project: string
    :param to_project: project name, copy to same project if not being specified, will try to create it if not being specified

    :type to_client: LogClient
    :param to_client: logclient instance, use it to operate on the "to_project" if being specified

    :type apply_machine_group: bool
    :param apply_machine_group: if apply config to same machine group resources, False by default.

    :return:
    """

AttributeError: 'LogGroupList' object has no attribute 'LogGroups'

loggroup = res.get_loggroup_json_list()
File "/data/virtualpython/group_attr_analysis/lib/python2.7/site-packages/aliyun/log/pulllog_response.py", line 42, in get_loggroup_json_list
self._transfer_to_json()
File "/data/virtualpython/group_attr_analysis/lib/python2.7/site-packages/aliyun/log/pulllog_response.py", line 67, in _transfer_to_json
for logGroup in self.loggroup_list.LogGroups :
AttributeError: 'LogGroupList' object has no attribute 'LogGroups'

这个是什么原因导致的呢

Logging Handler支持特定格式识别: KV

same as #76

support KV:

    c1 = "i=c1, k1=v1,k2=v2 k3=v3"
    c2 = 'i=c2, k1=" v 1 ", k2="v 2" k3="~!@#=`;.>"'
    c3 = u'i=c3, k1=你好 k2=他们'.encode('utf8')
    c4 = u'i=c4, 姓名=小明 年龄=中文 '.encode('utf8')
    c5 = u'i=c5, 姓名="小明" 年龄="中文" '.encode('utf8')
    c6 = u'i=c6, 姓名=中文 年龄=中文'
    c7 = u'i=c7, 姓名="小明" 年龄=中文 '
    c8 = """i=c8, k1="hello
    world" k2="good
    morning"
    """
    c9 = "i=c9 k1:v1, k2=v2"

    data = [c1, c2, c3, c4, c5, c6, c7, c8, c9]

    for d in data:
        logger.info(d)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.