ITPub博客

首页 > 应用开发 > > 获取rds的cpu和内存使用情况

获取rds的cpu和内存使用情况

作者:hxl 时间:2019-07-16 05:29:37 0 删除 编辑

python版本:2.7.12

点击(此处)折叠或打开

  1. #!/usr/bin/env python
  2. #coding=utf-8

  3. import time
  4. import os, json, urllib, datetime, shutil
  5. from aliyunsdkcore.client import AcsClient
  6. from aliyunsdkcore.acs_exception.exceptions import ClientException
  7. from aliyunsdkcore.acs_exception.exceptions import ServerException
  8. from aliyunsdkrds.request.v20140815.DescribeDBInstancePerformanceRequest import DescribeDBInstancePerformanceRequest

  9. now_time = datetime.datetime.now()
  10. yes_time = now_time + datetime.timedelta(days = -1)
  11. key_item="MySQL_MemCpuUsage"
  12. logfilepath="/home/oralce/scripts/monitor_script/logdata/"
  13. instance_list=["1","2","3","4","5","6"]


  14. ##获取rds cpu数据并写入文件
  15. def get_cpudata(instance_id,logfile_name):
  16.         client = AcsClient('xxxxx','xxxxx','xxxxx')
  17.         request = DescribeDBInstancePerformanceRequest()
  18.         request.set_accept_format('json')
  19.         start_time = datetime.datetime.strftime(yes_time,'%Y-%m-%d') + 'T16:00Z'
  20.         end_time = datetime.datetime.strftime(now_time,'%Y-%m-%d') + 'T16:00Z'
  21.         request.set_StartTime(start_time)
  22.         request.set_EndTime(end_time)
  23.         ##获取cpu和内存数据
  24.         request.set_Key(key_item)
  25.         request.set_DBInstanceId(instance_id)
  26.         response = client.do_action_with_exception(request)
  27.         result=json.loads(response)

  28.         list = result['PerformanceKeys']['PerformanceKey'][0]['Values']['PerformanceValue'];
  29.         ##取最新一条数据
  30.         list_length=len(list)
  31.         last_row=list[list_length-1]
  32.         check_utc_date =last_row['Date']

  33.         ##utc时间转换北京时间
  34.         check_date=utc2local(datetime.datetime.strptime(check_utc_date, "%Y-%m-%dT%H:%M:%SZ"))
  35.         check_value = last_row['Value']

  36.         ##数据拼接
  37.         cpu_data=instance_id + '|' + datetime.datetime.strftime(check_date,'%Y-%m-%d %H:%M:%S') + '|' + check_value.replace("&","|")
  38.         
  39.         logfile=logfilepath + logfile_name
  40.         ##写入文件
  41.         with open(logfile, mode='a') as filename:
  42.                 filename.write(cpu_data)
  43.                 filename.write('\n')


  44. ##UTC时间转换成本地时间,参数为datetime类型
  45. def utc2local(utc_st):
  46.     now_stamp = time.time()
  47.     local_time = datetime.datetime.fromtimestamp(now_stamp)
  48.     utc_time = datetime.datetime.utcfromtimestamp(now_stamp)
  49.     offset = local_time - utc_time
  50.     local_st = utc_st + offset
  51.     return local_st


  52. if __name__ == '__main__':
  53.         for instance_id in instance_list:
  54.             ##1实例
  55.             if instance_id =="1" :
  56.                 logfile="1_cpu.log"
  57.             ##2实例
  58.             if instance_id =="2" :
  59.                 logfile="2_cpu.log"
  60.             ##3实例
  61.             if instance_id =="3" :
  62.                 logfile="3_cpu.log"
  63.             ##4实例
  64.             if instance_id =="4" :
  65.                 logfile="4_cpu.log"
  66.             ##5实例
  67.             if instance_id =="5" :
  68.                 logfile="5_cpu.log"
  69.             ##6实例
  70.             if instance_id =="6" :
  71.                 logfile="6_cpu.log"
  72.             
  73.             get_cpudata(instance_id,logfile)

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/77311/viewspace-3140428/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: cratedb备份和恢复
请登录后发表评论 登录
全部评论
  • 博文量
    29
  • 访问量
    528062