Esempio n. 1
0
 /// <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));
 }
Esempio n. 2
0
 /// <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));
 }
Esempio n. 3
0
 /// <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));
 }
Esempio n. 4
0
 /// <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)));
 }
Esempio n. 5
0
 /// <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));
 }
Esempio n. 6
0
 /// <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));
 }
Esempio n. 7
0
 /// <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));
 }
Esempio n. 8
0
        /// <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);
        }
Esempio n. 9
0
        /// <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));
 }
Esempio n. 12
0
        /// <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));
        }