/// <summary> /// DELETE请求总数 /// </summary> public static MonitorType TDSQL_delete_total(QCloudHelper q, string unInstanceId, Region c, DateTime startTime, DateTime endTime, Period p = Period.FiveMinute) { return(SimpleBaseMonitor(q, "qce/tdsql", "delete_total", "uuid", unInstanceId, c, startTime, endTime, p)); }
/// <summary> /// 内存占用 /// </summary> public static MonitorType CDB_memory_use(QCloudHelper q, string unInstanceId, Region c, DateTime startTime, DateTime endTime, Period p = Period.FiveMinute) { return(SimpleBaseMonitor(q, "qce/cdb", "memory_use", "uInstanceId", unInstanceId, c, startTime, endTime, p)); }
/// <summary> /// BINLOG磁盘可用大小 /// </summary> public static MonitorType TDSQL_binlog_disk_available(QCloudHelper q, string unInstanceId, Region c, DateTime startTime, DateTime endTime, Period p = Period.FiveMinute) { return(SimpleBaseMonitor(q, "qce/tdsql", "binlog_disk_available", "uuid", unInstanceId, c, startTime, endTime, p)); }
/// <summary> /// 请求 qce/cvm 的 外网入包量 /// wan_inpkg /// </summary> public static MonitorType CVM_wan_inpkg(QCloudHelper q, string unInstanceId, Region c, DateTime startTime, DateTime endTime, Period p = Period.FiveMinute) { return(CVM_TrafficConvert(SimpleBaseMonitor(q, "qce/cvm", "wan_inpkg", "unInstanceId", unInstanceId, c, startTime, endTime, p))); }
/// <summary> /// innodb写磁盘数量 /// </summary> public static MonitorType CDB_innodb_os_file_writes(QCloudHelper q, string unInstanceId, Region c, DateTime startTime, DateTime endTime, Period p = Period.FiveMinute) { return(SimpleBaseMonitor(q, "qce/cdb", "innodb_os_file_writes", "uInstanceId", unInstanceId, c, startTime, endTime, p)); }
/// <summary> /// 启动CVM /// </summary> /// <param name="q"></param> /// <param name="cvmList"></param> /// <param name="region"></param> /// <returns></returns> public static BaseCvmOperationReturnType StartCvm(QCloudHelper q, List <string> cvmList, Region region) { return(BaseCvmOperation(q, "StartInstances", cvmList, region)); }
/// <summary> /// 请求 qce/cvm 的 磁盘IO等待 /// disk_io_await /// </summary> public static MonitorType CVM_disk_io_await(QCloudHelper q, string unInstanceId, Region c, DateTime startTime, DateTime endTime, Period p = Period.FiveMinute) { return(SimpleBaseMonitor(q, "qce/cvm", "disk_io_await", "unInstanceId", unInstanceId, c, startTime, endTime, p)); }
/// <summary> /// 获取CVM列表 /// </summary> /// <param name="q"></param> /// <param name="r">区域 默认为上海区域(兼容以前程序)</param> /// <param name="cvmList">(过滤条件)按照一个或者多个实例ID过滤</param> /// <param name="lanIpsList">(过滤条件)按照一个或者多个实例的内网IP或公网IP(包括实例创建时自动分配的IP和弹性IP)过滤(此接口支持同时传入多个IP。此参数的具体格式可参考API简介的id.n一节)。</param> /// <param name="searchWord">(过滤条件)按照实例名称过滤,支持模糊查询。</param> /// <param name="status">(过滤条件)实例的状态,状态的列举见上。</param> /// <param name="projectId">(过滤条件)项目ID。</param> /// <param name="zoneId">(过滤条件)可用区ID。</param> /// <param name="offset">偏移量,默认为0</param> /// <param name="limit">返回数量默认 20,最大值 100</param> /// <returns></returns> public static CvmListReturnType GetCVMList( QCloudHelper q, Region r, List <string> zone = null, List <string> project_id = null, List <string> host_id = null, List <string> instance_id = null, List <string> instance_name = null, string instance_charge_type = null, List <string> private_ip_address = null, List <string> public_ip_address = null, int offset = 0, int limit = 20) { int filterCount = 1; var baseParams = new SortedDictionary <string, object>(StringComparer.Ordinal) { ["Version"] = "2017-03-12" }; // 按照可用区过滤。 if (zone != null && zone.Count > 0) { baseParams.Add($"Filters.{filterCount}.Name", "zone"); for (int i = 0; i < zone.Count; i++) { baseParams.Add($"Filters.{filterCount}.Values.{i}", zone[i]); } filterCount++; } // 按照项目ID过滤。 if (project_id != null && project_id.Count > 0) { baseParams.Add($"Filters.{filterCount}.Name", "project-id"); for (int i = 0; i < project_id.Count; i++) { baseParams.Add($"Filters.{filterCount}.Values.{i}", project_id[i]); } filterCount++; } // 按照CDH ID过滤。CDH ID形如:host-11112222。 if (host_id != null && host_id.Count > 0) { baseParams.Add($"Filters.{filterCount}.Name", "host-id"); for (int i = 0; i < host_id.Count; i++) { baseParams.Add($"Filters.{filterCount}.Values.{i}", host_id[i]); } filterCount++; } // 按照实例ID过滤。实例ID形如:ins-11112222。 if (instance_id != null && instance_id.Count > 0) { baseParams.Add($"Filters.{filterCount}.Name", "instance-id"); for (int i = 0; i < instance_id.Count; i++) { baseParams.Add($"Filters.{filterCount}.Values.{i}", instance_id[i]); } filterCount++; } // 按照实例名称过滤。 if (instance_name != null && instance_name.Count > 0) { baseParams.Add($"Filters.{filterCount}.Name", "instance-name"); for (int i = 0; i < instance_name.Count; i++) { baseParams.Add($"Filters.{filterCount}.Values.{i}", instance_name[i]); } filterCount++; } // 按照实例计费模式过滤。 if (!string.IsNullOrWhiteSpace(instance_charge_type)) { baseParams.Add($"Filters.{filterCount}.Name", "instance-charge-type"); baseParams.Add($"Filters.{filterCount}.Values.1", instance_charge_type); filterCount++; } // 按照实例主网卡的内网IP过滤。 if (private_ip_address != null && private_ip_address.Count > 0) { baseParams.Add($"Filters.{filterCount}.Name", "private-ip-address"); for (int i = 0; i < private_ip_address.Count; i++) { baseParams.Add($"Filters.{filterCount}.Values.{i}", private_ip_address[i]); } filterCount++; } // 按照实例主网卡的公网IP过滤,包含实例创建时自动分配的IP和实例创建后手动绑定的弹性IP。 if (public_ip_address != null && public_ip_address.Count > 0) { baseParams.Add($"Filters.{filterCount}.Name", "public-ip-address"); for (int i = 0; i < public_ip_address.Count; i++) { baseParams.Add($"Filters.{filterCount}.Values.{i}", public_ip_address[i]); } filterCount++; } var returnJson = q.RequestAPi("DescribeInstances", baseParams, APIUrl.Cvm, r); var d = JsonConvert.DeserializeObject <CvmListReturnType>(returnJson); return(d); }
/// <summary> /// 创建实例 (包年包月) /// </summary> /// <param name="q"></param> /// <param name="r"></param> /// <param name="cdbType">实例规格,支持固定规格和自定义规格/传 CUSTOM 代表自定义规格固定规格类型将会下线,推荐使用自定义规格</param> /// <param name="engineVersion">MySQL版本 默认5.5</param> /// <param name="period">实例时长,单位:月,最小值1,最大值为36</param> /// <param name="goodsNum">实例数量,默认值为1, 最小值1,最大值为10</param> /// <param name="vpcId">私有网络ID,如果不传则默认选择基础网络</param> /// <param name="subnetId">私有网络下的子网ID,如果设置了 vpcId,则 subnetId 必填</param> /// <param name="projectId">项目ID,不填为默认项目</param> /// <param name="memory">实例内存大小,单位:MB,当 cdbType 值为 CUSTOM 时, memory 为必填</param> /// <param name="volume">实例硬盘大小,单位:GB,当 cdbType 值为 CUSTOM 时, volume 为必填</param> /// <param name="zoneId">可用区ID,该参数缺省时,系统会自动选择一个可用区</param> /// <param name="port">自定义端口,端口支持范围:[ 1024-65535 ]</param> /// <param name="password">设置root帐号密码,密码规则:8-16个字符,至少包含字母、数字、字符(支持的字符:!@#$%^*())中的两种,购买主实例时可指定该参数,购买只读实例或者灾备实例时指定该参数无意义</param> /// <param name="instanceRole">实例类型,默认为 master,支持值包括:master-表示主实例,ro-表示只读实例</param> /// <param name="cdbInstanceId">实例ID,购买只读实例时必填,该字段表示只读实例的主实例ID,请使用查询实例列表接口查询云数据库实例ID</param> /// <param name="protectMode">数据复制方式,默认为0,支持值包括:0-表示异步复制,1-表示半同步复制,2-表示强同步复制</param> /// <param name="deployMode">多可用区域,默认为0,支持值包括:0-表示单可用区,1-表示多可用区</param> /// <param name="slaveZoneFirst">备库1的可用区ID,默认为zoneId的值</param> /// <param name="slaveZoneSecond">备库2的可用区ID,默认为0</param> /// <param name="paramList">其中paramList为修改实例的参数列表.其中 Key 为待修改参数的名,value 为待修改参数的值</param> /// <returns></returns> public static CDBDealReturnType CDBCreate( QCloudHelper q, Region r, string cdbType = "CUSTOM", string engineVersion = "5.5", int?period = null, int?goodsNum = null, string vpcId = null, string subnetId = null, int?projectId = null, int?memory = null, int?volume = null, int?zoneId = null, int?port = null, string password = null, string instanceRole = null, string cdbInstanceId = null, int protectMode = 0, int deployMode = 0, int?slaveZoneFirst = null, int slaveZoneSecond = 0, Dictionary <string, string> paramList = null ) { var baseParams = new SortedDictionary <string, object>(StringComparer.Ordinal) { { "cdbType", cdbType }, { "engineVersion", engineVersion } }; if (period != null) { baseParams.Add("period", period); } if (goodsNum != null) { baseParams.Add("goodsNum", goodsNum); } if (vpcId != null) { baseParams.Add("vpcId", vpcId); } if (subnetId != null) { baseParams.Add("subnetId", subnetId); } if (projectId != null) { baseParams.Add("projectId", projectId); } if (memory != null) { baseParams.Add("memory", memory); } if (volume != null) { baseParams.Add("volume", volume); } if (zoneId != null) { baseParams.Add("zoneId", zoneId); } if (port != null) { baseParams.Add("port", port); } if (password != null) { baseParams.Add("password", password); } if (instanceRole != null) { baseParams.Add("instanceRole", instanceRole); } if (cdbInstanceId != null) { baseParams.Add("cdbInstanceId", cdbInstanceId); } if (protectMode != 0) { baseParams.Add("protectMode", protectMode); } if (deployMode != 0) { baseParams.Add("deployMode", deployMode); } if (slaveZoneFirst != null) { baseParams.Add("slaveZoneFirst", slaveZoneFirst); } if (slaveZoneSecond != 0) { baseParams.Add("slaveZoneSecond", slaveZoneSecond); } if (paramList != null) { int count = 0; foreach (var paramListKey in paramList.Keys) { baseParams.Add($"paramList.{count}.name", paramListKey); baseParams.Add($"paramList.{count}.value", paramList[paramListKey]); } } var returnJson = q.RequestAPiAsync("RenewCdb", baseParams, APIUrl.Cdb, r); return(JsonConvert.DeserializeObject <CDBDealReturnType>(returnJson.Result)); }
/// <summary> /// 批量拉取多对象 /// </summary> /// <param name="q"></param> /// <param name="qCloudNamespace"></param> /// <param name="metricName"></param> /// <param name="dimensionsMulti"></param> /// <param name="c"></param> /// <param name="startTime"></param> /// <param name="endTime"></param> /// <param name="p"></param> /// <returns></returns> public static MultiMonitorType MultiBaseMonitor(QCloudHelper q, string qCloudNamespace, string metricName, List <Dictionary <string, string> > dimensionsMulti, Region c, DateTime startTime, DateTime endTime, Period p = Period.FiveMinute) { return(BaseMonitor(q, qCloudNamespace, metricName, null, c, startTime, endTime, p, true, dimensionsMulti)); }
/// <summary> /// /// </summary> public static MonitorType REDIS_(QCloudHelper q, string unInstanceId, Region c, DateTime startTime, DateTime endTime, Period p = Period.FiveMinute) { return(SimpleBaseMonitor(q, "qce/redis", "", "redis_uuid", unInstanceId, c, startTime, endTime, p)); }
/// <summary> /// Redis 实例获取 /// </summary> /// <param name="q"></param> /// <param name="limit">分页大小</param> /// <param name="offset">当前页码</param> /// <param name="redisId">实例Id</param> /// <param name="redisName">实例名称</param> /// <param name="orderBy">枚举范围redisId,projectId,createtime</param> /// <param name="orderType">1倒序,0顺序,默认倒序</param> /// <param name="vpcIds">历史原因,仍保留该参数,推荐使用下面参数unVpcIds。 私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络。</param> /// <param name="unVpcIds">私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络。请使用私有网络列表 查询返回的unVpcId为准,如:vpc-kd7d06of</param> /// <param name="subnetIds">历史原因,仍保留该参数,推荐使用下面参数unSubnetIds。私有网络下的子网ID数组,数组下标从0开始</param> /// <param name="unSubnetIds">子网ID数组,数组下标从0开始。 vpc子网下,取值以查询查询子网列表 返回的unSubnetId为准,如:subnet-3lzrkspo</param> /// <param name="projectIds">项目ID 组成的数组,数组下标从0开始</param> /// <returns></returns> public static RedisListRetrunType RedisInstanceList( QCloudHelper q, int limit, int offset, string redisId = null, string redisName = null, string orderBy = null, int?orderType = null, List <int?> vpcIds = null, List <int?> unVpcIds = null, List <int?> subnetIds = null, List <int?> unSubnetIds = null, List <int?> projectIds = null) { var baseParams = new SortedDictionary <string, object>(StringComparer.Ordinal) { { "offset", offset }, { "limit", limit } }; if (redisId != null) { baseParams.Add("redisId", redisId); } if (redisName != null) { baseParams.Add("redisName", redisName); } if (orderBy != null) { baseParams.Add("orderBy", orderBy); } if (orderType != null) { baseParams.Add("orderType", orderType); } if (vpcIds != null) { for (int i = 0; i < vpcIds.Count; i++) { baseParams.Add($"vpcIds.{i}", vpcIds[i]); } } if (unVpcIds != null) { for (int i = 0; i < unVpcIds.Count; i++) { baseParams.Add($"unVpcIds.{i}", unVpcIds[i]); } } if (subnetIds != null) { for (int i = 0; i < subnetIds.Count; i++) { baseParams.Add($"subnetIds.{i}", subnetIds[i]); } } if (unSubnetIds != null) { for (int i = 0; i < unSubnetIds.Count; i++) { baseParams.Add($"unSubnetIds.{i}", unSubnetIds[i]); } } if (projectIds != null) { for (int i = 0; i < projectIds.Count; i++) { baseParams.Add($"projectIds.{i}", projectIds[i]); } } var returnJson = q.RequestAPi("DescribeRedis", baseParams, APIUrl.Redis); return(JsonConvert.DeserializeObject <RedisListRetrunType>(returnJson)); }