kv_store_monitor.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from datetime import datetime
  2. from resource.enums.region import Region
  3. from resource.service.FeiShuService import FeiShuService
  4. from resource.service.KVStoreService import KVStoreService
  5. kv_store_service = KVStoreService()
  6. fei_shu_service = FeiShuService()
  7. # fei_shu_spread_sheet_token = "XzQGsheQzhk74rtknKacClASnTc"
  8. # fei_shu_sheet_id = "25dce4"
  9. #
  10. # tenant_access_token = fei_shu_service.get_tenant_access_token("cli_a89702999f3c900b", "47ewnaxRqJAvHYdUR8idHgfzfeqAu0Pz")
  11. def main():
  12. all_instances = kv_store_service.get_all_instance(region=Region.HANG_ZHOU)
  13. for instance in all_instances:
  14. dt = datetime.now().strftime('%Y-%m-%d')
  15. instance_id = instance.instance_id # 实例ID
  16. instance_name = instance.instance_name # 实例名
  17. instance_status = instance.instance_status # 实例状态
  18. instance_type = instance.instance_type # 实例类型
  19. zone_id = instance.zone_id # 可用区ID
  20. architecture_type = instance.architecture_type # 架构类型
  21. engine_version = instance.engine_version # 兼容的Redis版本
  22. charge_type = instance.charge_type # 付费类型
  23. capacity = instance.capacity / 1024 # 容量
  24. values = [[dt, zone_id, instance_id, instance_name, instance_status, instance_type, architecture_type, engine_version, charge_type, capacity]]
  25. # fei_shu_service.spreadsheet_values_prepend(tenant_access_token, fei_shu_spread_sheet_token, f"{fei_shu_sheet_id}!A2:J2", values)
  26. instance_attribute = kv_store_service.describe_instance_attribute(instance_id, Region.HANG_ZHOU)
  27. storage = instance_attribute.storage
  28. availability_value = instance_attribute.availability_value
  29. print(f"{instance_id} --> {storage} --> {availability_value}")
  30. if __name__ == "__main__":
  31. main()