ali_log.py 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. # -*- coding: utf-8 -*-
  2. from aliyun.log import LogClient, PutLogsRequest, LogItem, GetLogsRequest, IndexConfig
  3. import time
  4. import os
  5. accessKeyId = os.getenv("OSS_ACCESS_KEY_ID")
  6. accessKey = os.getenv("OSS_ACCESS_KEY_SECRET")
  7. endpoint = "cn-hangzhou.log.aliyuncs.com"
  8. client = LogClient(endpoint, accessKeyId, accessKey)
  9. project_name = "ai-test-7230"
  10. logstore_name = "test2-logstore"
  11. query = "*| select dev,id from " + logstore_name
  12. logstore_index = {'line': {
  13. 'token': [',', ' ', "'", '"', ';', '=', '(', ')', '[', ']', '{', '}', '?', '@', '&', '<', '>', '/', ':', '\n', '\t',
  14. '\r'], 'caseSensitive': False, 'chn': False}, 'keys': {'dev': {'type': 'text',
  15. 'token': [',', ' ', "'", '"', ';', '=',
  16. '(', ')', '[', ']', '{', '}',
  17. '?', '@', '&', '<', '>', '/',
  18. ':', '\n', '\t', '\r'],
  19. 'caseSensitive': False, 'alias': '',
  20. 'doc_value': True, 'chn': False},
  21. 'id': {'type': 'long', 'alias': '',
  22. 'doc_value': True}}, 'log_reduce': False,
  23. 'max_text_len': 2048}
  24. from_time = int(time.time()) - 3600
  25. to_time = time.time() + 3600
  26. def create_project():
  27. print("ready to create project %s" % project_name)
  28. client.create_project(project_name, project_des="")
  29. print("create project %s success " % project_name)
  30. time.sleep(60)
  31. def create_logstore():
  32. print("ready to create logstore %s" % logstore_name)
  33. client.create_logstore(project_name, logstore_name, ttl=3, shard_count=2)
  34. print("create logstore %s success " % project_name)
  35. time.sleep(30)
  36. def create_index():
  37. print("ready to create index for %s" % logstore_name)
  38. index_config = IndexConfig()
  39. index_config.from_json(logstore_index)
  40. client.create_index(project_name, logstore_name, index_config)
  41. print("create index for %s success " % logstore_name)
  42. time.sleep(60 * 2)
  43. def put_logs(msg: str):
  44. log_group = []
  45. log_item = LogItem()
  46. contents = [
  47. ('info', msg),
  48. ]
  49. log_item.set_contents(contents)
  50. log_group.append(log_item)
  51. request = PutLogsRequest(project_name, logstore_name, "", "", log_group, compress=False)
  52. client.put_logs(request)
  53. def get_logs():
  54. print("ready to query logs from logstore %s" % logstore_name)
  55. request = GetLogsRequest(project_name, logstore_name, from_time, to_time, query=query)
  56. response = client.get_logs(request)
  57. for log in response.get_logs():
  58. for k, v in log.contents.items():
  59. print("%s : %s" % (k, v))
  60. print("*********************")
  61. if __name__ == '__main__':
  62. put_logs("测试")