diff options
Diffstat (limited to 'data/zh_cn/das/2020-01-16/api-docs.php')
| -rw-r--r-- | data/zh_cn/das/2020-01-16/api-docs.php | 39404 |
1 files changed, 14551 insertions, 24853 deletions
diff --git a/data/zh_cn/das/2020-01-16/api-docs.php b/data/zh_cn/das/2020-01-16/api-docs.php index 4c03198..6de09a7 100644 --- a/data/zh_cn/das/2020-01-16/api-docs.php +++ b/data/zh_cn/das/2020-01-16/api-docs.php @@ -1,303 +1,162 @@ <?php return [ 'version' => '1.0', - 'info' => [ - 'style' => 'RPC', - 'product' => 'DAS', - 'version' => '2020-01-16', - ], + 'info' => ['style' => 'RPC', 'product' => 'DAS', 'version' => '2020-01-16'], 'directories' => [ [ - 'id' => 400976, - 'title' => '实例接入', + 'children' => ['AddHDMInstance'], 'type' => 'directory', - 'children' => [ - 'AddHDMInstance', - ], + 'title' => '实例接入', + 'id' => 446812, ], [ - 'id' => 400978, - 'title' => '巡检评分', + 'children' => ['GetInstanceInspections'], 'type' => 'directory', - 'children' => [ - 'GetInstanceInspections', - ], + 'title' => '巡检评分', + 'id' => 446813, ], [ - 'id' => 400980, - 'title' => '事件通知', + 'children' => ['SetEventSubscription', 'GetEventSubscription', 'GetAutonomousNotifyEventContent', 'GetAutonomousNotifyEventsInRange'], 'type' => 'directory', - 'children' => [ - 'SetEventSubscription', - 'GetEventSubscription', - 'GetAutonomousNotifyEventContent', - 'GetAutonomousNotifyEventsInRange', - ], + 'title' => '事件通知', + 'id' => 446814, ], [ - 'id' => 400985, - 'title' => '诊断报告', + 'children' => ['CreateDiagnosticReport', 'DescribeDiagnosticReportList', 'GetDBInstanceConnectivityDiagnosis'], 'type' => 'directory', - 'children' => [ - 'CreateDiagnosticReport', - 'DescribeDiagnosticReportList', - 'GetDBInstanceConnectivityDiagnosis', - ], + 'title' => '诊断报告', + 'id' => 446815, ], [ - 'id' => 400989, - 'title' => '缓存分析', + 'children' => ['CreateCacheAnalysisJob', 'DescribeCacheAnalysisJob', 'DescribeCacheAnalysisJobs'], 'type' => 'directory', - 'children' => [ - 'CreateCacheAnalysisJob', - 'DescribeCacheAnalysisJob', - 'DescribeCacheAnalysisJobs', - ], + 'title' => '缓存分析', + 'id' => 446817, ], [ - 'id' => 400993, - 'title' => 'SQL限流', + 'children' => ['EnableSqlConcurrencyControl', 'DisableSqlConcurrencyControl', 'DisableAllSqlConcurrencyControlRules', 'GetRunningSqlConcurrencyControlRules', 'GetSqlConcurrencyControlRulesHistory', 'GetSqlConcurrencyControlKeywordsFromSqlText'], 'type' => 'directory', - 'children' => [ - 'EnableSqlConcurrencyControl', - 'DisableSqlConcurrencyControl', - 'DisableAllSqlConcurrencyControlRules', - 'GetRunningSqlConcurrencyControlRules', - 'GetSqlConcurrencyControlRulesHistory', - 'GetSqlConcurrencyControlKeywordsFromSqlText', - ], + 'title' => 'SQL限流', + 'id' => 446818, ], [ - 'id' => 401000, - 'title' => 'SQL诊断', + 'children' => ['CreateRequestDiagnosis', 'GetRequestDiagnosisResult', 'GetRequestDiagnosisPage', 'DescribeQueryExplain'], 'type' => 'directory', - 'children' => [ - 'CreateRequestDiagnosis', - 'GetRequestDiagnosisResult', - 'GetRequestDiagnosisPage', - 'DescribeQueryExplain', - ], + 'title' => 'SQL诊断', + 'id' => 446819, ], [ - 'id' => 401005, - 'title' => 'Key分析', + 'children' => ['DescribeHotBigKeys', 'DescribeTopHotKeys', 'DescribeTopBigKeys', 'DescribeHotKeys'], 'type' => 'directory', - 'children' => [ - 'DescribeHotBigKeys', - 'DescribeTopHotKeys', - 'DescribeTopBigKeys', - 'DescribeHotKeys', - ], + 'title' => 'Key分析', + 'id' => 446820, ], [ - 'id' => 401010, - 'title' => '查询治理', + 'children' => ['CreateQueryOptimizeTag', 'GetQueryOptimizeExecErrorStats', 'GetQueryOptimizeExecErrorSample', 'GetQueryOptimizeSolution', 'GetQueryOptimizeRuleList', 'GetQueryOptimizeDataTrend', 'GetQueryOptimizeDataTop', 'GetQueryOptimizeDataStats', 'GetQueryOptimizeTag', 'GetQueryOptimizeShareUrl'], 'type' => 'directory', - 'children' => [ - 'CreateQueryOptimizeTag', - 'GetQueryOptimizeExecErrorStats', - 'GetQueryOptimizeExecErrorSample', - 'GetQueryOptimizeSolution', - 'GetQueryOptimizeRuleList', - 'GetQueryOptimizeDataTrend', - 'GetQueryOptimizeDataTop', - 'GetQueryOptimizeDataStats', - 'GetQueryOptimizeTag', - 'GetQueryOptimizeShareUrl', - ], + 'title' => '查询治理', + 'id' => 446821, ], [ - 'id' => 401021, - 'title' => 'SQL洞察', + 'children' => ['GetErrorRequestSample', 'GetAsyncErrorRequestStatResult', 'GetAsyncErrorRequestListByCode', 'GetAsyncErrorRequestStatByCode', 'GetFullRequestOriginStatByInstanceId', 'GetFullRequestStatResultByInstanceId', 'GetFullRequestSampleByInstanceId'], 'type' => 'directory', - 'children' => [ - 'GetErrorRequestSample', - 'GetAsyncErrorRequestStatResult', - 'GetAsyncErrorRequestListByCode', - 'GetAsyncErrorRequestStatByCode', - 'GetFullRequestOriginStatByInstanceId', - 'GetFullRequestStatResultByInstanceId', - 'GetFullRequestSampleByInstanceId', - ], + 'title' => 'SQL洞察', + 'id' => 446822, ], [ - 'id' => 401029, - 'title' => '企业版管理', + 'children' => ['DescribeSqlLogConfig', 'ModifySqlLogConfig', 'DescribeSqlLogStatistic', 'GetDasSQLLogHotData', 'CreateSqlLogTask', 'DescribeSqlLogTask', 'DescribeSqlLogTasks'], 'type' => 'directory', - 'children' => [ - 'DescribeSqlLogConfig', - 'ModifySqlLogConfig', - 'DescribeSqlLogStatistic', - 'GetDasSQLLogHotData', - 'CreateSqlLogTask', - 'DescribeSqlLogTask', - 'DescribeSqlLogTasks', - ], + 'title' => '企业版管理', + 'id' => 446823, ], [ - 'id' => 401037, - 'title' => '实例会话', + 'children' => ['GetRedisAllSession', 'GetMongoDBCurrentOp', 'KillInstanceAllSession', 'CreateKillInstanceSessionTask', 'GetKillInstanceSessionTaskResult', 'GetMySQLAllSessionAsync'], 'type' => 'directory', - 'children' => [ - 'GetRedisAllSession', - 'GetMongoDBCurrentOp', - 'KillInstanceAllSession', - 'CreateKillInstanceSessionTask', - 'GetKillInstanceSessionTaskResult', - 'GetMySQLAllSessionAsync', - ], + 'title' => '实例会话', + 'id' => 446824, ], [ - 'id' => 401044, - 'title' => '空间分析', + 'children' => ['CreateStorageAnalysisTask', 'GetStorageAnalysisResult', 'GetAutoIncrementUsageStatistic'], 'type' => 'directory', - 'children' => [ - 'CreateStorageAnalysisTask', - 'GetStorageAnalysisResult', - 'GetAutoIncrementUsageStatistic', - ], + 'title' => '空间分析', + 'id' => 446825, ], [ - 'id' => 401048, - 'title' => '锁优化', + 'children' => ['GetDeadLockDetailList', 'GetBlockingDetailList', 'CreateLatestDeadLockAnalysis', 'GetDeadLockHistory', 'GetDeadLockDetail', 'GetDeadlockHistogram'], 'type' => 'directory', - 'children' => [ - 'GetDeadLockDetailList', - 'GetBlockingDetailList', - 'CreateLatestDeadLockAnalysis', - 'GetDeadLockHistory', - 'GetDeadLockDetail', - 'GetDeadlockHistogram', - ], + 'title' => '锁优化', + 'id' => 446826, ], [ - 'id' => 401055, - 'title' => '索引诊断', + 'children' => ['GetInstanceMissingIndexList'], 'type' => 'directory', - 'children' => [ - 'GetInstanceMissingIndexList', - ], + 'title' => '索引诊断', + 'id' => 446827, ], [ - 'id' => 401057, - 'title' => '慢日志', + 'children' => ['DescribeSlowLogHistogramAsync', 'DescribeSlowLogStatistic', 'DescribeSlowLogRecords'], 'type' => 'directory', - 'children' => [ - 'DescribeSlowLogHistogramAsync', - 'DescribeSlowLogStatistic', - 'DescribeSlowLogRecords', - ], + 'title' => '慢日志', + 'id' => 446828, ], [ - 'id' => 401061, - 'title' => '自动SQL限流', + 'children' => ['UpdateAutoThrottleRulesAsync', 'DisableAutoThrottleRules', 'GetAutoThrottleRules'], 'type' => 'directory', - 'children' => [ - 'UpdateAutoThrottleRulesAsync', - 'DisableAutoThrottleRules', - 'GetAutoThrottleRules', - ], + 'title' => '自动SQL限流', + 'id' => 446830, ], [ - 'id' => 401065, - 'title' => '自动SQL优化', + 'children' => ['UpdateAutoSqlOptimizeStatus', 'GetSqlOptimizeAdvice', 'GetInstanceSqlOptimizeStatistic'], 'type' => 'directory', - 'children' => [ - 'UpdateAutoSqlOptimizeStatus', - 'GetSqlOptimizeAdvice', - 'GetInstanceSqlOptimizeStatistic', - ], + 'title' => '自动SQL优化', + 'id' => 446831, ], [ - 'id' => 401069, - 'title' => '自动空间优化', + 'children' => ['UpdateAutoResourceOptimizeRulesAsync', 'DisableAutoResourceOptimizeRules', 'GetAutoResourceOptimizeRules'], 'type' => 'directory', - 'children' => [ - 'UpdateAutoResourceOptimizeRulesAsync', - 'DisableAutoResourceOptimizeRules', - 'GetAutoResourceOptimizeRules', - ], + 'title' => '自动空间优化', + 'id' => 446832, ], [ - 'id' => 401073, - 'title' => '自动弹性伸缩', + 'children' => ['ModifyAutoScalingConfig', 'DescribeAutoScalingConfig', 'DescribeAutoScalingHistory', 'DisableInstanceDasConfig'], 'type' => 'directory', - 'children' => [ - 'ModifyAutoScalingConfig', - 'DescribeAutoScalingConfig', - 'DescribeAutoScalingHistory', - 'DisableInstanceDasConfig', - ], + 'title' => '自动弹性伸缩', + 'id' => 446833, ], [ - 'id' => 401078, - 'title' => '分区热力图', + 'children' => ['GetPartitionsHeatmap'], 'type' => 'directory', - 'children' => [ - 'GetPartitionsHeatmap', - ], + 'title' => '分区热力图', + 'id' => 446834, ], [ - 'id' => 401080, - 'title' => '性能洞察(新版)', + 'children' => ['GetPfsSqlSample', 'GetPfsMetricTrends', 'GetPfsSqlSummaries'], 'type' => 'directory', - 'children' => [ - 'GetPfsSqlSample', - 'GetPfsMetricTrends', - 'GetPfsSqlSummaries', - ], + 'title' => '性能洞察(新版)', + 'id' => 446835, ], [ - 'id' => 401084, - 'title' => '错误日志', + 'children' => ['DescribeErrorLogRecords'], 'type' => 'directory', - 'children' => [ - 'DescribeErrorLogRecords', - ], + 'title' => '错误日志', + 'id' => 446836, ], [ - 'id' => 401086, - 'title' => 'DAS Agent', + 'children' => ['Chat', 'GetInstanceGroupInspectReportList', 'GetInstanceGroupInspectReportDetail'], 'type' => 'directory', - 'children' => [ - 'GetDasAgentSSE', - 'GetInstanceGroupInspectReportList', - 'GetInstanceGroupInspectReportDetail', - ], + 'title' => 'DAS Agent', + 'id' => 446837, ], [ - 'id' => 401090, - 'title' => '跨产品白名单', + 'children' => ['CreateSecurityIPGroup', 'DescribeSecurityIPGroup', 'DescribeSecurityIPGroupRelation', 'ModifySecurityIPGroup', 'ModifySecurityIPGroupRelation', 'DeleteSecurityIPGroup'], 'type' => 'directory', - 'children' => [ - 'CreateSecurityIPGroup', - 'DescribeSecurityIPGroup', - 'DescribeSecurityIPGroupRelation', - 'ModifySecurityIPGroup', - 'ModifySecurityIPGroupRelation', - 'DeleteSecurityIPGroup', - ], + 'title' => '跨产品白名单', + 'id' => 446838, ], [ - 'id' => 401097, - 'title' => '其他', + 'children' => ['GetDasAgentSSE', 'GetHDMAliyunResourceSyncResult', 'DescribeSqlLogRecords', 'EnableDasPro', 'DisableDasPro', 'DescribeInstanceDasPro', 'GetDasProServiceUsage', 'RunCloudBenchTask', 'DescribeCloudbenchTask', 'DescribeCloudBenchTasks', 'CreateCloudBenchTasks', 'DescribeCloudbenchTaskConfig', 'DeleteCloudBenchTask', 'DeleteStopGateway', 'GetYaoChiAgent', 'DescribeAuditLogs'], 'type' => 'directory', - 'children' => [ - 'GetHDMAliyunResourceSyncResult', - 'GetEndpointSwitchTask', - 'GetHDMLastAliyunResourceSyncResult', - 'DescribeSqlLogRecords', - 'EnableDasPro', - 'DisableDasPro', - 'DescribeInstanceDasPro', - 'GetDasProServiceUsage', - 'RunCloudBenchTask', - 'DescribeCloudbenchTask', - 'DescribeCloudBenchTasks', - 'CreateCloudBenchTasks', - 'DescribeCloudbenchTaskConfig', - 'DeleteCloudBenchTask', - 'DeleteStopGateway', - ], + 'title' => '其他', + 'id' => 446839, ], ], 'components' => [ @@ -306,14 +165,8 @@ 'apis' => [ 'AddHDMInstance' => [ 'summary' => '调用AddHDMInstance接口,将数据库实例接入DAS。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -321,155 +174,88 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => '__context', 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ 'name' => 'InstanceArea', 'in' => 'query', - 'schema' => [ - 'description' => '实例所属的数据库产品,取值:'."\n" - ."\n" - .'- **RDS**:云实例。'."\n" - .'- **ECS**:ECS自建实例。'."\n" - .'- **IDC**:非公有云自建实例。'."\n" - ."\n" - .'> IDC为用户数据中心。', - 'type' => 'string', - 'required' => true, - 'example' => 'ECS', - ], + 'schema' => ['description' => '实例所属的数据库产品,取值:'."\n" + ."\n" + .'- **RDS**:云实例。'."\n" + .'- **ECS**:ECS自建实例。'."\n" + .'- **IDC**:非公有云自建实例。'."\n" + ."\n" + .'> IDC为用户数据中心。', 'type' => 'string', 'required' => true, 'example' => 'ECS'], ], [ 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'rm-2ze1jdv45i7l6****', - ], + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => false, 'example' => 'rm-2ze1jdv45i7l6****'], ], [ 'name' => 'Ip', 'in' => 'query', - 'schema' => [ - 'description' => '待接入实例的内网连接地址。', - 'type' => 'string', - 'required' => false, - 'example' => 'rm-2ze1jdv45i7l6****.mysql.rds.aliyuncs.com', - ], + 'schema' => ['description' => '待接入实例的内网连接地址。', 'type' => 'string', 'required' => false, 'example' => 'rm-2ze1jdv45i7l6****.mysql.rds.aliyuncs.com'], ], [ 'name' => 'Port', 'in' => 'query', - 'schema' => [ - 'description' => '实例的内网连接端口。', - 'type' => 'string', - 'required' => false, - 'example' => '3306', - ], + 'schema' => ['description' => '实例的内网连接端口。', 'type' => 'string', 'required' => false, 'example' => '3306'], ], [ 'name' => 'Engine', 'in' => 'query', - 'schema' => [ - 'description' => '数据库引擎,取值:'."\n" - ."\n" - .'- **MySQL**'."\n" - .'- **PostgreSQL**'."\n" - .'- **SQLServer**'."\n" - .'- **PolarDBMySQL**'."\n" - .'- **PolarDBPostgreSQL**'."\n" - .'- **Redis**'."\n" - .'- **MongoDB**'."\n" - .'- **PolarDBOracle**'."\n" - .'- **PolarDBX**', - 'type' => 'string', - 'required' => false, - 'example' => 'MySQL', - ], + 'schema' => ['description' => '数据库引擎,取值:'."\n" + ."\n" + .'- **MySQL**'."\n" + .'- **PostgreSQL**'."\n" + .'- **SQLServer**'."\n" + .'- **PolarDBMySQL**'."\n" + .'- **PolarDBPostgreSQL**'."\n" + .'- **Redis**'."\n" + .'- **MongoDB**'."\n" + .'- **PolarDBOracle**'."\n" + .'- **PolarDBX**', 'type' => 'string', 'required' => false, 'example' => 'MySQL'], ], [ 'name' => 'Username', 'in' => 'query', - 'schema' => [ - 'description' => '用户名。', - 'type' => 'string', - 'required' => false, - 'example' => 'test****', - ], + 'schema' => ['description' => '用户名。', 'type' => 'string', 'required' => false, 'example' => 'test****'], ], [ 'name' => 'Password', 'in' => 'query', - 'schema' => [ - 'description' => '用户名的密码。', - 'type' => 'string', - 'required' => false, - 'example' => '122****', - ], + 'schema' => ['description' => '用户名的密码。', 'type' => 'string', 'required' => false, 'example' => '122****'], ], [ 'name' => 'InstanceAlias', 'in' => 'query', - 'schema' => [ - 'description' => '实例名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'yuecq--test****', - ], + 'schema' => ['description' => '实例名称。', 'type' => 'string', 'required' => false, 'example' => 'yuecq--test****'], ], [ 'name' => 'NetworkType', 'in' => 'query', - 'schema' => [ - 'description' => '实例的网络类型。', - 'type' => 'string', - 'required' => false, - 'example' => 'VPC', - ], + 'schema' => ['description' => '实例的网络类型。', 'type' => 'string', 'required' => false, 'example' => 'VPC'], ], [ 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'VPC ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-m5e666n89m2bx8jar****', - ], + 'schema' => ['description' => 'VPC ID。', 'type' => 'string', 'required' => false, 'example' => 'vpc-m5e666n89m2bx8jar****'], ], [ 'name' => 'Region', 'in' => 'query', - 'schema' => [ - 'description' => '实例所属的地域。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '实例所属的地域。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], [ 'name' => 'FlushAccount', 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], ], 'responses' => [ @@ -477,119 +263,43 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Synchro' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', - ], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Synchro' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], 'Data' => [ 'description' => '详细信息列表,包括信息总数、错误码等。', 'type' => 'object', 'properties' => [ - 'VpcId' => [ - 'description' => 'VPC ID。', - 'type' => 'string', - 'example' => 'vpc-m5e666n89m2bx8jar****', - ], - 'Token' => [ - 'description' => '客户端token(即自定义的唯一随机字符串)。', - 'type' => 'string', - 'example' => 'tokenID', - ], - 'Ip' => [ - 'description' => '实例的IP连接地址。', - 'type' => 'string', - 'example' => 'rm-de21209****.mysql.rds.aliyuncs.com', - ], - 'CallerUid' => [ - 'description' => '调用者用户ID。', - 'type' => 'string', - 'example' => '31063db679****', - ], - 'InstanceId' => [ - 'description' => '实例的ID。', - 'type' => 'string', - 'example' => 'rm-2ze1jdv45i7l6****', - ], - 'Port' => [ - 'description' => '目标实例的端口。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3306', - ], - 'OwnerId' => [ - 'description' => '所有者ID。', - 'type' => 'string', - 'example' => '325352345', - ], - 'Uuid' => [ - 'description' => '实例的唯一标识符号。', - 'type' => 'string', - 'example' => 'hdm_3063db6792965c080a4bcb6e6304****', - ], - 'Error' => [ - 'description' => '错误消息。', - 'type' => 'string', - 'example' => 'InvalidRequestURL', - ], - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'Role' => [ - 'description' => '角色信息。', - 'type' => 'string', - 'example' => 'master', - ], - 'TenantId' => [ - 'description' => '所属的租户ID。', - 'type' => 'string', - 'example' => 'L0EPfLS****=SCE00000*****', - ], + 'VpcId' => ['description' => 'VPC ID。', 'type' => 'string', 'example' => 'vpc-m5e666n89m2bx8jar****'], + 'Token' => ['description' => '客户端token(即自定义的唯一随机字符串)。', 'type' => 'string', 'example' => 'tokenID'], + 'Ip' => ['description' => '实例的IP连接地址。', 'type' => 'string', 'example' => 'rm-de21209****.mysql.rds.aliyuncs.com'], + 'CallerUid' => ['description' => '调用者用户ID。', 'type' => 'string', 'example' => '31063db679****'], + 'InstanceId' => ['description' => '实例的ID。', 'type' => 'string', 'example' => 'rm-2ze1jdv45i7l6****'], + 'Port' => ['description' => '目标实例的端口。', 'type' => 'integer', 'format' => 'int32', 'example' => '3306'], + 'OwnerId' => ['description' => '所有者ID。', 'type' => 'string', 'example' => '325352345'], + 'Uuid' => ['description' => '实例的唯一标识符号。', 'type' => 'string', 'example' => 'hdm_3063db6792965c080a4bcb6e6304****'], + 'Error' => ['description' => '错误消息。', 'type' => 'string', 'example' => 'InvalidRequestURL'], + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'Role' => ['description' => '角色信息。', 'type' => 'string', 'example' => 'master'], + 'TenantId' => ['description' => '所属的租户ID。', 'type' => 'string', 'example' => 'L0EPfLS****=SCE00000*****'], ], ], - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => ''], ], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Synchro\\": \\"None\\",\\n \\"Data\\": {\\n \\"VpcId\\": \\"vpc-m5e666n89m2bx8jar****\\",\\n \\"Token\\": \\"tokenID\\",\\n \\"Ip\\": \\"rm-de21209****.mysql.rds.aliyuncs.com\\",\\n \\"CallerUid\\": \\"31063db679****\\",\\n \\"InstanceId\\": \\"rm-2ze1jdv45i7l6****\\",\\n \\"Port\\": 3306,\\n \\"OwnerId\\": \\"325352345\\",\\n \\"Uuid\\": \\"hdm_3063db6792965c080a4bcb6e6304****\\",\\n \\"Error\\": \\"InvalidRequestURL\\",\\n \\"Code\\": 200,\\n \\"Role\\": \\"master\\",\\n \\"TenantId\\": \\"L0EPfLS****=SCE00000*****\\"\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<AddHDMInstanceResponse>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Synchro>None</Synchro>\\n <Data>\\n <VpcId>vpc-m5e666n89m2bx8jar****</VpcId>\\n <Token>tokenID</Token>\\n <Ip>rm-de21209****.mysql.rds.aliyuncs.com</Ip>\\n <CallerUid>31063db679****</CallerUid>\\n <InstanceId>rm-2ze1jdv45i7l6****</InstanceId>\\n <Port>3306</Port>\\n <OwnerId>325352345</OwnerId>\\n <Uuid>hdm_3063db6792965c080a4bcb6e6304****</Uuid>\\n <Error>InvalidRequestURL</Error>\\n <Code>200</Code>\\n <Role>master</Role>\\n <TenantId>L0EPfLS****=SCE00000*****</TenantId>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</AddHDMInstanceResponse>","errorExample":""}]', @@ -598,17 +308,26 @@ ."\n" .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - ], - 'GetInstanceInspections' => [ - 'summary' => '调用GetInstanceInspections接口,获取数据库实例巡检评分的结果。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'hdm:AddHDMInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'Chat' => [ + 'summary' => 'DAS大模型能力异步逻辑接口', + 'path' => '/chat', + 'methods' => ['post'], + 'schemes' => ['https', 'sse'], 'security' => [ [ 'AK' => [], @@ -618,112 +337,138 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', - 'abilityTreeCode' => '24190', - 'abilityTreeNodes' => [ - 'FEATUREhdmB8MM4L', - ], + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhdmB8MM4L', 'FEATUREhdmROFBLE', 'FEATUREhdm1XKIXR', 'FEATUREhdmR88NLD', 'FEATUREhdm3TU4OK'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'Engine', + 'name' => 'Message', 'in' => 'query', - 'schema' => [ - 'description' => '数据库引擎,取值:'."\n" - ."\n" - .'- **MySQL**'."\n" - .'- **Redis**'."\n" - .'- **PolarDB MySQL**', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'MySQL', - ], + 'schema' => ['description' => '消息', 'type' => 'string', 'required' => true, 'example' => '{"id":"68fe0321-37fe-4c75-a118-b61b33156f6a","role":"user","content":[{"type":"text","text":"hello"}]}'], ], [ - 'name' => 'StartTime', + 'name' => 'SessionId', 'in' => 'query', - 'schema' => [ - 'description' => '任务开始时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '1655416825000', - ], + 'schema' => ['description' => '可选,会话 ID,格式为 UUID 字符串。如未指定默认创建新的会话。上下文对话需保持同一个会话 ID。', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-xxxxxxxxxxxx'], ], [ - 'name' => 'EndTime', + 'name' => 'AgentId', 'in' => 'query', - 'schema' => [ - 'description' => '任务结束时间,格式为Unix时间戳,单位为毫秒。'."\n" - .'>任务结束时间需晚于任务开始时间。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '1655427625000', - ], + 'schema' => ['description' => '可选,用于服务的 Agent ID。可指定为开启 DAS Agent 后生成的Agent 或主动创建的 Agent。如未指定则使用默认 Agent 进行服务。', 'type' => 'string', 'required' => false, 'example' => 'ag-472T0DxtmjIxxxxx'], ], [ - 'name' => 'PageNo', + 'name' => 'Summary', 'in' => 'query', + 'schema' => ['description' => '是否输出摘要信息', 'type' => 'string', 'required' => false, 'example' => 'false'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '1', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => '事件类型', 'type' => 'string', 'example' => 'TEXT_MESSAGE_CONTENT'], + 'MessageId' => ['description' => '消息ID', 'type' => 'string', 'example' => '61820b594664275c4429****'], + 'Role' => ['description' => '对话角色ID', 'type' => 'string', 'example' => 'assistant'], + 'Delta' => ['description' => '是否增量内容', 'type' => 'string', 'example' => 'hello'], + 'ActivityType' => ['description' => '心跳', 'type' => 'string', 'example' => 'waiting_for_agent_thinking'], + 'ToolCallId' => ['description' => '工具调用ID', 'type' => 'string', 'example' => 'call_edf9cdb69e0e4c9796a6a5a6'], + 'ToolCallName' => ['description' => '工具名称', 'type' => 'string', 'example' => 'das_api'], + 'Content' => ['description' => '回答内容', 'type' => 'string', 'example' => 'I see you have several PolarDB instances, and I will query them for you shortly'], + 'ParentMessageId' => ['description' => '父消息 ID', 'type' => 'string', 'example' => '76bee207-31ee-4707-8851-6b9d4da033aa'], + 'ThreadId' => ['description' => '线程ID', 'type' => 'string', 'example' => '8e481be1-21d5-4a92-a2fb-fb54be0ab4f6'], + 'StepName' => ['description' => '执行步骤名称', 'type' => 'string', 'example' => 'sub_agent_performance_diagnose_mysql'], + 'RunId' => ['description' => '运行ID', 'type' => 'string', 'example' => 'ed7cb7b1-ddc8-45d7-9ff3-b315726cb5f7'], + 'TaskTrackerId' => ['description' => '回调工具类', 'type' => 'string', 'example' => 'das_api'], + 'Name' => ['description' => '扩展Key', 'type' => 'string', 'example' => 'summary'], + 'Value' => ['description' => '扩展Value', 'type' => 'any', 'example' => '{"CharCount":393,"End":1777428785996,"RequestId":"BE59AED5-D831-5811-BBAD-590B917B2089","SessionId":"123e4567-e89b-12d3-a456-xxxxxxxxxxxx","Start":1777428707927}'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '每页最大记录数,默认值为10。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '10', + ['errorCode' => 'InstanceNotFound', 'errorMessage' => 'Requested instance not found.', 'description' => '对应实例id无法找到'], + ], + 500 => [ + ['errorCode' => 'Timeout', 'errorMessage' => 'The request processing has failed due to timeout.', 'description' => '由于超时请求处理失败。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DAS Agent 交互接口', + 'description' => '前提条件:'."\n" + ."\n" + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 仅开通了DAS企业版的数据库实例支持创建离线任务。DAS企业版各个版本支持的数据库和地域请参见[DAS产品系列及支持的功能](~~156204~~)。'."\n" + ."\n" + .'更多使用Chat接口与DAS Agent进行交互的方法和示例,请参考 [DAS Agent交互最佳实践(集成Chat API)](https://help.aliyun.com/zh/das/developer-reference/chat-api-best-practice)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:Chat', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Type\\": \\"TEXT_MESSAGE_CONTENT\\",\\n \\"MessageId\\": \\"61820b594664275c4429****\\",\\n \\"Role\\": \\"assistant\\",\\n \\"Delta\\": \\"hello\\",\\n \\"ActivityType\\": \\"waiting_for_agent_thinking\\",\\n \\"ToolCallId\\": \\"call_edf9cdb69e0e4c9796a6a5a6\\",\\n \\"ToolCallName\\": \\"das_api\\",\\n \\"Content\\": \\"I see you have several PolarDB instances, and I will query them for you shortly\\",\\n \\"ParentMessageId\\": \\"76bee207-31ee-4707-8851-6b9d4da033aa\\",\\n \\"ThreadId\\": \\"8e481be1-21d5-4a92-a2fb-fb54be0ab4f6\\",\\n \\"StepName\\": \\"sub_agent_performance_diagnose_mysql\\",\\n \\"RunId\\": \\"ed7cb7b1-ddc8-45d7-9ff3-b315726cb5f7\\",\\n \\"TaskTrackerId\\": \\"das_api\\",\\n \\"Name\\": \\"summary\\",\\n \\"Value\\": \\"{\\\\\\"CharCount\\\\\\":393,\\\\\\"End\\\\\\":1777428785996,\\\\\\"RequestId\\\\\\":\\\\\\"BE59AED5-D831-5811-BBAD-590B917B2089\\\\\\",\\\\\\"SessionId\\\\\\":\\\\\\"123e4567-e89b-12d3-a456-xxxxxxxxxxxx\\\\\\",\\\\\\"Start\\\\\\":1777428707927}\\"\\n}","type":"json"}]', + ], + 'CreateCacheAnalysisJob' => [ + 'summary' => '调用CreateCacheAnalysisJob接口,创建缓存分析任务。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'InstanceArea', + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'create'], + 'parameters' => [ + [ + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例所属的数据库产品,取值:'."\n" - ."\n" - .'* **RDS**:云实例。'."\n" - .'* **ECS**:ECS自建实例。'."\n" - .'* **IDC**:非公有云自建实例。'."\n" - ."\n" - .'> IDC为用户数据中心。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'RDS', - ], + 'schema' => ['description' => 'Redis实例ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'r-bp18ff4a195d****'], ], [ - 'name' => 'SearchMap', + 'name' => 'NodeId', 'in' => 'query', - 'schema' => [ - 'description' => '过滤条件,可以按照如下条件进行过滤:'."\n" - ."\n" - .'- 以单个实例ID为过滤条件时,输入格式为:{"InstanceId":"实例ID"}。'."\n" - .'- 以多个实例ID为过滤条件时,输入格式为:{"InstanceIds":\\["实例ID1","实例ID2"\\]},其中实例ID间以英文逗号(,)分隔。'."\n" - .'- 以实例所在地域为过滤条件时,输入格式为:{"region":"实例所在地域"}。', - 'type' => 'string', - 'required' => false, - 'example' => '{"InstanceId":"rm-bp10usoc1erj7****"}', - ], + 'schema' => ['description' => '实例的数据节点ID,传入本参数可查询指定节点的监控信息。'."\n" + .'>当您传入BackupSetId参数,系统会忽略此参数,您可调用[DescribeLogicInstanceTopology](~~473786~~)接口查询节点ID。', 'type' => 'string', 'required' => false, 'example' => 'r-x****-db-0'], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'BackupSetId', 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-aek2eil6npi****', - ], + 'schema' => ['description' => '备份文件ID,可以通过[DescribeBackups](~~473823~~)接口获取。'."\n" + ."\n" + .'- 如需传入多个备份文件ID,请使用英文逗号(,)分隔,例如`12345,67890`。'."\n" + .'- 如果不传入本参数,系统会自动执行备份并对该备份文件执行缓存分析。', 'type' => 'string', 'required' => false, 'example' => '12345'], + ], + [ + 'name' => 'Separators', + 'in' => 'query', + 'schema' => ['description' => '用于识别Key前缀的分隔符。当分隔符为默认的`:;,_-+@=|#`时,不需要输入。', 'type' => 'string', 'required' => false, 'example' => '&'], ], ], 'responses' => [ @@ -731,992 +476,558 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], 'Data' => [ - 'description' => '详细信息。', + 'description' => '详细信息列表。', 'type' => 'object', 'properties' => [ - 'List' => [ - 'description' => '详细信息列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'EndTime' => [ - 'description' => '任务结束时间,格式为Unix时间戳,单位为毫秒。'."\n" - .'>任务结束时间需晚于任务开始时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1608888296001', - ], - 'StartTime' => [ - 'description' => '任务开始时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1608888296000', - ], - 'Data' => [ - 'description' => '返回的数据。', - 'type' => 'object', - 'example' => '"data": { "hasDeadLock": false, "exceptionTableMap": {}, "bigTransactionCount": 0, "cpu": 4, "isRds": true, "rdsEnable": true, "enable": false, "activeSessions": [], "bigTransactionList": [], "bigSessionList": [ { "blockDuration": 0, "active": false, "Time": 0, "db": "" },', - ], - 'Instance' => [ - 'description' => '实例信息。', - 'type' => 'object', - 'properties' => [ - 'VpcId' => [ - 'description' => '实例的VPC ID。', - 'type' => 'string', - 'example' => 'vpc-bp1knt7m55z9exoo7****', - ], - 'Uuid' => [ - 'description' => '实例的唯一标识符号。', - 'type' => 'string', - 'example' => 'hdm_3063db6792965c080a4bcb6e6304****', - ], - 'InstanceArea' => [ - 'description' => '实例所属的数据库产品,取值:'."\n" - ."\n" - .'- **RDS**:云实例。'."\n" - .'- **ECS**:ECS自建实例。'."\n" - .'- **IDC**:非公有云自建实例。'."\n" - .'> IDC为用户数据中心。', - 'type' => 'string', - 'example' => 'RDS', - ], - 'InstanceClass' => [ - 'description' => '实例的规格。', - 'type' => 'string', - 'example' => 'rds.mysql.s2.xlarge', - ], - 'Region' => [ - 'description' => '实例所属的地域ID。', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'AccountId' => [ - 'description' => '账号ID,您可在阿里云**账号管理**的**安全设置**页面获取登录账号的ID。', - 'type' => 'string', - 'example' => '108398049688****', - ], - 'NetworkType' => [ - 'description' => '实例的网络类型。', - 'type' => 'string', - 'example' => 'VPC', - ], - 'Engine' => [ - 'description' => '数据库引擎,取值:'."\n" - ."\n" - .'- **MySQL**'."\n" - .'- **Redis**'."\n" - .'- **PolarDBMySQL**', - 'type' => 'string', - 'example' => 'MySQL', - ], - 'InstanceId' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'rm-bp10usoc1erj7****', - ], - 'NodeId' => [ - 'description' => '实例的节点ID。', - 'type' => 'string', - 'example' => 'rm-bp10usoc1erj7****', - ], - 'EngineVersion' => [ - 'description' => '数据库引擎的版本号。', - 'type' => 'string', - 'example' => '8.0', - ], - 'InstanceAlias' => [ - 'description' => '实例名称', - 'type' => 'string', - 'example' => 'test-01', - ], - 'Cpu' => [ - 'description' => 'CPU规格,例如返回8时代表CPU规格为8核。', - 'type' => 'string', - 'example' => '8', - ], - 'Memory' => [ - 'description' => '数据库内存,单位为MB。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '32768', - ], - 'Storage' => [ - 'description' => '存储空间,单位为GB。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '150', - ], - 'Category' => [ - 'description' => '实例的访问模式,取值:'."\n" - .'- **standard**:标准访问模式。'."\n" - .'- **safe**:数据库代理模式。', - 'type' => 'string', - 'example' => 'standard', - ], - ], - ], - 'ScoreMap' => [ - 'description' => '扣分详情。', - 'type' => 'object', - ], - 'GmtCreate' => [ - 'description' => '任务的创建时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1603247192000', - ], - 'Score' => [ - 'description' => '巡检得分。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'AutoFunction' => [ - 'description' => '自治功能开启情况。', + 'TaskState' => ['description' => '缓存分析任务的状态:'."\n" + ."\n" + .'- **BACKUP**:备份中。'."\n" + .'- **ANALYZING**:分析中。'."\n" + .'- **FINISHED**:分析完成。'."\n" + .'- **FAILED**:出现错误。', 'type' => 'string', 'example' => 'BACKUP'], + 'JobId' => ['description' => '缓存分析任务ID。'."\n" + .'>此参数可用于查询缓存分析任务使用,当您调用该API时,由于创建缓存分析任务需要一定的时间,不会立即返回分析结果,您需要通过此参数,结合[DescribeCacheAnalysisJob](~~180983~~)接口,查询具体的分析结果。', 'type' => 'string', 'example' => 'sf79-sd99-sa37-****'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'BigKeys' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'KeyInfo' => [ + 'description' => '大Key详细信息,根据Key占用字节数降序排列。', + 'type' => 'array', + 'items' => [ 'type' => 'object', 'properties' => [ - 'EventSubscription' => [ - 'description' => '事件订阅:'."\n" - ."\n" - .'- **0**:关闭。'."\n" - .'- **1**:开启。'."\n" - .'- **2**:不支持。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'AutoIndex' => [ - 'description' => '自动索引创建和删除:'."\n" - ."\n" - .'- **0**:关闭。'."\n" - .'- **1**:开启。'."\n" - .'- **2**:不支持。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'AutoLimitedSql' => [ - 'description' => '自动限流:'."\n" - ."\n" - .'- **0**:关闭。'."\n" - .'- **1**:开启。'."\n" - .'- **2**:不支持。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'AutoResourceOptimize' => [ - 'description' => '空间碎片自动回收:'."\n" - ."\n" - .'- **0**:关闭。'."\n" - .'- **1**:开启。'."\n" - .'- **2**:不支持。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'AutoScale' => [ - 'description' => '自动弹性伸缩:'."\n" - ."\n" - .'- **0**:关闭。'."\n" - .'- **1**:开启。'."\n" - .'- **2**:不支持。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], + 'Type' => ['description' => 'Redis数据结构类型。', 'type' => 'string', 'example' => 'hash'], + 'Db' => ['description' => '数据库名称。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'ExpirationTimeMillis' => ['description' => 'Key过期时间,单位:毫秒(ms),0表示不过期。', 'type' => 'integer', 'format' => 'int64', 'example' => '1596256542547'], + 'Key' => ['description' => 'Key的名称。', 'type' => 'string', 'example' => 'task_x****'], + 'Encoding' => ['description' => 'Key内部数据类型。', 'type' => 'string', 'example' => 'hashtable'], + 'Bytes' => ['description' => 'Key占用字节数。', 'type' => 'integer', 'format' => 'int64', 'example' => '12345'], + 'NodeId' => ['description' => '实例的数据节点ID。', 'type' => 'string', 'example' => 'r-x****-db-0'], + 'Count' => ['description' => 'Key的元素个数。', 'type' => 'integer', 'format' => 'int64', 'example' => '127'], ], ], - 'EnableDasPro' => [ - 'description' => 'DAS企业版:'."\n" - ."\n" - .'- **0**:关闭。'."\n" - .'- **1**:开启。'."\n" - .'- **2**:不支持。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'State' => [ - 'description' => '巡检任务状态:'."\n" - ."\n" - .'- **0**:等待执行。'."\n" - .'- **1**:正在执行。'."\n" - .'- **2**:巡检完成。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'TaskType' => [ - 'description' => '巡检任务发起类型:'."\n" - ."\n" - .'- **0**:自动。'."\n" - .'- **1**:手动。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], ], ], ], - 'PageNo' => [ - 'description' => '页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '每页最大记录数,默认值为10。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'Total' => [ - 'description' => '总记录数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '4', - ], + 'InstanceId' => ['description' => '实例ID。', 'type' => 'string', 'example' => 'r-bp18ff4a195d****'], + 'NodeId' => ['description' => '实例的数据节点ID。', 'type' => 'string', 'example' => 'r-x****-db-0'], ], ], - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Data\\": {\\n \\"List\\": [\\n {\\n \\"EndTime\\": 1608888296001,\\n \\"StartTime\\": 1608888296000,\\n \\"Data\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"Instance\\": {\\n \\"VpcId\\": \\"vpc-bp1knt7m55z9exoo7****\\",\\n \\"Uuid\\": \\"hdm_3063db6792965c080a4bcb6e6304****\\",\\n \\"InstanceArea\\": \\"RDS\\",\\n \\"InstanceClass\\": \\"rds.mysql.s2.xlarge\\",\\n \\"Region\\": \\"cn-hangzhou\\",\\n \\"AccountId\\": \\"108398049688****\\",\\n \\"NetworkType\\": \\"VPC\\",\\n \\"Engine\\": \\"MySQL\\",\\n \\"InstanceId\\": \\"rm-bp10usoc1erj7****\\",\\n \\"NodeId\\": \\"rm-bp10usoc1erj7****\\",\\n \\"EngineVersion\\": \\"8.0\\",\\n \\"InstanceAlias\\": \\"test-01\\",\\n \\"Cpu\\": \\"8\\",\\n \\"Memory\\": 32768,\\n \\"Storage\\": 150,\\n \\"Category\\": \\"standard\\"\\n },\\n \\"ScoreMap\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"GmtCreate\\": 1603247192000,\\n \\"Score\\": 100,\\n \\"AutoFunction\\": {\\n \\"EventSubscription\\": 0,\\n \\"AutoIndex\\": 2,\\n \\"AutoLimitedSql\\": 2,\\n \\"AutoResourceOptimize\\": 0,\\n \\"AutoScale\\": 0\\n },\\n \\"EnableDasPro\\": 0,\\n \\"State\\": 2,\\n \\"TaskType\\": 0\\n }\\n ],\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10,\\n \\"Total\\": 4\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetInstanceInspectionsResponse>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Data>\\n <List>\\n <EndTime>1608888296001</EndTime>\\n <StartTime>1608888296000</StartTime>\\n <Instance>\\n <VpcId>vpc-bp1knt7m55z9exoo7****</VpcId>\\n <Uuid>hdm_3063db6792965c080a4bcb6e6304****</Uuid>\\n <InstanceArea>RDS</InstanceArea>\\n <InstanceClass>rds.mysql.s2.xlarge</InstanceClass>\\n <Region>cn-hangzhou</Region>\\n <AccountId>108398049688****</AccountId>\\n <NetworkType>VPC</NetworkType>\\n <Engine>MySQL</Engine>\\n <InstanceId>rm-bp10usoc1erj7****</InstanceId>\\n <NodeId>rm-bp10usoc1erj7****</NodeId>\\n <EngineVersion>8.0</EngineVersion>\\n <InstanceAlias>test-01</InstanceAlias>\\n <Cpu>8</Cpu>\\n <Memory>32768</Memory>\\n <Storage>150</Storage>\\n <Category>standard</Category>\\n </Instance>\\n <GmtCreate>1603247192000</GmtCreate>\\n <Score>100</Score>\\n <AutoFunction>\\n <EventSubscription>0</EventSubscription>\\n <AutoIndex>2</AutoIndex>\\n <AutoLimitedSql>2</AutoLimitedSql>\\n <AutoResourceOptimize>0</AutoResourceOptimize>\\n <AutoScale>0</AutoScale>\\n </AutoFunction>\\n <EnableDasPro>0</EnableDasPro>\\n <State>2</State>\\n <TaskType>0</TaskType>\\n </List>\\n <PageNo>1</PageNo>\\n <PageSize>10</PageSize>\\n <Total>4</Total>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetInstanceInspectionsResponse>","errorExample":""}]', - 'title' => '获取数据库实例巡检评分结果', - 'description' => 'DAS支持巡检评分功能,可以对目标实例进行定期巡检并给出健康评分,帮助您清楚地了解数据库运行情况,更多信息,请参见[巡检评分](~~205659~~)。'."\n" - ."\n" - .'使用该接口需满足以下前提条件:'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Data\\": {\\n \\"TaskState\\": \\"BACKUP\\",\\n \\"JobId\\": \\"sf79-sd99-sa37-****\\",\\n \\"Message\\": \\"Successful\\",\\n \\"BigKeys\\": {\\n \\"KeyInfo\\": [\\n {\\n \\"Type\\": \\"hash\\",\\n \\"Db\\": 0,\\n \\"ExpirationTimeMillis\\": 1596256542547,\\n \\"Key\\": \\"task_x****\\",\\n \\"Encoding\\": \\"hashtable\\",\\n \\"Bytes\\": 12345,\\n \\"NodeId\\": \\"r-x****-db-0\\",\\n \\"Count\\": 127\\n }\\n ]\\n },\\n \\"InstanceId\\": \\"r-bp18ff4a195d****\\",\\n \\"NodeId\\": \\"r-x****-db-0\\"\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateCacheAnalysisJobResponse>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Data>\\n <TaskState>BACKUP</TaskState>\\n <JobId>sf79-sd99-sa37-****</JobId>\\n <Message>Successful</Message>\\n <BigKeys>\\n <Type>hash</Type>\\n <Db>0</Db>\\n <ExpirationTimeMillis>1596256542547</ExpirationTimeMillis>\\n <Key>task_x****</Key>\\n <Encoding>hashtable</Encoding>\\n <Bytes>12345</Bytes>\\n <NodeId>r-x****-db-0</NodeId>\\n <Count>127</Count>\\n </BigKeys>\\n <InstanceId>r-bp18ff4a195d****</InstanceId>\\n <NodeId>r-x****-db-0</NodeId>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</CreateCacheAnalysisJobResponse>","errorExample":""}]', + 'title' => '创建缓存分析任务', + 'description' => '使用该接口需满足以下前提条件:'."\n" ."\n" - .'- 本接口只适用于RDS MySQL、ECS上的MySQL自建库、IDC MySQL自建库、云数据库 Tair(兼容 Redis)、PolarDB MySQL版。'."\n" - .'- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于4.3.3,建议使用最新版本。'."\n" - .'- 使用DAS的SDK的版本为1.0.3或以上。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - ], - 'SetEventSubscription' => [ - 'summary' => '调用SetEventSubscription接口,配置数据库实例的事件订阅设置。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 只支持分析Redis数据结构和以下Tair自研数据结构:TairString、TairHash、TairGIS、TairBloom、TairDoc、TairCpc、TairZset,暂不支持分析其他Tair自研数据结构。'."\n" + .'- 如果目标实例规格已发生变更,则不支持分析实例变更前的备份文件。'."\n" + .'- 暂不支持Tair磁盘型实例。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'hdm:CreateCacheAnalysisJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateCloudBenchTasks' => [ + 'summary' => '调用CreateCloudBenchTasks接口,创建压测任务。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhdmETIPZF', - ], - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'InstanceId', + 'name' => 'TaskType', 'in' => 'query', - 'schema' => [ - 'title' => '实例ID', - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****', - ], + 'schema' => ['description' => '压测任务类型。取值:'."\n" + .'- **pressure test**(默认):智能压测,将从源实例上捕获的流量,按照目标实例规格支持的极限速度,在目标实例上进行回放。'."\n" + .'- **smart pressure test**:生成压测,通过分析和学习短时间内在源实例上捕获的流量,生成和原始流量的业务模型和流量分布基本一致的流量进行持续压测,减少从源实例采集数据的时间,降低存储成本和性能开销。', 'type' => 'string', 'required' => true, 'example' => 'pressure test'], ], [ - 'name' => 'EventContext', + 'name' => 'SrcInstanceId', 'in' => 'query', - 'schema' => [ - 'title' => '事件场景', - 'description' => '支持的事件场景,当前仅支持**AllContext**,表示支持所有场景。', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [], - 'example' => 'AllContext', - ], + 'schema' => ['description' => '源实例ID,仅支持RDS MySQL、PolarDB MySQL版实例,您可通过调用[GetInstanceInspections](~~202857~~)接口获取。'."\n" + .'>当**DstType**为**Instance**时,本参数需要传入。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze1jdv45i7l6****'], ], [ - 'name' => 'Lang', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'title' => '语言', - 'description' => '事件通知的语言,当前仅支持**zh-CN**,表示事件通知为中文。', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [], - 'example' => 'zh-CN', - ], + 'allowEmptyValue' => false, + 'schema' => ['description' => '压测任务描述。', 'type' => 'string', 'required' => true, 'example' => 'test-das-bench-0501'], ], [ - 'name' => 'MinInterval', + 'name' => 'SrcPublicIp', 'in' => 'query', - 'schema' => [ - 'title' => '通知最小间隔', - 'description' => '通知最小间隔时间,单位为秒(s)。', - 'type' => 'string', - 'required' => false, - 'example' => '60', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ - 'name' => 'ContactName', + 'name' => 'DstInstanceId', 'in' => 'query', - 'schema' => [ - 'title' => '告警订阅人', - 'description' => '告警事件订阅人名称,多个名称间以英文逗号分隔。', - 'type' => 'string', - 'required' => false, - 'example' => '默认联系人', - ], + 'schema' => ['description' => '目标实例ID,仅支持RDS MySQL、PolarDB MySQL版实例,您可通过调用[GetInstanceInspections](~~202857~~)接口获取。'."\n" + .'>当**DstType**为**Instance**时,本参数需要传入。', 'type' => 'string', 'required' => false, 'example' => 'rm-2ze1jdv45i7l6****'], ], [ - 'name' => 'ChannelType', + 'name' => 'GatewayVpcId', 'in' => 'query', - 'schema' => [ - 'title' => '通知方式', - 'description' => '通知方式。'."\n" - .'- **hdm\\_alarm\\_sms**:手机短信。'."\n" - .'- **dingtalk**:钉钉机器人。'."\n" - .'- **hdm\\_alarm\\_sms\\_and\\_email**:手机短信+邮件。'."\n" - .'- **hdm\\_alarm\\_sms,dingtalk**:手机短信+钉钉机器人。', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [], - 'example' => 'hdm_alarm_sms,dingtalk', - ], + 'schema' => ['description' => '数据库网关的专有网络ID。'."\n" + .'>若**ClientType**取值为**ECS**,则此参数必传入。', 'type' => 'string', 'required' => false, 'example' => 'vpc-t4nsnwvpbc1h76ja4****'], ], [ - 'name' => 'ContactGroupName', + 'name' => 'GatewayVpcIp', 'in' => 'query', - 'schema' => [ - 'title' => '告警订阅组', - 'description' => '告警事件订阅组名称,多个名称以英文逗号分隔。', - 'type' => 'string', - 'required' => false, - 'example' => '默认联系组', - ], + 'schema' => ['description' => '数据库网关的IP地址或域名。'."\n" + .'>若**ClientType**取值为**ECS**,则此参数必传入。', 'type' => 'string', 'required' => false, 'example' => '172.30.XX.XX'], ], [ - 'name' => 'Level', + 'name' => 'ClientType', 'in' => 'query', - 'schema' => [ - 'title' => '事件风险级别', - 'description' => '需要进行通知的事件级别,取值:'."\n" - .'- **Notice**:通知(包含**Notice**、**Optimization**、**Warn**和**Critical**级别的事件)。'."\n" - .'- **Optimization**:优化(包含**Optimization**、**Warn**和**Critical**级别的事件)。'."\n" - .'- **Warn**:警告(包含**Warn**和**Critical**级别的事件)。'."\n" - .'- **Critical**:严重(仅包含**Critical**级别的事件)。'."\n" - ."\n" - .'各个级别事件的含义如下:'."\n" - ."\n" - .'- 通知:暂无建议的数据库异常事件。'."\n" - .'- 优化:根据数据库运行情况给出优化建议的事件。'."\n" - .'- 警告:需要关注的可能会影响数据库的事件。'."\n" - .'- 严重:影响数据库运行的事件。', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [], - 'example' => 'Optimization', - ], + 'schema' => ['description' => '压测机器类型。取值:'."\n" + ."\n" + .'- **ECS**:您需要自己准备[数据库网关](~~64905~~)。'."\n" + .'- **DAS_ECS**:DAS自动购买和部署的ECS。', 'type' => 'string', 'required' => true, 'example' => 'ECS'], ], [ - 'name' => 'Active', + 'name' => 'RequestStartTime', 'in' => 'query', - 'schema' => [ - 'title' => '是否启用', - 'description' => '是否启用事件订阅功能:'."\n" - .'- **0**:关闭。'."\n" - .'- **1**:开启。', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [], - 'example' => '1', - ], + 'schema' => ['description' => '压测任务的开始时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'string', 'required' => false, 'example' => '1608888296000'], ], [ - 'name' => 'Severity', + 'name' => 'RequestEndTime', 'in' => 'query', - 'schema' => [ - 'description' => '按照事件类型设置事件的告警级别。'."\n" - ."\n" - .'输入格式:`{"事件类型1":"告警级别", "事件类型2":"告警级别"}`。'."\n" - ."\n" - .'事件类型:'."\n" - ."\n" - .'- **AutoScale**:弹性伸缩事件。'."\n" - .'- **SQLThrottle**:限流事件。'."\n" - .'- **TimeSeriesAbnormal**:时序异常检测事件。'."\n" - .'- **SQLOptimize**:SQL优化事件。'."\n" - .'- **ResourceOptimize**:空间优化事件。'."\n" - ."\n" - .'告警级别:'."\n" - .'- **info**:一般。'."\n" - .'- **noticed**:通知。'."\n" - .'- **warning**:警告。'."\n" - .'- **critical**:严重。', - 'type' => 'string', - 'required' => false, - 'example' => '{"AutoScale":"critical","SQLThrottle":"info","TimeSeriesAbnormal":"warning"}', - ], + 'schema' => ['description' => '压测任务的结束时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'string', 'required' => false, 'example' => '1608888296001'], ], [ - 'name' => 'DispatchRule', + 'name' => 'RequestDuration', 'in' => 'query', - 'schema' => [ - 'description' => '按照事件类型设置事件的消息通知规则,此参数为空时,以**MinInterval**和**ChannelType**设置为准。'."\n" - ."\n" - .'输入格式:`{"silenced": {"事件类型1":是否打开自适应静默, "事件类型2":是否打开自适应静默},"min_interval":{"事件类型1":通知最小间隔, "事件类型2":通知最小间隔},"alert_type": {"事件类型1":"通知方式", "事件类型2":"通知方式"}}`。'."\n" - ."\n" - .'- **silenced**:是否打开自适应静默。打开自适应静默后,事件中连续告警的发送间隔变为**min\\_interval**设置值和该事件持续时间1/3中的最大值。'."\n" - .' - 1:打开。'."\n" - .' - 2:关闭。'."\n" - .'- **min\\_interval**:通知最小间隔时间,单位为秒(s)。'."\n" - .'- **alert_type**:通知方式,取值:'."\n" - .' - **hdm\\_alarm\\_sms**:手机短信。'."\n" - .' - **dingtalk**:钉钉机器人。'."\n" - .' - **hdm\\_alarm\\_sms\\_and\\_email**:手机短信+邮件。'."\n" - .' - **hdm\\_alarm\\_sms,dingtalk**:手机短信+钉钉机器人。', - 'type' => 'string', - 'required' => false, - 'example' => '{"silenced": {"AutoScale":1, "SQLThrottle":0, "TimeSeriesAbnormal": 1}, "min_interval": {"AutoScale":300, "SQLThrottle":360, "TimeSeriesAbnormal": 120}, "alert_type": {"AutoScale":"hdm_alarm_sms", "SQLThrottle":"hdm_alarm_sms_and_email", "TimeSeriesAbnormal": "hdm_alarm_sms,dingtalk"}}', - ], + 'schema' => ['description' => '压测任务的持续时间,单位为毫秒。', 'type' => 'string', 'required' => false, 'example' => '86400000'], + ], + [ + 'name' => 'Rate', + 'in' => 'query', + 'schema' => ['description' => '源实例流量在目标实例上的回放速度,回放速度必须是正整数,取值:**1**~**30**,默认为**1**。', 'type' => 'string', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'SmartPressureTime', + 'in' => 'query', + 'schema' => ['description' => '生成压测的持续时间,单位为毫秒。'."\n" + .'>当**TaskType**为**smart pressure test**时本参数需要传入。', 'type' => 'string', 'required' => false, 'example' => '86400000'], + ], + [ + 'name' => 'DtsJobClass', + 'in' => 'query', + 'schema' => ['description' => 'DTS迁移任务规格,您可以通过调用[DescribeCloudbenchTask](~~230669~~)接口获取。'."\n" + .'>压测任务需要先将源实例基准数据迁移至目标实例,当您新建DTS任务时需要传入本参数。', 'type' => 'string', 'required' => false, 'example' => 'medium'], + ], + [ + 'name' => 'DtsJobId', + 'in' => 'query', + 'schema' => ['description' => 'DTS迁移任务ID,您可调用[ConfigureDtsJob](~~208399~~)接口获取。'."\n" + .'>已在DTS控制台创建完DTS任务时本参数必传入。', 'type' => 'string', 'required' => false, 'example' => '23127'], + ], + [ + 'name' => 'SrcSuperAccount', + 'in' => 'query', + 'schema' => ['description' => '源端实例高权限账号。取值:**admin**。'."\n" + .'>当**DstType**为**Instance**时,本参数需要传入。', 'type' => 'string', 'required' => false, 'example' => 'admin'], + ], + [ + 'name' => 'SrcSuperPassword', + 'in' => 'query', + 'schema' => ['description' => '源端实例高权限账号的密码。'."\n" + .'>当**DstType**为**Instance**时,本参数需要传入。', 'type' => 'string', 'required' => false, 'example' => 'test123'], + ], + [ + 'name' => 'DstSuperAccount', + 'in' => 'query', + 'schema' => ['description' => '目标实例的高权限账号。', 'type' => 'string', 'required' => false, 'example' => 'root'], + ], + [ + 'name' => 'DstSuperPassword', + 'in' => 'query', + 'schema' => ['description' => '目标实例高权限账号的密码。', 'type' => 'string', 'required' => false, 'example' => 'test123'], + ], + [ + 'name' => 'DstType', + 'in' => 'query', + 'schema' => ['description' => '目标实例的类型。取值:'."\n" + .'- **Instance**(默认):实例ID。'."\n" + .'- **ConnectionString**:实例的连接地址。', 'type' => 'string', 'required' => false, 'example' => 'Instance'], + ], + [ + 'name' => 'DstConnectionString', + 'in' => 'query', + 'schema' => ['description' => '目标实例的连接地址,仅支持RDS MySQL、PolarDB MySQL版实例。'."\n" + .'>**DstType**为**ConnectionString**本参数有效。', 'type' => 'string', 'required' => false, 'example' => 'rm-de21209****.mysql.rds.aliyuncs.com'], + ], + [ + 'name' => 'DstPort', + 'in' => 'query', + 'schema' => ['description' => '目标实例的端口。'."\n" + .'>**DstType**为**ConnectionString**本参数有效。', 'type' => 'string', 'required' => false, 'example' => '3306'], + ], + [ + 'name' => 'WorkDir', + 'in' => 'query', + 'schema' => ['description' => '压测生成的临时目录。', 'type' => 'string', 'required' => false, 'example' => '/tmp/bench/'], + ], + [ + 'name' => 'BackupId', + 'in' => 'query', + 'schema' => ['description' => '备份集ID,可通过查询备份列表接口[DescribeBackups](~~26273~~)获取。', 'type' => 'string', 'required' => false, 'example' => '229132'], + ], + [ + 'name' => 'BackupTime', + 'in' => 'query', + 'schema' => ['description' => '备份的时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => false, 'example' => '2021-04-23T13:22:14Z'], + ], + [ + 'name' => 'Amount', + 'in' => 'query', + 'schema' => ['description' => '创建压测任务的总个数,取值:**0**~**30**,默认为**1**。', 'type' => 'string', 'required' => false, 'example' => '1', 'default' => '1'], + ], + [ + 'name' => 'EndState', + 'in' => 'query', + 'schema' => ['description' => '压测任务结束后的状态。取值:'."\n" + ."\n" + .'- **WAIT_TARGET**:准备压测的目标实例。'."\n" + .'- **WAIT_DBGATEWAY**:准备压测部署。'."\n" + .'- **WAIT_SQL**:准备全量SQL。'."\n" + .'- **WAIT_LOGIC**:准备开始回放流量。'."\n" + ."\n" + .'>当压测任务执行完EndState设置的状态之后,任务将直接到达完成状态。', 'type' => 'string', 'required' => false, 'example' => 'WAIT_TARGET'], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ - 'description' => '返回信息列表。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '097F0C56-B252-515A-B602-FC56EF93EF8A', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], 'Data' => [ - 'description' => '详细信息列表。', 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'userId' => [ - 'title' => '用户ID ', - 'description' => '用户ID。', - 'type' => 'string', - 'example' => '1088760496****', - ], - 'instanceId' => [ - 'title' => '实例ID', - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze8g2am97624****', - ], - 'eventContext' => [ - 'title' => '事件场景', - 'description' => '支持的事件场景,当前仅支持**AllContext**,表示支持所有场景。', - 'type' => 'string', - 'example' => 'AllContext', - ], - 'lang' => [ - 'title' => '语言', - 'description' => '事件通知的语言,当前仅支持**zh-CN**,表示事件通知为中文。', - 'type' => 'string', - 'example' => 'zh_CN', - ], - 'active' => [ - 'title' => '是否启用', - 'description' => '是否启用事件订阅:'."\n" - .'- **0**:关闭。'."\n" - .'- **1**:开启。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'minInterval' => [ - 'title' => '通知最小间隔', - 'description' => '通知最小间隔时间,单位秒(s)。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '60', - ], - 'contactName' => [ - 'title' => '告警订阅人', - 'description' => '告警事件订阅人名称,多个名称间以英文逗号分隔。', - 'type' => 'string', - 'example' => '默认联系人', - ], - 'contactGroupName' => [ - 'title' => '告警订阅组', - 'description' => '告警事件订阅组名称,多个名称间以英文逗号分隔。', - 'type' => 'string', - 'example' => '默认联系组', - ], - 'channelType' => [ - 'title' => '通知方式', - 'description' => '通知方式:'."\n" - .'- **hdm\\_alarm\\_sms**:手机短信。'."\n" - .'- **dingtalk**:钉钉机器人。'."\n" - .'- **hdm\\_alarm\\_sms\\_and\\_email**:手机短信+邮件。'."\n" - .'- **hdm\\_alarm\\_sms,dingtalk**:手机短信+钉钉机器人。', - 'type' => 'string', - 'example' => 'hdm_alarm_sms,dingtalk', - ], - 'level' => [ - 'title' => '事件风险级别', - 'description' => '事件风险级别:'."\n" - .'- **Notice**:通知。'."\n" - .'- **Optimization**:优化。'."\n" - .'- **Warn**:警告。'."\n" - .'- **Critical**:严重。'."\n", - 'type' => 'string', - 'example' => 'Optimization', + 'taskIds' => [ + 'description' => '详细信息列表。', + 'type' => 'array', + 'items' => ['description' => '详细信息列表,包括信息总数、错误码等。', 'type' => 'string', 'example' => '"Data": { "total": 1, "list":[...] }, "Code": 200, "Success": true }'], ], ], - ], - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + ], + 'title' => '创建压测任务', + 'description' => '数据库自治服务DAS提供智能压测功能,帮助您验证您的实例规格是否需要扩容,有效应对业务流量高峰。更多信息,请参见[智能压测](~~155068~~)。数据库需满足如下前提条件:'."\n" + ."\n" + .' - 源数据库仅支持RDS MySQL高可用系列或三节点企业系列、PolarDB MySQL版的集群版。'."\n" + .' - 目标数据库实例为RDS MySQL、PolarDB MySQL版。'."\n" + .' - 实例已接入DAS,详情请参见[接入阿里云数据库实例](~~65405~~)。'."\n" + .' - 需开启DAS企业版,详情请参见[DAS企业版](~~190912~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateCloudBenchTasks'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'hdm:CreateCloudBenchTasks', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"097F0C56-B252-515A-B602-FC56EF93EF8A\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"userId\\": \\"1088760496****\\",\\n \\"instanceId\\": \\"rm-2ze8g2am97624****\\",\\n \\"eventContext\\": \\"AllContext\\",\\n \\"lang\\": \\"zh_CN\\",\\n \\"active\\": 1,\\n \\"minInterval\\": 60,\\n \\"contactName\\": \\"默认联系人\\",\\n \\"contactGroupName\\": \\"默认联系组\\",\\n \\"channelType\\": \\"hdm_alarm_sms,dingtalk\\",\\n \\"level\\": \\"Optimization\\"\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<SetEventSubscriptionResponse>\\n <RequestId>097F0C56-B252-515A-B602-FC56EF93EF8A</RequestId>\\n <Message>Successful</Message>\\n <Data>\\n <userId>1088760496****</userId>\\n <instanceId>rm-2ze8g2am97624****</instanceId>\\n <eventContext>AllContext</eventContext>\\n <lang>zh_CN</lang>\\n <active>1</active>\\n <minInterval>60</minInterval>\\n <contactName>默认联系人</contactName>\\n <contactGroupName>默认联系组</contactGroupName>\\n <channelType>hdm_alarm_sms,dingtalk</channelType>\\n <level>Optimization</level>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</SetEventSubscriptionResponse>","errorExample":""}]', - 'title' => '配置事件订阅设置', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"taskIds\\": [\\n \\"\\\\\\"Data\\\\\\": { \\\\\\"total\\\\\\": 1, \\\\\\"list\\\\\\":[...] }, \\\\\\"Code\\\\\\": 200, \\\\\\"Success\\\\\\": true }\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<CreateCloudBenchTasksResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n <Data>\\"Data\\": { \\"total\\": 1, \\"list\\":[...] }, \\"Code\\": 200, \\"Success\\": true }</Data>\\n</CreateCloudBenchTasksResponse>","errorExample":""}]', + ], + 'CreateDiagnosticReport' => [ + 'summary' => '调用CreateDiagnosticReport接口,创建诊断报告。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'create'], + 'parameters' => [ + [ + 'name' => 'DBInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '创建任务开始时间,格式为Unix时间戳(UTC时间),单位为毫秒。', 'type' => 'string', 'required' => true, 'example' => '1596177993000'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '创建任务结束时间,格式为Unix时间戳(UTC时间),单位为毫秒。'."\n" + .'>创建任务结束时间需晚于创建任务开始时间。', 'type' => 'string', 'required' => true, 'example' => '1596177993001'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'ac544623-f6ad-45fd-9a74-9be3db65****'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'Data' => ['description' => '返回的数据。', 'type' => 'string', 'example' => '70af71852fcdf2c5dc7b90596e2cf05b'], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + ], + 'title' => '创建诊断报告', 'description' => '使用该接口需满足以下前提条件:'."\n" ."\n" - .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 数据库实例已接入DAS。'."\n" + .'- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于4.3.3,建议使用最新版本。'."\n" + .'- 使用DAS的SDK的版本为1.0.3或以上。'."\n" + .'- 在调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 本接口适用的数据库引擎为:'."\n" ."\n" - .'<props="china"> <note>事件订阅已集成至告警功能。如果在控制台配置了事件告警,通过该API接口配置的事件订阅设置将被事件告警覆盖。配置事件告警请参见[配置告警](~~87017~~)。</note></props>', - ], - 'GetEventSubscription' => [ - 'summary' => '调用GetEventSubscription接口,获取数据库实例的事件订阅设置。', - 'methods' => [ - 'post', - 'get', + .' - RDS MySQL'."\n" + .' - PolarDB MySQL版'."\n" + .' - Redis', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDiagnosticReport'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'hdm:CreateDiagnosticReport', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"ac544623-f6ad-45fd-9a74-9be3db65****\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": \\"70af71852fcdf2c5dc7b90596e2cf05b\\",\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateDiagnosticReportResponse>\\n <RequestId>ac544623-f6ad-45fd-9a74-9be3db65****</RequestId>\\n <Message>Successful</Message>\\n <Data>70af71852fcdf2c5dc7b90596e2cf05b</Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</CreateDiagnosticReportResponse>","errorExample":""}]', + ], + 'CreateKillInstanceSessionTask' => [ + 'summary' => '调用CreateKillInstanceSessionTask接口,创建结束会话的任务。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'title' => '实例ID。', - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****'."\n", - ], + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'], + ], + [ + 'name' => 'NodeId', + 'in' => 'query', + 'schema' => ['description' => '节点ID。'."\n" + ."\n" + .'> 对于PolarDB MySQL版实例,需要提供节点ID。如果没有提供节点ID,并且请求参数**KillAllSessions**配置为**true**(即结束全部会话),将会遍历PolarDB MySQL版实例所有节点,并结束每个节点上正在进行的会话。', 'type' => 'string', 'required' => false, 'example' => 'pi-bp1v203xzzh0a****'], + ], + [ + 'name' => 'DbUser', + 'in' => 'query', + 'schema' => ['description' => '具有结束会话权限的数据库账号。', 'type' => 'string', 'required' => true, 'example' => 'testUser'], + ], + [ + 'name' => 'DbUserPassword', + 'in' => 'query', + 'schema' => ['description' => '数据库账号密码。', 'type' => 'string', 'required' => true, 'example' => 'testPassword'], + ], + [ + 'name' => 'IgnoredUsers', + 'in' => 'query', + 'schema' => ['description' => '忽略账号列表,该列表中账号的会话不会被结束。'."\n" + ."\n" + .'> 数据格式为JSONArray字符串,例如\\[\'数据库账号1\',\'数据库账号2\'\\],数据库账号间用英文逗号(,)分隔。', 'type' => 'string', 'required' => false, 'example' => '[\'db_user1\',\'db_user2\']'], + ], + [ + 'name' => 'KillAllSessions', + 'in' => 'query', + 'schema' => ['description' => '是否结束全部会话。'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。'."\n" + ."\n" + .'> 该参数取值为**true**时,请求参数**IgnoredUsers**中账号的会话、阿里云内部运维账号的会话和**Binlog Dump**会话都不会被结束。', 'type' => 'boolean', 'required' => true, 'example' => 'true'], + ], + [ + 'name' => 'SessionIds', + 'in' => 'query', + 'schema' => ['description' => '需要被结束的会话ID列表。'."\n" + ."\n" + .'> 数据格式为JSONArray,例如\\[会话ID1,会话ID2\\],会话ID间用英文逗号(,)分隔。如果请求参数**KillAllSessions**取值为**true**(即结束全部会话),该列表会被忽略。', 'type' => 'string', 'required' => false, 'example' => '[10805639,10805623,10805645,10805553,10805566,10805616]'], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'Data' => [ - 'description' => '详细信息列表。', - 'type' => 'object', - 'properties' => [ - 'userId' => [ - 'title' => '用户ID。', - 'description' => '用户ID。', - 'type' => 'string', - 'example' => '1088760496****', - ], - 'instanceId' => [ - 'title' => '实例ID。', - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze8g2am97624****', - ], - 'eventContext' => [ - 'title' => '事件场景。', - 'description' => '支持的事件场景,当前仅支持**AllContext**,表示支持所有场景。', - 'type' => 'string', - 'example' => 'AllContext', - ], - 'lang' => [ - 'title' => '语言', - 'description' => '事件通知的语言,当前仅支持**zh-CN**,表示事件通知为中文。', - 'type' => 'string', - 'example' => 'zh_CN', - ], - 'active' => [ - 'title' => '是否开启。', - 'description' => '是否启用事件订阅:'."\n" - ."\n" - .'- **0**:关闭。'."\n" - .'- **1**:开启。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'minInterval' => [ - 'title' => '通知最小间隔。', - 'description' => '通知最小间隔时间,单位秒(s)。', - 'type' => 'string', - 'example' => '60', - ], - 'contactName' => [ - 'title' => '告警订阅人。', - 'description' => '告警事件订阅人名称,多个名称间以英文逗号分隔。', - 'type' => 'string', - 'example' => '默认联系人', - ], - 'contactGroupName' => [ - 'title' => '告警订阅组', - 'description' => '告警事件订阅组名称,多个名称间以英文逗号分隔。', - 'type' => 'string', - 'example' => '默认联系组', - ], - 'channelType' => [ - 'title' => '通知方式。', - 'description' => '通知方式:'."\n" - ."\n" - .'- **hdm\\_alarm\\_sms**:手机短信。'."\n" - .'- **dingtalk**:钉钉机器人。'."\n" - .'- **hdm\\_alarm\\_sms\\_and\\_email**:手机短信+邮件。'."\n" - .'- **hdm\\_alarm\\_sms,dingtalk**:手机短信+钉钉机器人。', - 'type' => 'string', - 'example' => 'hdm_alarm_sms,dingtalk', - ], - 'level' => [ - 'title' => '事件风险级别。', - 'description' => '事件风险级别,即触发哪种级别的事件后需要通知您:'."\n" - ."\n" - .'- **Notice**:通知。'."\n" - .'- **Optimization**:优化。'."\n" - .'- **Warn**:警告。'."\n" - .'- **Critical**:严重。', - 'type' => 'string', - 'example' => 'Optimization', - ], - 'contacts' => [ - 'title' => '告警联系人信息。', - 'description' => '告警联系人列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'name' => [ - 'title' => '告警联系人名称。', - 'description' => '告警联系人名称。', - 'type' => 'string', - 'example' => '张先生', - ], - 'phone' => [ - 'title' => '告警联系人电话', - 'description' => '告警联系人电话。', - 'type' => 'string', - 'example' => '1390000****', - ], - 'email' => [ - 'title' => '告警联系人邮箱。', - 'description' => '告警联系人邮箱。', - 'type' => 'string', - 'example' => 'a***@example.net', - ], - 'dingtalkHook' => [ - 'title' => '告警联系人钉钉机器人webhook。', - 'description' => '钉钉机器人的Webhook地址。', - 'type' => 'string', - 'example' => 'https://oapi.dingtalk.com/robot/send?access_token=68fa29a9eaf3ba9994f54fxxxc1aa9879700308f90e9c23ebfb3663642c9****', - ], - 'groups' => [ - 'title' => '告警联系人所属联系组列表。', - 'description' => '告警联系人所属的联系组列表。', - 'type' => 'array', - 'items' => [ - 'description' => '告警联系人名称。', - 'type' => 'string', - 'example' => '张先生', - ], - ], - 'isCmsReduplicated' => [ - 'title' => '是否和云监控上的联系人重名。', - 'description' => '是否和云监控上的联系人姓名相同。'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'userId' => [ - 'title' => '用户ID。', - 'description' => '用户ID。', - 'type' => 'string', - 'example' => '1088760496****', - ], - ], - ], - ], - 'contactGroups' => [ - 'description' => '告警联系组列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'name' => [ - 'title' => '告警联系人组姓名。', - 'description' => '告警联系组名称。', - 'type' => 'string', - 'example' => '张先生', - ], - 'description' => [ - 'title' => '告警联系人组描述。', - 'description' => '告警联系组描述。', - 'type' => 'string', - 'example' => '默认联系人', - ], - 'contacts' => [ - 'title' => '告警联系人组内成员。', - 'description' => '告警联系组成员列表。', - 'type' => 'string', - 'example' => '"[\\"张先生\\",\\"王女士\\",\\"李先生\\"]"', - ], - 'userId' => [ - 'title' => '用户ID。', - 'description' => '用户ID。', - 'type' => 'string', - 'example' => '1088760496****', - ], - ], - ], - ], - 'eventSendGroup' => [ - 'title' => '对应事件订阅的场景。', - 'description' => '支持发送的事件场景列表。', - 'type' => 'array', - 'items' => [ - 'description' => '支持发送的事件场景,当前仅支持**AllContext**,表示支持所有场景。', - 'type' => 'string', - 'example' => 'AllContext', - ], - ], - 'id' => [ - 'title' => '订阅关系序号。', - 'description' => '数据库主键ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'gmtCreate' => [ - 'title' => '创建时间。', - 'description' => '开启事件订阅的时间,格式为Unix时间戳,单位为毫秒(ms)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1633071840000', - ], - 'gmtModified' => [ - 'title' => '最后修改时间。', - 'description' => '最后修改事件订阅设置的时间,格式为Unix时间戳,单位为毫秒(ms)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1633071850000', - ], - ], - ], - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'Data' => ['description' => '结束会话的任务ID。'."\n" + ."\n" + .'> PolarDB MySQL版实例调用该API接口,请求参数**NodeId**为空(即未指定节点ID),并且请求参数**KillAllSessions**配置为**true**(即结束全部会话)时,会按照节点数量返回任务ID列表,例如\\["f77d535b45405bd462b21caa3ee8\\*\\*\\*\\*", "e93ab549abb081eb5dcd5396a29b\\*\\*\\*\\*"\\]', 'type' => 'string', 'example' => 'f77d535b45405bd462b21caa3ee8****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"userId\\": \\"1088760496****\\",\\n \\"instanceId\\": \\"rm-2ze8g2am97624****\\",\\n \\"eventContext\\": \\"AllContext\\",\\n \\"lang\\": \\"zh_CN\\",\\n \\"active\\": 1,\\n \\"minInterval\\": \\"60\\",\\n \\"contactName\\": \\"默认联系人\\",\\n \\"contactGroupName\\": \\"默认联系组\\",\\n \\"channelType\\": \\"hdm_alarm_sms,dingtalk\\",\\n \\"level\\": \\"Optimization\\",\\n \\"contacts\\": [\\n {\\n \\"name\\": \\"张先生\\",\\n \\"phone\\": \\"1390000****\\",\\n \\"email\\": \\"a***@example.net\\",\\n \\"dingtalkHook\\": \\"https://oapi.dingtalk.com/robot/send?access_token=68fa29a9eaf3ba9994f54fxxxc1aa9879700308f90e9c23ebfb3663642c9****\\",\\n \\"groups\\": [\\n \\"张先生\\"\\n ],\\n \\"isCmsReduplicated\\": true,\\n \\"userId\\": \\"1088760496****\\"\\n }\\n ],\\n \\"contactGroups\\": [\\n {\\n \\"name\\": \\"张先生\\",\\n \\"description\\": \\"默认联系人\\",\\n \\"contacts\\": \\"\\\\\\"[\\\\\\\\\\\\\\"张先生\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"王女士\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"李先生\\\\\\\\\\\\\\"]\\\\\\"\\",\\n \\"userId\\": \\"1088760496****\\"\\n }\\n ],\\n \\"eventSendGroup\\": [\\n \\"AllContext\\"\\n ],\\n \\"id\\": 1,\\n \\"gmtCreate\\": 1633071840000,\\n \\"gmtModified\\": 1633071850000\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetEventSubscriptionResponse>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Message>Successful</Message>\\n <Data>\\n <userId>1088760496****</userId>\\n <instanceId>rm-2ze8g2am97624****</instanceId>\\n <eventContext>AllContext</eventContext>\\n <lang>zh_CN</lang>\\n <active>1</active>\\n <minInterval>60</minInterval>\\n <contactName>默认联系人</contactName>\\n <contactGroupName>默认联系组</contactGroupName>\\n <channelType>hdm_alarm_sms,dingtalk</channelType>\\n <level>Optimization</level>\\n <contacts>\\n <name>张先生</name>\\n <phone>1390000****</phone>\\n <email>a***@example.net</email>\\n <dingtalkHook>https://oapi.dingtalk.com/robot/send?access_token=68fa29a9eaf3ba9994f54fxxxc1aa9879700308f90e9c23ebfb3663642c9****</dingtalkHook>\\n <groups>张先生</groups>\\n <isCmsReduplicated>true</isCmsReduplicated>\\n <userId>1088760496****</userId>\\n </contacts>\\n <contactGroups>\\n <name>张先生</name>\\n <description>默认联系人</description>\\n <contacts>\\"[\\\\\\"张先生\\\\\\",\\\\\\"王女士\\\\\\",\\\\\\"李先生\\\\\\"]\\"</contacts>\\n <userId>1088760496****</userId>\\n </contactGroups>\\n <eventSendGroup>AllContext</eventSendGroup>\\n <id>1</id>\\n <gmtCreate>1633071840000</gmtCreate>\\n <gmtModified>1633071850000</gmtModified>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetEventSubscriptionResponse>","errorExample":""}]', - 'title' => '获取事件订阅设置', - 'description' => '使用该接口需满足以下前提条件:'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": \\"f77d535b45405bd462b21caa3ee8****\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<CreateKillInstanceSessionTaskResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>f77d535b45405bd462b21caa3ee8****</Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</CreateKillInstanceSessionTaskResponse>","errorExample":""}]', + 'title' => '创建结束会话的任务', + 'description' => '- 本接口只适用于RDS MySQL和PolarDB MySQL版实例。'."\n" ."\n" .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 数据库实例已接入DAS。', - ], - 'GetAutonomousNotifyEventContent' => [ - 'summary' => '调用GetAutonomousNotifyEventContent接口,获取指定数据库实例自治事件的内容。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + ."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'hdm:CreateKillInstanceSessionTask', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateLatestDeadLockAnalysis' => [ + 'summary' => '创建最近死锁分析任务。', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '23868', - 'abilityTreeNodes' => [ - 'FEATUREhdmETIPZF', - ], + 'abilityTreeNodes' => ['FEATUREhdm7GLEEO'], ], 'parameters' => [ [ - 'name' => '__context', - 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], - ], - [ 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-18ff4a195d****', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'pc-bp1u5mas9exx7****'], ], [ - 'name' => 'SpanId', - 'in' => 'query', - 'schema' => [ - 'description' => '事件的唯一标识,您可调用[GetAutonomousNotifyEventsInRange](~~288371~~)接口查看返回参数中的SpanId。', - 'type' => 'string', - 'required' => true, - 'example' => '7e7b2774-95b8-4fa3-bd9c-0ab47cb7****', - ], + 'name' => 'NodeId', + 'in' => 'formData', + 'schema' => ['description' => '节点ID。'."\n" + ."\n" + .'> 对于PolarDB MySQL版实例,需要提供节点ID。', 'type' => 'string', 'required' => false, 'example' => 'pi-bp16v3824rt73****'], ], ], 'responses' => [ @@ -1724,492 +1035,1152 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Data' => [ - 'description' => '详细信息列表。', - 'type' => 'string', - 'example' => '{\\"taskId\\":\\"7e1ba595-0889-48ff-a6ff-010f54991d****\\",\\"taskType\\":\\"SQL_OPTIMIZE\\",\\"advisorId\\":\\"636dc5f34664dd56ff0****\\",\\"sqlId\\":\\"e2b1d6c1ee1bb29555a828b59f16****\\",\\"indexAdviceCount\\":1,\\"indexAdvices\\":[{\\"schemaName\\":\\"das\\",\\"tableName\\":\\"students\\",\\"indexName\\":\\"idx_name\\",\\"columns\\":[\\"name\\"],\\"unique\\":false,\\"ddlAddIndex\\":\\"ALTER TABLE `das`.`students` ADD INDEX `idx_name` (`name`)\\",\\"priority\\":0,\\"optimizeId\\":\\"96232794517277511\\"}],\\"tuningAdvices\\":[],\\"improvement\\":8127.25,\\"supportLevel\\":3,\\"priority\\":\\"HIGH\\"}', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => 'OpenAPI请求的ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], 'Success' => [ 'description' => '请求是否执行成功:'."\n" ."\n" .'- **true**:执行成功。'."\n" .'- **false**:执行失败。', - 'type' => 'string', + 'type' => 'boolean', + 'enumValueTitles' => ['执行成功' => 'true', '执行失败' => 'false'], + 'example' => 'true', + ], + 'Data' => [ + 'description' => '创建任务是否成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', + 'type' => 'boolean', + 'enumValueTitles' => ['执行成功' => 'true', '执行失败' => 'false'], 'example' => 'true', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Data\\": \\"{\\\\\\\\\\\\\\"taskId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"7e1ba595-0889-48ff-a6ff-010f54991d****\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"taskType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"SQL_OPTIMIZE\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"advisorId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"636dc5f34664dd56ff0****\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"sqlId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"e2b1d6c1ee1bb29555a828b59f16****\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"indexAdviceCount\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"indexAdvices\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"schemaName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"das\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"tableName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"students\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"indexName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"idx_name\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"columns\\\\\\\\\\\\\\":[\\\\\\\\\\\\\\"name\\\\\\\\\\\\\\"],\\\\\\\\\\\\\\"unique\\\\\\\\\\\\\\":false,\\\\\\\\\\\\\\"ddlAddIndex\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"ALTER TABLE `das`.`students` ADD INDEX `idx_name` (`name`)\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"priority\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"optimizeId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"96232794517277511\\\\\\\\\\\\\\"}],\\\\\\\\\\\\\\"tuningAdvices\\\\\\\\\\\\\\":[],\\\\\\\\\\\\\\"improvement\\\\\\\\\\\\\\":8127.25,\\\\\\\\\\\\\\"supportLevel\\\\\\\\\\\\\\":3,\\\\\\\\\\\\\\"priority\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"HIGH\\\\\\\\\\\\\\"}\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetAutonomousNotifyEventContentResponse>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Data>{\\"taskId\\":\\"7e1ba595-0889-48ff-a6ff-010f54991d****\\",\\"taskType\\":\\"SQL_OPTIMIZE\\",\\"advisorId\\":\\"636dc5f34664dd56ff0****\\",\\"sqlId\\":\\"e2b1d6c1ee1bb29555a828b59f16****\\",\\"indexAdviceCount\\":1,\\"indexAdvices\\":[{\\"schemaName\\":\\"das\\",\\"tableName\\":\\"students\\",\\"indexName\\":\\"idx_name\\",\\"columns\\":[\\"name\\"],\\"unique\\":false,\\"ddlAddIndex\\":\\"ALTER TABLE `das`.`students` ADD INDEX `idx_name` (`name`)\\",\\"priority\\":0,\\"optimizeId\\":\\"96232794517277511\\"}],\\"tuningAdvices\\":[],\\"improvement\\":8127.25,\\"supportLevel\\":3,\\"priority\\":\\"HIGH\\"}</Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetAutonomousNotifyEventContentResponse>","errorExample":""}]', - 'title' => '获取实例自治事件内容', - 'description' => '使用该接口需满足以下前提条件:'."\n" + 'title' => '创建最近死锁分析任务', + 'description' => '本接口用于创建最近死锁分析任务。DAS基于SHOW ENGINE INNODB STATUS返回的最近一次死锁日志进行分析。如果发生过多次死锁,DAS只会对最近一次死锁进行分析。详情请参见[最近死锁分析](~~2858236~~)。'."\n" ."\n" - .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 当您的实例接入DAS之后,DAS异常检测发现数据库相关的监控指标发生变化,就会触发快照抓取等通知类事件。'."\n" + .'使用该接口需满足以下前提条件:'."\n" ."\n" - .' '."\n" - .'>只有开启[自治中心](~~152139~~)才能获取通知事件的详情。', - ], - 'GetAutonomousNotifyEventsInRange' => [ - 'summary' => '调用GetAutonomousNotifyEventsInRange接口,获取指定类型或范围的通知事件。', - 'methods' => [ - 'post', - 'get', + .'- 目标数据库引擎为:RDS MySQL、自建MySQL、PolarDB MySQL版、PolarDB-X 2.0。'."\n" + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLatestDeadLockAnalysis'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:CreateLatestDeadLockAnalysis', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": true,\\n \\"Data\\": true\\n}","type":"json"}]', + ], + 'CreateQueryOptimizeTag' => [ + 'summary' => '调用CreateQueryOptimizeTag接口,对目标SQL进行打标。', + 'methods' => ['post'], + 'schemes' => ['https', 'http'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '23871', - 'abilityTreeNodes' => [ - 'FEATUREhdm56JBRC', - ], - ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => '__context', + 'name' => 'Engine', 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], + 'schema' => ['description' => '数据库引擎,取值:'."\n" + ."\n" + .'- **MySQL**:RDS MySQL'."\n" + .'- **PolarDBMySQL**:PolarDB MySQL版'."\n" + .'- **PostgreSQL**:RDS PostgreSQL', 'type' => 'string', 'required' => true, 'example' => 'MySQL'], ], [ - 'name' => 'InstanceId', + 'name' => 'SqlIds', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'rm-18ff4a195d****', - ], + 'schema' => ['description' => 'SQL模板ID,您可以调用[GetQueryOptimizeDataStats](~~405261~~)接口查询SQL模板ID。支持英文逗号(,)分隔传入多个模板ID,进行批量打标。', 'type' => 'string', 'required' => true, 'example' => '6068ce044e3dc9b903979672fb0b69df,d12515c015fc9f41a0778a9e1de0****'], ], [ - 'name' => 'StartTime', + 'name' => 'Tags', 'in' => 'query', 'schema' => [ - 'description' => '查询任务开始时间,格式为Unix时间戳,单位为毫秒。', + 'description' => 'SQL标签。支持英文逗号(,)分隔传入多个值。'."\n" + ."\n" + .'- **DAS\\_IMPORTANT**:重要SQL。'."\n" + .'- **DAS\\_NOT\\_IMPORTANT**:不重要SQL。'."\n" + .'- **USER\\_IGNORE**:无需优化。'."\n" + .'- **DAS\\_IN\\_PLAN**:排期优化。', 'type' => 'string', 'required' => true, - 'example' => '1568269711000', + 'enumValueTitles' => [], + 'example' => 'DAS_IN_PLAN,DAS_NOT_IMPORTANT', ], ], [ - 'name' => 'EndTime', + 'name' => 'Status', + 'in' => 'query', + 'schema' => ['description' => '设置请求参数**Tags**的状态:'."\n" + ."\n" + .'- **0**:清空请求参数**SqlIds**对应的全部标签,忽略请求参数**Tags**设置。'."\n" + .'- **1**:设置请求参数**SqlIds**对应的标签为请求参数**Tags**的值。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], + ], + [ + 'name' => 'Comments', 'in' => 'query', + 'schema' => ['description' => '备注。'."\n" + ."\n" + .'长度为1~300个字符。', 'type' => 'string', 'required' => false, 'example' => 'Slow SQL from offline synchronization. No optimization needed.'], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze1jdv45i7l6****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '查询任务结束时间,格式为Unix时间戳,单位为毫秒。'."\n" - .'>查询任务结束时间需晚于查询任务开始时间。', - 'type' => 'string', - 'required' => true, - 'example' => '1568265711221', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], + 'Data' => ['title' => 'Boolean', 'description' => '打标操作是否执行成功:'."\n" + ."\n" + .'- **true**:打标成功。'."\n" + .'- **false**:打标失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": true\\n}","errorExample":""},{"type":"xml","example":"<CreateQueryOptimizeTagResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n <Data>true</Data>\\n</CreateQueryOptimizeTagResponse>","errorExample":""}]', + 'title' => '对目标SQL进行打标', + 'description' => '- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 本接口适用的数据库引擎为:'."\n" + .' - RDS MySQL'."\n" + .' - PolarDB MySQL版'."\n" + .' - RDS PostgreSQL', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateQueryOptimizeTag'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'hdm:CreateQueryOptimizeTag', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'CreateRequestDiagnosis' => [ + 'summary' => '调用CreateRequestDiagnosis接口,发起SQL诊断请求。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'create'], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-0iwhhl8gx0ld6****'], + ], [ 'name' => 'NodeId', 'in' => 'query', - 'schema' => [ - 'description' => 'PolarDB的节点ID,您可以通过调用[DescribeDBClusters](~~98094~~)接口查看返回参数的DBNodeId。'."\n" - .'>仅支持PolarDB MySQL版实例。', - 'type' => 'string', - 'required' => false, - 'example' => 'r-x****-db-0', - ], + 'schema' => ['description' => '节点ID。'."\n" + .'> 对于PolarDB MySQL版、PolarDB PostgreSQL版(兼容Oracle)和云数据库MongoDB等集群实例,需要提供节点ID。', 'type' => 'string', 'required' => false, 'example' => '202****'], ], [ - 'name' => 'EventContext', + 'name' => 'Database', 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], + 'schema' => ['description' => '数据库名。', 'type' => 'string', 'required' => true, 'example' => 'das'], ], [ - 'name' => 'Level', + 'name' => 'Sql', 'in' => 'query', + 'schema' => ['description' => '待诊断的SQL。', 'type' => 'string', 'required' => true, 'example' => 'select * from test where name = \'mockUser\''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '指定事件紧急程度,当该字段设置时,MinLevel参数将无效。取值:'."\n" - ."\n" - .'- **Notice**:通知类事件。'."\n" - .'- **Optimization**:优化类事件。'."\n" - .'- **Warn**:警告类事件。'."\n" - .'- **Critical**:危机类事件。', - 'type' => 'string', - 'required' => false, - 'example' => 'Warn', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回的消息。'."\n" + ."\n" + .'> 请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'Data' => ['description' => '诊断ID,是诊断的唯一标识,后续用于查询诊断结果。', 'type' => 'string', 'example' => '61820b594664275c4429****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '800FBAF5-A539-5B97-A09E-C63AB2F7****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + ."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + ], + 'title' => '发起SQL诊断请求', + 'description' => '使用该接口需满足以下前提条件:'."\n" + ."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 本接口适用的数据库引擎为:'."\n" + ."\n" + .' - RDS MySQL'."\n" + .' - RDS PostgreSQL'."\n" + .' - RDS SQL Server'."\n" + .' - PolarDB MySQL版'."\n" + .' - PolarDB PostgreSQL版(兼容Oracle)'."\n" + .' - 云数据库MongoDB版'."\n" + ."\n" + .'> RDS PostgreSQL实例内核小版本为20221230及以上。查看和升级内核小版本,请参见[升级内核小版本](~~146895~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateRequestDiagnosis'], + ], + ], + 'ramActions' => [ [ - 'name' => 'MinLevel', - 'in' => 'query', - 'schema' => [ - 'description' => '最小事件紧急程度。取值:'."\n" - ."\n" - .'- **Notice**:通知类事件。'."\n" - .'- **Optimization**:优化类事件。'."\n" - .'- **Warn**:警告类事件。'."\n" - .'- **Critical**:危机类事件。', - 'type' => 'string', - 'required' => false, - 'example' => 'Notice', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'hdm:CreateRequestDiagnosis', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": \\"61820b594664275c4429****\\",\\n \\"RequestId\\": \\"800FBAF5-A539-5B97-A09E-C63AB2F7****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateRequestDiagnosisResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>61820b594664275c4429****</Data>\\n <RequestId>800FBAF5-A539-5B97-A09E-C63AB2F7****</RequestId>\\n <Success>true</Success>\\n</CreateRequestDiagnosisResponse>","errorExample":""}]', + ], + 'CreateSecurityIPGroup' => [ + 'summary' => '创建用户跨产品白名单模板', + 'path' => '', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], + 'security' => [ [ - 'name' => 'PageOffset', + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '247410', + 'abilityTreeNodes' => ['FEATUREhdmQULC0I'], + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'RegionName', 'in' => 'query', - 'schema' => [ - 'description' => '分页查询,页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], + 'allowEmptyValue' => false, + 'schema' => ['description' => '地域 ID。', 'type' => 'string', 'required' => true, 'example' => 'cn-beijing'], ], [ - 'name' => 'PageSize', + 'name' => 'GlobalIgName', 'in' => 'query', - 'schema' => [ - 'description' => '分页查询,每页大小。', - 'type' => 'string', - 'required' => false, - 'example' => '30', - ], + 'schema' => ['description' => 'IP白名单模板名称。IP白名单模板名称需满足如下要求:'."\n" + ."\n" + .'- 由小写字母、数字、下划线(_)组成。'."\n" + ."\n" + .'- 由字母开头、字母或数字结尾。'."\n" + ."\n" + .'- 长度为2~120个字符。', 'type' => 'string', 'required' => true, 'example' => 'test_123'], + ], + [ + 'name' => 'GIpList', + 'in' => 'query', + 'schema' => ['description' => '白名单模板内的IP地址。'."\n" + ."\n" + .'> 多个IP地址需要用英文逗号(,)分隔,不可重复,上限为1000个。', 'type' => 'string', 'required' => true, 'example' => '192.168.0.1'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], 'Data' => [ - 'description' => '详细信息列表,包括信息总数、错误码等。', + 'title' => 'ListResult<InstanceSSL>', + 'description' => 'ListResult<InstanceSSL>', 'type' => 'object', 'properties' => [ - 'Extra' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', - ], - 'List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'T' => [ - 'description' => '详细信息列表,包括信息总数、错误码等。', - 'type' => 'array', - 'items' => [ - 'description' => '详细信息列表。', - 'type' => 'string', - 'example' => '"T": []', - ], + 'GlobalSecurityIPGroup' => [ + 'description' => '跨产品白名单模板信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'SecurityIpType' => ['description' => 'IP类型', 'type' => 'string', 'example' => 'ipv4'], + 'RegionId' => ['description' => '地域 ID。'."\n" + ."\n" + .'示例值:'."\n" + .'cn-hangzhou', 'type' => 'string', 'example' => 'cn-shenzhen'], + 'GlobalIgName' => ['description' => 'IP白名单模板名称。IP白名单模板名称需满足如下要求:'."\n" + ."\n" + .'- 由小写字母、数字、下划线(_)组成。'."\n" + ."\n" + .'- 由字母开头、字母或数字结尾。'."\n" + ."\n" + .'- 长度为2~120个字符。', 'type' => 'string', 'example' => 'test'], + 'GlobalSecurityGroupId' => ['description' => 'IP白名单模板ID。', 'type' => 'string', 'example' => 'g-2uztsd6yvhmsqyjXXX'], + 'WhitelistNetType' => ['description' => '白名单的网络类型。', 'type' => 'string', 'example' => 'mix'], + 'GIpList' => ['description' => '白名单模板内的IP地址。'."\n" + ."\n" + .'> 多个IP地址需要用英文逗号隔开,所有IP白名单累积支持添加1000个IP地址或地址段。', 'type' => 'string', 'example' => '192.168.0.0/24'], ], + 'description' => '', ], ], - 'PageNo' => [ - 'description' => '页码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '每页最大记录数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'Total' => [ - 'description' => '总记录数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '4', - ], ], ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'Message' => ['description' => '请求返回的消息。'."\n" + ."\n" + .'> 请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'D578DB3C-06BF-54F2-A78F-C6C25Exxxxxx'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Data\\": {\\n \\"Extra\\": \\"None\\",\\n \\"List\\": {\\n \\"T\\": [\\n \\"\\\\\\"T\\\\\\": []\\"\\n ]\\n },\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10,\\n \\"Total\\": 4\\n },\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetAutonomousNotifyEventsInRangeResponse>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Data>\\n <List>\\n </List>\\n <PageNo>1</PageNo>\\n <PageSize>10</PageSize>\\n <Extra>None</Extra>\\n <Total>4</Total>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetAutonomousNotifyEventsInRangeResponse>","errorExample":""}]', - 'title' => '获取指定类型或范围的通知事件', - 'description' => '使用该接口需满足以下前提条件:'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'description' => '前提条件:'."\n" ."\n" .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 当您的实例接入DAS之后,DAS异常检测发现数据库相关的监控指标发生变化,就会触发快照抓取等通知类事件。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 仅开通了DAS企业版的数据库实例支持创建离线任务。DAS企业版各个版本支持的数据库和地域请参见[DAS产品系列及支持的功能](~~156204~~)。'."\n" ."\n" - .' '."\n" - .'>只有开启[自治中心](~~152139~~)才能获取通知事件的详情。', - ], - 'CreateDiagnosticReport' => [ - 'summary' => '调用CreateDiagnosticReport接口,创建诊断报告。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + .'接口限制:'."\n" + ."\n" + .'最大同时执行数量为10。', + 'title' => '跨产品白名单模板创建接口', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'hdm:CreateSecurityIPGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Data\\": {\\n \\"GlobalSecurityIPGroup\\": [\\n {\\n \\"SecurityIpType\\": \\"ipv4\\",\\n \\"RegionId\\": \\"cn-shenzhen\\",\\n \\"GlobalIgName\\": \\"test\\",\\n \\"GlobalSecurityGroupId\\": \\"g-2uztsd6yvhmsqyjXXX\\",\\n \\"WhitelistNetType\\": \\"mix\\",\\n \\"GIpList\\": \\"192.168.0.0/24\\"\\n }\\n ]\\n },\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"D578DB3C-06BF-54F2-A78F-C6C25Exxxxxx\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', + ], + 'CreateSqlLogTask' => [ + 'summary' => '创建明细数据异步任务。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '199695', + 'abilityTreeNodes' => ['FEATUREhdmFT57I0'], ], 'parameters' => [ [ - 'name' => 'DBInstanceId', + 'name' => 'InstanceId', + 'in' => 'formData', + 'schema' => ['description' => '数据库实例ID。', 'type' => 'string', 'required' => false, 'example' => 'pc-2ze8g2am97624****'], + ], + [ + 'name' => 'NodeId', + 'in' => 'formData', + 'schema' => ['description' => '节点ID。'."\n" + .'>该参数仅适用于集群版实例,可以选择查询指定节点离线任务。若不传该参数,默认返回主节点离线任务。', 'type' => 'string', 'required' => false, 'example' => 'pi-uf6k5f6g3912i****'], + ], + [ + 'name' => 'Type', + 'in' => 'formData', + 'schema' => ['description' => '任务类型'."\n" + ."\n" + .'- **Export**:导出任务。'."\n" + .'> **Export**支持的过滤参数及其取值请参考**请求参数补充说明**。'."\n" + .'- **Query**:查询任务。', 'type' => 'string', 'required' => false, 'example' => 'Export'], + ], + [ + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => '任务名称。', 'type' => 'string', 'required' => false, 'example' => 'SQL audit export 1'], + ], + [ + 'name' => 'Filters', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****', + 'description' => '筛选条件列表。', + 'type' => 'array', + 'items' => [ + 'description' => '筛选条件。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '过滤参数', 'description' => '过滤参数的名称。'."\n" + ."\n" + .'> 支持的过滤参数及其取值请参考**请求参数补充说明**。', 'type' => 'string', 'required' => false, 'example' => 'KeyWords'], + 'Value' => ['description' => '过滤参数的数值。', 'type' => 'string', 'required' => false, 'example' => 'select'], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 100, ], ], [ 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '创建任务开始时间,格式为Unix时间戳(UTC时间),单位为毫秒。', - 'type' => 'string', - 'required' => true, - 'example' => '1596177993000', - ], + 'in' => 'formData', + 'schema' => ['description' => '任务的开始时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1596177993000'."\n"], ], [ 'name' => 'EndTime', + 'in' => 'formData', + 'schema' => ['description' => '任务结束时间,格式为unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1608888296000'."\n"], + ], + [ + 'name' => 'Role', 'in' => 'query', + 'schema' => ['description' => 'PolarDB-X 2.0数据库实例节点信息。'."\n" + ."\n" + .'- **polarx_cn**:计算节点。'."\n" + ."\n" + .'- **polarx_dn**:数据节点。', 'type' => 'string', 'required' => false, 'example' => 'polarx_cn'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '创建任务结束时间,格式为Unix时间戳(UTC时间),单位为毫秒。'."\n" - .'>创建任务结束时间需晚于创建任务开始时间。', - 'type' => 'string', - 'required' => true, - 'example' => '1596177993001', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '83D9D59B-057A-54A9-BFF9-CF2B42F05645'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], + 'Data' => [ + 'title' => 'SqlLogTask', + 'description' => '返回数据。', + 'type' => 'object', + 'properties' => [ + 'TaskId' => ['description' => '任务ID。', 'type' => 'string', 'example' => '54f8041743ca3a9ac5cb9342d050527c'], + 'InstanceId' => ['title' => '实例标识', 'description' => '数据库实例ID。', 'type' => 'string', 'example' => 'pc-2ze8g2am97624****'], + 'Name' => ['title' => '任务别名', 'description' => '任务名称。', 'type' => 'string', 'example' => 'Export_test'], + 'Start' => ['title' => '查询开始时间', 'description' => '开始时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1596177993000'], + 'End' => ['title' => '查询结束时间', 'description' => '结束时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1608888296000'."\n"], + 'Status' => ['title' => '任务状态', 'description' => '任务状态。'."\n" + .'- **INIT**:待调度。'."\n" + .'- **RUNNING**:运行中。'."\n" + .'- **FAILED**:失败。'."\n" + .'- **CANCELED**:已取消。'."\n" + .'- **COMPLETED**:完成。'."\n" + ."\n" + .'> 当任务处于**COMPLETED**时,可以查看任务的结果。', 'type' => 'string', 'example' => 'COMPLETED'], + 'CreateTime' => ['title' => '任务创建时间', 'description' => '任务创建时间,格式为unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1681363254423'."\n"], + ], + ], + ], + 'description' => '', ], ], ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"83D9D59B-057A-54A9-BFF9-CF2B42F05645\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"TaskId\\": \\"54f8041743ca3a9ac5cb9342d050527c\\",\\n \\"InstanceId\\": \\"pc-2ze8g2am97624****\\",\\n \\"Name\\": \\"Export_test\\",\\n \\"Start\\": 1596177993000,\\n \\"End\\": 1608888296000,\\n \\"Status\\": \\"COMPLETED\\",\\n \\"CreateTime\\": 1681363254423\\n }\\n}","type":"json"}]', + 'title' => '创建DAS企业版离线任务', + 'description' => '前提条件:'."\n" + ."\n" + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 仅开通了DAS企业版的数据库实例支持创建离线任务。DAS企业版各个版本支持的数据库和地域请参见[DAS产品系列及支持的功能](~~156204~~)。'."\n" + ."\n" + .'接口限制:'."\n" + ."\n" + .'最大同时执行数量为10。', + 'requestParamsDescription' => '**Key**支持的参数和取值:'."\n" + .'- **KeyWords**:关键字,多个关键字间使用空格隔开。'."\n" + .'- **LogicalOperator**:关键字间的逻辑操作,取值为and或or。'."\n" + .'- **AccountName**:用户名,可以传递多个的,用逗号分开,上限为5。'."\n" + .'- **DbName**:数据库名称,可以传递多个的,用逗号分开,上限为5。'."\n" + .'- **HostAddress**:客户端IP地址,可以传递多个的,用逗号分开,上限为5。'."\n" + .'- **MaxConsume**:最大耗时,单位us。'."\n" + .'- **MinConsume**:最小耗时,单位us。'."\n" + .'- **MaxScanRows**:最大扫描行。'."\n" + .'- **MinScanRows**:最小扫描行。'."\n" + .'- **SqlType**:SQL类型,取值select、update、insert或delete。'."\n" + .'- **State**:执行结果,取值0(成功)或1(失败)。'."\n" + .'- **ThreadId**:线程ID。'."\n" + .'- **SortKey**:排序列名称,取值ScanRows(扫描行数)、UpdateRows(更新行数)、Consume(耗时)、ExecuteTime(执行时间)、ReturnRows(返回行数)、LockTime(锁等待时间)、Frows(PolarDB-X 2.0计算节点的拉取行数)、Scnt(PolarDB-X 2.0计算节点的DN请求数)、CpuTime(CPU执行时间)、PhysicalRead(物理读)。'."\n" + .'- **SortMethod**:排序方式,取值DESC(降序)、ASC(升序)。默认为DESC。'."\n" + .'- **TraceId**:PolarDB-X 2.0实例的跟踪ID。'."\n" + .'- **MinRows**:最小更新行数。'."\n" + .'- **MaxRows**:最大更新行数。'."\n" + .'- **MinScnt**:PolarDB-X 2.0计算节点(CN)的DN最小请求数。'."\n" + .'- **MaxScnt**:PolarDB-X 2.0计算节点(CN)的DN最大请求数。'."\n" + .'- **TrxId**:事务ID。'."\n" + .'- **Fail**:错误码。'."\n" + .'- **SqlId**:SQL ID。'."\n" + .'- **JobId**:通过异步任务ID进一步查询返回结果。'."\n" + .'- **Delimiter**:分隔符,支持的`|` `,` `$` `#` 四种。'."\n" + .'- **Columns**:**Type** = **Export**,任务类型为导出任务时,传入选择的导出列,导出列用空格隔开,可选的有'."\n" + .' - **columnDBName**:数据库'."\n" + .' - **columnThreadId**:线程ID'."\n" + .' - **columnAccountName**:用户'."\n" + .' - **columnHostAddress**:客户端IP'."\n" + .' - **columnSqlType**:sql类型'."\n" + .' - **columnState**:状态'."\n" + .' - **columnConsume**:耗时us'."\n" + .' - **columnUpdateRows**:更新行数'."\n" + .' - **columnScanRows**:扫描行数'."\n" + .' - **columnReturnRows**:返回行数'."\n" + .' - **columnLockTime**:锁等待时间'."\n" + .' - **columnLogicRead**:逻辑读'."\n" + .' - **columnPhysicSyncRead**:物理同步读'."\n" + .' - **columnPhysicASyncRead**:物理异步读'."\n" + .' - **columnOriginTime**:执行时间(us)'."\n" + .' - **columnExecuteTime**:执行时间(类似于 2024-07-30 11:00:00)', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateSqlLogTask'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'hdm:CreateSqlLogTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + ], + 'CreateStorageAnalysisTask' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze1jdv45i7l6****'], + ], + [ + 'name' => 'NodeId', + 'in' => 'query', + 'schema' => ['description' => '节点ID。'."\n" + .'对于MongoDB实例,通过该参数指定节点进行空间分析。调用[DescribeRoleZoneInfo](~~123802~~)接口,可以查询MongoDB实例各个节点的详细信息。'."\n" + ."\n" + .'- 当传入目标节点的**InsName**(节点ID)时,例如`d-bp1872fa24d5****`,调用该接口分析其对应的Hidden节点。'."\n" + .'- 当传入目标节点的`InsName#RoleId`时,例如`d-bp1872fa24d5****#299****5`,调用该接口分析指定的节点。'."\n" + ."\n" + .'><notice>对于MongoDB副本集实例,不传入此参数时,调用该接口会默认分析唯一的Hidden节点。对于MongoDB分片集群实例,推荐传入此参数,指定目标节点。</notice>', 'type' => 'string', 'required' => false, 'example' => 'd-bp1872fa24d5****'], + ], + [ + 'name' => 'DbName', + 'in' => 'query', + 'schema' => ['description' => '数据库名。传入该参数时,分析指定数据库的空间使用情况。', 'type' => 'string', 'required' => false, 'example' => 'testdb01'], + ], + [ + 'name' => 'TableName', + 'in' => 'query', + 'schema' => ['description' => '表名。传入该参数时,分析指定数据库中指定表的空间使用情况。传入该参数时,必须同时传入**DbName**,指定该表所属的数据库。', 'type' => 'string', 'required' => false, 'example' => 'test_table'], + ], + ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'ac544623-f6ad-45fd-9a74-9be3db65****', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ 'description' => '返回的数据。', - 'type' => 'string', - 'example' => '70af71852fcdf2c5dc7b90596e2cf05b', - ], - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', + 'type' => 'object', + 'properties' => [ + 'TaskId' => ['description' => '任务ID。', 'type' => 'string', 'example' => '910f83f4b96df0524ddc5749f61539f8'], + 'CreateTaskSuccess' => ['description' => '创建任务是否成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'false'], + 'ErrorMessage' => ['description' => '创建任务失败时的错误提示。', 'type' => 'string', 'example' => 'unknown error'], + ], ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '创建空间分析任务', + 'summary' => '调用CreateStorageAnalysisTask接口,创建空间分析任务,获取数据库及表的空间使用数据。', + 'description' => '- 本接口仅适用于RDS MySQL、PolarDB MySQL版和MongoDB实例。'."\n" + .'- 对于RDS MySQL和PolarDB MySQL版实例,本接口对应于旧版空间分析功能,该接口生成的任务无法在DAS控制台新版空间分析页面查看。如有需要查看任务及结果,请调用接口获取数据后自行保存。'."\n" + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateStorageAnalysisTask'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:CreateStorageAnalysisTask', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"ac544623-f6ad-45fd-9a74-9be3db65****\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": \\"70af71852fcdf2c5dc7b90596e2cf05b\\",\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateDiagnosticReportResponse>\\n <RequestId>ac544623-f6ad-45fd-9a74-9be3db65****</RequestId>\\n <Message>Successful</Message>\\n <Data>70af71852fcdf2c5dc7b90596e2cf05b</Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</CreateDiagnosticReportResponse>","errorExample":""}]', - 'title' => '创建诊断报告', - 'description' => '使用该接口需满足以下前提条件:'."\n" - ."\n" - .'- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于4.3.3,建议使用最新版本。'."\n" - .'- 使用DAS的SDK的版本为1.0.3或以上。'."\n" - .'- 在调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 本接口适用的数据库引擎为:'."\n" - ."\n" - .' - RDS MySQL'."\n" - .' - PolarDB MySQL版'."\n" - .' - Redis', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"TaskId\\": \\"910f83f4b96df0524ddc5749f61539f8\\",\\n \\"CreateTaskSuccess\\": false,\\n \\"ErrorMessage\\": \\"unknown error\\"\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": true\\n}","type":"json"}]', ], - 'DescribeDiagnosticReportList' => [ - 'summary' => '调用DescribeDiagnosticReportList接口,查询诊断报告。', - 'methods' => [ - 'post', - 'get', + 'DeleteCloudBenchTask' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ + [ + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => ['description' => '任务ID,您可通过[DescribeCloudBenchTasks](~~230670~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'e5cec704-0518-430f-8263-76f4dcds****'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'Data' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + ], + 'title' => '删除压测任务', + 'summary' => '调用DeleteCloudBenchTask接口,删除压测任务。', + 'description' => '数据库自治服务DAS提供智能压测功能,帮助您验证您的实例规格是否需要扩容,有效应对业务流量高峰。更多信息,请参见[智能压测](~~155068~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteCloudBenchTask'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'hdm:DeleteCloudBenchTask', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": \\"None\\",\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteCloudBenchTaskResponse>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Message>Successful</Message>\\n <Code>200</Code>\\n <Success>true</Success>\\n</DeleteCloudBenchTaskResponse>","errorExample":""}]', + ], + 'DeleteSecurityIPGroup' => [ + 'summary' => '删除用户跨产品白名单模板', + 'path' => '', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '247410', + 'abilityTreeNodes' => ['FEATUREhdmQULC0I'], + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'DBInstanceId', + 'name' => 'RegionName', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****', - ], + 'allowEmptyValue' => false, + 'schema' => ['description' => '地域 ID。', 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai'], ], [ - 'name' => 'PageNo', + 'name' => 'GlobalSecurityGroupId', 'in' => 'query', + 'schema' => ['description' => 'IP白名单模板ID。', 'type' => 'string', 'required' => true, 'example' => 'g-rcge12hbfooad3m****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', - 'type' => 'string', - 'required' => false, - 'example' => '1', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '状态码。', 'type' => 'string', 'example' => '200'], + 'Data' => [ + 'title' => 'ListResult<InstanceSSL>', + 'description' => 'ListResult<InstanceSSL>', + 'type' => 'object', + 'properties' => [ + 'GlobalSecurityIPGroup' => [ + 'description' => '跨产品白名单模板信息。', + 'type' => 'array', + 'items' => [ + 'description' => '跨产品白名单模板信息。', + 'type' => 'object', + 'properties' => [ + 'GlobalSecurityGroupId' => ['description' => 'IP白名单模板ID。', 'type' => 'string', 'example' => 'g-1no2rzybnqcv0m****'."\n"], + ], + ], + ], + ], + ], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'description' => '- 本接口用于删除[CreateCloudBenchTasks](~~230665~~)接口创建的智能压测任务中已释放的DBgateway元数据。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + ."\n" + .'> 当DBGateway与接入点超过20秒无心跳时,此DBGateway为停止状态。', + 'title' => '跨产品白名单模板删除接口', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'hdm:DeleteSecurityIPGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Data\\": {\\n \\"GlobalSecurityIPGroup\\": [\\n {\\n \\"GlobalSecurityGroupId\\": \\"g-1no2rzybnqcv0m****\\\\n\\"\\n }\\n ]\\n },\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', + ], + 'DeleteStopGateway' => [ + 'summary' => '调用DeleteStopGateway接口,删除已停止的DBGateway元数据。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'PageSize', + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ + [ + 'name' => 'GatewayId', 'in' => 'query', + 'schema' => ['description' => 'DBGateway的ID,是DBGateway的唯一标识。可通过[DescribeCloudbenchTask](~~230669~~)接口获取,返回的**ClientGatewayId**字段值即为DBGateway的ID。', 'type' => 'string', 'required' => true, 'example' => '22938c83fcfbced4b4869b9695e3****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '每页最大记录数,默认值为10。', - 'type' => 'string', - 'required' => false, - 'example' => '10', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'Data' => ['description' => 'DBGateway元数据删除结果:'."\n" + ."\n" + .'- **0**:执行成功。'."\n" + .'- **-1**:系统错误。'."\n" + .'- **-2**:DBGateway不存在。'."\n" + .'- **-3**:DBGateway未停止,无法删除元数据。'."\n" + .'- **-4**:删除元数据信息失败。'."\n", 'type' => 'string', 'example' => '0'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'FC6C0929-29E1-59FD-8DFE-70D9D41E****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + ], + 'title' => '删除已停止的DBGateway元数据', + 'description' => '- 本接口用于删除[CreateCloudBenchTasks](~~230665~~)接口创建的智能压测任务中已释放的DBgateway元数据。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + ."\n" + .'> 当DBGateway与接入点超过20秒无心跳时,此DBGateway为停止状态。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteStopGateway'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'hdm:DeleteStopGateway', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": \\"0\\",\\n \\"RequestId\\": \\"FC6C0929-29E1-59FD-8DFE-70D9D41E****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteStopGatewayResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>0</Data>\\n <RequestId>FC6C0929-29E1-59FD-8DFE-70D9D41E****</RequestId>\\n <Success>true</Success>\\n</DeleteStopGatewayResponse>","errorExample":""}]', + ], + 'DescribeAuditLogs' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '212859', + 'abilityTreeNodes' => ['FEATUREhdmQULC0I'], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'Lang', + 'in' => 'query', + 'schema' => ['description' => '请求和接收消息的语言类型,默认为zh_cn。取值:'."\n" + ."\n" + .'- zh_cn:中文。'."\n" + .'- en_us:英文。', 'type' => 'string', 'required' => false, 'example' => 'zh-CN'], + ], + [ + 'name' => 'UserName', + 'in' => 'query', + 'schema' => ['description' => '用户名', 'type' => 'string', 'required' => false, 'example' => 'admin'], + ], + [ + 'name' => 'ClientIp', + 'in' => 'query', + 'schema' => ['description' => '请求客户端 IP。', 'type' => 'string', 'required' => false, 'example' => '11.26.118.7'], + ], + [ + 'name' => 'ClientUa', + 'in' => 'query', + 'schema' => ['description' => '客户端类型。', 'type' => 'string', 'required' => false, 'example' => 'mysql'], + ], + [ + 'name' => 'InstanceName', + 'in' => 'query', + 'schema' => ['description' => '资产实例名称', 'type' => 'string', 'required' => false, 'example' => 'rm-t4ni1cezz5y3xxxx'], + ], + [ + 'name' => 'DatabaseName', + 'in' => 'query', + 'schema' => ['description' => '数据库的名称。', 'type' => 'string', 'required' => false, 'example' => 'TestDB'], + ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '查询任务开始时间,格式为Unix时间戳(UTC时间),单位为毫秒。', - 'type' => 'string', - 'required' => true, - 'example' => '1668398892000', - ], + 'schema' => ['description' => '告警日志起始时间,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1608888296000'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '查询任务结束时间,格式为Unix时间戳,单位为毫秒。'."\n" - .'> 查询任务结束时间需晚于查询任务开始时间。', - 'type' => 'string', - 'required' => true, - 'example' => '1668420492000', - ], + 'schema' => ['description' => '告警日志结束时间,以毫秒为单位的 unix 时间戳。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '15682887991222'], + ], + [ + 'name' => 'ProductCode', + 'in' => 'query', + 'schema' => ['description' => '数据资产所属的产品名称。取值:**RDS、PolarDB、PolarDB-X 2.0**等。', 'type' => 'string', 'required' => false, 'example' => 'RDS'], + ], + [ + 'name' => 'ProductId', + 'in' => 'query', + 'schema' => ['description' => '数据对象所属的产品名称对应的 ID。取值:'."\n" + ."\n" + .'- 3:ADB-MYSQL'."\n" + .'- 5:RDS'."\n" + .'- 7:PolarDB-X'."\n" + .'- 8:PolarDB'."\n" + .'- 9:ADB-PG'."\n" + .'- 11:MongoDB'."\n" + .'- 25:Redis', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '5'], + ], + [ + 'name' => 'SqlText', + 'in' => 'query', + 'schema' => ['description' => 'SQL 语句内容。', 'type' => 'string', 'required' => false, 'example' => 'SELECT * FROM test where name = \'das\''], + ], + [ + 'name' => 'ExecuteTimeRange', + 'in' => 'query', + 'schema' => ['description' => '执行时间的范围。', 'type' => 'string', 'required' => false, 'example' => 'in[1000 2000]'], + ], + [ + 'name' => 'EffectRowRange', + 'in' => 'query', + 'schema' => ['description' => '影响行数范围。', 'type' => 'string', 'required' => false, 'example' => 'in[1 33]'], + ], + [ + 'name' => 'RuleID', + 'in' => 'query', + 'schema' => ['description' => '审计规则id。', 'type' => 'string', 'required' => false, 'example' => '9953411'], + ], + [ + 'name' => 'RuleName', + 'in' => 'query', + 'schema' => ['description' => '审计规则名称。', 'type' => 'string', 'required' => false, 'example' => 'test_rule'], + ], + [ + 'name' => 'OperateType', + 'in' => 'query', + 'schema' => ['description' => '操作类型。', 'type' => 'string', 'required' => false, 'example' => 'Insert'], + ], + [ + 'name' => 'OssObjectKey', + 'in' => 'query', + 'schema' => ['description' => 'OSS存储对象的key值。', 'type' => 'string', 'required' => false, 'example' => 'N.A'], + ], + [ + 'name' => 'AsyncRequestId', + 'in' => 'query', + 'schema' => ['description' => '请求id。', 'type' => 'string', 'required' => false, 'example' => '2c548e83-1473-4fda-b3dc-5a189074ead5'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每页最大记录数,默认值为10。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30'], + ], + [ + 'name' => 'CurrentPage', + 'in' => 'query', + 'schema' => ['description' => '当前页数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '3'], + ], + [ + 'name' => 'RuleCategory', + 'in' => 'query', + 'schema' => ['description' => '规则类型。', 'type' => 'string', 'required' => false, 'example' => '10'], + ], + [ + 'name' => 'LoadWhiteList', + 'in' => 'query', + 'schema' => ['description' => '是否加载白名单状态。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'IpType', + 'in' => 'query', + 'schema' => ['description' => '网络类型。枚举类型,取值:'."\n" + ."\n" + .'- **default**(默认值):非阿里云服务'."\n" + ."\n" + .'- **aliyun**: 阿里云服务', 'type' => 'string', 'required' => false, 'example' => 'aliyun'], + ], + [ + 'name' => 'LogSource', + 'in' => 'query', + 'schema' => ['description' => '数据来源', 'type' => 'string', 'required' => false, 'example' => 'SLOW_SQL'], + ], + [ + 'name' => 'RuleAggQuery', + 'in' => 'query', + 'schema' => ['description' => '是否聚合查询', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => ['description' => '规则ID', 'type' => 'string', 'required' => false, 'example' => '867028'], ], ], 'responses' => [ @@ -2217,294 +2188,349 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'D00DB161-FEF6-5428-B37A-8D29A4C2****', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'Synchro' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', - ], - 'Data' => [ - 'description' => '返回的数据:'."\n" - ."\n" - .'- **total**:数据量。'."\n" - .'- **score**:诊断分数。'."\n" - .'- **diagnosticTime**:诊断生成时间(UTC 时间)。'."\n" - .'- **startTime**:查询开始时间(UTC 时间)。'."\n" - .'- **endTime**:查询结束时间(UTC 时间)。', - 'type' => 'string', - 'example' => '{ "total": 1, "list": [ { "score": 100, "diagnosticTime": "2022-11-14T08:17:00Z", "startTime": "2022-11-14T07:16:59Z", "endTime": "2022-11-14T08:16:59Z" } ] }', - ], - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', + 'AsyncRequestId' => ['description' => '请求id。', 'type' => 'string', 'example' => '3926fba5-1774-44f4-af2d-ac7b33e86c3b'], + 'CurrentPage' => ['description' => '当前页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '分页查询,每页大小。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A7021857-AFD9-5AD6-979D-AA7DFC5AFADF'], + 'TotalCount' => ['description' => '总的记录数(仅 Redis 引擎有效)', 'type' => 'integer', 'format' => 'int32', 'example' => '12'], + 'Items' => [ + 'description' => 'SQL日志记录中的客户端IP'."\n" + .'SQL日志记录中客户端的IP地址', + 'type' => 'array', + 'items' => [ + 'description' => '物理异步读。', + 'type' => 'object', + 'properties' => [ + 'CreationTime' => ['description' => '告警时间,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1536751124000'], + 'WarnLevel' => ['description' => '危险等级。'."\n" + .'- **1**:低危。'."\n" + .'- **2**:中危。'."\n" + .'- **3**:高危。', 'type' => 'string', 'example' => '1'], + 'ClientPort' => ['description' => '查询中客户端端口号', 'type' => 'string', 'example' => '53815'], + 'TableName' => ['description' => '查询中使用的表名', 'type' => 'string', 'example' => 'it_table'], + 'EffectRow' => ['description' => '影响行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'PackageName' => ['description' => 'MaxCompute包名称。', 'type' => 'string', 'example' => 'test01'], + 'UserId' => ['description' => '用户 UID。', 'type' => 'string', 'example' => '19********94'], + 'Message' => ['description' => '原始日志内容。', 'type' => 'string', 'example' => 'success'], + 'RuleId' => ['description' => '审计规则 id。', 'type' => 'string', 'example' => '9953411'], + 'OperateType' => ['description' => '操作类型。', 'type' => 'string', 'example' => 'Drop'], + 'LogTime' => ['description' => '日志执行时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1751870592000'], + 'WarnLevelName' => ['description' => '危险等级名称。'."\n" + .'- 低危。'."\n" + .'- 中危。'."\n" + .'- 高危。', 'type' => 'string', 'example' => '1'], + 'InstanceName' => ['description' => '实例别名。', 'type' => 'string', 'example' => 'test-instance-003'], + 'DatabaseName' => ['description' => '数据库名称。', 'type' => 'string', 'example' => 'chngc_b2b_migration_sh'], + 'OssObjectKey' => ['description' => 'OSS存储对象的key值。', 'type' => 'string', 'example' => 'N.A'], + 'ExecuteStatus' => ['description' => '执行状态:0:未成功 1:执行成功', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'ProductId' => ['description' => '数据对象所属的产品名称对应的 ID。取值:'."\n" + ."\n" + .'- 3:ADB-MYSQL'."\n" + .'- 5:RDS'."\n" + .'- 7:PolarDB-X'."\n" + .'- 8:PolarDB'."\n" + .'- 9:ADB-PG'."\n" + .'- 11:MongoDB'."\n" + .'- 25:Redis', 'type' => 'integer', 'format' => 'int64', 'example' => '5'], + 'ExecuteTime' => ['description' => '执行时长,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1751870592000'], + 'UserName' => ['description' => '用户名', 'type' => 'string', 'example' => 'admin'], + 'InstanceDescription' => ['description' => '数据资产实例的描述信息。', 'type' => 'string', 'example' => 'instance dscription'], + 'RuleName' => ['description' => '审计规则名称。', 'type' => 'string', 'example' => 'name'], + 'ColumnName' => ['description' => '列名。', 'type' => 'string', 'example' => 'ds'], + 'ClientIp' => ['description' => '查询中的客户端IP地址', 'type' => 'string', 'example' => '100.104.16.251'], + 'ClientUa' => ['description' => '客户端类型。', 'type' => 'string', 'example' => 'mysql'], + 'Id' => ['description' => '主键ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'ProductCode' => ['description' => '数据资产所属的产品名称。取值:RDS、PolarDB、PolarDB-X 2.0等。', 'type' => 'string', 'example' => 'RDS'], + 'SqlText' => ['description' => 'SQL语句。', 'type' => 'string', 'example' => 'select * from test03'], + 'InWhiteList' => ['description' => '告警是否在加白列表。', 'type' => 'boolean', 'example' => 'True'], + 'IpType' => ['description' => '网络类型。枚举类型,取值:'."\n" + ."\n" + .'**default**(默认值):非阿里云服务'."\n" + ."\n" + .'**aliyun**: 阿里云服务', 'type' => 'string', 'example' => 'aliyun'], + 'RuleCategory' => ['description' => '规则类型。', 'type' => 'string', 'example' => '10'], + 'LogSource' => ['description' => '数据来源', 'type' => 'string', 'example' => 'SLOW_SQL'], + 'InstanceAuditStatus' => ['description' => '实例审计状态', 'type' => 'string', 'example' => '2'], + ], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D00DB161-FEF6-5428-B37A-8D29A4C2****\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Synchro\\": \\"None\\",\\n \\"Data\\": \\"{ \\\\\\"total\\\\\\": 1, \\\\\\"list\\\\\\": [ { \\\\\\"score\\\\\\": 100, \\\\\\"diagnosticTime\\\\\\": \\\\\\"2022-11-14T08:17:00Z\\\\\\", \\\\\\"startTime\\\\\\": \\\\\\"2022-11-14T07:16:59Z\\\\\\", \\\\\\"endTime\\\\\\": \\\\\\"2022-11-14T08:16:59Z\\\\\\" } ] }\\",\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDiagnosticReportListResponse>\\n <RequestId>D00DB161-FEF6-5428-B37A-8D29A4C2****</RequestId>\\n <Message>Successful</Message>\\n <Data>\\n <total>1</total>\\n <list>\\n <score>100</score>\\n <diagnosticTime>2022-11-14T08:17:00Z</diagnosticTime>\\n <startTime>2022-11-14T07:16:59Z</startTime>\\n <endTime>2022-11-14T08:16:59Z</endTime>\\n </list>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</DescribeDiagnosticReportListResponse>","errorExample":""}]', - 'title' => '查询诊断报告', + 'title' => '查询审计告警日志', + 'summary' => '本接口一般用于数据审计告警日志列表查询,便于告警搜索和告警处理。', 'description' => '使用该接口需满足以下前提条件:'."\n" ."\n" .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 在调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 本接口适用的数据库引擎为:'."\n" - ."\n" - .' - RDS MySQL'."\n" - .' - PolarDB MySQL版'."\n" - .' - Redis', - ], - 'GetDBInstanceConnectivityDiagnosis' => [ - 'summary' => '获取用户输入IP地址到指定数据库实例的网络连通性诊断结果。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"AsyncRequestId\\": \\"3926fba5-1774-44f4-af2d-ac7b33e86c3b\\",\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"A7021857-AFD9-5AD6-979D-AA7DFC5AFADF\\",\\n \\"TotalCount\\": 12,\\n \\"Items\\": [\\n {\\n \\"CreationTime\\": 1536751124000,\\n \\"WarnLevel\\": \\"1\\",\\n \\"ClientPort\\": \\"53815\\",\\n \\"TableName\\": \\"it_table\\",\\n \\"EffectRow\\": 10,\\n \\"PackageName\\": \\"test01\\",\\n \\"UserId\\": \\"19********94\\",\\n \\"Message\\": \\"success\\",\\n \\"RuleId\\": \\"9953411\\",\\n \\"OperateType\\": \\"Drop\\",\\n \\"LogTime\\": 1751870592000,\\n \\"WarnLevelName\\": \\"1\\",\\n \\"InstanceName\\": \\"test-instance-003\\",\\n \\"DatabaseName\\": \\"chngc_b2b_migration_sh\\",\\n \\"OssObjectKey\\": \\"N.A\\",\\n \\"ExecuteStatus\\": 1,\\n \\"ProductId\\": 5,\\n \\"ExecuteTime\\": 1751870592000,\\n \\"UserName\\": \\"admin\\",\\n \\"InstanceDescription\\": \\"instance dscription\\",\\n \\"RuleName\\": \\"name\\",\\n \\"ColumnName\\": \\"ds\\",\\n \\"ClientIp\\": \\"100.104.16.251\\",\\n \\"ClientUa\\": \\"mysql\\",\\n \\"Id\\": 1,\\n \\"ProductCode\\": \\"RDS\\",\\n \\"SqlText\\": \\"select * from test03\\",\\n \\"InWhiteList\\": true,\\n \\"IpType\\": \\"aliyun\\",\\n \\"RuleCategory\\": \\"10\\",\\n \\"LogSource\\": \\"SLOW_SQL\\",\\n \\"InstanceAuditStatus\\": \\"2\\"\\n }\\n ]\\n}","type":"json"}]', + ], + 'DescribeAutoScalingConfig' => [ + 'summary' => '调用DescribeAutoScalingConfig接口,查询实例弹性伸缩功能配置信息。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'title' => '实例ID', - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****', - ], - ], - [ - 'name' => 'SrcIp', - 'in' => 'query', - 'schema' => [ - 'title' => '源IP', - 'description' => '源IP地址。', - 'type' => 'string', - 'required' => true, - 'example' => '47.100.XX.XX', - ], + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'pc-2ze1prap1k46r****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回信息列表。', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], 'Data' => [ - 'description' => '详细信息列表。', + 'description' => '实例弹性伸缩功能配置信息。', 'type' => 'object', 'properties' => [ - 'instanceId' => [ - 'title' => '实例ID', - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze8g2am97624****', + 'Spec' => [ + 'description' => '规格弹性伸缩功能配置信息。', + 'type' => 'object', + 'properties' => [ + 'Upgrade' => ['description' => '规格自动扩容是否开启:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'CpuUsageUpperThreshold' => ['description' => '触发规格自动扩容的CPU平均利用率阈值,单位为%。', 'type' => 'integer', 'format' => 'int32', 'example' => '70'], + 'MemUsageUpperThreshold' => ['description' => '触发规格自动扩容的内存平均利用率阈值,单位为%。', 'type' => 'integer', 'format' => 'int32', 'example' => '70'], + 'MaxSpec' => ['description' => '自动扩容的规格上限。详情请参见各数据库实例的产品规格文档:'."\n" + .'<props="china">'."\n" + ."\n" + .'- PolarDB MySQL版的集群版请参见[计算节点规格](~~102542~~)。'."\n" + .'- RDS MySQL高可用系列云盘版请参见[产品规格](~~276974~~)。'."\n" + .'- Redis社区云盘版请参见[实例规格](~~144986~~)。'."\n" + ."\n" + .'</props>'."\n" + ."\n" + .'<props="intl">'."\n" + ."\n" + .'- PolarDB MySQL版的集群版请参见[计算节点规格](~~102542~~)。'."\n" + .'- RDS MySQL高可用系列云盘版请参见[产品规格](~~276974~~)。'."\n" + ."\n" + .'</props>', 'type' => 'string', 'example' => 'polar.mysql.x8.12xlarge'], + 'MaxReadOnlyNodes' => ['description' => '实例只读节点数的最大值。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'ObservationWindowSize' => ['description' => '观测窗口。 返回值由数值和时间单位后缀组成,其中时间单位后缀含义如下:'."\n" + ."\n" + .'- **s**:表示秒。'."\n" + .'- **m**:表示分钟。'."\n" + .'- **h**:表示小时。'."\n" + .'- **d**:表示天。 '."\n" + ."\n" + .'> 例如,返回**5m**表示5分钟。', 'type' => 'string', 'example' => '5m'], + 'CoolDownTime' => ['description' => '静默期。返回值由数值和时间单位后缀组成,其中时间单位后缀含义如下:'."\n" + ."\n" + .'- **s**:表示秒。'."\n" + .'- **m**:表示分钟。'."\n" + .'- **h**:表示小时。'."\n" + .'- **d**:表示天。 '."\n" + ."\n" + .'> 例如,返回**5m**表示5分钟。', 'type' => 'string', 'example' => '5m'], + 'Downgrade' => ['description' => '规格自动回缩是否开启:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + ], ], - 'success' => [ - 'title' => '是否检测通过', - 'description' => '是否检测通过:'."\n" - ."\n" - .'- **true**:检测通过。'."\n" - .'- **false**:检测不通过。', - 'type' => 'boolean', - 'enumValueTitles' => [], - 'example' => 'false', + 'Storage' => [ + 'description' => '实例存储自动扩容功能配置信息。', + 'type' => 'object', + 'properties' => [ + 'Upgrade' => ['description' => '存储自动扩容是否开启:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'DiskUsageUpperThreshold' => ['description' => '触发存储自动扩容的存储空间平均利用率阈值,单位为%。', 'type' => 'integer', 'format' => 'int32', 'example' => '70'], + 'MaxStorage' => ['description' => '存储空间上限,单位为GB。', 'type' => 'integer', 'format' => 'int32', 'example' => '32000'], + ], ], - 'failType' => [ - 'title' => '异常类型', - 'description' => '异常类型:'."\n" - ."\n" - .'- **0**:用户可自助处理的。'."\n" - .'- **1**:需要联系值班人员处理的。', - 'type' => 'string', - 'example' => '0', + 'Resource' => [ + 'description' => '实例本地资源弹性伸缩功能配置信息。', + 'type' => 'object', + 'properties' => [ + 'Enable' => ['description' => '本地资源弹性伸缩是否开启:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'CpuUsageUpperThreshold' => ['description' => '触发本地资源自动扩容的CPU平均利用率阈值,单位为%。', 'type' => 'integer', 'format' => 'int32', 'example' => '70'], + 'CpuStep' => ['description' => 'CPU扩容步长。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'UpgradeObservationWindowSize' => ['description' => '扩容观测窗口。返回值由数值和时间单位后缀组成,其中时间单位后缀含义如下:'."\n" + ."\n" + .'- **s**:表示秒。'."\n" + .'- **m**:表示分钟。'."\n" + .'- **h**:表示小时。'."\n" + .'- **d**:表示天。 '."\n" + ."\n" + .'> 例如,返回**5m**表示5分钟。', 'type' => 'string', 'example' => '5m'], + 'DowngradeObservationWindowSize' => ['description' => '缩容观测窗口。返回值由数值和时间单位后缀组成,其中时间单位后缀含义如下:'."\n" + ."\n" + .'- **s**:表示秒。'."\n" + .'- **m**:表示分钟。'."\n" + .'- **h**:表示小时。'."\n" + .'- **d**:表示天。 '."\n" + ."\n" + .'> 例如,返回**5m**表示5分钟。', 'type' => 'string', 'example' => '5m'], + ], ], - 'connCheckErrorCode' => [ - 'title' => '异常检测项', - 'description' => '异常检测项:'."\n" - ."\n" - .'- **SRC\\_IP\\_NOT\\_IN\\_USER\\_WHITELIST**:源IP地址没有配置在用户白名单中。'."\n" - .'- **VIP\\_NOT\\_EXISTS**:VIP对应的ALB实例不存在。'."\n" - .'- **RS\\_NOT\\_EXISTS**:RS不正常挂载。'."\n" - .'- **VIP\\_TUNNEL\\_ID\\_NOT\\_CONSISTENT**:VPC类型VIP使用的TUNNEL ID与VPC对应的实际TUNNEL ID不一致。'."\n" - .'- **VIP\\_VPC\\_CLOUD\\_INSTANCE\\_NOT\\_EXISTS**:VPC类型VIP不存在。'."\n" - .'- **VIP\\_IS\\_NOT\\_NGLB**:VIP关闭了NGLB模式。'."\n" - .'- **CUSTINS\\_NOT\\_ASSOCIATE\\_ECS\\_SECURITY\\_GROUP**:实例没有关联安全组。'."\n" - .'- **SRC\\_IP\\_NOT\\_IN\\_USER\\_WHITELIST**:源IP地址没有配置在用户白名单中。'."\n" - .'- **SRC\\_IP\\_NOT\\_IN\\_ADMIN\\_WHITELIST**:源IP地址没有配置在管理机白名单中。'."\n" - .'- **SRC\\_IP\\_NOT\\_IN\\_ECS\\_SECURITY\\_GROUP**:源IP地址没有配置在实例关联的安全组中。'."\n" - .'- **VPC\\_INSTANCE\\_IP\\_NOT\\_WORKING\\_STATUS**:VPC IP地址状态异常。', - 'type' => 'string', - 'example' => 'SRC_IP_NOT_IN_USER_WHITELIST', + 'Shard' => [ + 'description' => '实例分片弹性伸缩功能配置信息。', + 'type' => 'object', + 'properties' => [ + 'Upgrade' => ['description' => '自动增加分片是否开启:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n", 'type' => 'boolean', 'example' => 'true'], + 'MemUsageUpperThreshold' => ['description' => '触发自动增加分片的内存平均利用率阈值,单位为%。', 'type' => 'integer', 'format' => 'int32', 'example' => '70'], + 'MaxShards' => ['description' => '实例总分片数的最大值。', 'type' => 'integer', 'format' => 'int32', 'example' => '16'], + 'UpgradeObservationWindowSize' => ['description' => '自动增加分片观测窗口。返回值由数值和时间单位后缀组成,其中时间单位后缀含义如下:'."\n" + ."\n" + .'- **s**:表示秒。'."\n" + .'- **m**:表示分钟。'."\n" + .'- **h**:表示小时。'."\n" + .'- **d**:表示天。 '."\n" + ."\n" + .'> 例如,返回**5m**表示5分钟。', 'type' => 'string', 'example' => '5m'], + 'Downgrade' => ['description' => '自动减少分片是否开启:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n", 'type' => 'boolean', 'example' => 'true'], + 'MemUsageLowerThreshold' => ['description' => '触发自动减少分片的内存平均利用率阈值,单位为%。', 'type' => 'integer', 'format' => 'int32', 'example' => '30'], + 'MinShards' => ['description' => '实例总分片数的最小值。', 'type' => 'integer', 'format' => 'int32', 'example' => '4'], + 'DowngradeObservationWindowSize' => ['description' => '自动减少分片观测窗口。返回值由数值和时间单位后缀组成,其中时间单位后缀含义如下:'."\n" + .'- **s**:表示秒。'."\n" + .'- **m**:表示分钟。'."\n" + .'- **h**:表示小时。'."\n" + .'- **d**:表示天。 '."\n" + ."\n" + .'> 例如,返回**1d**表示1天。', 'type' => 'string', 'example' => '1d'], + ], ], - 'connCheckErrorMessage' => [ - 'title' => '异常检测详情信息', - 'description' => '异常检测详情信息。', - 'type' => 'string', - 'example' => 'Src ip:47.100.XX.XX not in user whitelist', + 'Bandwidth' => [ + 'description' => '实例带宽弹性伸缩功能配置信息。', + 'type' => 'object', + 'properties' => [ + 'Upgrade' => ['description' => '带宽自动扩展是否开启:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n", 'type' => 'boolean', 'example' => 'true'], + 'BandwidthUsageUpperThreshold' => ['description' => '触发带宽自动扩展的带宽平均使用率阈值,单位为%。', 'type' => 'integer', 'format' => 'int32', 'example' => '70'], + 'ObservationWindowSize' => ['description' => '带宽自动扩展的观测窗口。返回值由数值和时间单位后缀组成,其中时间单位后缀含义如下:'."\n" + ."\n" + .'- **s**:表示秒。'."\n" + .'- **m**:表示分钟。'."\n" + .'- **h**:表示小时。'."\n" + .'- **d**:表示天。 '."\n" + ."\n" + .'> 例如,返回**5m**表示5分钟。', 'type' => 'string', 'example' => '5m'], + 'Downgrade' => ['description' => '带宽自动回缩是否开启:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'BandwidthUsageLowerThreshold' => ['description' => '触发带宽自动回缩的带宽平均使用率阈值,单位为%。', 'type' => 'integer', 'format' => 'int32', 'example' => '30'], + ], ], ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - .'* **true**:执行成功。'."\n" - .'* **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => ''], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"instanceId\\": \\"rm-2ze8g2am97624****\\",\\n \\"success\\": false,\\n \\"failType\\": \\"0\\",\\n \\"connCheckErrorCode\\": \\"SRC_IP_NOT_IN_USER_WHITELIST\\",\\n \\"connCheckErrorMessage\\": \\"Src ip:47.100.XX.XX not in user whitelist\\"\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', - 'title' => '获取数据库实例网络连通性诊断结果', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"Spec\\": {\\n \\"Upgrade\\": true,\\n \\"CpuUsageUpperThreshold\\": 70,\\n \\"MemUsageUpperThreshold\\": 70,\\n \\"MaxSpec\\": \\"polar.mysql.x8.12xlarge\\",\\n \\"MaxReadOnlyNodes\\": 10,\\n \\"ObservationWindowSize\\": \\"5m\\",\\n \\"CoolDownTime\\": \\"5m\\",\\n \\"Downgrade\\": true\\n },\\n \\"Storage\\": {\\n \\"Upgrade\\": true,\\n \\"DiskUsageUpperThreshold\\": 70,\\n \\"MaxStorage\\": 32000\\n },\\n \\"Resource\\": {\\n \\"Enable\\": true,\\n \\"CpuUsageUpperThreshold\\": 70,\\n \\"CpuStep\\": 2,\\n \\"UpgradeObservationWindowSize\\": \\"5m\\",\\n \\"DowngradeObservationWindowSize\\": \\"5m\\"\\n },\\n \\"Shard\\": {\\n \\"Upgrade\\": true,\\n \\"MemUsageUpperThreshold\\": 70,\\n \\"MaxShards\\": 16,\\n \\"UpgradeObservationWindowSize\\": \\"5m\\",\\n \\"Downgrade\\": true,\\n \\"MemUsageLowerThreshold\\": 30,\\n \\"MinShards\\": 4,\\n \\"DowngradeObservationWindowSize\\": \\"1d\\"\\n },\\n \\"Bandwidth\\": {\\n \\"Upgrade\\": true,\\n \\"BandwidthUsageUpperThreshold\\": 70,\\n \\"ObservationWindowSize\\": \\"5m\\",\\n \\"Downgrade\\": true,\\n \\"BandwidthUsageLowerThreshold\\": 30\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeAutoScalingConfigResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n <Data>\\n <Spec>\\n <Upgrade>true</Upgrade>\\n <CpuUsageUpperThreshold>70</CpuUsageUpperThreshold>\\n <MemUsageUpperThreshold>70</MemUsageUpperThreshold>\\n <MaxSpec>polar.mysql.x8.12xlarge</MaxSpec>\\n <MaxReadOnlyNodes>10</MaxReadOnlyNodes>\\n <ObservationWindowSize>5m</ObservationWindowSize>\\n <CoolDownTime>5m</CoolDownTime>\\n <Downgrade>true</Downgrade>\\n </Spec>\\n </Data>\\n</DescribeAutoScalingConfigResponse>","errorExample":""}]', + 'title' => '查询实例弹性伸缩功能配置信息', 'description' => '使用该接口需满足以下前提条件:'."\n" ."\n" .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 数据库实例已接入DAS。', - ], - 'CreateCacheAnalysisJob' => [ - 'summary' => '调用CreateCacheAnalysisJob接口,创建缓存分析任务。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeAutoScalingConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeAutoScalingHistory' => [ + 'methods' => ['get'], + 'schemes' => ['https', 'http'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'Redis实例ID。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'r-bp18ff4a195d****', - ], + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'> 当前仅支持RDS MySQL实例。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'], ], [ - 'name' => 'NodeId', + 'name' => 'AutoScalingTaskType', 'in' => 'query', - 'schema' => [ - 'description' => '实例的数据节点ID,传入本参数可查询指定节点的监控信息。'."\n" - .'>当您传入BackupSetId参数,系统会忽略此参数,您可调用[DescribeLogicInstanceTopology](~~473786~~)接口查询节点ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'r-x****-db-0', - ], + 'schema' => ['description' => '查询的弹性伸缩业务种类。当前仅支持**SPEC**,表示仅支持查询自动性能扩展历史信息。', 'type' => 'string', 'required' => true, 'example' => 'SPEC'], ], [ - 'name' => 'BackupSetId', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '备份文件ID,可以通过[DescribeBackups](~~473823~~)接口获取。'."\n" - ."\n" - .'- 如需传入多个备份文件ID,请使用英文逗号(,)分隔,例如`12345,67890`。'."\n" - .'- 如果不传入本参数,系统会自动执行备份并对该备份文件执行缓存分析。', - 'type' => 'string', - 'required' => false, - 'example' => '12345', - ], + 'schema' => ['description' => '查询任务的开始时间,格式为Unix时间戳,单位为毫秒。'."\n" + ."\n" + .'>查询任务的开始时间最大不能早于当前时间45天。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1675833788056'], ], [ - 'name' => 'Separators', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '用于识别Key前缀的分隔符。当分隔符为默认的`:;,_-+@=|#`时,不需要输入。', - 'type' => 'string', - 'required' => false, - 'example' => '&', - ], + 'schema' => ['description' => '查询任务结束时间,格式为Unix时间戳,单位为毫秒。'."\n" + .'>查询任务结束时间需晚于查询任务开始时间。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1676605305796'], ], ], 'responses' => [ @@ -2512,165 +2538,116 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], + 'Code' => ['description' => '状态码。200表示成功。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], 'Data' => [ - 'description' => '详细信息列表。', + 'title' => 'AutoScalingInstanceHistory', + 'description' => '弹性伸缩历史记录。', 'type' => 'object', 'properties' => [ - 'TaskState' => [ - 'description' => '缓存分析任务的状态:'."\n" - ."\n" - .'- **BACKUP**:备份中。'."\n" - .'- **ANALYZING**:分析中。'."\n" - .'- **FINISHED**:分析完成。'."\n" - .'- **FAILED**:出现错误。', - 'type' => 'string', - 'example' => 'BACKUP', - ], - 'JobId' => [ - 'description' => '缓存分析任务ID。'."\n" - .'>此参数可用于查询缓存分析任务使用,当您调用该API时,由于创建缓存分析任务需要一定的时间,不会立即返回分析结果,您需要通过此参数,结合[DescribeCacheAnalysisJob](~~180983~~)接口,查询具体的分析结果。', - 'type' => 'string', - 'example' => 'sf79-sd99-sa37-****', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'BigKeys' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'KeyInfo' => [ - 'description' => '大Key详细信息,根据Key占用字节数降序排列。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => 'Redis数据结构类型。', - 'type' => 'string', - 'example' => 'hash', - ], - 'Db' => [ - 'description' => '数据库名称。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'ExpirationTimeMillis' => [ - 'description' => 'Key过期时间,单位:毫秒(ms),0表示不过期。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1596256542547', - ], - 'Key' => [ - 'description' => 'Key的名称。', - 'type' => 'string', - 'example' => 'task_x****', - ], - 'Encoding' => [ - 'description' => 'Key内部数据类型。', - 'type' => 'string', - 'example' => 'hashtable', - ], - 'Bytes' => [ - 'description' => 'Key占用字节数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '12345', - ], - 'NodeId' => [ - 'description' => '实例的数据节点ID。', - 'type' => 'string', - 'example' => 'r-x****-db-0', - ], - 'Count' => [ - 'description' => 'Key的元素个数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '127', - ], - ], - ], + 'InstanceId' => ['description' => '实例ID。', 'type' => 'string', 'example' => 'rm-2ze1jdv45i7l6****'], + 'SpecHistory' => [ + 'description' => '自动性能扩展历史记录。', + 'type' => 'array', + 'items' => [ + 'description' => '自动性能扩展历史信息。', + 'type' => 'object', + 'properties' => [ + 'ScaleType' => ['description' => '自动性能扩展任务类型,取值:'."\n" + .'- **SCALE_UP**:规格自动扩容。'."\n" + .'- **SCALE_DOWN**:规格自动缩容。', 'type' => 'string', 'example' => 'SCALE_UP'], + 'TaskExcuteStatus' => ['description' => '任务执行状态:'."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], + 'ErrorCode' => ['description' => '扩缩容内部任务返回的错误码:'."\n" + ."\n" + .'- **Insufficient_Balance** :用户余额不足或存在未支付订单。'."\n" + .'- **REACH_SPEC_UPPERBOUND** :已达到用户规格上限。'."\n" + .'- **Control_Error_Timeout_Msg** :管控任务超时。'."\n" + .'- **Invoke_Rds_Api_Error_Msg** :调用RDS API失败。', 'type' => 'string', 'example' => 'Insufficient_Balance'], + 'OriginInstanceClass' => ['description' => '原始实例规格码。', 'type' => 'string', 'example' => 'mysql.n2.large.2c'], + 'TargetInstanceClass' => ['description' => '目标实例规格码。', 'type' => 'string', 'example' => 'mysql.n2.xlarge.2c'], + 'OriginCore' => ['description' => '原始实例CPU核数。', 'type' => 'integer', 'format' => 'int32', 'example' => '4'], + 'OriginMemory' => ['description' => '原始实例内存大小,单位GB。', 'type' => 'number', 'format' => 'double', 'example' => '8'], + 'TargetCore' => ['description' => '目标实例CPU核数。', 'type' => 'integer', 'format' => 'int32', 'example' => '8'], + 'TargetMemory' => ['description' => '目标实例内存大小,单位GB。', 'type' => 'number', 'format' => 'double', 'example' => '16'], + 'TaskTime' => ['description' => '任务执行时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1684830763000'], ], ], ], - 'InstanceId' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'r-bp18ff4a195d****', + 'Storage' => [ + 'description' => '存储扩容历史记录,暂不支持。', + 'type' => 'array', + 'items' => ['description' => '实例存储扩容历史信息。', 'type' => 'object', 'example' => 'None'], + ], + 'Resource' => [ + 'description' => 'Redis资源扩容历史记录,暂不支持。', + 'type' => 'array', + 'items' => ['description' => 'Redis资源扩容历史信息。', 'type' => 'object', 'example' => 'None'], ], - 'NodeId' => [ - 'description' => '实例的数据节点ID。', - 'type' => 'string', - 'example' => 'r-x****-db-0', + 'Shard' => [ + 'description' => 'Redis自动分片扩容历史记录,暂不支持。', + 'type' => 'array', + 'items' => ['description' => 'Redis自动分片扩容历史信息。', 'type' => 'object', 'example' => 'None'], + ], + 'Bandwidth' => [ + 'description' => 'Redis带宽弹性伸缩历史记录,暂不支持。', + 'type' => 'array', + 'items' => ['description' => 'Redis带宽弹性伸缩历史信息。', 'type' => 'object', 'example' => 'None'], ], ], ], - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Data\\": {\\n \\"TaskState\\": \\"BACKUP\\",\\n \\"JobId\\": \\"sf79-sd99-sa37-****\\",\\n \\"Message\\": \\"Successful\\",\\n \\"BigKeys\\": {\\n \\"KeyInfo\\": [\\n {\\n \\"Type\\": \\"hash\\",\\n \\"Db\\": 0,\\n \\"ExpirationTimeMillis\\": 1596256542547,\\n \\"Key\\": \\"task_x****\\",\\n \\"Encoding\\": \\"hashtable\\",\\n \\"Bytes\\": 12345,\\n \\"NodeId\\": \\"r-x****-db-0\\",\\n \\"Count\\": 127\\n }\\n ]\\n },\\n \\"InstanceId\\": \\"r-bp18ff4a195d****\\",\\n \\"NodeId\\": \\"r-x****-db-0\\"\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateCacheAnalysisJobResponse>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Data>\\n <TaskState>BACKUP</TaskState>\\n <JobId>sf79-sd99-sa37-****</JobId>\\n <Message>Successful</Message>\\n <BigKeys>\\n <Type>hash</Type>\\n <Db>0</Db>\\n <ExpirationTimeMillis>1596256542547</ExpirationTimeMillis>\\n <Key>task_x****</Key>\\n <Encoding>hashtable</Encoding>\\n <Bytes>12345</Bytes>\\n <NodeId>r-x****-db-0</NodeId>\\n <Count>127</Count>\\n </BigKeys>\\n <InstanceId>r-bp18ff4a195d****</InstanceId>\\n <NodeId>r-x****-db-0</NodeId>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</CreateCacheAnalysisJobResponse>","errorExample":""}]', - 'title' => '创建缓存分析任务', - 'description' => '使用该接口需满足以下前提条件:'."\n" - ."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询实例弹性伸缩历史信息', + 'summary' => '调用DescribeAutoScalingHistory接口,查询实例弹性伸缩历史信息。', + 'description' => '- 当前仅支持查询RDS MySQL高可用系列云盘版的自动性能扩展历史信息。'."\n" .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 只支持分析Redis数据结构和以下Tair自研数据结构:TairString、TairHash、TairGIS、TairBloom、TairDoc、TairCpc、TairZset,暂不支持分析其他Tair自研数据结构。'."\n" - .'- 如果目标实例规格已发生变更,则不支持分析实例变更前的备份文件。'."\n" - .'- 暂不支持Tair磁盘型实例。', - ], - 'DescribeCacheAnalysisJob' => [ - 'summary' => '调用DescribeCacheAnalysisJob接口,查询缓存分析任务详情。', - 'methods' => [ - 'post', - 'get', + ."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'requestParamsDescription' => 'AutoScalingTaskType取值为SPEC时,表示查询自动性能扩展历史,当前仅支持取值为SPEC。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAutoScalingHistory'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeAutoScalingHistory', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"InstanceId\\": \\"rm-2ze1jdv45i7l6****\\",\\n \\"SpecHistory\\": [\\n {\\n \\"ScaleType\\": \\"SCALE_UP\\",\\n \\"TaskExcuteStatus\\": true,\\n \\"ErrorCode\\": \\"Insufficient_Balance\\",\\n \\"OriginInstanceClass\\": \\"mysql.n2.large.2c\\",\\n \\"TargetInstanceClass\\": \\"mysql.n2.xlarge.2c\\",\\n \\"OriginCore\\": 4,\\n \\"OriginMemory\\": 8,\\n \\"TargetCore\\": 8,\\n \\"TargetMemory\\": 16,\\n \\"TaskTime\\": 1684830763000\\n }\\n ],\\n \\"Storage\\": [\\n {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n }\\n ],\\n \\"Resource\\": [\\n {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n }\\n ],\\n \\"Shard\\": [\\n {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n }\\n ],\\n \\"Bandwidth\\": [\\n {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'DescribeCacheAnalysisJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2681,30 +2658,18 @@ 'systemTags' => [ 'operationType' => 'get', 'abilityTreeCode' => '23813', - 'abilityTreeNodes' => [ - 'FEATUREhdmJC65CS', - ], + 'abilityTreeNodes' => ['FEATUREhdmJC65CS'], ], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'r-bp18ff4a195d****', - ], + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'r-bp18ff4a195d****'], ], [ 'name' => 'JobId', 'in' => 'query', - 'schema' => [ - 'description' => '缓存分析任务ID,您可通过调用[CreateCacheAnalysisJob](~~180982~~)接口获取返回参数的JobId。', - 'type' => 'string', - 'required' => true, - 'example' => 'sf79-sd99-sa37-****', - ], + 'schema' => ['description' => '缓存分析任务ID,您可通过调用[CreateCacheAnalysisJob](~~180982~~)接口获取返回参数的JobId。', 'type' => 'string', 'required' => true, 'example' => 'sf79-sd99-sa37-****'], ], ], 'responses' => [ @@ -2712,42 +2677,22 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], 'Data' => [ 'description' => '详细信息列表。', 'type' => 'object', 'properties' => [ - 'TaskState' => [ - 'description' => '缓存分析任务的状态:'."\n" - ."\n" - .'- **BACKUP**:备份中。'."\n" - .'- **ANALYZING**:分析中。'."\n" - .'- **FINISHED**:分析完成。'."\n" - .'- **FAILED**:出现错误。', - 'type' => 'string', - 'example' => 'BACKUP', - ], - 'JobId' => [ - 'description' => '缓存分析任务ID。', - 'type' => 'string', - 'example' => 'sf79-sd99-sa37-****', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'TaskState' => ['description' => '缓存分析任务的状态:'."\n" + ."\n" + .'- **BACKUP**:备份中。'."\n" + .'- **ANALYZING**:分析中。'."\n" + .'- **FINISHED**:分析完成。'."\n" + .'- **FAILED**:出现错误。', 'type' => 'string', 'example' => 'BACKUP'], + 'JobId' => ['description' => '缓存分析任务ID。', 'type' => 'string', 'example' => 'sf79-sd99-sa37-****'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'BigKeys' => [ 'type' => 'object', 'itemNode' => true, @@ -2758,54 +2703,20 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'Type' => [ - 'description' => 'Redis数据结构类型。', - 'type' => 'string', - 'example' => 'hash', - ], - 'Db' => [ - 'description' => '数据库名称。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'ExpirationTimeMillis' => [ - 'description' => 'Key过期时间,格式为 Unix 时间戳,单位为毫秒(ms),0表示不过期。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1596256542547', - ], - 'Key' => [ - 'description' => 'Key的名称。', - 'type' => 'string', - 'example' => 'task_x****', - ], - 'Encoding' => [ - 'description' => 'Key内部数据类型。', - 'type' => 'string', - 'example' => 'hashtable', - ], - 'Bytes' => [ - 'description' => 'Key占用字节数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '12345', - ], - 'NodeId' => [ - 'description' => '实例的数据节点ID。', - 'type' => 'string', - 'example' => 'r-x****-db-0', - ], - 'Count' => [ - 'description' => 'Key的元素个数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '127', - ], + 'Type' => ['description' => 'Redis数据结构类型。', 'type' => 'string', 'example' => 'hash'], + 'Db' => ['description' => '数据库名称。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'ExpirationTimeMillis' => ['description' => 'Key过期时间,格式为 Unix 时间戳,单位为毫秒(ms),0表示不过期。', 'type' => 'integer', 'format' => 'int64', 'example' => '1596256542547'], + 'Key' => ['description' => 'Key的名称。', 'type' => 'string', 'example' => 'task_x****'], + 'Encoding' => ['description' => 'Key内部数据类型。', 'type' => 'string', 'example' => 'hashtable'], + 'Bytes' => ['description' => 'Key占用字节数。', 'type' => 'integer', 'format' => 'int64', 'example' => '12345'], + 'NodeId' => ['description' => '实例的数据节点ID。', 'type' => 'string', 'example' => 'r-x****-db-0'], + 'Count' => ['description' => 'Key的元素个数。', 'type' => 'integer', 'format' => 'int64', 'example' => '127'], ], + 'description' => '', ], ], ], + 'description' => '', ], 'KeyPrefixes' => [ 'type' => 'object', @@ -2817,38 +2728,17 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'KeyNum' => [ - 'description' => '该前缀Key的数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '123', - ], - 'Type' => [ - 'description' => 'Redis数据结构类型。', - 'type' => 'string', - 'example' => 'hash', - ], - 'Bytes' => [ - 'description' => 'Key占用字节数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '12345', - ], - 'Prefix' => [ - 'description' => 'Key的前缀。', - 'type' => 'string', - 'example' => 'task_', - ], - 'Count' => [ - 'description' => 'Key的元素个数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '127', - ], + 'KeyNum' => ['description' => '该前缀Key的数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '123'], + 'Type' => ['description' => 'Redis数据结构类型。', 'type' => 'string', 'example' => 'hash'], + 'Bytes' => ['description' => 'Key占用字节数。', 'type' => 'integer', 'format' => 'int64', 'example' => '12345'], + 'Prefix' => ['description' => 'Key的前缀。', 'type' => 'string', 'example' => 'task_'], + 'Count' => ['description' => 'Key的元素个数。', 'type' => 'integer', 'format' => 'int64', 'example' => '127'], ], + 'description' => '', ], ], ], + 'description' => '', ], 'BigKeysOfNum' => [ 'type' => 'object', @@ -2860,54 +2750,20 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'Type' => [ - 'description' => 'Redis数据结构类型。', - 'type' => 'string', - 'example' => 'hash', - ], - 'Db' => [ - 'description' => '数据库名称。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'ExpirationTimeMillis' => [ - 'description' => 'Key过期时间,格式为 Unix 时间戳,单位为毫秒(ms),0表示不过期。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1596256542547', - ], - 'Key' => [ - 'description' => 'Key的名称。', - 'type' => 'string', - 'example' => 'task_x****', - ], - 'Encoding' => [ - 'description' => 'Key内部数据类型。', - 'type' => 'string', - 'example' => 'hashtable', - ], - 'Bytes' => [ - 'description' => 'Key占用字节数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '12345', - ], - 'NodeId' => [ - 'description' => '实例的数据节点ID。', - 'type' => 'string', - 'example' => 'r-x****-db-0', - ], - 'Count' => [ - 'description' => 'Key的元素个数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '127', - ], + 'Type' => ['description' => 'Redis数据结构类型。', 'type' => 'string', 'example' => 'hash'], + 'Db' => ['description' => '数据库名称。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'ExpirationTimeMillis' => ['description' => 'Key过期时间,格式为 Unix 时间戳,单位为毫秒(ms),0表示不过期。', 'type' => 'integer', 'format' => 'int64', 'example' => '1596256542547'], + 'Key' => ['description' => 'Key的名称。', 'type' => 'string', 'example' => 'task_x****'], + 'Encoding' => ['description' => 'Key内部数据类型。', 'type' => 'string', 'example' => 'hashtable'], + 'Bytes' => ['description' => 'Key占用字节数。', 'type' => 'integer', 'format' => 'int64', 'example' => '12345'], + 'NodeId' => ['description' => '实例的数据节点ID。', 'type' => 'string', 'example' => 'r-x****-db-0'], + 'Count' => ['description' => 'Key的元素个数。', 'type' => 'integer', 'format' => 'int64', 'example' => '127'], ], + 'description' => '', ], ], ], + 'description' => '', ], 'UnexBigKeysOfBytes' => [ 'type' => 'object', @@ -2919,54 +2775,20 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'Type' => [ - 'description' => 'Redis数据结构类型。', - 'type' => 'string', - 'example' => 'hash', - ], - 'Db' => [ - 'description' => '数据库名称。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'ExpirationTimeMillis' => [ - 'description' => 'Key过期时间,格式为 Unix 时间戳,单位为毫秒(ms),0表示不过期。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1596256542547', - ], - 'Key' => [ - 'description' => 'Key的名称。', - 'type' => 'string', - 'example' => 'task_x****', - ], - 'Encoding' => [ - 'description' => 'Key内部数据类型。', - 'type' => 'string', - 'example' => 'hashtable', - ], - 'Bytes' => [ - 'description' => 'Key占用字节数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '12345', - ], - 'NodeId' => [ - 'description' => '实例的数据节点ID', - 'type' => 'string', - 'example' => 'r-x****-db-0', - ], - 'Count' => [ - 'description' => 'Key的元素个数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '127', - ], + 'Type' => ['description' => 'Redis数据结构类型。', 'type' => 'string', 'example' => 'hash'], + 'Db' => ['description' => '数据库名称。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'ExpirationTimeMillis' => ['description' => 'Key过期时间,格式为 Unix 时间戳,单位为毫秒(ms),0表示不过期。', 'type' => 'integer', 'format' => 'int64', 'example' => '1596256542547'], + 'Key' => ['description' => 'Key的名称。', 'type' => 'string', 'example' => 'task_x****'], + 'Encoding' => ['description' => 'Key内部数据类型。', 'type' => 'string', 'example' => 'hashtable'], + 'Bytes' => ['description' => 'Key占用字节数。', 'type' => 'integer', 'format' => 'int64', 'example' => '12345'], + 'NodeId' => ['description' => '实例的数据节点ID', 'type' => 'string', 'example' => 'r-x****-db-0'], + 'Count' => ['description' => 'Key的元素个数。', 'type' => 'integer', 'format' => 'int64', 'example' => '127'], ], + 'description' => '', ], ], ], + 'description' => '', ], 'UnexBigKeysOfNum' => [ 'type' => 'object', @@ -2978,65 +2800,23 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'Type' => [ - 'description' => 'Redis数据结构类型。', - 'type' => 'string', - 'example' => 'hash', - ], - 'Db' => [ - 'description' => '数据库名称。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'ExpirationTimeMillis' => [ - 'description' => 'Key过期时间,格式为 Unix 时间戳,单位为毫秒(ms),0表示不过期。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1596256542547', - ], - 'Key' => [ - 'description' => 'Key的名称。', - 'type' => 'string', - 'example' => 'task_x****', - ], - 'Encoding' => [ - 'description' => 'Key内部数据类型。', - 'type' => 'string', - 'example' => 'hashtable', - ], - 'Bytes' => [ - 'description' => 'Key占用字节数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '12345', - ], - 'NodeId' => [ - 'description' => '实例的数据节点ID。', - 'type' => 'string', - 'example' => 'r-x****-db-0', - ], - 'Count' => [ - 'description' => 'Key的元素个数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '127', - ], + 'Type' => ['description' => 'Redis数据结构类型。', 'type' => 'string', 'example' => 'hash'], + 'Db' => ['description' => '数据库名称。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'ExpirationTimeMillis' => ['description' => 'Key过期时间,格式为 Unix 时间戳,单位为毫秒(ms),0表示不过期。', 'type' => 'integer', 'format' => 'int64', 'example' => '1596256542547'], + 'Key' => ['description' => 'Key的名称。', 'type' => 'string', 'example' => 'task_x****'], + 'Encoding' => ['description' => 'Key内部数据类型。', 'type' => 'string', 'example' => 'hashtable'], + 'Bytes' => ['description' => 'Key占用字节数。', 'type' => 'integer', 'format' => 'int64', 'example' => '12345'], + 'NodeId' => ['description' => '实例的数据节点ID。', 'type' => 'string', 'example' => 'r-x****-db-0'], + 'Count' => ['description' => 'Key的元素个数。', 'type' => 'integer', 'format' => 'int64', 'example' => '127'], ], + 'description' => '', ], ], ], + 'description' => '', ], - 'InstanceId' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'r-bp18ff4a195d****', - ], - 'NodeId' => [ - 'description' => '实例的数据节点ID。', - 'type' => 'string', - 'example' => 'r-x****-db-0', - ], + 'InstanceId' => ['description' => '实例ID。', 'type' => 'string', 'example' => 'r-bp18ff4a195d****'], + 'NodeId' => ['description' => '实例的数据节点ID。', 'type' => 'string', 'example' => 'r-x****-db-0'], 'ExpiryKeysLevelCount' => [ 'type' => 'object', 'itemNode' => true, @@ -3048,80 +2828,48 @@ 'description' => '按过期时间分类的Key统计信息。', 'type' => 'object', 'properties' => [ - 'AnalysisTs' => [ - 'description' => '分析完成的时间,格式为 Unix 时间戳,单位为毫秒(ms)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1717469347000', - ], - 'Level' => [ - 'description' => '过期时间级别。取值:'."\n" - ."\n" - .'- **0**:不过期。'."\n" - .'- **1**:已过期。'."\n" - .'- **2**:过期0~1小时。'."\n" - .'- **3**:过期1~3小时。'."\n" - .'- **4**:过期3~12小时。'."\n" - .'- **5**:过期12~24小时。'."\n" - .'- **6**:过期1~2天。'."\n" - .'- **7**:过期3~7天。'."\n" - .'- **8**:过期超过7天。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'TotalBytes' => [ - 'description' => '按过期时间分类统计的Key占用的字节数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '8064', - ], - 'TotalKeys' => [ - 'description' => '按过期时间分类统计的Key总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '62', - ], + 'AnalysisTs' => ['description' => '分析完成的时间,格式为 Unix 时间戳,单位为毫秒(ms)。', 'type' => 'integer', 'format' => 'int64', 'example' => '1717469347000'], + 'Level' => ['description' => '过期时间级别。取值:'."\n" + ."\n" + .'- **0**:不过期。'."\n" + .'- **1**:已过期。'."\n" + .'- **2**:过期0~1小时。'."\n" + .'- **3**:过期1~3小时。'."\n" + .'- **4**:过期3~12小时。'."\n" + .'- **5**:过期12~24小时。'."\n" + .'- **6**:过期1~2天。'."\n" + .'- **7**:过期3~7天。'."\n" + .'- **8**:过期超过7天。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'TotalBytes' => ['description' => '按过期时间分类统计的Key占用的字节数。', 'type' => 'integer', 'format' => 'int64', 'example' => '8064'], + 'TotalKeys' => ['description' => '按过期时间分类统计的Key总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '62'], ], ], ], ], + 'description' => '', ], ], ], - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Data\\": {\\n \\"TaskState\\": \\"BACKUP\\",\\n \\"JobId\\": \\"sf79-sd99-sa37-****\\",\\n \\"Message\\": \\"Successful\\",\\n \\"BigKeys\\": {\\n \\"KeyInfo\\": [\\n {\\n \\"Type\\": \\"hash\\",\\n \\"Db\\": 0,\\n \\"ExpirationTimeMillis\\": 1596256542547,\\n \\"Key\\": \\"task_x****\\",\\n \\"Encoding\\": \\"hashtable\\",\\n \\"Bytes\\": 12345,\\n \\"NodeId\\": \\"r-x****-db-0\\",\\n \\"Count\\": 127\\n }\\n ]\\n },\\n \\"KeyPrefixes\\": {\\n \\"Prefix\\": [\\n {\\n \\"KeyNum\\": 123,\\n \\"Type\\": \\"hash\\",\\n \\"Bytes\\": 12345,\\n \\"Prefix\\": \\"task_\\",\\n \\"Count\\": 127\\n }\\n ]\\n },\\n \\"BigKeysOfNum\\": {\\n \\"KeyInfo\\": [\\n {\\n \\"Type\\": \\"hash\\",\\n \\"Db\\": 0,\\n \\"ExpirationTimeMillis\\": 1596256542547,\\n \\"Key\\": \\"task_x****\\",\\n \\"Encoding\\": \\"hashtable\\",\\n \\"Bytes\\": 12345,\\n \\"NodeId\\": \\"r-x****-db-0\\",\\n \\"Count\\": 127\\n }\\n ]\\n },\\n \\"UnexBigKeysOfBytes\\": {\\n \\"KeyInfo\\": [\\n {\\n \\"Type\\": \\"hash\\",\\n \\"Db\\": 0,\\n \\"ExpirationTimeMillis\\": 1596256542547,\\n \\"Key\\": \\"task_x****\\",\\n \\"Encoding\\": \\"hashtable\\",\\n \\"Bytes\\": 12345,\\n \\"NodeId\\": \\"r-x****-db-0\\",\\n \\"Count\\": 127\\n }\\n ]\\n },\\n \\"UnexBigKeysOfNum\\": {\\n \\"KeyInfo\\": [\\n {\\n \\"Type\\": \\"hash\\",\\n \\"Db\\": 0,\\n \\"ExpirationTimeMillis\\": 1596256542547,\\n \\"Key\\": \\"task_x****\\",\\n \\"Encoding\\": \\"hashtable\\",\\n \\"Bytes\\": 12345,\\n \\"NodeId\\": \\"r-x****-db-0\\",\\n \\"Count\\": 127\\n }\\n ]\\n },\\n \\"InstanceId\\": \\"r-bp18ff4a195d****\\",\\n \\"NodeId\\": \\"r-x****-db-0\\",\\n \\"ExpiryKeysLevelCount\\": {\\n \\"ExpiryLevel\\": [\\n {\\n \\"AnalysisTs\\": 1717469347000,\\n \\"Level\\": 0,\\n \\"TotalBytes\\": 8064,\\n \\"TotalKeys\\": 62\\n }\\n ]\\n }\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeCacheAnalysisJobResponse>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Data>\\n <TaskState>BACKUP</TaskState>\\n <JobId>sf79-sd99-sa37-****</JobId>\\n <Message>Successful</Message>\\n <BigKeys>\\n <Type>hash</Type>\\n <Db>0</Db>\\n <ExpirationTimeMillis>1596256542547</ExpirationTimeMillis>\\n <Key>task_x****</Key>\\n <Encoding>hashtable</Encoding>\\n <Bytes>12345</Bytes>\\n <NodeId>r-x****-db-0</NodeId>\\n <Count>127</Count>\\n </BigKeys>\\n <KeyPrefixes>\\n <KeyNum>123</KeyNum>\\n <Type>hash</Type>\\n <Bytes>12345</Bytes>\\n <Prefix>task_</Prefix>\\n <Count>127</Count>\\n </KeyPrefixes>\\n <BigKeysOfNum>\\n <Type>hash</Type>\\n <Db>0</Db>\\n <ExpirationTimeMillis>1596256542547</ExpirationTimeMillis>\\n <Key>task_x****</Key>\\n <Encoding>hashtable</Encoding>\\n <Bytes>12345</Bytes>\\n <NodeId>r-x****-db-0</NodeId>\\n <Count>127</Count>\\n </BigKeysOfNum>\\n <UnexBigKeysOfBytes>\\n <Type>hash</Type>\\n <Db>0</Db>\\n <ExpirationTimeMillis>1596256542547</ExpirationTimeMillis>\\n <Key>task_x****</Key>\\n <Encoding>hashtable</Encoding>\\n <Bytes>12345</Bytes>\\n <NodeId>r-x****-db-0</NodeId>\\n <Count>127</Count>\\n </UnexBigKeysOfBytes>\\n <UnexBigKeysOfNum>\\n <Type>hash</Type>\\n <Db>0</Db>\\n <ExpirationTimeMillis>1596256542547</ExpirationTimeMillis>\\n <Key>task_x****</Key>\\n <Encoding>hashtable</Encoding>\\n <Bytes>12345</Bytes>\\n <NodeId>r-x****-db-0</NodeId>\\n <Count>127</Count>\\n </UnexBigKeysOfNum>\\n <InstanceId>r-bp18ff4a195d****</InstanceId>\\n <NodeId>r-x****-db-0</NodeId>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</DescribeCacheAnalysisJobResponse>","errorExample":""}]', 'title' => '查询缓存分析任务详情', + 'summary' => '调用DescribeCacheAnalysisJob接口,查询缓存分析任务详情。', 'description' => '使用该接口需满足以下前提条件:'."\n" ."\n" .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" @@ -3129,17 +2877,30 @@ .'- 本接口只适用于Redis引擎。'."\n" ."\n" .'> 调用本接口可查询实例缓存分析任务中排名前500的Key信息。', - ], - 'DescribeCacheAnalysisJobs' => [ - 'summary' => '调用DescribeCacheAnalysisJobs接口,查询缓存分析任务列表。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCacheAnalysisJob'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeCacheAnalysisJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Data\\": {\\n \\"TaskState\\": \\"BACKUP\\",\\n \\"JobId\\": \\"sf79-sd99-sa37-****\\",\\n \\"Message\\": \\"Successful\\",\\n \\"BigKeys\\": {\\n \\"KeyInfo\\": [\\n {\\n \\"Type\\": \\"hash\\",\\n \\"Db\\": 0,\\n \\"ExpirationTimeMillis\\": 1596256542547,\\n \\"Key\\": \\"task_x****\\",\\n \\"Encoding\\": \\"hashtable\\",\\n \\"Bytes\\": 12345,\\n \\"NodeId\\": \\"r-x****-db-0\\",\\n \\"Count\\": 127\\n }\\n ]\\n },\\n \\"KeyPrefixes\\": {\\n \\"Prefix\\": [\\n {\\n \\"KeyNum\\": 123,\\n \\"Type\\": \\"hash\\",\\n \\"Bytes\\": 12345,\\n \\"Prefix\\": \\"task_\\",\\n \\"Count\\": 127\\n }\\n ]\\n },\\n \\"BigKeysOfNum\\": {\\n \\"KeyInfo\\": [\\n {\\n \\"Type\\": \\"hash\\",\\n \\"Db\\": 0,\\n \\"ExpirationTimeMillis\\": 1596256542547,\\n \\"Key\\": \\"task_x****\\",\\n \\"Encoding\\": \\"hashtable\\",\\n \\"Bytes\\": 12345,\\n \\"NodeId\\": \\"r-x****-db-0\\",\\n \\"Count\\": 127\\n }\\n ]\\n },\\n \\"UnexBigKeysOfBytes\\": {\\n \\"KeyInfo\\": [\\n {\\n \\"Type\\": \\"hash\\",\\n \\"Db\\": 0,\\n \\"ExpirationTimeMillis\\": 1596256542547,\\n \\"Key\\": \\"task_x****\\",\\n \\"Encoding\\": \\"hashtable\\",\\n \\"Bytes\\": 12345,\\n \\"NodeId\\": \\"r-x****-db-0\\",\\n \\"Count\\": 127\\n }\\n ]\\n },\\n \\"UnexBigKeysOfNum\\": {\\n \\"KeyInfo\\": [\\n {\\n \\"Type\\": \\"hash\\",\\n \\"Db\\": 0,\\n \\"ExpirationTimeMillis\\": 1596256542547,\\n \\"Key\\": \\"task_x****\\",\\n \\"Encoding\\": \\"hashtable\\",\\n \\"Bytes\\": 12345,\\n \\"NodeId\\": \\"r-x****-db-0\\",\\n \\"Count\\": 127\\n }\\n ]\\n },\\n \\"InstanceId\\": \\"r-bp18ff4a195d****\\",\\n \\"NodeId\\": \\"r-x****-db-0\\",\\n \\"ExpiryKeysLevelCount\\": {\\n \\"ExpiryLevel\\": [\\n {\\n \\"AnalysisTs\\": 1717469347000,\\n \\"Level\\": 0,\\n \\"TotalBytes\\": 8064,\\n \\"TotalKeys\\": 62\\n }\\n ]\\n }\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeCacheAnalysisJobResponse>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Data>\\n <TaskState>BACKUP</TaskState>\\n <JobId>sf79-sd99-sa37-****</JobId>\\n <Message>Successful</Message>\\n <BigKeys>\\n <Type>hash</Type>\\n <Db>0</Db>\\n <ExpirationTimeMillis>1596256542547</ExpirationTimeMillis>\\n <Key>task_x****</Key>\\n <Encoding>hashtable</Encoding>\\n <Bytes>12345</Bytes>\\n <NodeId>r-x****-db-0</NodeId>\\n <Count>127</Count>\\n </BigKeys>\\n <KeyPrefixes>\\n <KeyNum>123</KeyNum>\\n <Type>hash</Type>\\n <Bytes>12345</Bytes>\\n <Prefix>task_</Prefix>\\n <Count>127</Count>\\n </KeyPrefixes>\\n <BigKeysOfNum>\\n <Type>hash</Type>\\n <Db>0</Db>\\n <ExpirationTimeMillis>1596256542547</ExpirationTimeMillis>\\n <Key>task_x****</Key>\\n <Encoding>hashtable</Encoding>\\n <Bytes>12345</Bytes>\\n <NodeId>r-x****-db-0</NodeId>\\n <Count>127</Count>\\n </BigKeysOfNum>\\n <UnexBigKeysOfBytes>\\n <Type>hash</Type>\\n <Db>0</Db>\\n <ExpirationTimeMillis>1596256542547</ExpirationTimeMillis>\\n <Key>task_x****</Key>\\n <Encoding>hashtable</Encoding>\\n <Bytes>12345</Bytes>\\n <NodeId>r-x****-db-0</NodeId>\\n <Count>127</Count>\\n </UnexBigKeysOfBytes>\\n <UnexBigKeysOfNum>\\n <Type>hash</Type>\\n <Db>0</Db>\\n <ExpirationTimeMillis>1596256542547</ExpirationTimeMillis>\\n <Key>task_x****</Key>\\n <Encoding>hashtable</Encoding>\\n <Bytes>12345</Bytes>\\n <NodeId>r-x****-db-0</NodeId>\\n <Count>127</Count>\\n </UnexBigKeysOfNum>\\n <InstanceId>r-bp18ff4a195d****</InstanceId>\\n <NodeId>r-x****-db-0</NodeId>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</DescribeCacheAnalysisJobResponse>","errorExample":""}]', + ], + 'DescribeCacheAnalysisJobs' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3147,60 +2908,33 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'r-bp18ff4a195d****', - ], + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'r-bp18ff4a195d****'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '查询任务开始时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'string', - 'required' => true, - 'example' => '1596177993000', - ], + 'schema' => ['description' => '查询任务开始时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'string', 'required' => true, 'example' => '1596177993000'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '查询任务结束时间,格式为Unix时间戳,单位为毫秒。'."\n" - .'>查询任务结束时间需晚于查询任务开始时间。', - 'type' => 'string', - 'required' => true, - 'example' => '1596177993001', - ], + 'schema' => ['description' => '查询任务结束时间,格式为Unix时间戳,单位为毫秒。'."\n" + .'>查询任务结束时间需晚于查询任务开始时间。', 'type' => 'string', 'required' => true, 'example' => '1596177993001'], ], [ 'name' => 'PageNo', 'in' => 'query', - 'schema' => [ - 'description' => '页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', 'type' => 'string', 'required' => false, 'example' => '1'], ], [ 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '每页最大记录数,默认值为10。', - 'type' => 'string', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => '每页最大记录数,默认值为10。', 'type' => 'string', 'required' => false, 'example' => '10'], ], ], 'responses' => [ @@ -3208,17 +2942,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], 'Data' => [ 'description' => '信息列表。', 'type' => 'object', @@ -3233,27 +2959,15 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'TaskState' => [ - 'description' => '缓存分析任务的状态:'."\n" - ."\n" - .'- **BACKUP**:备份中。'."\n" - .'- **ANALYZING**:分析中。'."\n" - .'- **FINISHED**:分析完成。'."\n" - .'- **FAILED**:出现错误。', - 'type' => 'string', - 'example' => 'BACKUP', - ], - 'JobId' => [ - 'description' => '缓存分析任务ID。', - 'type' => 'string', - 'example' => 'sf79-sd99-sa37-****', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'TaskState' => ['description' => '缓存分析任务的状态:'."\n" + ."\n" + .'- **BACKUP**:备份中。'."\n" + .'- **ANALYZING**:分析中。'."\n" + .'- **FINISHED**:分析完成。'."\n" + .'- **FAILED**:出现错误。', 'type' => 'string', 'example' => 'BACKUP'], + 'JobId' => ['description' => '缓存分析任务ID。', 'type' => 'string', 'example' => 'sf79-sd99-sa37-****'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'BigKeys' => [ 'type' => 'object', 'itemNode' => true, @@ -3266,222 +2980,134 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'Type' => [ - 'description' => 'Redis数据结构类型。', - 'type' => 'string', - 'example' => 'hash', - ], - 'Db' => [ - 'description' => '数据库名称。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'ExpirationTimeMillis' => [ - 'description' => 'Key过期时间,单位:毫秒(ms),0表示不过期。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1596256542547', - ], - 'Key' => [ - 'description' => 'Key的名称。', - 'type' => 'string', - 'example' => 'task_*****', - ], - 'Encoding' => [ - 'description' => 'Key内部数据类型。', - 'type' => 'string', - 'example' => 'hashtable', - ], - 'Bytes' => [ - 'description' => 'Key占用字节数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '12345', - ], - 'NodeId' => [ - 'description' => '实例的数据节点ID。', - 'type' => 'string', - 'example' => 'r-****-db-0', - ], - 'Count' => [ - 'description' => 'Key的元素个数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '127', - ], + 'Type' => ['description' => 'Redis数据结构类型。', 'type' => 'string', 'example' => 'hash'], + 'Db' => ['description' => '数据库名称。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'ExpirationTimeMillis' => ['description' => 'Key过期时间,单位:毫秒(ms),0表示不过期。', 'type' => 'integer', 'format' => 'int64', 'example' => '1596256542547'], + 'Key' => ['description' => 'Key的名称。', 'type' => 'string', 'example' => 'task_*****'], + 'Encoding' => ['description' => 'Key内部数据类型。', 'type' => 'string', 'example' => 'hashtable'], + 'Bytes' => ['description' => 'Key占用字节数。', 'type' => 'integer', 'format' => 'int64', 'example' => '12345'], + 'NodeId' => ['description' => '实例的数据节点ID。', 'type' => 'string', 'example' => 'r-****-db-0'], + 'Count' => ['description' => 'Key的元素个数。', 'type' => 'integer', 'format' => 'int64', 'example' => '127'], ], + 'description' => '', ], ], ], + 'description' => '', ], - 'InstanceId' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'r-bp18ff4a195d****', - ], - 'NodeId' => [ - 'description' => '实例的数据节点ID。', - 'type' => 'string', - 'example' => 'r-x****-db-0', - ], + 'InstanceId' => ['description' => '实例ID。', 'type' => 'string', 'example' => 'r-bp18ff4a195d****'], + 'NodeId' => ['description' => '实例的数据节点ID。', 'type' => 'string', 'example' => 'r-x****-db-0'], ], + 'description' => '', ], ], ], + 'description' => '', ], - 'PageNo' => [ - 'description' => '页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '每页最大记录数,默认值为10。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'Extra' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', - ], - 'Total' => [ - 'description' => '结果数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '4', - ], + 'PageNo' => ['description' => '页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'PageSize' => ['description' => '每页最大记录数,默认值为10。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'Extra' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], + 'Total' => ['description' => '结果数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '4'], ], ], - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Data\\": {\\n \\"List\\": {\\n \\"CacheAnalysisJob\\": [\\n {\\n \\"TaskState\\": \\"BACKUP\\",\\n \\"JobId\\": \\"sf79-sd99-sa37-****\\",\\n \\"Message\\": \\"Successful\\",\\n \\"BigKeys\\": {\\n \\"KeyInfo\\": [\\n {\\n \\"Type\\": \\"hash\\",\\n \\"Db\\": 0,\\n \\"ExpirationTimeMillis\\": 1596256542547,\\n \\"Key\\": \\"task_*****\\",\\n \\"Encoding\\": \\"hashtable\\",\\n \\"Bytes\\": 12345,\\n \\"NodeId\\": \\"r-****-db-0\\",\\n \\"Count\\": 127\\n }\\n ]\\n },\\n \\"InstanceId\\": \\"r-bp18ff4a195d****\\",\\n \\"NodeId\\": \\"r-x****-db-0\\"\\n }\\n ]\\n },\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10,\\n \\"Extra\\": \\"None\\",\\n \\"Total\\": 4\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeCacheAnalysisJobsResponse>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Data>\\n <List>\\n <TaskState>BACKUP</TaskState>\\n <JobId>sf79-sd99-sa37-****</JobId>\\n <Message>Successful</Message>\\n <BigKeys>\\n <Type>hash</Type>\\n <Db>0</Db>\\n <ExpirationTimeMillis>1596256542547</ExpirationTimeMillis>\\n <Key>task_*****</Key>\\n <Encoding>hashtable</Encoding>\\n <Bytes>12345</Bytes>\\n <NodeId>r-****-db-0</NodeId>\\n <Count>127</Count>\\n </BigKeys>\\n <InstanceId>r-bp18ff4a195d****</InstanceId>\\n <NodeId>r-x****-db-0</NodeId>\\n </List>\\n <PageNo>1</PageNo>\\n <PageSize>10</PageSize>\\n <Extra>None</Extra>\\n <Total>4</Total>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</DescribeCacheAnalysisJobsResponse>","errorExample":""}]', 'title' => '查询缓存分析任务列表', + 'summary' => '调用DescribeCacheAnalysisJobs接口,查询缓存分析任务列表。', 'description' => '使用该接口需满足以下前提条件:'."\n" ."\n" .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" .'- 使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" .'- 本接口只适用于Redis引擎。', - ], - 'EnableSqlConcurrencyControl' => [ - 'summary' => '调用EnableSqlConcurrencyControl接口,启用SQL限流来控制数据库请求访问量和SQL并发量。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCacheAnalysisJobs'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeCacheAnalysisJobs', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Data\\": {\\n \\"List\\": {\\n \\"CacheAnalysisJob\\": [\\n {\\n \\"TaskState\\": \\"BACKUP\\",\\n \\"JobId\\": \\"sf79-sd99-sa37-****\\",\\n \\"Message\\": \\"Successful\\",\\n \\"BigKeys\\": {\\n \\"KeyInfo\\": [\\n {\\n \\"Type\\": \\"hash\\",\\n \\"Db\\": 0,\\n \\"ExpirationTimeMillis\\": 1596256542547,\\n \\"Key\\": \\"task_*****\\",\\n \\"Encoding\\": \\"hashtable\\",\\n \\"Bytes\\": 12345,\\n \\"NodeId\\": \\"r-****-db-0\\",\\n \\"Count\\": 127\\n }\\n ]\\n },\\n \\"InstanceId\\": \\"r-bp18ff4a195d****\\",\\n \\"NodeId\\": \\"r-x****-db-0\\"\\n }\\n ]\\n },\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10,\\n \\"Extra\\": \\"None\\",\\n \\"Total\\": 4\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeCacheAnalysisJobsResponse>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Data>\\n <List>\\n <TaskState>BACKUP</TaskState>\\n <JobId>sf79-sd99-sa37-****</JobId>\\n <Message>Successful</Message>\\n <BigKeys>\\n <Type>hash</Type>\\n <Db>0</Db>\\n <ExpirationTimeMillis>1596256542547</ExpirationTimeMillis>\\n <Key>task_*****</Key>\\n <Encoding>hashtable</Encoding>\\n <Bytes>12345</Bytes>\\n <NodeId>r-****-db-0</NodeId>\\n <Count>127</Count>\\n </BigKeys>\\n <InstanceId>r-bp18ff4a195d****</InstanceId>\\n <NodeId>r-x****-db-0</NodeId>\\n </List>\\n <PageNo>1</PageNo>\\n <PageSize>10</PageSize>\\n <Extra>None</Extra>\\n <Total>4</Total>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</DescribeCacheAnalysisJobsResponse>","errorExample":""}]', + ], + 'DescribeCloudBenchTasks' => [ + 'summary' => '调用DescribeCloudBenchTasks接口,查询压测任务列表。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', + 'abilityTreeCode' => '29456', + 'abilityTreeNodes' => ['FEATUREhdmB8MM4L'], ], 'parameters' => [ [ - 'name' => 'ConsoleContext', + 'name' => 'Status', 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], + 'schema' => ['description' => '任务的运行状态。取值:'."\n" + ."\n" + .'- **SUCCESS**:成功。'."\n" + .'- **IGNORED**:忽略。'."\n" + .'- **RUNNING**:运行中。'."\n" + .'- **EXCEPTION**:异常。', 'type' => 'string', 'required' => false, 'example' => 'SUCCESS'], ], [ - 'name' => 'InstanceId', + 'name' => 'TaskType', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - .'>仅支持RDS MySQL和 PolarDB MySQL版实例。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze1jdv45i7l6****', - ], + 'schema' => ['description' => '压测任务类型。取值:'."\n" + .'- **pressure test**(默认):智能压测,将从源实例上捕获的流量,按照目标实例规格支持的极限速度,在目标实例上进行回放。'."\n" + .'- **smart pressure test**:生成压测,通过分析和学习短时间内在源实例上捕获的流量,生成和原始流量的业务模型和流量分布基本一致的流量进行持续压测,减少从源实例采集数据的时间,降低存储成本和性能开销。', 'type' => 'string', 'required' => false, 'example' => 'pressure test'], ], [ - 'name' => 'SqlType', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '选择SQL的类型。取值:'."\n" - .'- **SELECT**'."\n" - .'- **UPDATE**'."\n" - .'- **DELETE**', - 'type' => 'string', - 'required' => true, - 'example' => 'SELECT', - ], + 'schema' => ['description' => '查询任务开始时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'string', 'required' => false, 'example' => '1596177993000'], ], [ - 'name' => 'MaxConcurrency', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'SQL最大并发数,取值为大于或等于1的整数。'."\n" - .'>当包含关键词的SQL达到最大并发数时会触发限流规则。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '3', - ], + 'schema' => ['description' => '查询任务结束时间,格式为Unix时间戳,单位为毫秒。'."\n" + .'>查询任务结束时间需晚于查询任务开始时间。', 'type' => 'string', 'required' => false, 'example' => '1596177993001'], ], [ - 'name' => 'SqlKeywords', + 'name' => 'PageNo', 'in' => 'query', - 'schema' => [ - 'description' => '需要限流的SQL关键词。'."\n" - .'>多个关键词间用波浪线(~)分隔,SQL语句中需要同时包含这些关键词才会触发限流规则。', - 'type' => 'string', - 'required' => true, - 'example' => 'call~open~api~test~4~from~POP', - ], + 'schema' => ['description' => '页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', 'type' => 'string', 'required' => false, 'example' => '1'], ], [ - 'name' => 'ConcurrencyControlTime', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'SQL限流的生效时长,单位为秒。'."\n" - .'>限流规则仅在生效时间内开启。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '300', - ], + 'schema' => ['description' => '每页最大记录数,取值大于0且不超过Integer数据类型的最大值,默认值为10。', 'type' => 'string', 'required' => false, 'example' => '10'], ], ], 'responses' => [ @@ -3489,34 +3115,171 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], 'Data' => [ 'description' => '详细信息列表,包括信息总数、错误码等。', - 'type' => 'string', - 'example' => 'Null', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功'."\n" - .'- **false**:执行失败', - 'type' => 'string', - 'example' => 'true', + 'type' => 'object', + 'properties' => [ + 'PageNo' => ['description' => '页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '每页最大记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Extra' => ['description' => ' 备用参数。', 'type' => 'string', 'example' => 'None'], + 'Total' => ['description' => '结果的数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'cloudbenchTasks' => [ + 'description' => '压测任务的详细信息列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DtsJobName' => ['description' => 'DTS的任务名称。', 'type' => 'string', 'example' => 'RDS间迁移'], + 'ErrorMessage' => ['description' => '任务失败的错误提示。', 'type' => 'string', 'example' => 'DTS-070211: Connect Source DB failed. cause by [com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:Could not create connection to database server. Attempted reconnect 3 times. Giving up.][com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure\\n\\nThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.][java.net.ConnectException:Connection timed out (Connection timed out)] About more information in [https://yq.aliyun.com/articles/499178].'], + 'External' => ['description' => '其他信息。', 'type' => 'string', 'example' => 'Null'], + 'BackupType' => ['description' => '备份类型。取值:'."\n" + ."\n" + .'- **TIMESTAMP**:按备份时间。'."\n" + .'- **BACKUPID**:按备份集ID。', 'type' => 'string', 'example' => 'TIMESTAMP'], + 'UserId' => ['description' => '阿里云账号ID。', 'type' => 'string', 'example' => '1091411816252****'], + 'DstType' => ['description' => '目标实例的类型。取值:'."\n" + .'- **Instance**(默认):实例ID。'."\n" + .'- **ConnectionString**:实例的连接地址。', 'type' => 'string', 'example' => 'Instance'], + 'EcsInstanceId' => ['description' => 'ECS的实例ID。', 'type' => 'string', 'example' => 'i-bp1ecr5go2go1****'], + 'DstInstanceUuid' => ['description' => '目标实例的唯一标识符号。', 'type' => 'string', 'example' => 'hdm_d887b5ccf99fa0dc9a1e5aaac368****'], + 'TaskType' => ['description' => '压测任务类型。取值:'."\n" + .'- **pressure test**(默认):智能压测,将从源实例上捕获的流量,按照目标实例规格支持的极限速度,在目标实例上进行回放。'."\n" + .'- **smart pressure test**:生成压测,通过分析和学习短时间内在源实例上捕获的流量,生成和原始流量的业务模型和流量分布基本一致的流量进行持续压测,减少从源实例采集数据的时间,降低存储成本和性能开销。', 'type' => 'string', 'example' => 'pressure test'], + 'BenchStep' => ['description' => '压测的子步骤。取值:'."\n" + ."\n" + .'- **NEW**:任务初始化。'."\n" + .'- **WAIT_BUY_ECS**:新购ECS实例。'."\n" + .'- **WAIT_START_ECS**:ECS实例启动。'."\n" + .'- **WAIT_INSTALL_JDK**:安装JDK。'."\n" + .'- **WAIT_INSTALL_DBGATEWAY**:安装DBGateway。'."\n" + .'- **ADD_SECURITY_IPS_STEP**:配置安全组白名单。'."\n" + .'- **ARCHIVE**:全量SQL归档。'."\n" + .'- **DOWNLOAD**:下载全量SQL文件。'."\n" + .'- **PROCEED**:预处理全量SQL文件。'."\n" + .'- **PRE_LOAD**:预加载全量SQL文件。'."\n" + .'- **VALIDATE**:功能验证。'."\n" + .'- **PRESSURE**:性能压测。', 'type' => 'string', 'example' => 'PROCEED'], + 'Version' => ['description' => '压测任务版本。取值:'."\n" + ."\n" + .'- **V2.0**。'."\n" + .'- **V3.0**。', 'type' => 'string', 'example' => 'V3.0'], + 'EndState' => ['description' => '压测任务结束后的状态。取值:'."\n" + ."\n" + .'- **WAIT_TARGET**:准备压测的目标实例。'."\n" + .'- **WAIT_DBGATEWAY**:准备压测部署。'."\n" + .'- **WAIT_SQL**:准备全量SQL。'."\n" + .'- **WAIT_LOGIC**:准备开始回放流量。'."\n" + ."\n" + .'>当压测任务执行完EndState设置的状态之后,任务将直接到达完成状态。', 'type' => 'string', 'example' => 'WAIT_TARGET'], + 'SrcInstanceUuid' => ['description' => '源实例的唯一标识符号。', 'type' => 'string', 'example' => 'hdm_3063db6792965c080a4bcb6e6304****'], + 'ClientType' => ['description' => '压测机器类型。取值:'."\n" + ."\n" + .'- **ECS**:您需要自己准备[数据库网关](~~64905~~)。'."\n" + .'- **DAS_ECS**:DAS自动购买和部署的ECS。', 'type' => 'string', 'example' => 'ECS'], + 'State' => ['description' => '目前压测任务的状态。取值:'."\n" + ."\n" + .'- **WAIT_TARGET**:准备压测的目标实例。'."\n" + .'- **WAIT_DBGATEWAY**:准备压测部署。'."\n" + .'- **WAIT_SQL**:准备全量SQL。'."\n" + .'- **WAIT_LOGIC**:准备开始回放流量。', 'type' => 'string', 'example' => 'WAIT_TARGET'], + 'DstIp' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], + 'SrcPublicIp' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], + 'BackupId' => ['description' => '备份集ID,可通过查询备份列表接口[DescribeBackups](~~26273~~)获取。', 'type' => 'string', 'example' => '229132'], + 'SqlCompleteReuse' => ['description' => '全量SQL的复用信息。', 'type' => 'string', 'example' => '{"sqlUuid":"task_a37d2f07-45cb-4413-a2a6-c66c68****","metaUuid":"task_211e2561-5c0c-486b-864c-56b511****","sqlFile":"cl-1620057600000-1800626.sc","metaFile":"cl-1620057600000-1800626.meta"}'], + 'SmartPressureTime' => ['description' => '生成压测的时间,单位为毫秒。', 'type' => 'integer', 'format' => 'int32', 'example' => '86400000'], + 'ArchiveState' => ['description' => 'SQL归档状态,取值:'."\n" + ."\n" + .'- **0**:未开始。'."\n" + .'- **1**:完成。'."\n" + .'- **2**:错误。'."\n" + .'- **3**:运行中。'."\n" + .'- **4**:无需下载。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Status' => ['description' => '压测任务的运行状态。取值:'."\n" + ."\n" + .'- **SUCCESS**:成功。'."\n" + .'- **IGNORED**:忽略。'."\n" + .'- **RUNNING**:运行中。'."\n" + .'- **EXCEPTION**:异常。', 'type' => 'string', 'example' => 'RUNNING'], + 'WorkDir' => ['description' => '压测生成的临时目录。', 'type' => 'string', 'example' => '/tmp/bench/'], + 'ArchiveOssTableName' => ['description' => '归档至OSS的表名。', 'type' => 'string', 'example' => 'custins15546355_161604665****'], + 'DtsJobId' => ['description' => 'DTS迁移的任务ID。', 'type' => 'string', 'example' => 'i03e3zty16i****'], + 'DtsJobState' => ['description' => 'DTS任务状态,取值:'."\n" + ."\n" + .'- **NOT_STARTED**:未启动。'."\n" + .'- **PRE_CHECKING**:预检查中。'."\n" + .'- **PRE_CHECK_FAILED**:预检查失败。'."\n" + .'- **CHECKING**:检查中。'."\n" + .'- **MIGRATING**:迁移中。'."\n" + .'- **CATCHED**:已经追平。'."\n" + .'- **SUSPENDING**:暂停中。'."\n" + .'- **MIGRATION_FAILED**:迁移失败。'."\n" + .'- **FINISHED**:完成。'."\n" + .'- **INITIALIZING**:同步初始化。'."\n" + .'- **INITIALIZE_FAILED**:同步初始化失败。'."\n" + .'- **SYNCHRONIZING**:同步中。'."\n" + .'- **MODIFYING**:同步对象变更中。'."\n" + .'- **SWITCHING**:切换中。'."\n" + .'- **FAILED**:失败。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => 'CHECKING'], + 'DstPort' => ['description' => '目标实例的端口。', 'type' => 'integer', 'format' => 'int32', 'example' => '3306'], + 'DtsJobClass' => ['description' => 'DTS链路规格。'."\n" + .'>关于各链路规格的说明及性能测试情况请参见[数据迁移链路规格说明](~~26606~~)。', 'type' => 'string', 'example' => 'medium'], + 'ClientGatewayId' => ['description' => '压测机的数据库网关ID。', 'type' => 'string', 'example' => '58598b2af48a0193dfc16fc6964ef****'], + 'Description' => ['description' => '压测任务描述。', 'type' => 'string', 'example' => 'test-das-bench-0501'], + 'ErrorCode' => ['description' => '压测内部任务返回的错误码。', 'type' => 'string', 'example' => '10109'], + 'TableSchema' => ['description' => '压测中涉及的表名。', 'type' => 'string', 'example' => '[{"TABLE_NAME":"customer1","TABLE_SCHEMA":"tpcc"}]'], + 'DtsJobStatus' => ['description' => 'DTS任务状态,取值:'."\n" + ."\n" + .'- **NOT_STARTED**:未启动。'."\n" + .'- **PRE_CHECKING**:预检查中。'."\n" + .'- **PRE_CHECK_FAILED**:预检查失败。'."\n" + .'- **CHECKING**:检查中。'."\n" + .'- **MIGRATING**:迁移中。'."\n" + .'- **CATCHED**:已经追平。'."\n" + .'- **SUSPENDING**:暂停中。'."\n" + .'- **MIGRATION_FAILED**:迁移失败。'."\n" + .'- **FINISHED**:完成。'."\n" + .'- **INITIALIZING**:同步初始化。'."\n" + .'- **INITIALIZE_FAILED**:同步初始化失败。'."\n" + .'- **SYNCHRONIZING**:同步中。'."\n" + .'- **MODIFYING**:同步对象变更中。'."\n" + .'- **SWITCHING**:切换中。'."\n" + .'- **FAILED**:失败。'."\n", 'type' => 'string', 'example' => 'PRE_CHECK_FAILED'], + 'SrcInstanceArea' => ['description' => '源实例的数据库类型。', 'type' => 'string', 'example' => 'RDS'], + 'BenchStepStatus' => ['description' => '压测子步骤状态。取值:'."\n" + ."\n" + .'- **NEW**:任务初始化。'."\n" + .'- **RUNNING**:正在执行。'."\n" + .'- **FAILED**:失败。'."\n" + .'- **FINISHED**:完成。'."\n" + .'- **Terminated**:已终止。'."\n" + .'- **Deleted**:已删除。'."\n", 'type' => 'string', 'example' => 'FINISHED'], + 'Source' => ['description' => '任务来源。取值:'."\n" + ."\n" + .'- **DAS**。'."\n" + .'- **OPEN_API**。', 'type' => 'string', 'example' => 'DAS'], + 'ArchiveJobId' => ['description' => '归档任务ID。', 'type' => 'string', 'example' => '\'202105211430070112231480820340758****'], + 'Topic' => ['description' => 'kafka的消费Topic。', 'type' => 'string', 'example' => 'das'], + 'RequestDuration' => ['description' => '压测任务持续时间,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '86400000'], + 'TaskId' => ['description' => '任务ID。', 'type' => 'string', 'example' => 'e5cec704-0518-430f-8263-76f4dcds****'], + 'Rate' => ['description' => '源实例流量在目标实例上的回放速度,回放速度必须是正整数,取值:**0**~**30**,默认为**1**。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + ], + ], + ], + ], + ], + ], ], ], ], @@ -3524,75 +3287,256 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": \\"Null\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<EnableSqlConcurrencyControlResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\"Data\\": { \\"total\\": 1, \\"list\\":[...] }, \\"Code\\": 200, \\"Success\\": true }</Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</EnableSqlConcurrencyControlResponse>","errorExample":""}]', - 'title' => '启用SQL限流', - 'description' => '本接口适用的数据库引擎为:'."\n" - .'- RDS MySQL'."\n" - .'- PolarDB MySQL版', - ], - 'DisableSqlConcurrencyControl' => [ - 'summary' => '调用DisableSqlConcurrencyControl接口,关闭指定限流规则。', - 'methods' => [ - 'get', - 'post', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10,\\n \\"Extra\\": \\"None\\",\\n \\"Total\\": 2,\\n \\"List\\": {\\n \\"cloudbenchTasks\\": [\\n {\\n \\"DtsJobName\\": \\"RDS间迁移\\",\\n \\"ErrorMessage\\": \\"DTS-070211: Connect Source DB failed. cause by [com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:Could not create connection to database server. Attempted reconnect 3 times. Giving up.][com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure\\\\\\\\n\\\\\\\\nThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.][java.net.ConnectException:Connection timed out (Connection timed out)] About more information in [https://yq.aliyun.com/articles/499178].\\",\\n \\"External\\": \\"Null\\",\\n \\"BackupType\\": \\"TIMESTAMP\\",\\n \\"UserId\\": \\"1091411816252****\\",\\n \\"DstType\\": \\"Instance\\",\\n \\"EcsInstanceId\\": \\"i-bp1ecr5go2go1****\\",\\n \\"DstInstanceUuid\\": \\"hdm_d887b5ccf99fa0dc9a1e5aaac368****\\",\\n \\"TaskType\\": \\"pressure test\\",\\n \\"BenchStep\\": \\"PROCEED\\",\\n \\"Version\\": \\"V3.0\\",\\n \\"EndState\\": \\"WAIT_TARGET\\",\\n \\"SrcInstanceUuid\\": \\"hdm_3063db6792965c080a4bcb6e6304****\\",\\n \\"ClientType\\": \\"ECS\\",\\n \\"State\\": \\"WAIT_TARGET\\",\\n \\"DstIp\\": \\"None\\",\\n \\"SrcPublicIp\\": \\"None\\",\\n \\"BackupId\\": \\"229132\\",\\n \\"SqlCompleteReuse\\": \\"{\\\\\\"sqlUuid\\\\\\":\\\\\\"task_a37d2f07-45cb-4413-a2a6-c66c68****\\\\\\",\\\\\\"metaUuid\\\\\\":\\\\\\"task_211e2561-5c0c-486b-864c-56b511****\\\\\\",\\\\\\"sqlFile\\\\\\":\\\\\\"cl-1620057600000-1800626.sc\\\\\\",\\\\\\"metaFile\\\\\\":\\\\\\"cl-1620057600000-1800626.meta\\\\\\"}\\",\\n \\"SmartPressureTime\\": 86400000,\\n \\"ArchiveState\\": 1,\\n \\"Status\\": \\"RUNNING\\",\\n \\"WorkDir\\": \\"/tmp/bench/\\",\\n \\"ArchiveOssTableName\\": \\"custins15546355_161604665****\\",\\n \\"DtsJobId\\": \\"i03e3zty16i****\\",\\n \\"DtsJobState\\": 0,\\n \\"DstPort\\": 3306,\\n \\"DtsJobClass\\": \\"medium\\",\\n \\"ClientGatewayId\\": \\"58598b2af48a0193dfc16fc6964ef****\\",\\n \\"Description\\": \\"test-das-bench-0501\\",\\n \\"ErrorCode\\": \\"10109\\",\\n \\"TableSchema\\": \\"[{\\\\\\"TABLE_NAME\\\\\\":\\\\\\"customer1\\\\\\",\\\\\\"TABLE_SCHEMA\\\\\\":\\\\\\"tpcc\\\\\\"}]\\",\\n \\"DtsJobStatus\\": \\"PRE_CHECK_FAILED\\",\\n \\"SrcInstanceArea\\": \\"RDS\\",\\n \\"BenchStepStatus\\": \\"FINISHED\\",\\n \\"Source\\": \\"DAS\\",\\n \\"ArchiveJobId\\": \\"\'202105211430070112231480820340758****\\",\\n \\"Topic\\": \\"das\\",\\n \\"RequestDuration\\": 86400000,\\n \\"TaskId\\": \\"e5cec704-0518-430f-8263-76f4dcds****\\",\\n \\"Rate\\": 1\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeCloudBenchTasksResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n <Data>\\n <PageNo>1</PageNo>\\n <PageSize>10</PageSize>\\n <Extra>None</Extra>\\n <Total>2</Total>\\n <List>\\n <DtsJobName>RDS间迁移</DtsJobName>\\n <ErrorMessage>DTS-070211: Connect Source DB failed. cause by [com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:Could not create connection to database server. Attempted reconnect 3 times. Giving up.][com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure\\\\n\\\\nThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.][java.net.ConnectException:Connection timed out (Connection timed out)] About more information in [https://yq.aliyun.com/articles/499178].</ErrorMessage>\\n <External>Null</External>\\n <BackupType>TIMESTAMP</BackupType>\\n <UserId>1091411816252****</UserId>\\n <DstType>Instance</DstType>\\n <EcsInstanceId>i-bp1ecr5go2go1****</EcsInstanceId>\\n <DstInstanceUuid>hdm_d887b5ccf99fa0dc9a1e5aaac368****</DstInstanceUuid>\\n <TaskType>pressure test</TaskType>\\n <BenchStep>PROCEED</BenchStep>\\n <Version>V3.0</Version>\\n <EndState>WAIT_TARGET</EndState>\\n <SrcInstanceUuid>hdm_3063db6792965c080a4bcb6e6304****</SrcInstanceUuid>\\n <ClientType>ECS</ClientType>\\n <State>WAIT_TARGET</State>\\n <DstIp>None</DstIp>\\n <SrcPublicIp>None</SrcPublicIp>\\n <BackupId>229132</BackupId>\\n <SqlCompleteReuse>{\\"sqlUuid\\":\\"task_a37d2f07-45cb-4413-a2a6-c66c68****\\",\\"metaUuid\\":\\"task_211e2561-5c0c-486b-864c-56b511****\\",\\"sqlFile\\":\\"cl-1620057600000-1800626.sc\\",\\"metaFile\\":\\"cl-1620057600000-1800626.meta\\"}</SqlCompleteReuse>\\n <SmartPressureTime>86400000</SmartPressureTime>\\n <ArchiveState>1</ArchiveState>\\n <Status>RUNNING</Status>\\n <WorkDir>/tmp/bench/</WorkDir>\\n <ArchiveOssTableName>custins15546355_161604665****</ArchiveOssTableName>\\n <DtsJobId>i03e3zty16i****</DtsJobId>\\n <DstPort>3306</DstPort>\\n <DtsJobClass>medium</DtsJobClass>\\n <ClientGatewayId>58598b2af48a0193dfc16fc6964ef****</ClientGatewayId>\\n <Description>test-das-bench-0501</Description>\\n <ErrorCode>10109</ErrorCode>\\n <TableSchema>[{\\"TABLE_NAME\\":\\"customer1\\",\\"TABLE_SCHEMA\\":\\"tpcc\\"}]</TableSchema>\\n <DtsJobStatus>PRE_CHECK_FAILED</DtsJobStatus>\\n <SrcInstanceArea>RDS</SrcInstanceArea>\\n <BenchStepStatus>FINISHED</BenchStepStatus>\\n <Source>DAS</Source>\\n <ArchiveJobId>\'202105211430070112231480820340758****</ArchiveJobId>\\n <Topic>das</Topic>\\n <RequestDuration>86400000</RequestDuration>\\n <TaskId>e5cec704-0518-430f-8263-76f4dcds****</TaskId>\\n <Rate>1</Rate>\\n </List>\\n </Data>\\n</DescribeCloudBenchTasksResponse>","errorExample":""}]', + 'title' => '查询压测任务列表', + 'description' => '数据库自治服务DAS提供智能压测功能,帮助您验证您的实例规格是否需要扩容,有效应对业务流量高峰。更多信息,请参见[智能压测](~~155068~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCloudBenchTasks'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeCloudBenchTasks', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeCloudbenchTask' => [ + 'summary' => '调用DescribeCloudbenchTask接口,查询压测任务。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'ConsoleContext', + 'name' => 'TaskId', 'in' => 'query', + 'schema' => ['description' => '任务ID,您可通过[DescribeCloudBenchTasks](~~230670~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'e5cec704-0518-430f-8263-76f4dcds****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], + 'Data' => [ + 'description' => '详细信息列表,包括信息总数、错误码等。', + 'type' => 'object', + 'properties' => [ + 'DtsJobName' => ['description' => 'DTS的任务名称。', 'type' => 'string', 'example' => 'Migration between RDS instances'], + 'ErrorMessage' => ['description' => '任务失败的错误提示。', 'type' => 'string', 'example' => 'DTS-070211: Connect Source DB failed. cause by [com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:Could not create connection to database server. Attempted reconnect 3 times. Giving up.][com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure\\n\\nThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.][java.net.ConnectException:Connection timed out (Connection timed out)] About more information in [https://yq.aliyun.com/articles/499178].'], + 'External' => ['description' => '其他信息。', 'type' => 'string', 'example' => 'Null'], + 'BackupType' => ['description' => '备份类型。取值:'."\n" + ."\n" + .'- **TIMESTAMP**:按备份时间。'."\n" + .'- **BACKUPID**:按备份集ID。', 'type' => 'string', 'example' => 'TIMESTAMP'], + 'UserId' => ['description' => '阿里云账号ID。', 'type' => 'string', 'example' => '109141182625****'], + 'DstType' => ['description' => '目标实例的类型。取值:'."\n" + .'- **Instance**(默认):实例ID。'."\n" + .'- **ConnectionString**:实例的连接地址。', 'type' => 'string', 'example' => 'Instance'], + 'EcsInstanceId' => ['description' => 'ECS的实例ID。', 'type' => 'string', 'example' => 'i-bp1ecr5go2go1****'], + 'DstInstanceUuid' => ['description' => '目标实例的唯一标识符号。', 'type' => 'string', 'example' => 'hdm_d887b5ccf99fa0dc9a1e5aaac368****'], + 'TaskType' => ['description' => '压测任务类型。取值:'."\n" + .'- **pressure test**(默认):智能压测,将从源实例上捕获的流量,按照目标实例规格支持的极限速度,在目标实例上进行回放。'."\n" + .'- **smart pressure test**:生成压测,通过分析和学习短时间内在源实例上捕获的流量,生成和原始流量的业务模型和流量分布基本一致的流量进行持续压测,减少从源实例采集数据的时间,降低存储成本和性能开销。', 'type' => 'string', 'example' => 'pressure test'], + 'BenchStep' => ['description' => '压测的子步骤。取值:'."\n" + ."\n" + .'- **NEW**:任务初始化。'."\n" + .'- **WAIT_BUY_ECS**:新购ECS实例。'."\n" + .'- **WAIT_START_ECS**:ECS实例启动。'."\n" + .'- **WAIT_INSTALL_JDK**:安装JDK。'."\n" + .'- **WAIT_INSTALL_DBGATEWAY**:安装DBGateway。'."\n" + .'- **ADD_SECURITY_IPS_STEP**:配置安全组白名单。'."\n" + .'- **ARCHIVE**:全量SQL归档。'."\n" + .'- **DOWNLOAD**:下载全量SQL文件。'."\n" + .'- **PROCEED**:预处理全量SQL文件。'."\n" + .'- **PRE_LOAD**:预加载全量SQL文件。'."\n" + .'- **VALIDATE**:功能验证。'."\n" + .'- **PRESSURE**:性能压测。', 'type' => 'string', 'example' => 'PROCEED'], + 'Version' => ['description' => '压测任务版本。取值:'."\n" + ."\n" + .'- **V2.0**'."\n" + .'- **V3.0**', 'type' => 'string', 'example' => 'V3.0'], + 'EndState' => ['description' => '压测任务结束后的状态。取值:'."\n" + ."\n" + .'- **WAIT_TARGET**:准备压测的目标实例。'."\n" + .'- **WAIT_DBGATEWAY**:准备压测部署。'."\n" + .'- **WAIT_SQL**:准备全量SQL。'."\n" + .'- **WAIT_LOGIC**:准备开始回放流量。'."\n" + ."\n" + .'>当压测任务执行完EndState设置的状态之后,任务将直接到达完成状态。', 'type' => 'string', 'example' => 'WAIT_LOGIC'], + 'SrcInstanceUuid' => ['description' => '源实例的唯一标识符号。', 'type' => 'string', 'example' => 'a364e414-e68b-4e5c-9166-65b3a153****'], + 'ClientType' => ['description' => '压测机器类型。取值:'."\n" + ."\n" + .'- **ECS**:您需要自己准备[数据库网关](~~64905~~)。'."\n" + .'- **DAS_ECS**:DAS自动购买和部署的ECS。', 'type' => 'string', 'example' => 'ECS'], + 'State' => ['description' => '目前压测任务的状态。取值:'."\n" + ."\n" + .'- **WAIT_TARGET**:准备压测的目标实例。'."\n" + .'- **WAIT_DBGATEWAY**:准备压测部署。'."\n" + .'- **WAIT_SQL**:准备全量SQL。'."\n" + .'- **WAIT_LOGIC**:准备开始回放流量。', 'type' => 'string', 'example' => 'WAIT_TARGET'], + 'DstIp' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], + 'SrcPublicIp' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], + 'BackupId' => ['description' => '备份集ID,可通过查询备份列表接口[DescribeBackups](~~26273~~)获取。', 'type' => 'string', 'example' => '229132'], + 'SqlCompleteReuse' => ['description' => '全量SQL的复用信息。', 'type' => 'string', 'example' => '{"sqlUuid":"task_a37d2f07-45cb-****-a2a6-c66c62****","metaUuid":"task_211e2561-5c0c-486b-864c-56b511****","sqlFile":"cl-1620057600000-1800626.sc","metaFile":"cl-1620057600000-180****.meta"}'], + 'SmartPressureTime' => ['description' => '生成压测时间,单位为毫秒。', 'type' => 'integer', 'format' => 'int32', 'example' => '86400000'], + 'ArchiveState' => ['description' => 'SQL归档状态,取值:'."\n" + ."\n" + .'- **0**:未开始。'."\n" + .'- **1**:完成。'."\n" + .'- **2**:错误。'."\n" + .'- **3**:运行中。'."\n" + .'- **4**:无需下载。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Status' => ['description' => '压测任务的运行状态。取值:'."\n" + ."\n" + .'- **SUCCESS**:成功。'."\n" + .'- **IGNORED**:忽略。'."\n" + .'- **RUNNING**:运行中。'."\n" + .'- **EXCEPTION**:异常。', 'type' => 'string', 'example' => 'RUNNING'], + 'WorkDir' => ['description' => '压测生成的临时目录。', 'type' => 'string', 'example' => '/tmp/bench/'], + 'ArchiveOssTableName' => ['description' => '归档的OSS表名。', 'type' => 'string', 'example' => 'custins15546355_161604665****'], + 'DtsJobId' => ['description' => 'DTS迁移任务ID。', 'type' => 'string', 'example' => 'i03e3zty16i****'], + 'DtsJobState' => ['description' => 'DTS任务状态,取值:'."\n" + ."\n" + .'- **NOT_STARTED**:未启动。'."\n" + .'- **PRE_CHECKING**:预检查中。'."\n" + .'- **PRE_CHECK_FAILED**:预检查失败。'."\n" + .'- **CHECKING**:检查中。'."\n" + .'- **MIGRATING**:迁移中。'."\n" + .'- **CATCHED**:已经追平。'."\n" + .'- **SUSPENDING**:暂停中。'."\n" + .'- **MIGRATION_FAILED**:迁移失败。'."\n" + .'- **FINISHED**:完成。'."\n" + .'- **INITIALIZING**:同步初始化。'."\n" + .'- **INITIALIZE_FAILED**:同步初始化失败。'."\n" + .'- **SYNCHRONIZING**:同步中。'."\n" + .'- **MODIFYING**:同步对象变更中。'."\n" + .'- **SWITCHING**:切换中。'."\n" + .'- **FAILED**:失败。', 'type' => 'integer', 'format' => 'int32', 'example' => 'CHECKING'], + 'DstPort' => ['description' => '目标实例的端口。', 'type' => 'integer', 'format' => 'int32', 'example' => '3306'], + 'DtsJobClass' => ['description' => 'DTS任务规格。', 'type' => 'string', 'example' => 'medium'], + 'ClientGatewayId' => ['description' => '压测机的数据库网关ID。', 'type' => 'string', 'example' => '58598b2af48a0193dfc16fc6964ef****'], + 'Description' => ['description' => '压测任务描述。', 'type' => 'string', 'example' => 'test-das-bench-0501'], + 'ErrorCode' => ['description' => '压测内部任务返回的错误码。', 'type' => 'string', 'example' => '10910'], + 'TableSchema' => ['description' => '压测中涉及的表名。', 'type' => 'string', 'example' => '[{"TABLE_NAME":"customer1","TABLE_SCHEMA":"tpcc"}]'], + 'DtsJobStatus' => ['description' => 'DTS任务状态,取值:'."\n" + ."\n" + .'- **NOT_STARTED**:未启动。'."\n" + .'- **PRE_CHECKING**:预检查中。'."\n" + .'- **PRE_CHECK_FAILED**:预检查失败。'."\n" + .'- **CHECKING**:检查中。'."\n" + .'- **MIGRATING**:迁移中。'."\n" + .'- **CATCHED**:已经追平。'."\n" + .'- **SUSPENDING**:暂停中。'."\n" + .'- **MIGRATION_FAILED**:迁移失败。'."\n" + .'- **FINISHED**:完成。'."\n" + .'- **INITIALIZING**:同步初始化。'."\n" + .'- **INITIALIZE_FAILED**:同步初始化失败。'."\n" + .'- **SYNCHRONIZING**:同步中。'."\n" + .'- **MODIFYING**:同步对象变更中。'."\n" + .'- **SWITCHING**:切换中。'."\n" + .'- **FAILED**:失败。'."\n", 'type' => 'string', 'example' => 'PRE_CHECKING'], + 'SrcInstanceArea' => ['description' => '源实例的数据库类型。', 'type' => 'string', 'example' => 'RDS'], + 'BenchStepStatus' => ['description' => '压测子步骤状态。取值:'."\n" + ."\n" + .'- **NEW**:任务初始化。'."\n" + .'- **RUNNING**:正在执行。'."\n" + .'- **FAILED**:失败。'."\n" + .'- **FINISHED**:已完成。'."\n" + .'- **Terminated**:已终止。'."\n" + .'- **Deleted**:已删除。'."\n" + ."\n", 'type' => 'string', 'example' => 'FINISHED'], + 'Source' => ['description' => '任务来源。取值:'."\n" + ."\n" + .'- **DAS**。'."\n" + .'- **OPEN_API**。', 'type' => 'string', 'example' => 'DAS'], + 'ArchiveJobId' => ['description' => '归档任务ID。', 'type' => 'string', 'example' => '\'202105211430070112231480820340758****'], + 'Topic' => ['description' => 'kafka的消费Topic。', 'type' => 'string', 'example' => 'das'], + 'RequestDuration' => ['description' => '压测任务的持续时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '864000'], + 'TaskId' => ['description' => '任务ID。', 'type' => 'string', 'example' => 'e5cec704-0518-430f-8263-76f4dcds****'], + 'Rate' => ['description' => '压测倍率。回放倍率必须是正整数,取值范围为:**0**~**30**,默认为**1**。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + ], + ], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"DtsJobName\\": \\"Migration between RDS instances\\",\\n \\"ErrorMessage\\": \\"DTS-070211: Connect Source DB failed. cause by [com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:Could not create connection to database server. Attempted reconnect 3 times. Giving up.][com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure\\\\\\\\n\\\\\\\\nThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.][java.net.ConnectException:Connection timed out (Connection timed out)] About more information in [https://yq.aliyun.com/articles/499178].\\",\\n \\"External\\": \\"Null\\",\\n \\"BackupType\\": \\"TIMESTAMP\\",\\n \\"UserId\\": \\"109141182625****\\",\\n \\"DstType\\": \\"Instance\\",\\n \\"EcsInstanceId\\": \\"i-bp1ecr5go2go1****\\",\\n \\"DstInstanceUuid\\": \\"hdm_d887b5ccf99fa0dc9a1e5aaac368****\\",\\n \\"TaskType\\": \\"pressure test\\",\\n \\"BenchStep\\": \\"PROCEED\\",\\n \\"Version\\": \\"V3.0\\",\\n \\"EndState\\": \\"WAIT_LOGIC\\",\\n \\"SrcInstanceUuid\\": \\"a364e414-e68b-4e5c-9166-65b3a153****\\",\\n \\"ClientType\\": \\"ECS\\",\\n \\"State\\": \\"WAIT_TARGET\\",\\n \\"DstIp\\": \\"None\\",\\n \\"SrcPublicIp\\": \\"None\\",\\n \\"BackupId\\": \\"229132\\",\\n \\"SqlCompleteReuse\\": \\"{\\\\\\"sqlUuid\\\\\\":\\\\\\"task_a37d2f07-45cb-****-a2a6-c66c62****\\\\\\",\\\\\\"metaUuid\\\\\\":\\\\\\"task_211e2561-5c0c-486b-864c-56b511****\\\\\\",\\\\\\"sqlFile\\\\\\":\\\\\\"cl-1620057600000-1800626.sc\\\\\\",\\\\\\"metaFile\\\\\\":\\\\\\"cl-1620057600000-180****.meta\\\\\\"}\\",\\n \\"SmartPressureTime\\": 86400000,\\n \\"ArchiveState\\": 1,\\n \\"Status\\": \\"RUNNING\\",\\n \\"WorkDir\\": \\"/tmp/bench/\\",\\n \\"ArchiveOssTableName\\": \\"custins15546355_161604665****\\",\\n \\"DtsJobId\\": \\"i03e3zty16i****\\",\\n \\"DtsJobState\\": 0,\\n \\"DstPort\\": 3306,\\n \\"DtsJobClass\\": \\"medium\\",\\n \\"ClientGatewayId\\": \\"58598b2af48a0193dfc16fc6964ef****\\",\\n \\"Description\\": \\"test-das-bench-0501\\",\\n \\"ErrorCode\\": \\"10910\\",\\n \\"TableSchema\\": \\"[{\\\\\\"TABLE_NAME\\\\\\":\\\\\\"customer1\\\\\\",\\\\\\"TABLE_SCHEMA\\\\\\":\\\\\\"tpcc\\\\\\"}]\\",\\n \\"DtsJobStatus\\": \\"PRE_CHECKING\\",\\n \\"SrcInstanceArea\\": \\"RDS\\",\\n \\"BenchStepStatus\\": \\"FINISHED\\",\\n \\"Source\\": \\"DAS\\",\\n \\"ArchiveJobId\\": \\"\'202105211430070112231480820340758****\\",\\n \\"Topic\\": \\"das\\",\\n \\"RequestDuration\\": 864000,\\n \\"TaskId\\": \\"e5cec704-0518-430f-8263-76f4dcds****\\",\\n \\"Rate\\": 1\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeCloudbenchTaskResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n <Data>\\n <DtsJobName>RDS间迁移</DtsJobName>\\n <ErrorMessage>DTS-070211: Connect Source DB failed. cause by [com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:Could not create connection to database server. Attempted reconnect 3 times. Giving up.][com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure\\\\n\\\\nThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.][java.net.ConnectException:Connection timed out (Connection timed out)] About more information in [https://yq.aliyun.com/articles/499178].</ErrorMessage>\\n <External>Null</External>\\n <BackupType>TIMESTAMP</BackupType>\\n <UserId>109141182625****</UserId>\\n <DstType>Instance</DstType>\\n <EcsInstanceId>i-bp1ecr5go2go1****</EcsInstanceId>\\n <DstInstanceUuid>hdm_d887b5ccf99fa0dc9a1e5aaac368****</DstInstanceUuid>\\n <TaskType>pressure test</TaskType>\\n <BenchStep>PROCEED</BenchStep>\\n <Version>V3.0</Version>\\n <EndState>WAIT_LOGIC</EndState>\\n <SrcInstanceUuid>a364e414-e68b-4e5c-9166-65b3a153****</SrcInstanceUuid>\\n <ClientType>ECS</ClientType>\\n <State>WAIT_TARGET</State>\\n <DstIp>None</DstIp>\\n <SrcPublicIp>None</SrcPublicIp>\\n <BackupId>229132</BackupId>\\n <SqlCompleteReuse>{\\"sqlUuid\\":\\"task_a37d2f07-45cb-****-a2a6-c66c62****\\",\\"metaUuid\\":\\"task_211e2561-5c0c-486b-864c-56b511****\\",\\"sqlFile\\":\\"cl-1620057600000-1800626.sc\\",\\"metaFile\\":\\"cl-1620057600000-180****.meta\\"}</SqlCompleteReuse>\\n <SmartPressureTime>86400000</SmartPressureTime>\\n <ArchiveState>1</ArchiveState>\\n <Status>RUNNING</Status>\\n <WorkDir>/tmp/bench/</WorkDir>\\n <ArchiveOssTableName>custins15546355_161604665****</ArchiveOssTableName>\\n <DtsJobId>i03e3zty16i****</DtsJobId>\\n <DstPort>3306</DstPort>\\n <DtsJobClass>medium</DtsJobClass>\\n <ClientGatewayId>58598b2af48a0193dfc16fc6964ef****</ClientGatewayId>\\n <Description>test-das-bench-0501</Description>\\n <ErrorCode>10910</ErrorCode>\\n <TableSchema>[{\\"TABLE_NAME\\":\\"customer1\\",\\"TABLE_SCHEMA\\":\\"tpcc\\"}]</TableSchema>\\n <DtsJobStatus>PRE_CHECKING</DtsJobStatus>\\n <SrcInstanceArea>RDS</SrcInstanceArea>\\n <BenchStepStatus>FINISHED</BenchStepStatus>\\n <Source>DAS</Source>\\n <ArchiveJobId>\'202105211430070112231480820340758****</ArchiveJobId>\\n <Topic>das</Topic>\\n <RequestDuration>864000</RequestDuration>\\n <TaskId>e5cec704-0518-430f-8263-76f4dcds****</TaskId>\\n <Rate>1</Rate>\\n </Data>\\n</DescribeCloudbenchTaskResponse>","errorExample":""}]', + 'title' => '查询压测任务', + 'description' => '数据库自治服务DAS提供智能压测功能,帮助您验证您的实例规格是否需要扩容,有效应对业务流量高峰。更多信息,请参见[智能压测](~~155068~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCloudbenchTask'], + ], + ], + 'ramActions' => [ [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - .'>仅支持RDS MySQL和PolarDB MySQL版实例。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze1jdv45i7l6****', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeCloudbenchTask', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'DescribeCloudbenchTaskConfig' => [ + 'summary' => '调用DescribeCloudbenchTaskConfig接口,查询压测任务配置信息。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'ItemId', + 'name' => 'TaskId', 'in' => 'query', - 'schema' => [ - 'description' => '当前实例限流规则ID,可调用[GetRunningSqlConcurrencyControlRules](~~223538~~)接口获取。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1', - ], + 'schema' => ['description' => '任务ID,您可通过[DescribeCloudBenchTasks](~~230670~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'e5cec704-0518-430f-8263-76f4dcds****'], ], ], 'responses' => [ @@ -3600,99 +3544,110 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], 'Data' => [ 'description' => '详细信息列表,包括信息总数、错误码等。', - 'type' => 'string', - 'example' => 'Null', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功'."\n" - .'- **false**:执行失败', - 'type' => 'string', - 'example' => 'true', + 'type' => 'object', + 'properties' => [ + 'WorkDir' => ['description' => '压测生成的临时目录。', 'type' => 'string', 'example' => '/tmp/bench/'], + 'ArchiveFolder' => ['description' => '归档文件路径。', 'type' => 'string', 'example' => '/tmp/das/cloudbench/archive-sqls/'], + 'MetaFilePath' => ['description' => '元文件路径。', 'type' => 'string', 'example' => '/tmp/das/cloudbench/cl-1621353601000-360****.meta'], + 'MetaFileName' => ['description' => '元文件名。', 'type' => 'string', 'example' => 'cl-1621353601000-360****.meta'], + 'MetaFileOnOss' => ['description' => '元文件在OSS的名称。', 'type' => 'string', 'example' => '"https://cb-rm-bp1w9g06h560l****.oss-cn-hangzhou.aliyuncs.com/cl-1621353601000-360****.meta?OSSAccessKeyId=LTAI5tKj8B4wikkVtupK****&Expires=1622441372&Signature=Qsehg3tzeA57M%2BIixAbWPWAtvl****'], + 'UserId' => ['description' => '阿里云账号ID。', 'type' => 'string', 'example' => '1091411816252****'], + 'BenchCmd' => ['description' => '压测的命令。', 'type' => 'string', 'example' => 'java -jar /tmp/das/cloudbench/CloudBenchClient.jar --bench --rocksdb /tmp/das/cloudbench/rocksdb --meta /tmp/das/cloudbench/cl-1621353601000-360****.meta --task_name 2777bba9-a836-49e6-9f70-1c3822fc9239 --result_file /tmp/das/cloudbench/null.result --user cloudb**** --pwd \\"cloudbench@****\\" --host rm-bp1j5f8s5x26kq79216****.mysql.rds.aliyuncs.com --port 3306 --charset utf8mb4 --interval 1 --bench_time 3600 --rate_factor 1.0 --start_time 1621353601 --rt > /tmp/das/cloudbench/null.log'], + 'SqlFileOnOss' => ['description' => '全量SQL文件在OSS的名称。', 'type' => 'string', 'example' => 'https://cb-rm-bp1w9g06h560l****.oss-cn-hangzhou.aliyuncs.com/cl-1621353601000-360****.sc?OSSAccessKeyId=LTAI5tKj8B4wikkVtupK****&Expires=1622441372&Signature=LYMADwo%2BRrJeqR3e4d8OlIkVmw****'], + 'LoadCmd' => ['description' => 'SQL文件预加载的命令。', 'type' => 'string', 'example' => 'java -jar /tmp/das/cloudbench/CloudBenchClient.jar --load --out /tmp/das/cloudbench/cl-1621353601000-360****.sc --meta /tmp/das/cloudbench/cl-1621353601000-360****.meta --task_name 2777bba9-****-49e6-9f70-1c3822fc**** --rocksdb /tmp/das/cloudbench/rocksdb'], + 'RocksDbPath' => ['description' => 'RocksDB存储系统在压测机中的位置。', 'type' => 'string', 'example' => '/tmp/das/cloudbench/rocksdb'], + 'ParseCmd' => ['description' => 'SQL文件解析的命令。', 'type' => 'string', 'example' => 'cd /tmp/das/cloudbench && java -jar CloudBenchClient.jar --parse --threads 32 --file /tmp/das/cloudbench/2777bba9-a836-49e6-9f70-1c3822fc9239.archiveSql --meta /tmp/das/cloudbench/cl-1621353601000-360****.meta --out /tmp/das/cloudbench/cl-1621353601000-360****.sc --parent_patmp/das/cloudbench --source RDS --h /thost rm-bp1j5f8s5x266****.mysql.rds.aliyuncs.com --port 3306 --user cloudb**** --pwd \\"cloudbench@****\\" --cutSqlLen 8192 --db_black_list=information_schema,test,unknow,null'], + 'SqlFileName' => ['description' => '全量SQL文件名。', 'type' => 'string', 'example' => 'cl-1621353601000-360****.sc'], + 'ClientJarPath' => ['description' => '压测Jar包路径。', 'type' => 'string', 'example' => '/tmp/das/cloudbench/CloudBenchClient.jar'], + 'SqlFilePath' => ['description' => 'SQL文件路径。', 'type' => 'string', 'example' => '/tmp/das/cloudbench/cl-1621353601000-360****.sc'], + 'ParseFilePath' => ['description' => '解析后的SQL文件路径。', 'type' => 'string', 'example' => '/tmp/das/cloudbench/2777bba9-a836-49e6-9f70-1c3822fc****.archiveSql'], + 'JarOnOss' => ['description' => '压测Jar包在OSS的路径。', 'type' => 'string', 'example' => 'https://cloudbench-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/CloudBenchClient.jar?OSSAccessKeyId=LTAI5tKj8B4wikkVtupK****&Expires=1622441372&Signature=28p%2BCe4tNHpr9VPOcHc3Si9iOb****'], + 'TaskId' => ['description' => '任务ID。', 'type' => 'string', 'example' => 'e5cec704-0518-430f-8263-76f4dcds****'], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": \\"Null\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DisableSqlConcurrencyControlResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>Null</Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</DisableSqlConcurrencyControlResponse>","errorExample":""}]', - 'title' => '关闭指定限流规则', - 'description' => '本接口适用的数据库引擎为:'."\n" - .'- RDS MySQL'."\n" - .'- PolarDB MySQL版', - ], - 'DisableAllSqlConcurrencyControlRules' => [ - 'summary' => '调用DisableAllSqlConcurrencyControlRules接口,关闭全部正在执行的限流规则。', - 'methods' => [ - 'get', - 'post', + 'title' => '查询压测任务配置', + 'description' => '数据库自治服务DAS提供智能压测功能,帮助您验证您的实例规格是否需要扩容,有效应对业务流量高峰。更多信息,请参见[智能压测](~~155068~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCloudbenchTaskConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeCloudbenchTaskConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"WorkDir\\": \\"/tmp/bench/\\",\\n \\"ArchiveFolder\\": \\"/tmp/das/cloudbench/archive-sqls/\\",\\n \\"MetaFilePath\\": \\"/tmp/das/cloudbench/cl-1621353601000-360****.meta\\",\\n \\"MetaFileName\\": \\"cl-1621353601000-360****.meta\\",\\n \\"MetaFileOnOss\\": \\"\\\\\\"https://cb-rm-bp1w9g06h560l****.oss-cn-hangzhou.aliyuncs.com/cl-1621353601000-360****.meta?OSSAccessKeyId=LTAI5tKj8B4wikkVtupK****&Expires=1622441372&Signature=Qsehg3tzeA57M%2BIixAbWPWAtvl****\\",\\n \\"UserId\\": \\"1091411816252****\\",\\n \\"BenchCmd\\": \\"java -jar /tmp/das/cloudbench/CloudBenchClient.jar --bench --rocksdb /tmp/das/cloudbench/rocksdb --meta /tmp/das/cloudbench/cl-1621353601000-360****.meta --task_name 2777bba9-a836-49e6-9f70-1c3822fc9239 --result_file /tmp/das/cloudbench/null.result --user cloudb**** --pwd \\\\\\\\\\\\\\"cloudbench@****\\\\\\\\\\\\\\" --host rm-bp1j5f8s5x26kq79216****.mysql.rds.aliyuncs.com --port 3306 --charset utf8mb4 --interval 1 --bench_time 3600 --rate_factor 1.0 --start_time 1621353601 --rt > /tmp/das/cloudbench/null.log\\",\\n \\"SqlFileOnOss\\": \\"https://cb-rm-bp1w9g06h560l****.oss-cn-hangzhou.aliyuncs.com/cl-1621353601000-360****.sc?OSSAccessKeyId=LTAI5tKj8B4wikkVtupK****&Expires=1622441372&Signature=LYMADwo%2BRrJeqR3e4d8OlIkVmw****\\",\\n \\"LoadCmd\\": \\"java -jar /tmp/das/cloudbench/CloudBenchClient.jar --load --out /tmp/das/cloudbench/cl-1621353601000-360****.sc --meta /tmp/das/cloudbench/cl-1621353601000-360****.meta --task_name 2777bba9-****-49e6-9f70-1c3822fc**** --rocksdb /tmp/das/cloudbench/rocksdb\\",\\n \\"RocksDbPath\\": \\"/tmp/das/cloudbench/rocksdb\\",\\n \\"ParseCmd\\": \\"cd /tmp/das/cloudbench && java -jar CloudBenchClient.jar --parse --threads 32 --file /tmp/das/cloudbench/2777bba9-a836-49e6-9f70-1c3822fc9239.archiveSql --meta /tmp/das/cloudbench/cl-1621353601000-360****.meta --out /tmp/das/cloudbench/cl-1621353601000-360****.sc --parent_patmp/das/cloudbench --source RDS --h /thost rm-bp1j5f8s5x266****.mysql.rds.aliyuncs.com --port 3306 --user cloudb**** --pwd \\\\\\\\\\\\\\"cloudbench@****\\\\\\\\\\\\\\" --cutSqlLen 8192 --db_black_list=information_schema,test,unknow,null\\",\\n \\"SqlFileName\\": \\"cl-1621353601000-360****.sc\\",\\n \\"ClientJarPath\\": \\"/tmp/das/cloudbench/CloudBenchClient.jar\\",\\n \\"SqlFilePath\\": \\"/tmp/das/cloudbench/cl-1621353601000-360****.sc\\",\\n \\"ParseFilePath\\": \\"/tmp/das/cloudbench/2777bba9-a836-49e6-9f70-1c3822fc****.archiveSql\\",\\n \\"JarOnOss\\": \\"https://cloudbench-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/CloudBenchClient.jar?OSSAccessKeyId=LTAI5tKj8B4wikkVtupK****&Expires=1622441372&Signature=28p%2BCe4tNHpr9VPOcHc3Si9iOb****\\",\\n \\"TaskId\\": \\"e5cec704-0518-430f-8263-76f4dcds****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeCloudbenchTaskConfigResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n <Data>\\n <WorkDir>/tmp/bench/</WorkDir>\\n <ArchiveFolder>/tmp/das/cloudbench/archive-sqls/</ArchiveFolder>\\n <MetaFilePath>/tmp/das/cloudbench/cl-1621353601000-360****.meta</MetaFilePath>\\n <MetaFileName>cl-1621353601000-360****.meta</MetaFileName>\\n <MetaFileOnOss>\\"https://cb-rm-bp1w9g06h560l****.oss-cn-hangzhou.aliyuncs.com/cl-1621353601000-360****.meta?OSSAccessKeyId=LTAI5tKj8B4wikkVtupK****&Expires=1622441372&Signature=Qsehg3tzeA57M%2BIixAbWPWAtvl****</MetaFileOnOss>\\n <UserId>1091411816252****</UserId>\\n <BenchCmd>java -jar /tmp/das/cloudbench/CloudBenchClient.jar --bench --rocksdb /tmp/das/cloudbench/rocksdb --meta /tmp/das/cloudbench/cl-1621353601000-360****.meta --task_name 2777bba9-a836-49e6-9f70-1c3822fc9239 --result_file /tmp/das/cloudbench/null.result --user cloudb**** --pwd \\\\\\"cloudbench@****\\\\\\" --host rm-bp1j5f8s5x26kq79216****.mysql.rds.aliyuncs.com --port 3306 --charset utf8mb4 --interval 1 --bench_time 3600 --rate_factor 1.0 --start_time 1621353601 --rt > /tmp/das/cloudbench/null.log</BenchCmd>\\n <SqlFileOnOss>https://cb-rm-bp1w9g06h560l****.oss-cn-hangzhou.aliyuncs.com/cl-1621353601000-360****.sc?OSSAccessKeyId=LTAI5tKj8B4wikkVtupK****&Expires=1622441372&Signature=LYMADwo%2BRrJeqR3e4d8OlIkVmw****</SqlFileOnOss>\\n <LoadCmd>java -jar /tmp/das/cloudbench/CloudBenchClient.jar --load --out /tmp/das/cloudbench/cl-1621353601000-360****.sc --meta /tmp/das/cloudbench/cl-1621353601000-360****.meta --task_name 2777bba9-****-49e6-9f70-1c3822fc**** --rocksdb /tmp/das/cloudbench/rocksdb</LoadCmd>\\n <RocksDbPath>/tmp/das/cloudbench/rocksdb</RocksDbPath>\\n <ParseCmd>cd /tmp/das/cloudbench && java -jar CloudBenchClient.jar --parse --threads 32 --file /tmp/das/cloudbench/2777bba9-a836-49e6-9f70-1c3822fc9239.archiveSql --meta /tmp/das/cloudbench/cl-1621353601000-360****.meta --out /tmp/das/cloudbench/cl-1621353601000-360****.sc --parent_patmp/das/cloudbench --source RDS --h /thost rm-bp1j5f8s5x266****.mysql.rds.aliyuncs.com --port 3306 --user cloudb**** --pwd \\\\\\"cloudbench@****\\\\\\" --cutSqlLen 8192 --db_black_list=information_schema,test,unknow,null</ParseCmd>\\n <SqlFileName>cl-1621353601000-360****.sc</SqlFileName>\\n <ClientJarPath>/tmp/das/cloudbench/CloudBenchClient.jar</ClientJarPath>\\n <SqlFilePath>/tmp/das/cloudbench/cl-1621353601000-360****.sc</SqlFilePath>\\n <ParseFilePath>/tmp/das/cloudbench/2777bba9-a836-49e6-9f70-1c3822fc****.archiveSql</ParseFilePath>\\n <JarOnOss>https://cloudbench-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/CloudBenchClient.jar?OSSAccessKeyId=LTAI5tKj8B4wikkVtupK****&Expires=1622441372&Signature=28p%2BCe4tNHpr9VPOcHc3Si9iOb****</JarOnOss>\\n <TaskId>e5cec704-0518-430f-8263-76f4dcds****</TaskId>\\n </Data>\\n</DescribeCloudbenchTaskConfigResponse>","errorExample":""}]', + ], + 'DescribeDiagnosticReportList' => [ + 'summary' => '调用DescribeDiagnosticReportList接口,查询诊断报告。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'update', - ], + 'operationType' => 'read', + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'ConsoleContext', + 'name' => 'DBInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'], ], [ - 'name' => 'InstanceId', + 'name' => 'PageNo', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - .'>仅支持RDS MySQL和 PolarDB MySQL版实例。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze1jdv45i7l6****', - ], + 'schema' => ['description' => '页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', 'type' => 'string', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每页最大记录数,默认值为10。', 'type' => 'string', 'required' => false, 'example' => '10'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '查询任务开始时间,格式为Unix时间戳(UTC时间),单位为毫秒。', 'type' => 'string', 'required' => true, 'example' => '1668398892000'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '查询任务结束时间,格式为Unix时间戳,单位为毫秒。'."\n" + .'> 查询任务结束时间需晚于查询任务开始时间。', 'type' => 'string', 'required' => true, 'example' => '1668420492000'], ], ], 'responses' => [ @@ -3700,322 +3655,284 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'Data' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功'."\n" - .'- **false**:执行失败', - 'type' => 'string', - 'example' => 'true', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'D00DB161-FEF6-5428-B37A-8D29A4C2****'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'Synchro' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], + 'Data' => ['description' => '返回的数据:'."\n" + ."\n" + .'- **total**:数据量。'."\n" + .'- **score**:诊断分数。'."\n" + .'- **diagnosticTime**:诊断生成时间(UTC 时间)。'."\n" + .'- **startTime**:查询开始时间(UTC 时间)。'."\n" + .'- **endTime**:查询结束时间(UTC 时间)。', 'type' => 'string', 'example' => '{ "total": 1, "list": [ { "score": 100, "diagnosticTime": "2022-11-14T08:17:00Z", "startTime": "2022-11-14T07:16:59Z", "endTime": "2022-11-14T08:16:59Z" } ] }'], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": \\"None\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DisableAllSqlConcurrencyControlRulesResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</DisableAllSqlConcurrencyControlRulesResponse>","errorExample":""}]', - 'title' => ' 关闭全部正在执行的限流规则', - 'description' => '本接口适用的数据库引擎为:'."\n" - .'- RDS MySQL'."\n" - .'- PolarDB MySQL版', - ], - 'GetRunningSqlConcurrencyControlRules' => [ - 'summary' => '调用GetRunningSqlConcurrencyControlRules接口,获取正在执行的限流规则。', - 'methods' => [ - 'get', - 'post', + 'title' => '查询诊断报告', + 'description' => '使用该接口需满足以下前提条件:'."\n" + ."\n" + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 在调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 本接口适用的数据库引擎为:'."\n" + ."\n" + .' - RDS MySQL'."\n" + .' - PolarDB MySQL版'."\n" + .' - Redis', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDiagnosticReportList'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeDiagnosticReportList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D00DB161-FEF6-5428-B37A-8D29A4C2****\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Synchro\\": \\"None\\",\\n \\"Data\\": \\"{ \\\\\\"total\\\\\\": 1, \\\\\\"list\\\\\\": [ { \\\\\\"score\\\\\\": 100, \\\\\\"diagnosticTime\\\\\\": \\\\\\"2022-11-14T08:17:00Z\\\\\\", \\\\\\"startTime\\\\\\": \\\\\\"2022-11-14T07:16:59Z\\\\\\", \\\\\\"endTime\\\\\\": \\\\\\"2022-11-14T08:16:59Z\\\\\\" } ] }\\",\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDiagnosticReportListResponse>\\n <RequestId>D00DB161-FEF6-5428-B37A-8D29A4C2****</RequestId>\\n <Message>Successful</Message>\\n <Data>\\n <total>1</total>\\n <list>\\n <score>100</score>\\n <diagnosticTime>2022-11-14T08:17:00Z</diagnosticTime>\\n <startTime>2022-11-14T07:16:59Z</startTime>\\n <endTime>2022-11-14T08:16:59Z</endTime>\\n </list>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</DescribeDiagnosticReportListResponse>","errorExample":""}]', + ], + 'DescribeErrorLogRecords' => [ + 'summary' => '查询实例指定时间范围内的错误日志明细。', + 'path' => '', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '235508', + 'abilityTreeNodes' => ['FEATUREhdmR88NLD'], + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'ConsoleContext', - 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], + 'name' => 'InstanceId', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'pc-bp1u5mas9exx7****'], ], [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - .'>仅支持RDS MySQL和 PolarDB MySQL版实例。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze1jdv45i7l6****', - ], + 'name' => 'NodeId', + 'in' => 'formData', + 'schema' => ['description' => '节点ID。', 'type' => 'string', 'required' => false, 'example' => 'pi-bp16v3824rt73****'], ], [ - 'name' => 'PageNo', - 'in' => 'query', - 'schema' => [ - 'description' => '页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1', - ], + 'name' => 'Role', + 'in' => 'formData', + 'schema' => ['description' => '节点角色:'."\n" + ."\n" + .'- db'."\n" + .'- mongos'."\n" + ."\n" + .'> 仅云数据库MongoDB版实例支持。', 'type' => 'string', 'required' => false, 'example' => 'db'], + ], + [ + 'name' => 'StartTime', + 'in' => 'formData', + 'schema' => ['description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。'."\n" + ."\n" + .'><notice>该字段类型为Long,在序列化/反序列化的过程中可能导致精度丢失,请注意数值不得大于9007199254740991。></notice>', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1731983066000'], + ], + [ + 'name' => 'EndTime', + 'in' => 'formData', + 'schema' => ['description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。'."\n" + .'><notice>该字段类型为Long,在序列化/反序列化的过程中可能导致精度丢失,请注意数值不得大于9007199254740991。></notice>', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1732069466000'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'formData', + 'schema' => ['description' => '页码。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ 'name' => 'PageSize', - 'in' => 'query', + 'in' => 'formData', + 'schema' => ['description' => '每页大小,最大值为100。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], + ], + [ + 'name' => 'Filters', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '每页最大记录数,取值大于0且不超过Integer数据类型的最大值,默认值为10。', - 'type' => 'integer', - 'format' => 'int64', + 'description' => '筛选条件。'."\n" + ."\n" + .'> 仅支持RDS MySQL、RDS PostgreSQL、PolarDB MySQL版、PolarDB PostgreSQL版、PolarDB PostgreSQL版(兼容Oracle)的错误日志筛选。', + 'type' => 'array', + 'items' => [ + 'description' => '筛选条件。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '过滤参数', 'description' => '筛选参数,需填写为filters。', 'type' => 'string', 'required' => false, 'example' => 'filters'], + 'Value' => ['description' => '筛选的错误日志内容。', 'type' => 'string', 'required' => false, 'example' => 'deadlock'."\n"], + ], + 'required' => false, + ], 'required' => false, - 'example' => '10', + 'maxItems' => 100, ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求 ID。', 'type' => 'string', 'example' => 'AAA17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '详细信息列表,包括信息总数、错误码等。', + 'title' => 'ListResult<VariableInspectionStrategy>', + 'description' => '数据详情。', 'type' => 'object', 'properties' => [ - 'Total' => [ - 'description' => '总记录数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'runningRules' => [ - 'description' => '返回信息列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ItemId' => [ - 'description' => '当前实例的限流规则ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '16', - ], - 'SqlType' => [ - 'description' => '选择SQL的类型。取值:'."\n" - .'- **SELECT**'."\n" - .'- **UPDATE**'."\n" - .'- **DELETE**', - 'type' => 'string', - 'example' => 'SELECT', - ], - 'InstanceId' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze1jdv45i7l6****', - ], - 'SqlKeywords' => [ - 'description' => '需要限流的SQL关键词。'."\n" - .'>多个关键词间用波浪线(~)分隔,SQL语句中需要同时包含这些关键词才会触发限流规则。', - 'type' => 'string', - 'example' => 'call~open~api~test~4~from~POP', - ], - 'StartTime' => [ - 'description' => '获取正在执行的限流规则的开始时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1608888296000', - ], - 'KeywordsHash' => [ - 'description' => '哈希值,根据输入的限流关键词计算出来的值。', - 'type' => 'string', - 'example' => 'b0b8aceeb43baea87b219c81767b****', - ], - 'ConcurrencyControlTime' => [ - 'description' => 'SQL限流的生效时长,单位为秒。'."\n" - .'>限流规则仅在生效时间内开启。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '600', - ], - 'UserId' => [ - 'description' => '阿里云账号ID。', - 'type' => 'string', - 'example' => 'testxxx', - ], - 'MaxConcurrency' => [ - 'description' => 'SQL最大并发数,取值为大于或等于1的整数。'."\n" - .'>当包含关键词的SQL达到最大并发数时会触发限流策略。', - 'type' => 'string', - 'example' => '2', - ], - 'Status' => [ - 'description' => '限流规则的生效状态,取值为**Open**:限流规则正在生效中。', - 'type' => 'string', - 'example' => 'Open', - ], - ], - ], + 'ItemsNumbers' => ['description' => '当前返回的日志明细总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'StartTime' => ['description' => '查询开始时间,格式为yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2025-07-22T05:48:43Z'], + 'EndTime' => ['description' => '查询结束时间,格式为yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2025-07-23T05:48:43Z'], + 'TotalRecords' => ['description' => '查询时间范围内的日志明细总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'PageNumbers' => ['description' => '当前查询的页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'MaxRecordsPerPage' => ['description' => '每页显示的最大记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Logs' => [ + 'description' => '日志明细。', + 'type' => 'array', + 'items' => [ + 'description' => '日志明细。', + 'type' => 'object', + 'properties' => [ + 'CreateTime' => ['description' => '错误日志生成时间。格式为Unix时间戳,单位为毫秒。'."\n" + ."\n" + .'><notice>对于云数据库MongoDB版实例,格式为yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。></notice>', 'type' => 'string', 'example' => '1731983067000'], + 'DBInstanceName' => ['description' => '节点ID。'."\n" + ."\n" + .'> 仅云数据库MongoDB版实例支持。', 'type' => 'string', 'example' => 'd-bp128a003436****'."\n"], + 'Category' => ['description' => '日志类别,取值:'."\n" + .'- **NETWORK**:网络连接日志。'."\n" + .'- **ACCESS**:访问控制日志。'."\n" + .'- **-**:普通日志。'."\n" + .'- **COMMAND**:慢日志。'."\n" + .'- **SHARDING**:集群日志。'."\n" + .'- **STORAGE**:存储引擎日志。'."\n" + .'- **CONNPOOL**:连接池日志。'."\n" + .'- **ASIO**:异步 IO 日志。'."\n" + .'- **WRITE**:慢更新日志。'."\n" + ."\n" + .'> 仅云数据库 MongoDB 版实例支持。', 'type' => 'string', 'example' => 'NETWORK'], + 'ConnInfo' => ['description' => '日志连接信息。'."\n" + ."\n" + .'> 仅云数据库MongoDB版实例支持。', 'type' => 'string', 'example' => 'conn18xxxxxx'], + 'Content' => ['description' => '错误日志。', 'type' => 'string', 'example' => '2025-07-15T15:14:27.175188+08:00 0 [Note] [MY-012468] [InnoDB] Transactions deadlock detected, dumping detailed information.'], ], ], ], ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功'."\n" - .'- **false**:执行失败', - 'type' => 'string', - 'example' => 'true', - ], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询错误日志明细', + 'description' => '本接口用于查询实例指定时间范围内的错误日志明细。'."\n" + ."\n" + .'使用该接口需满足以下前提条件:'."\n" + ."\n" + .'- 目标数据库引擎为:RDS MySQL、RDS PostgreSQL、PolarDB MySQL 版、PolarDB PostgreSQL 版、PolarDB PostgreSQL版(兼容Oracle)、云数据库 MongoDB 版。'."\n" + .'- 使用阿里云或 DAS 的 SDK 时,建议使用最新版本。'."\n" + .'- 使用 SDK 调用 DAS 服务时,需要将地域指定为 cn-shanghai。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:DescribeErrorLogRecords', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Total\\": 2,\\n \\"List\\": {\\n \\"runningRules\\": [\\n {\\n \\"ItemId\\": 16,\\n \\"SqlType\\": \\"SELECT\\",\\n \\"InstanceId\\": \\"rm-2ze1jdv45i7l6****\\",\\n \\"SqlKeywords\\": \\"call~open~api~test~4~from~POP\\",\\n \\"StartTime\\": 1608888296000,\\n \\"KeywordsHash\\": \\"b0b8aceeb43baea87b219c81767b****\\",\\n \\"ConcurrencyControlTime\\": 600,\\n \\"UserId\\": \\"testxxx\\",\\n \\"MaxConcurrency\\": \\"2\\",\\n \\"Status\\": \\"Open\\"\\n }\\n ]\\n }\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetRunningSqlConcurrencyControlRulesResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Total>2</Total>\\n <List>\\n <ItemId>16</ItemId>\\n <SqlType>SELECT</SqlType>\\n <InstanceId>rm-2ze1jdv45i7l6****</InstanceId>\\n <SqlKeywords>call~open~api~test~4~from~POP</SqlKeywords>\\n <StartTime>1608888296000</StartTime>\\n <KeywordsHash>b0b8aceeb43baea87b219c81767b****</KeywordsHash>\\n <ConcurrencyControlTime>600</ConcurrencyControlTime>\\n <UserId>testxxx</UserId>\\n <MaxConcurrency>2</MaxConcurrency>\\n <Status>Open</Status>\\n </List>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetRunningSqlConcurrencyControlRulesResponse>","errorExample":""}]', - 'title' => '获取正在执行的限流规则', - 'description' => '本接口适用的数据库引擎为:'."\n" - .'- RDS MySQL'."\n" - .'- PolarDB MySQL版', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"AAA17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ItemsNumbers\\": 10,\\n \\"StartTime\\": \\"2025-07-22T05:48:43Z\\",\\n \\"EndTime\\": \\"2025-07-23T05:48:43Z\\",\\n \\"TotalRecords\\": 100,\\n \\"PageNumbers\\": 1,\\n \\"MaxRecordsPerPage\\": 10,\\n \\"Logs\\": [\\n {\\n \\"CreateTime\\": \\"1731983067000\\",\\n \\"DBInstanceName\\": \\"d-bp128a003436****\\\\n\\",\\n \\"Category\\": \\"NETWORK\\",\\n \\"ConnInfo\\": \\"conn18xxxxxx\\",\\n \\"Content\\": \\"2025-07-15T15:14:27.175188+08:00 0 [Note] [MY-012468] [InnoDB] Transactions deadlock detected, dumping detailed information.\\"\\n }\\n ]\\n }\\n}","type":"json"}]', ], - 'GetSqlConcurrencyControlRulesHistory' => [ - 'summary' => '调用GetSqlConcurrencyControlRulesHistory接口,获取正在执行或被触发过的限流规则。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeHotBigKeys' => [ + 'summary' => '调用DescribeHotBigKeys接口,实时获取当前内存中的热Key和大Key。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], + 'operationType' => 'read', 'systemTags' => [ 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhdmROFBLE'], ], 'parameters' => [ [ 'name' => 'ConsoleContext', 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - .'>仅支持RDS MySQL和 PolarDB MySQL版实例。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze1jdv45i7l6****', - ], + 'schema' => ['description' => 'Redis实例ID。', 'type' => 'string', 'required' => true, 'example' => 'r-bp18ff4a195d****'], ], [ - 'name' => 'PageNo', - 'in' => 'query', - 'schema' => [ - 'description' => '页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'PageSize', + 'name' => 'NodeId', 'in' => 'query', - 'schema' => [ - 'description' => '每页最大记录数,取值大于0且不超过Integer数据类型的最大值,默认值为10。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => 'Redis实例的数据分片ID。', 'type' => 'string', 'required' => false, 'example' => 'r-****-db-0'], ], ], 'responses' => [ @@ -4023,192 +3940,181 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Message' => ['description' => '请求返回消息。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], 'Data' => [ - 'description' => '详细信息列表,包括信息总数、错误码等。', + 'description' => '详情信息列表。', 'type' => 'object', 'properties' => [ - 'Total' => [ - 'description' => '总记录数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '4', + 'HotKeys' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'HotKey' => [ + 'description' => '按QPS统计的热Key列表。', + 'type' => 'array', + 'items' => [ + 'description' => '按QPS统计的热Key列表。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '具体的Key。', 'type' => 'string', 'example' => 'abc:def:eng'], + 'Db' => ['description' => 'Key所在的DB。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Hot' => ['description' => 'Key的访问频次,即Key的每秒访问数。', 'type' => 'string', 'example' => '5500~6000'], + 'KeyType' => ['description' => 'Key的类型。', 'type' => 'string', 'example' => 'zset'], + 'Lfu' => ['description' => 'LFU算法的统计值。', 'type' => 'integer', 'format' => 'int32', 'example' => '253'], + 'NodeId' => ['description' => 'Redis实例的数据分片ID。', 'type' => 'string', 'example' => 'r-x****-db-0'], + 'Size' => ['description' => '元素的个数。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + ], + ], + ], + ], + 'description' => '', ], - 'List' => [ + 'BigKeys' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'rules' => [ - 'description' => '详细信息列表。', + 'BigKey' => [ + 'description' => '按子元素数量统计的大Key列表。', 'type' => 'array', 'items' => [ + 'description' => '按子元素数量统计的大Key列表。', 'type' => 'object', 'properties' => [ - 'ItemId' => [ - 'description' => '当前实例的限流规则ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '16', - ], - 'SqlType' => [ - 'description' => '选择SQL的类型。取值:'."\n" - .'- **SELECT**'."\n" - .'- **UPDATE**'."\n" - .'- **DELETE**', - 'type' => 'string', - 'example' => 'SELECT', - ], - 'InstanceId' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze1jdv45i7l6****', - ], - 'SqlKeywords' => [ - 'description' => '需要限流的SQL关键词。'."\n" - .'>多个关键词间以波浪线(~)分隔,SQL语句中需要同时包含这些关键词才会触发限流规则。', - 'type' => 'string', - 'example' => 'call~open~api~test~4~from~POP', - ], - 'StartTime' => [ - 'description' => '获取限流规则历史的开始时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1608888296000', - ], - 'KeywordsHash' => [ - 'description' => '哈希值,根据输入的限流关键词计算出来的值。', - 'type' => 'string', - 'example' => 'b0b8aceeb43baea87b219c81767b****', - ], - 'ConcurrencyControlTime' => [ - 'description' => 'SQL限流的生效时长,单位为秒。'."\n" - .'>限流规则仅在生效时间内开启。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '600', - ], - 'UserId' => [ - 'description' => '用户ID。', - 'type' => 'string', - 'example' => 'testxxx', - ], - 'MaxConcurrency' => [ - 'description' => 'SQL最大并发数,取值为大于或等于1的整数。'."\n" - .'>当包含关键词的SQL达到最大并发数时会触发限流策略。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'Status' => [ - 'description' => '限流规则的生效状态,取值:'."\n" - ."\n" - .'- **Open**:限流规则正在生效中。'."\n" - .'- **Closed**:限流规则已执行结束。', - 'type' => 'string', - 'example' => 'Open', - ], + 'Db' => ['description' => 'Key所在的DB。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Key' => ['description' => '具体的Key。', 'type' => 'string', 'example' => 'abc:def:eng'], + 'KeyType' => ['description' => 'Key类型。', 'type' => 'string', 'example' => 'zset'], + 'Size' => ['description' => '元素的个数。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'NodeId' => ['description' => 'Redis实例的数据分片ID。', 'type' => 'string', 'example' => 'r-x****-db-0'], + ], + ], + ], + ], + 'description' => '', + ], + 'HotKeyMsg' => ['description' => '获取按QPS统计的热Key失败的原因。', 'type' => 'string', 'example' => 'current version doesn\'t support'], + 'BigKeyMsg' => ['description' => '获取按子元素数量统计的大Key失败的原因。', 'type' => 'string', 'example' => 'current version doesn\'t support'], + 'HighTrafficKeyMsg' => ['description' => '获取按流量统计的热Key失败的原因。', 'type' => 'string', 'example' => 'current version doesn\'t support'], + 'HighTrafficKeys' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'HighTrafficKey' => [ + 'description' => '按流量统计的热Key列表。', + 'type' => 'array', + 'items' => [ + 'description' => '按流量统计的热Key列表。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '具体的Key。', 'type' => 'string', 'example' => 'abc:def:eng'], + 'Db' => ['description' => 'Key所在的DB。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Hot' => ['description' => 'Key的访问频次,即Key的每秒访问数。', 'type' => 'string', 'example' => '1988'], + 'KeyType' => ['description' => 'Key的类型。', 'type' => 'string', 'example' => 'string'], + 'NodeId' => ['description' => '节点ID。', 'type' => 'string', 'example' => 'r-x****-db-0'."\n"], + 'inBytes' => ['description' => '入流量,单位:Byte。', 'type' => 'integer', 'format' => 'int64', 'example' => '85767'], + 'outBytes' => ['description' => '出流量,单位:Byte。', 'type' => 'integer', 'format' => 'int64', 'example' => '1054684'], + 'Size' => ['description' => '元素的个数。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], ], ], ], ], + 'description' => '', ], + 'LargeKeys' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LargeKey' => [ + 'description' => '按内存占用统计的大Key列表。', + 'type' => 'array', + 'items' => [ + 'description' => '按内存占用统计的大Key列表。', + 'type' => 'object', + 'properties' => [ + 'Db' => ['description' => 'Key所在的DB。', 'type' => 'string', 'example' => '0'], + 'Key' => ['description' => '具体的Key。', 'type' => 'string', 'example' => 'abc:def:eng'], + 'KeyType' => ['description' => 'Key的类型。', 'type' => 'string', 'example' => 'string'], + 'DataSize' => ['description' => 'Key的内存占用,单位:Byte。', 'type' => 'string', 'example' => '33554439'], + 'NodeId' => ['description' => '节点ID。', 'type' => 'string', 'example' => 'r-x****-db-0'], + ], + ], + ], + ], + 'description' => '', + ], + 'LargeKeyMsg' => ['description' => '获取按内存占用统计的大Key失败的原因。', 'type' => 'string', 'example' => 'current version doesn\'t support'], ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功'."\n" - .'- **false**:执行失败', - 'type' => 'string', - 'example' => 'true', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Total\\": 4,\\n \\"List\\": {\\n \\"rules\\": [\\n {\\n \\"ItemId\\": 16,\\n \\"SqlType\\": \\"SELECT\\",\\n \\"InstanceId\\": \\"rm-2ze1jdv45i7l6****\\",\\n \\"SqlKeywords\\": \\"call~open~api~test~4~from~POP\\",\\n \\"StartTime\\": 1608888296000,\\n \\"KeywordsHash\\": \\"b0b8aceeb43baea87b219c81767b****\\",\\n \\"ConcurrencyControlTime\\": 600,\\n \\"UserId\\": \\"testxxx\\",\\n \\"MaxConcurrency\\": 2,\\n \\"Status\\": \\"Open\\"\\n }\\n ]\\n }\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetSqlConcurrencyControlRulesHistoryResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Total>4</Total>\\n <List>\\n <ItemId>16</ItemId>\\n <SqlType>SELECT</SqlType>\\n <InstanceId>rm-2ze1jdv45i7l6****</InstanceId>\\n <SqlKeywords>call~open~api~test~4~from~POP</SqlKeywords>\\n <StartTime>1608888296000</StartTime>\\n <KeywordsHash>b0b8aceeb43baea87b219c81767b****</KeywordsHash>\\n <ConcurrencyControlTime>600</ConcurrencyControlTime>\\n <UserId>testxxx</UserId>\\n <MaxConcurrency>2</MaxConcurrency>\\n <Status>Open</Status>\\n </List>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetSqlConcurrencyControlRulesHistoryResponse>","errorExample":""}]', - 'title' => '获取正在执行或被触发过的限流规则', - 'description' => '本接口适用的数据库引擎为:'."\n" - .'- RDS MySQL'."\n" - .'- PolarDB MySQL版', - ], - 'GetSqlConcurrencyControlKeywordsFromSqlText' => [ - 'summary' => '调用GetSqlConcurrencyControlKeywordsFromSqlText接口,根据原始SQL语句,生成限流关键词串。', - 'methods' => [ - 'get', - 'post', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Data\\": {\\n \\"HotKeys\\": {\\n \\"HotKey\\": [\\n {\\n \\"Key\\": \\"abc:def:eng\\",\\n \\"Db\\": 0,\\n \\"Hot\\": \\"5500~6000\\",\\n \\"KeyType\\": \\"zset\\",\\n \\"Lfu\\": 253,\\n \\"NodeId\\": \\"r-x****-db-0\\",\\n \\"Size\\": 2\\n }\\n ]\\n },\\n \\"BigKeys\\": {\\n \\"BigKey\\": [\\n {\\n \\"Db\\": 0,\\n \\"Key\\": \\"abc:def:eng\\",\\n \\"KeyType\\": \\"zset\\",\\n \\"Size\\": 2,\\n \\"NodeId\\": \\"r-x****-db-0\\"\\n }\\n ]\\n },\\n \\"HotKeyMsg\\": \\"current version doesn\'t support\\",\\n \\"BigKeyMsg\\": \\"current version doesn\'t support\\",\\n \\"HighTrafficKeyMsg\\": \\"current version doesn\'t support\\",\\n \\"HighTrafficKeys\\": {\\n \\"HighTrafficKey\\": [\\n {\\n \\"Key\\": \\"abc:def:eng\\",\\n \\"Db\\": 0,\\n \\"Hot\\": \\"1988\\",\\n \\"KeyType\\": \\"string\\",\\n \\"NodeId\\": \\"r-x****-db-0\\\\n\\",\\n \\"inBytes\\": 85767,\\n \\"outBytes\\": 1054684,\\n \\"Size\\": 2\\n }\\n ]\\n },\\n \\"LargeKeys\\": {\\n \\"LargeKey\\": [\\n {\\n \\"Db\\": \\"0\\",\\n \\"Key\\": \\"abc:def:eng\\",\\n \\"KeyType\\": \\"string\\",\\n \\"DataSize\\": \\"33554439\\",\\n \\"NodeId\\": \\"r-x****-db-0\\"\\n }\\n ]\\n },\\n \\"LargeKeyMsg\\": \\"current version doesn\'t support\\"\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeHotBigKeysResponse>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Data>\\n <HotKeys>\\n <Key>abc:def:eng</Key>\\n <Db>0</Db>\\n <Hot>5500~6000</Hot>\\n <KeyType>zset</KeyType>\\n <Lfu>253</Lfu>\\n <NodeId>r-x****-db-0</NodeId>\\n </HotKeys>\\n <BigKeys>\\n <Db>0</Db>\\n <Key>abc:def:eng</Key>\\n <KeyType>zset</KeyType>\\n <Size>2</Size>\\n <NodeId>r-x****-db-0</NodeId>\\n </BigKeys>\\n <HotKeyMsg>current version doesn\'t support</HotKeyMsg>\\n <BigKeyMsg>current version doesn\'t support</BigKeyMsg>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</DescribeHotBigKeysResponse>","errorExample":""}]', + 'title' => '实时获取当前热Key和大Key', + 'description' => '对数据结构为List、Hash、Set、Zset的Key,按照Key中元素的数量排序并展示排名前3的Key,记录为大Key。如果某个Key的QPS大于5,000,会被记录为热点Key。关于大Key和热点Key的具体定义,请参见[Top Key统计](https://help.aliyun.com/zh/das/user-guide/key-analysis)。'."\n" + .'>'."\n" + .'> - 在Redis开源版7.0.18、6.0.2.9、5.5.2.9及更早版本的实例,或Tair内存型5.0.50、25.2.0.0版本及更早版本的实例中,QPS大于3,000的Key即会被记录为热点Key,且该阈值不支持调整。'."\n" + ."\n" + .'- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于4.3.3,建议使用最新版本。'."\n" + .'- 使用DAS的SDK的版本为1.0.2或以上。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 本接口只适用于如下Redis实例:'."\n" + .' - 实例为Redis开源版或Tair(企业版)内存型。'."\n" + .' - 实例的小版本为最新。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeHotBigKeys'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeHotBigKeys', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeHotKeys' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'operationType' => 'read', + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'ConsoleContext', - 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], - ], - [ 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze5hpn2b99d2****', - ], + 'schema' => ['description' => 'Redis实例ID。', 'type' => 'string', 'required' => true, 'example' => 'r-bp18ff4a195d****'], ], [ - 'name' => 'SqlText', + 'name' => 'NodeId', 'in' => 'query', - 'schema' => [ - 'description' => '待生成限流关键词的SQL文本。', - 'type' => 'string', - 'required' => true, - 'example' => 'SELECT * FROM test where name = \'das\'', - ], + 'schema' => ['description' => 'Redis实例的数据分片ID。', 'type' => 'string', 'required' => false, 'example' => 'r-x****-db-0'], ], ], 'responses' => [ @@ -4216,122 +4122,107 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], 'Data' => [ - 'description' => '根据模板化后的SQL生成的限流关键词串。', - 'type' => 'string', - 'example' => 'SELECT~FROM~test~where~name', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '30A643F5-D7A6-55F5-AB75-DF501427****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - ."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'HotKey' => [ + 'description' => '详细信息列表。', + 'type' => 'array', + 'items' => [ + 'description' => '结果集。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '具体的Key。', 'type' => 'string', 'example' => 'abc:def:eng'], + 'Db' => ['description' => 'Key所在的DB。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Hot' => ['description' => 'Key的访问频次,即Key的每秒访问数。', 'type' => 'string', 'example' => '5500~6000'], + 'KeyType' => ['description' => 'Key的类型。', 'type' => 'string', 'example' => 'zset'], + 'Size' => ['description' => '元素的个数。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'InBytes' => ['description' => '入流量,单位Byte。', 'type' => 'integer', 'format' => 'int64', 'example' => '85766'], + 'OutBytes' => ['description' => '出流量,单位Byte。', 'type' => 'integer', 'format' => 'int64', 'example' => '1054688'], + 'NodeId' => ['description' => '节点id。', 'type' => 'string', 'example' => 'r-x****-db-0'], + 'Category' => ['description' => '热Key类别:'."\n" + .'- **qps**:按QPS统计的热Key。'."\n" + .'- **traffic**:按流量统计的热Key。', 'type' => 'string', 'example' => 'qps'], + ], + ], + ], + ], + 'description' => '', ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": \\"SELECT~FROM~test~where~name\\",\\n \\"RequestId\\": \\"30A643F5-D7A6-55F5-AB75-DF501427****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetSqlConcurrencyControlKeywordsFromSqlTextResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>SELECT~FROM~test~where~name</Data>\\n <RequestId>30A643F5-D7A6-55F5-AB75-DF501427****</RequestId>\\n <Success>true</Success>\\n</GetSqlConcurrencyControlKeywordsFromSqlTextResponse>","errorExample":""}]', - 'title' => '根据SQL语句生成限流关键词', - 'description' => '本接口适用的数据库引擎为:'."\n" - .'- RDS MySQL'."\n" - .'- PolarDB MySQL版', - 'responseParamsDescription' => '返回的限流关键词串,是根据模板化后的SQL生成的,如果需要限流某个特定值,则需要带上相应的参数。例如:原始SQL语句为`SELECT \\* FROM test where name = \'das\'`,返回的限流关键词串是`SELECT~FROM~test~where~name`,如果需要限流`name = \'das\'`,则需要在返回的限流关键词串中增加`~das`,即限流关键词串为`SELECT~FROM~test~where~name~das`。', - ], - 'CreateRequestDiagnosis' => [ - 'summary' => '调用CreateRequestDiagnosis接口,发起SQL诊断请求。', - 'methods' => [ - 'get', - 'post', + 'title' => '查询实例当前的热Key', + 'summary' => '调用DescribeHotKeys接口,查询Redis实例的热Key。', + 'description' => '使用该接口需满足以下前提条件:'."\n" + ."\n" + .'- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于4.3.3,建议使用最新版本。'."\n" + .'- 使用DAS的SDK的版本为1.0.2或以上。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 本接口只适用于如下Redis实例:'."\n" + .' - 实例为Redis开源版或Tair(企业版)内存型。'."\n" + .' - 实例的小版本为最新。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeHotKeys'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeHotKeys', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Data\\": {\\n \\"HotKey\\": [\\n {\\n \\"Key\\": \\"abc:def:eng\\",\\n \\"Db\\": 0,\\n \\"Hot\\": \\"5500~6000\\",\\n \\"KeyType\\": \\"zset\\",\\n \\"Size\\": 2,\\n \\"InBytes\\": 85766,\\n \\"OutBytes\\": 1054688,\\n \\"NodeId\\": \\"r-x****-db-0\\",\\n \\"Category\\": \\"qps\\"\\n }\\n ]\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeHotKeysResponse>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Data>\\n <Key>abc:def:eng</Key>\\n <Db>0</Db>\\n <Hot>5500~6000</Hot>\\n <KeyType>zset</KeyType>\\n <Size>2</Size>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</DescribeHotKeysResponse>","errorExample":""}]', + ], + 'DescribeInstanceDasPro' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhdm543Z01'], ], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-0iwhhl8gx0ld6****', - ], - ], - [ - 'name' => 'NodeId', - 'in' => 'query', - 'schema' => [ - 'description' => '节点ID。'."\n" - .'> 对于PolarDB MySQL版、PolarDB PostgreSQL版(兼容Oracle)和云数据库MongoDB等集群实例,需要提供节点ID。', - 'type' => 'string', - 'required' => false, - 'example' => '202****', - ], - ], - [ - 'name' => 'Database', - 'in' => 'query', - 'schema' => [ - 'description' => '数据库名。', - 'type' => 'string', - 'required' => true, - 'example' => 'das', - ], - ], - [ - 'name' => 'Sql', - 'in' => 'query', - 'schema' => [ - 'description' => '待诊断的SQL。', - 'type' => 'string', - 'required' => true, - 'example' => 'select * from test where name = \'mockUser\'', - ], + 'schema' => ['description' => '数据库实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'], ], ], 'responses' => [ @@ -4339,629 +4230,359 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回的消息。'."\n" - ."\n" - .'> 请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'Data' => [ - 'description' => '诊断ID,是诊断的唯一标识,后续用于查询诊断结果。', - 'type' => 'string', - 'example' => '61820b594664275c4429****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '800FBAF5-A539-5B97-A09E-C63AB2F7****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - ."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '9CB97BC4-6479-55D0-B9D0-EA925AFE****'], + 'Data' => ['description' => '数据库实例是否开启了DAS企业版:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + ."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": \\"61820b594664275c4429****\\",\\n \\"RequestId\\": \\"800FBAF5-A539-5B97-A09E-C63AB2F7****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateRequestDiagnosisResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>61820b594664275c4429****</Data>\\n <RequestId>800FBAF5-A539-5B97-A09E-C63AB2F7****</RequestId>\\n <Success>true</Success>\\n</CreateRequestDiagnosisResponse>","errorExample":""}]', - 'title' => '发起SQL诊断请求', - 'description' => '使用该接口需满足以下前提条件:'."\n" - ."\n" + 'title' => '查询是否开启了DAS企业版 V1或V2', + 'summary' => '调用DescribeInstanceDasPro接口,查询指定数据库实例是否开启了DAS企业版 V1或企业版 V2。', + 'description' => '- 目前支持的数据库实例请参见[DAS企业版使用说明](~~190912~~)。'."\n" .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 本接口适用的数据库引擎为:'."\n" - ."\n" - .' - RDS MySQL'."\n" - .' - RDS PostgreSQL'."\n" - .' - RDS SQL Server'."\n" - .' - PolarDB MySQL版'."\n" - .' - PolarDB PostgreSQL版(兼容Oracle)'."\n" - .' - 云数据库MongoDB版'."\n" - ."\n" - .'> RDS PostgreSQL实例内核小版本为20221230及以上。查看和升级内核小版本,请参见[升级内核小版本](~~146895~~)。', - ], - 'GetRequestDiagnosisResult' => [ - 'summary' => '调用GetRequestDiagnosisResult接口,查询SQL诊断的结果。', - 'methods' => [ - 'post', - 'get', + .'- 该接口仅适用于DAS企业版 V1、V2。'."\n" + .'>推荐使用[DescribeSqlLogConfig](~~2778837~~)接口,查询数据库实例的DAS企业版配置信息。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeInstanceDasPro'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeInstanceDasPro', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"9CB97BC4-6479-55D0-B9D0-EA925AFE****\\",\\n \\"Data\\": true,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeInstanceDasProResponse>\\n <Message>Successful</Message>\\n <RequestId>9CB97BC4-6479-55D0-B9D0-EA925AFE****</RequestId>\\n <Data>true</Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</DescribeInstanceDasProResponse>","errorExample":""}]', + ], + 'DescribeQueryExplain' => [ + 'path' => '', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhdmI71917'], + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-0iwhhl8gx0ld6****', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'], ], [ 'name' => 'NodeId', - 'in' => 'query', - 'schema' => [ - 'description' => '节点ID。'."\n" - ."\n" - .'> 对于PolarDB MySQL版、PolarDB PostgreSQL版(兼容Oracle)和云数据库MongoDB等集群实例,需要提供节点ID。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '202****', - ], + 'in' => 'formData', + 'schema' => ['description' => '节点ID。'."\n" + ."\n" + .'> 对于PolarDB MySQL版实例,若提供节点ID,将到指定节点查询执行计划,否则将在备节点查询执行计划。'."\n" + .'> 对于RDS MySQL高可用实例,若将实例ID传入,将到指定节点查询执行计划,否则将在备节点查询执行计划。', 'type' => 'string', 'required' => false, 'example' => 'pi-bp1v203xzzh0a****'], ], [ - 'name' => 'MessageId', - 'in' => 'query', - 'schema' => [ - 'description' => '诊断ID,[CreateRequestDiagnosis](~~341609~~)接口返回的诊断唯一标识。'."\n" - .'>当MessageId为自动SQL优化的诊断ID时,该接口无法返回诊断结果', - 'type' => 'string', - 'required' => true, - 'example' => '61820b594664275c4429****', - ], + 'name' => 'Sql', + 'in' => 'formData', + 'schema' => ['description' => '待查询执行计划的SQL。', 'type' => 'string', 'required' => true, 'example' => 'select * from test where name = \'mockUser\''], ], [ - 'name' => 'SqlId', - 'in' => 'query', - 'schema' => [ - 'title' => 'SQL模板ID', - 'description' => 'SQL模板ID。'."\n" - ."\n" - .'> 此参数是DAS控制台调用API时使用,用户使用此API时无需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], + 'name' => 'DbName', + 'in' => 'formData', + 'schema' => ['description' => '数据库名。', 'type' => 'string', 'required' => false, 'example' => 'dbtest01'], ], [ - 'name' => 'Source', - 'in' => 'query', - 'schema' => [ - 'title' => '诊断来源', - 'description' => '任务来源。'."\n" - ."\n" - .'> 此参数是DAS控制台调用API时使用,用户使用此API时无需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], + 'name' => 'Schema', + 'in' => 'formData', + 'schema' => ['description' => 'schema信息,预留参数。', 'type' => 'string', 'required' => false, 'example' => '无'], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。'."\n" - ."\n", - 'type' => 'string', - 'example' => '800FBAF5-A539-5B97-A09E-C63AB2F7****', - ], + 'Code' => ['description' => '返回的状态码,200表示成功。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], 'Data' => [ - 'description' => '返回数据', - 'type' => 'object', - 'properties' => [ - 'messageId' => [ - 'description' => '诊断ID,唯一标识。', - 'type' => 'string', - 'example' => '61820b594664275c4429****', - ], - 'uuid' => [ - 'description' => '诊断实例唯一标识。', - 'type' => 'string', - 'example' => 'hdm_51fe9bc19ec413f4d530431af87a****', - ], - 'accountId' => [ - 'description' => '用户ID。', - 'type' => 'string', - 'example' => '2093****', - ], - 'sqlId' => [ - 'description' => 'SQL模板ID。', - 'type' => 'string', - 'example' => '0c95dae3afef77be06572612df9b****', - ], - 'engine' => [ - 'description' => '数据库引擎,取值:'."\n" - ."\n" - .'- **MySQL**'."\n" - .'- **PostgreSQL**'."\n" - .'- **SQLServer**'."\n" - .'- **PolarDBMySQL**'."\n" - .'- **PolarDBOracle**'."\n" - .'- **MongoDB**'."\n" - ."\n\n" - ."\n\n" - ."\n\n" - ."\n\n" - ."\n\n", - 'type' => 'string', - 'example' => 'MySQL', - ], - 'dbSchema' => [ - 'description' => '数据库名。', - 'type' => 'string', - 'example' => 'das', - ], - 'param' => [ - 'description' => '额外信息。', - 'type' => 'string', - 'example' => '{"":""}', - ], - 'state' => [ - 'description' => '诊断状态:'."\n" - ."\n" - .'- **0**:诊断中。'."\n" - .'- **1**:诊断错误。'."\n" - .'- **2**:诊断完成。'."\n" - .'- **3**:SQL错误。'."\n" - .'- **4**:引擎错误。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'result' => [ - 'description' => 'SQL诊断结果。'."\n" - ."\n" - .'- **endTime**:SQL诊断的结束时间。'."\n" - .'- **errorCode**:错误码。'."\n" - .' - **0001**:诊断成功。'."\n" - .' - **0003**:诊断失败。'."\n" - .'- **errorMessage**:错误信息。'."\n" - .'- **estimateCost**:预估得消耗。'."\n" - .' - **cpu**:索引的CPU消耗预估值。'."\n" - .' - **io**:索引的IO消耗预估值。'."\n" - .' - **rows**:索引的返回列预估值。'."\n" - .'- **improvement**:性能提升比。'."\n" - .'- **indexAdvices**:索引建议。'."\n" - .' - **columns**:索引列。'."\n" - .' - **ddlAddIndex**:索引DDL语句。'."\n" - .' - **indexName**:索引名。'."\n" - .' - **schemaName**:数据库名。'."\n" - .' - **tableName**:表名。'."\n" - .' - **unique**:是否唯一索引。'."\n" - .'- **ip**:实例的IP地址。'."\n" - .'- **messageId**:诊断ID。'."\n" - .'- **port**:实例的端口。'."\n" - .'- **sqlTag**:SQL标签。'."\n" - .'- **startTime**:SQL诊断的开始时间。'."\n" - .'- **success**:请求是否执行成功。'."\n" - .'- **support**:SQL语句是否支持诊断。'."\n" - .' - **true**:支持。'."\n" - .' - **false**:不支持。'."\n" - .'- **tuningAdvices**:SQL改写建议。', - 'type' => 'string', - 'example' => '{ "endTime":1636354256000, "errorCode":"0001", "errorMessage":"TFX成功", "estimateCost":{ "cpu":1.7878745150389268, "io":9.948402604746128, "rows":8.889372575194633 }, "improvement":12933.97, "indexAdvices":[ { "columns":[ "work_no" ], "ddlAddIndex":"ALTER TABLE `test`.`work_order` ADD INDEX `idx_workno` (`work_no`)", "indexName":"idx_workno", "schemaName":"test", "tableName":"work_order", "unique":false } ], "ip":"****.mysql.rds.aliyuncs.com", "messageId":"6188c8cb2f1365b16aee****", "port":3306, "sqlTag":"{\\"PRED_EQUAL\\":\\"Y\\",\\"CNT_QB\\":\\"1\\",\\"CNT_TB\\":\\"1\\"}", "startTime":1636354252000, "success":true, "support":true, "tuningAdvices":[ ] }', - ], - 'gmtCreate' => [ - 'description' => 'SQL诊断创建时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'string', - 'example' => '1633071840000', - ], - 'gmtModified' => [ - 'description' => 'SQL诊断修改时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'string', - 'example' => '1633071850000', + 'title' => 'List<ExplainedSqlDO>', + 'description' => 'List<ExplainedSqlDO>', + 'type' => 'array', + 'items' => [ + 'description' => '返回数据。', + 'type' => 'object', + 'properties' => [ + 'Id' => ['description' => '查询ID。', 'type' => 'string', 'example' => '1'], + 'SelectType' => ['description' => '查询类型。', 'type' => 'string', 'example' => 'SIMPLE'], + 'Table' => ['description' => '表名。', 'type' => 'string', 'example' => 'test'], + 'Type' => ['description' => 'Join类型。', 'type' => 'string', 'example' => 'eq_ref'], + 'PossibleKeys' => ['description' => '可能被选择的索引。', 'type' => 'string', 'example' => 'test_idx'], + 'Key' => ['description' => '执行计划中,实际选择的索引。', 'type' => 'string', 'example' => 'PRIMARY'], + 'KeyLen' => ['description' => '实际选择索引的长度。', 'type' => 'string', 'example' => '3'], + 'Ref' => ['description' => '索引所用的列。', 'type' => 'string', 'example' => 'test_column'], + 'Rows' => ['description' => '待扫描行数。', 'type' => 'string', 'example' => '1000'], + 'Extra' => ['description' => '附加信息。', 'type' => 'string', 'example' => '无'], + 'QueryPlan' => ['title' => 'QUEYR_PLAN展示用', 'description' => '保留字段,用于PG引擎。', 'type' => 'string', 'example' => '无'], + 'TableList' => [ + 'title' => 'queryPlan中用到的表名', + 'description' => '保留字段,用于PG引擎。', + 'type' => 'array', + 'items' => ['description' => '保留字段,用于PG引擎。', 'type' => 'string', 'example' => '无'], + ], + 'IndexList' => [ + 'title' => 'queryPlan中用到的索引名', + 'description' => '保留字段,用于PG引擎。', + 'type' => 'array', + 'items' => ['description' => '保留字段,用于PG引擎。', 'type' => 'string', 'example' => '无'], + ], + 'LogicalPlanList' => [ + 'description' => '保留字段,用于PolarDB X引擎。', + 'type' => 'array', + 'items' => ['description' => '保留字段,用于PolarDB X引擎。', 'type' => 'string', 'example' => '无'], + ], + 'StmtText' => ['description' => '保留字段,用于SQLServer引擎。', 'type' => 'string', 'example' => '无'], + 'StmtId' => ['description' => '保留字段,用于SQLServer引擎。', 'type' => 'string', 'example' => '无'], + 'NodeId' => ['description' => '保留字段,用于SQLServer引擎。', 'type' => 'string', 'example' => '无'], + 'Parent' => ['description' => '保留字段,用于SQLServer引擎。', 'type' => 'string', 'example' => '无'], + 'PhysicalOp' => ['description' => '保留字段,用于SQLServer引擎。', 'type' => 'string', 'example' => '无'], + 'LogicalOp' => ['description' => '保留字段,用于SQLServer引擎。', 'type' => 'string', 'example' => '无'], + 'Argument' => ['description' => '保留字段,用于SQLServer引擎。', 'type' => 'string', 'example' => '无'], + 'DefinedValues' => ['description' => '保留字段,用于SQLServer引擎。', 'type' => 'string', 'example' => '无'], + 'EstimateRows' => ['description' => '保留字段,用于SQLServer引擎。', 'type' => 'string', 'example' => '无'], + 'EstimateIO' => ['description' => '保留字段,用于SQLServer引擎。', 'type' => 'string', 'example' => '无'], + 'EstimateCPU' => ['description' => '保留字段,用于SQLServer引擎。', 'type' => 'string', 'example' => '无'], + 'AvgRowSize' => ['description' => '保留字段,用于SQLServer引擎。', 'type' => 'string', 'example' => '无'], + 'TotalSubtreeCost' => ['description' => '保留字段,用于SQLServer引擎。', 'type' => 'string', 'example' => '无'], + 'OutputList' => ['description' => '保留字段,用于SQLServer引擎。', 'type' => 'string', 'example' => '无'], + 'Warnings' => ['description' => '保留字段,用于SQLServer引擎。', 'type' => 'string', 'example' => '无'], + 'Parallel' => ['description' => '保留字段,用于SQLServer引擎。', 'type' => 'string', 'example' => '无'], + 'EstimateExecutions' => ['description' => '保留字段,用于SQLServer引擎。', 'type' => 'string', 'example' => '无'], ], ], ], - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - ."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询SQL执行计划', + 'summary' => '查询SQL的执行计划。', + 'description' => '- 当前仅支持RDS MySQL和PolarDB MySQL实例查询SQL的执行计划。'."\n" + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeQueryExplain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"800FBAF5-A539-5B97-A09E-C63AB2F7****\\",\\n \\"Data\\": {\\n \\"messageId\\": \\"61820b594664275c4429****\\",\\n \\"uuid\\": \\"hdm_51fe9bc19ec413f4d530431af87a****\\",\\n \\"accountId\\": \\"2093****\\",\\n \\"sqlId\\": \\"0c95dae3afef77be06572612df9b****\\",\\n \\"engine\\": \\"MySQL\\",\\n \\"dbSchema\\": \\"das\\",\\n \\"param\\": \\"{\\\\\\"\\\\\\":\\\\\\"\\\\\\"}\\",\\n \\"state\\": 2,\\n \\"result\\": \\"{ \\\\\\"endTime\\\\\\":1636354256000, \\\\\\"errorCode\\\\\\":\\\\\\"0001\\\\\\", \\\\\\"errorMessage\\\\\\":\\\\\\"TFX成功\\\\\\", \\\\\\"estimateCost\\\\\\":{ \\\\\\"cpu\\\\\\":1.7878745150389268, \\\\\\"io\\\\\\":9.948402604746128, \\\\\\"rows\\\\\\":8.889372575194633 }, \\\\\\"improvement\\\\\\":12933.97, \\\\\\"indexAdvices\\\\\\":[ { \\\\\\"columns\\\\\\":[ \\\\\\"work_no\\\\\\" ], \\\\\\"ddlAddIndex\\\\\\":\\\\\\"ALTER TABLE `test`.`work_order` ADD INDEX `idx_workno` (`work_no`)\\\\\\", \\\\\\"indexName\\\\\\":\\\\\\"idx_workno\\\\\\", \\\\\\"schemaName\\\\\\":\\\\\\"test\\\\\\", \\\\\\"tableName\\\\\\":\\\\\\"work_order\\\\\\", \\\\\\"unique\\\\\\":false } ], \\\\\\"ip\\\\\\":\\\\\\"****.mysql.rds.aliyuncs.com\\\\\\", \\\\\\"messageId\\\\\\":\\\\\\"6188c8cb2f1365b16aee****\\\\\\", \\\\\\"port\\\\\\":3306, \\\\\\"sqlTag\\\\\\":\\\\\\"{\\\\\\\\\\\\\\"PRED_EQUAL\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Y\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CNT_QB\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CNT_TB\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\"}\\\\\\", \\\\\\"startTime\\\\\\":1636354252000, \\\\\\"success\\\\\\":true, \\\\\\"support\\\\\\":true, \\\\\\"tuningAdvices\\\\\\":[ ] }\\",\\n \\"gmtCreate\\": \\"1633071840000\\",\\n \\"gmtModified\\": \\"1633071850000\\"\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetRequestDiagnosisResultResponse>\\n <Message>Successful</Message>\\n <RequestId>800FBAF5-A539-5B97-A09E-C63AB2F7****</RequestId>\\n <Data>\\n <messageId>61820b594664275c4429****</messageId>\\n <uuid>hdm_51fe9bc19ec413f4d530431af87a****</uuid>\\n <accountId>2093****</accountId>\\n <sqlId>0c95dae3afef77be06572612df9b****</sqlId>\\n <engine>MySQL</engine>\\n <dbSchema>das</dbSchema>\\n <param>{\\"\\":\\"\\"}</param>\\n <state>2</state>\\n <result>{ \\"endTime\\":1636354256000, \\"errorCode\\":\\"0001\\", \\"errorMessage\\":\\"TFX成功\\", \\"estimateCost\\":{ \\"cpu\\":1.7878745150389268, \\"io\\":9.948402604746128, \\"rows\\":8.889372575194633 }, \\"improvement\\":12933.97, \\"indexAdvices\\":[ { \\"columns\\":[ \\"work_no\\" ], \\"ddlAddIndex\\":\\"ALTER TABLE `test`.`work_order` ADD INDEX `idx_workno` (`work_no`)\\", \\"indexName\\":\\"idx_workno\\", \\"schemaName\\":\\"test\\", \\"tableName\\":\\"work_order\\", \\"unique\\":false } ], \\"ip\\":\\"****.mysql.rds.aliyuncs.com\\", \\"messageId\\":\\"6188c8cb2f1365b16aee****\\", \\"port\\":3306, \\"sqlTag\\":\\"{\\\\\\"PRED_EQUAL\\\\\\":\\\\\\"Y\\\\\\",\\\\\\"CNT_QB\\\\\\":\\\\\\"1\\\\\\",\\\\\\"CNT_TB\\\\\\":\\\\\\"1\\\\\\"}\\", \\"startTime\\":1636354252000, \\"success\\":true, \\"support\\":true, \\"tuningAdvices\\":[ ] }</result>\\n <gmtCreate>1633071840000</gmtCreate>\\n <gmtModified>1633071850000</gmtModified>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetRequestDiagnosisResultResponse>","errorExample":""}]', - 'title' => '查询SQL诊断的结果', - 'description' => '使用该接口需满足以下前提条件:'."\n" - ."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 该接口不支持查询自动SQL优化的诊断结果'."\n" - .'- 本接口适用的数据库引擎为:'."\n" - ."\n" - .' - RDS MySQL'."\n" - .' - RDS PostgreSQL'."\n" - .' - RDS SQL Server'."\n" - .' - PolarDB MySQL版'."\n" - .' - PolarDB PostgreSQL版(兼容Oracle)'."\n" - .' - 云数据库MongoDB版'."\n" - ."\n" - .'> RDS PostgreSQL实例内核小版本为20220130及以上。查看和升级内核小版本,请参见[升级内核小版本](~~146895~~)。', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": [\\n {\\n \\"Id\\": \\"1\\",\\n \\"SelectType\\": \\"SIMPLE\\",\\n \\"Table\\": \\"test\\",\\n \\"Type\\": \\"eq_ref\\",\\n \\"PossibleKeys\\": \\"test_idx\\",\\n \\"Key\\": \\"PRIMARY\\",\\n \\"KeyLen\\": \\"3\\",\\n \\"Ref\\": \\"test_column\\",\\n \\"Rows\\": \\"1000\\",\\n \\"Extra\\": \\"无\\",\\n \\"QueryPlan\\": \\"无\\",\\n \\"TableList\\": [\\n \\"无\\"\\n ],\\n \\"IndexList\\": [\\n \\"无\\"\\n ],\\n \\"LogicalPlanList\\": [\\n \\"无\\"\\n ],\\n \\"StmtText\\": \\"无\\",\\n \\"StmtId\\": \\"无\\",\\n \\"NodeId\\": \\"无\\",\\n \\"Parent\\": \\"无\\",\\n \\"PhysicalOp\\": \\"无\\",\\n \\"LogicalOp\\": \\"无\\",\\n \\"Argument\\": \\"无\\",\\n \\"DefinedValues\\": \\"无\\",\\n \\"EstimateRows\\": \\"无\\",\\n \\"EstimateIO\\": \\"无\\",\\n \\"EstimateCPU\\": \\"无\\",\\n \\"AvgRowSize\\": \\"无\\",\\n \\"TotalSubtreeCost\\": \\"无\\",\\n \\"OutputList\\": \\"无\\",\\n \\"Warnings\\": \\"无\\",\\n \\"Parallel\\": \\"无\\",\\n \\"EstimateExecutions\\": \\"无\\"\\n }\\n ]\\n}","type":"json"}]', ], - 'GetRequestDiagnosisPage' => [ - 'summary' => '调用GetRequestDiagnosisPage接口,分页获取SQL诊断历史记录。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeSecurityIPGroup' => [ + 'summary' => '展示用户跨产品白名单模板具体信息', + 'path' => '', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '247410', + 'abilityTreeNodes' => ['FEATUREhdmQULC0I'], + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-0iwhhl8gx0ld6****', - ], - ], - [ - 'name' => 'NodeId', - 'in' => 'query', - 'schema' => [ - 'description' => '节点ID。'."\n" - ."\n" - .'> 对于PolarDB MySQL版、PolarDB PostgreSQL版(兼容Oracle)和云数据库MongoDB等集群实例,需要提供节点ID。', - 'type' => 'string', - 'required' => false, - 'example' => '202****', - ], - ], - [ - 'name' => 'PageNo', - 'in' => 'query', - 'schema' => [ - 'description' => '页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '每页最大记录数,取值大于0且不超过Integer数据类型的最大值,默认值为10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '10', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '查询任务的开始时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1633071840000', - ], - ], - [ - 'name' => 'EndTime', + 'name' => 'RegionName', 'in' => 'query', - 'schema' => [ - 'description' => '查询任务的结束时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1634972640000', - ], + 'allowEmptyValue' => false, + 'schema' => ['description' => '地域 ID。', 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求的ID。', - 'type' => 'string', - 'example' => '800FBAF5-A539-5B97-A09E-C63AB2F7****', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], 'Data' => [ - 'description' => '返回数据。', + 'title' => 'ListResult<InstanceSSL>', + 'description' => 'ListResult<InstanceSSL>', 'type' => 'object', 'properties' => [ - 'list' => [ - 'description' => 'SQL诊断历史记录列表。', + 'SecurityIpGroups' => [ + 'description' => '用户在该region下的所有跨产品白名单模板列表。', 'type' => 'array', 'items' => [ - 'description' => 'SQL诊断历史记录列表。', 'type' => 'object', 'properties' => [ - 'messageId' => [ - 'description' => '诊断ID,唯一标识。', - 'type' => 'string', - 'example' => '61820b594664275c4429****', - ], - 'uuid' => [ - 'description' => '诊断实例的唯一标识。', - 'type' => 'string', - 'example' => 'hdm_51fe9bc19ec413f4d530431af87a****', - ], - 'accountId' => [ - 'description' => '用户ID。', - 'type' => 'string', - 'example' => '2093****', - ], - 'sqlId' => [ - 'description' => 'SQL模板ID。', - 'type' => 'string', - 'example' => '0c95dae3afef77be06572612df9b****', - ], - 'engine' => [ - 'description' => '数据库引擎:'."\n" - ."\n" - .'- **MySQL**'."\n" - .'- **PostgreSQL**'."\n" - .'- **SQLServer**'."\n" - .'- **PolarDBMySQL**'."\n" - .'- **PolarDBOracle**'."\n" - .'- **MongoDB**', - 'type' => 'string', - 'example' => 'MySQL', - ], - 'dbSchema' => [ - 'description' => '数据库名。', - 'type' => 'string', - 'example' => 'das', - ], - 'param' => [ - 'description' => '额外信息。', - 'type' => 'string', - 'example' => '{"":""}', - ], - 'state' => [ - 'description' => '诊断状态:'."\n" - ."\n" - .'- **0**:诊断中。'."\n" - ."\n" - .'- **1**:诊断错误。'."\n" - ."\n" - .'- **2**:诊断完成。'."\n" - ."\n" - .'- **3**:SQL错误。'."\n" - ."\n" - .'- **4**:引擎错误。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'result' => [ - 'description' => 'SQL诊断结果:'."\n" - ."\n" - .'- **endTime**:SQL诊断的结束时间。'."\n" - .'- **errorCode**:错误码。'."\n" - .' - **0001**:诊断成功。'."\n" - .' - **0003**:诊断失败。'."\n" - .'- **errorMessage**:错误信息。'."\n" - .'- **estimateCost**:预估得消耗。'."\n" - .' - **cpu**:索引的CPU消耗预估值。'."\n" - .' - **io**:索引的IO消耗预估值。'."\n" - .' - **rows**:索引的返回列预估值。'."\n" - .'- **improvement**:性能提升比。'."\n" - .'- **indexAdvices**:索引建议。'."\n" - .' - **columns**:索引列。'."\n" - .' - **ddlAddIndex**:索引DDL语句。'."\n" - .' - **indexName**:索引名。'."\n" - .' - **schemaName**:数据库名。'."\n" - .' - **tableName**:表名。'."\n" - .' - **unique**:是否唯一索引。'."\n" - .'- **ip**:实例的IP地址。'."\n" - .'- **messageId**:诊断ID。'."\n" - .'- **port**:实例的端口。'."\n" - .'- **sqlTag**:SQL标签。'."\n" - .'- **startTime**:SQL诊断的开始时间。'."\n" - .'- **success**:请求是否执行成功。'."\n" - .'- **support**:SQL语句是否支持诊断。'."\n" - .' - **true**:支持。'."\n" - .' - **false**:不支持。'."\n" - .'- **tuningAdvices**:SQL改写建议。'."\n" - ."\n", - 'type' => 'string', - 'example' => '{ "endTime":1636354256000, "errorCode":"0001", "errorMessage":"TFX成功", "estimateCost":{ "cpu":1.7878745150389268, "io":9.948402604746128, "rows":8.889372575194633 }, "improvement":12933.97, "indexAdvices":[ { "columns":[ "work_no" ], "ddlAddIndex":"ALTER TABLE `test`.`work_order` ADD INDEX `idx_workno` (`work_no`)", "indexName":"idx_workno", "schemaName":"test", "tableName":"work_order", "unique":false } ], "ip":"****.mysql.rds.aliyuncs.com", "messageId":"6188c8cb2f1365b16aee****", "port":3306, "sqlTag":"{\\"PRED_EQUAL\\":\\"Y\\",\\"CNT_QB\\":\\"1\\",\\"CNT_TB\\":\\"1\\"}", "startTime":1636354252000, "success":true, "support":true, "tuningAdvices":[ ] }', - ], - 'gmtCreate' => [ - 'description' => 'SQL诊断创建时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'string', - 'example' => '1633071840000', - ], - 'gmtModified' => [ - 'description' => 'SQL诊断修改时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'string', - 'example' => '1633071850000', + 'DbInstances' => [ + 'description' => '该跨产品白名单模板所绑定的数据库实例列表。', + 'type' => 'array', + 'items' => ['description' => '数据库实例ID。', 'type' => 'string', 'example' => '["r-2ze9g6mnhu1***",'."\n" + .'"pc-2zew5qn1m***",'."\n" + .'"r-2ze9g6mn****",'."\n" + .'"pc-2zew5qh41*****"]'], + ], + 'SecurityIpType' => ['description' => 'ip类型', 'type' => 'string', 'example' => 'ipv4'], + 'Uid' => ['description' => '账号ID,您可在阿里云**账号管理**的**安全设置**页面获取**登录账号**的ID。', 'type' => 'string', 'example' => '160-79abe3f4****'], + 'RegionId' => ['description' => '地域 ID。', 'type' => 'string', 'example' => 'cn-hangzhou'], + 'GEcsSgIdList' => ['description' => 'ECS 安全组ID,已无效,是冗余数据,待下线', 'type' => 'string', 'example' => ' null'], + 'GlobalIgName' => ['description' => 'IP白名单模板名称。IP白名单模板名称需满足如下要求:'."\n" + ."\n" + .'- 由小写字母、数字、下划线(_)组成。'."\n" + ."\n" + .'- 由字母开头、字母或数字结尾。'."\n" + ."\n" + .'- 长度为2~120个字符。', 'type' => 'string', 'example' => 'test_123'], + 'GlobalSecurityGroupId' => ['description' => 'IP白名单模板ID。', 'type' => 'string', 'example' => 'g-1no2rzybnqcv****'], + 'WhitelistNetType' => ['description' => '白名单的网络类型。', 'type' => 'string', 'example' => 'mix'], + 'EngineInfoList' => [ + 'description' => '该模板所绑定的各产品下的实例信息', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'InstanceNum' => ['description' => '当前登录账号包含的实例数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'EngineName' => ['description' => '目标实例的数据库类型。', 'type' => 'string', 'example' => 'PolarDBMySQL'], + 'InstanceIds' => [ + 'description' => '数据库实例ID列表。', + 'type' => 'array', + 'items' => ['description' => '数据库实例ID。'."\n" + ."\n" + .'> 数据格式为JSONArray,例如`[\'实例ID1\',\'实例ID2\']`,实例ID间用英文逗号(,)分隔。', 'type' => 'string', 'example' => 'rm-2ze8ygcc****'], + ], + ], + 'description' => '', + ], ], + 'UserId' => ['description' => '用户id', 'type' => 'string', 'example' => '641***'], + 'GIpList' => ['description' => '白名单模板内的IP地址。'."\n" + .'> 多个IP地址需要用英文逗号(,)分隔。', 'type' => 'string', 'example' => '192.168.1.28/32'], ], + 'description' => '', ], ], - 'pageNo' => [ - 'description' => '页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'pageSize' => [ - 'description' => '每页最大记录数,取值大于0且不超过Integer数据类型的最大值,默认值为10。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'total' => [ - 'description' => '查询到的总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'extra' => [ - 'description' => '其他信息。', - 'type' => 'string', - 'example' => '{"":""}', - ], ], ], - 'Code' => [ - 'description' => '状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - ."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'Message' => ['description' => '请求返回的消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CAC553F1-C669-53F1-A295-2CF050E****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"800FBAF5-A539-5B97-A09E-C63AB2F7****\\",\\n \\"Data\\": {\\n \\"list\\": [\\n {\\n \\"messageId\\": \\"61820b594664275c4429****\\",\\n \\"uuid\\": \\"hdm_51fe9bc19ec413f4d530431af87a****\\",\\n \\"accountId\\": \\"2093****\\",\\n \\"sqlId\\": \\"0c95dae3afef77be06572612df9b****\\",\\n \\"engine\\": \\"MySQL\\",\\n \\"dbSchema\\": \\"das\\",\\n \\"param\\": \\"{\\\\\\"\\\\\\":\\\\\\"\\\\\\"}\\",\\n \\"state\\": 2,\\n \\"result\\": \\"{ \\\\\\"endTime\\\\\\":1636354256000, \\\\\\"errorCode\\\\\\":\\\\\\"0001\\\\\\", \\\\\\"errorMessage\\\\\\":\\\\\\"TFX成功\\\\\\", \\\\\\"estimateCost\\\\\\":{ \\\\\\"cpu\\\\\\":1.7878745150389268, \\\\\\"io\\\\\\":9.948402604746128, \\\\\\"rows\\\\\\":8.889372575194633 }, \\\\\\"improvement\\\\\\":12933.97, \\\\\\"indexAdvices\\\\\\":[ { \\\\\\"columns\\\\\\":[ \\\\\\"work_no\\\\\\" ], \\\\\\"ddlAddIndex\\\\\\":\\\\\\"ALTER TABLE `test`.`work_order` ADD INDEX `idx_workno` (`work_no`)\\\\\\", \\\\\\"indexName\\\\\\":\\\\\\"idx_workno\\\\\\", \\\\\\"schemaName\\\\\\":\\\\\\"test\\\\\\", \\\\\\"tableName\\\\\\":\\\\\\"work_order\\\\\\", \\\\\\"unique\\\\\\":false } ], \\\\\\"ip\\\\\\":\\\\\\"****.mysql.rds.aliyuncs.com\\\\\\", \\\\\\"messageId\\\\\\":\\\\\\"6188c8cb2f1365b16aee****\\\\\\", \\\\\\"port\\\\\\":3306, \\\\\\"sqlTag\\\\\\":\\\\\\"{\\\\\\\\\\\\\\"PRED_EQUAL\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Y\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CNT_QB\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CNT_TB\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\"}\\\\\\", \\\\\\"startTime\\\\\\":1636354252000, \\\\\\"success\\\\\\":true, \\\\\\"support\\\\\\":true, \\\\\\"tuningAdvices\\\\\\":[ ] }\\",\\n \\"gmtCreate\\": \\"1633071840000\\",\\n \\"gmtModified\\": \\"1633071850000\\"\\n }\\n ],\\n \\"pageNo\\": 1,\\n \\"pageSize\\": 10,\\n \\"total\\": 100,\\n \\"extra\\": \\"{\\\\\\"\\\\\\":\\\\\\"\\\\\\"}\\"\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetRequestDiagnosisPageResponse>\\n <Message>Successful</Message>\\n <RequestId>800FBAF5-A539-5B97-A09E-C63AB2F7****</RequestId>\\n <Data>\\n <list>\\n <messageId>61820b594664275c4429****</messageId>\\n <uuid>hdm_51fe9bc19ec413f4d530431af87a****</uuid>\\n <accountId>2093****</accountId>\\n <sqlId>0c95dae3afef77be06572612df9b****</sqlId>\\n <engine>MySQL</engine>\\n <dbSchema>das</dbSchema>\\n <param>{\\"\\":\\"\\"}</param>\\n <state>2</state>\\n <result>{ \\"endTime\\":1636354256000, \\"errorCode\\":\\"0001\\", \\"errorMessage\\":\\"TFX成功\\", \\"estimateCost\\":{ \\"cpu\\":1.7878745150389268, \\"io\\":9.948402604746128, \\"rows\\":8.889372575194633 }, \\"improvement\\":12933.97, \\"indexAdvices\\":[ { \\"columns\\":[ \\"work_no\\" ], \\"ddlAddIndex\\":\\"ALTER TABLE `test`.`work_order` ADD INDEX `idx_workno` (`work_no`)\\", \\"indexName\\":\\"idx_workno\\", \\"schemaName\\":\\"test\\", \\"tableName\\":\\"work_order\\", \\"unique\\":false } ], \\"ip\\":\\"****.mysql.rds.aliyuncs.com\\", \\"messageId\\":\\"6188c8cb2f1365b16aee****\\", \\"port\\":3306, \\"sqlTag\\":\\"{\\\\\\"PRED_EQUAL\\\\\\":\\\\\\"Y\\\\\\",\\\\\\"CNT_QB\\\\\\":\\\\\\"1\\\\\\",\\\\\\"CNT_TB\\\\\\":\\\\\\"1\\\\\\"}\\", \\"startTime\\":1636354252000, \\"success\\":true, \\"support\\":true, \\"tuningAdvices\\":[ ] }</result>\\n <gmtCreate>1633071840000</gmtCreate>\\n <gmtModified>1633071850000</gmtModified>\\n </list>\\n <pageNo>1</pageNo>\\n <pageSize>10</pageSize>\\n <total>100</total>\\n <extra>{\\"\\":\\"\\"}</extra>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetRequestDiagnosisPageResponse>","errorExample":""}]', - 'title' => '分页获取SQL诊断历史记录', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '跨产品白名单模板展示接口', 'description' => '使用该接口需满足以下前提条件:'."\n" ."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 本接口适用的数据库引擎为:'."\n" - ."\n" - .' - RDS MySQL'."\n" - .' - RDS PostgreSQL'."\n" - .' - RDS SQL Server'."\n" - .' - PolarDB MySQL版'."\n" - .' - PolarDB PostgreSQL版(兼容Oracle)'."\n" - .' - 云数据库MongoDB版'."\n" - ."\n" - .'> RDS PostgreSQL实例内核小版本为20220130及以上。查看和升级内核小版本,请参见[升级内核小版本](~~146895~~)。'."\n", + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeSecurityIPGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Data\\": {\\n \\"SecurityIpGroups\\": [\\n {\\n \\"DbInstances\\": [\\n \\"[\\\\\\"r-2ze9g6mnhu1***\\\\\\",\\\\n\\\\\\"pc-2zew5qn1m***\\\\\\",\\\\n\\\\\\"r-2ze9g6mn****\\\\\\",\\\\n\\\\\\"pc-2zew5qh41*****\\\\\\"]\\"\\n ],\\n \\"SecurityIpType\\": \\"ipv4\\",\\n \\"Uid\\": \\"160-79abe3f4****\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"GEcsSgIdList\\": \\" null\\",\\n \\"GlobalIgName\\": \\"test_123\\",\\n \\"GlobalSecurityGroupId\\": \\"g-1no2rzybnqcv****\\",\\n \\"WhitelistNetType\\": \\"mix\\",\\n \\"EngineInfoList\\": [\\n {\\n \\"InstanceNum\\": 10,\\n \\"EngineName\\": \\"PolarDBMySQL\\",\\n \\"InstanceIds\\": [\\n \\"rm-2ze8ygcc****\\"\\n ]\\n }\\n ],\\n \\"UserId\\": \\"641***\\",\\n \\"GIpList\\": \\"192.168.1.28/32\\"\\n }\\n ]\\n },\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"CAC553F1-C669-53F1-A295-2CF050E****\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', ], - 'DescribeQueryExplain' => [ - 'summary' => '查询SQL的执行计划。', + 'DescribeSecurityIPGroupRelation' => [ 'path' => '', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -4973,64 +4594,21 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhdmI71917', - ], + 'abilityTreeCode' => '247410', + 'abilityTreeNodes' => ['FEATUREhdmQULC0I'], 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'InstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****', - ], - ], - [ - 'name' => 'NodeId', - 'in' => 'formData', - 'schema' => [ - 'description' => '节点ID。'."\n" - ."\n" - .'> 对于PolarDB MySQL版实例,若提供节点ID,将到指定节点查询执行计划,否则将在备节点查询执行计划。'."\n" - .'> 对于RDS MySQL高可用实例,若将实例ID传入,将到指定节点查询执行计划,否则将在备节点查询执行计划。', - 'type' => 'string', - 'required' => false, - 'example' => 'pi-bp1v203xzzh0a****', - ], - ], - [ - 'name' => 'Sql', - 'in' => 'formData', - 'schema' => [ - 'description' => '待查询执行计划的SQL。', - 'type' => 'string', - 'required' => true, - 'example' => 'select * from test where name = \'mockUser\'', - ], - ], - [ - 'name' => 'DbName', - 'in' => 'formData', - 'schema' => [ - 'description' => '数据库名。', - 'type' => 'string', - 'required' => false, - 'example' => 'dbtest01', - ], + 'name' => 'RegionName', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['description' => '地域 ID。', 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai'], ], [ - 'name' => 'Schema', - 'in' => 'formData', - 'schema' => [ - 'description' => 'schema信息,预留参数。', - 'type' => 'string', - 'required' => false, - 'example' => '无', - ], + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2zegsc57ofexxxxx'], ], ], 'responses' => [ @@ -5040,285 +4618,144 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码,200表示成功。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], 'Data' => [ - 'title' => 'List<ExplainedSqlDO>', - 'description' => 'List<ExplainedSqlDO>', - 'type' => 'array', - 'items' => [ - 'description' => '返回数据。', - 'type' => 'object', - 'properties' => [ - 'Id' => [ - 'description' => '查询ID。', - 'type' => 'string', - 'example' => '1', - ], - 'SelectType' => [ - 'description' => '查询类型。', - 'type' => 'string', - 'example' => 'SIMPLE', - ], - 'Table' => [ - 'description' => '表名。', - 'type' => 'string', - 'example' => 'test', - ], - 'Type' => [ - 'description' => 'Join类型。', - 'type' => 'string', - 'example' => 'eq_ref', - ], - 'PossibleKeys' => [ - 'description' => '可能被选择的索引。', - 'type' => 'string', - 'example' => 'test_idx', - ], - 'Key' => [ - 'description' => '执行计划中,实际选择的索引。', - 'type' => 'string', - 'example' => 'PRIMARY', - ], - 'KeyLen' => [ - 'description' => '实际选择索引的长度。', - 'type' => 'string', - 'example' => '3', - ], - 'Ref' => [ - 'description' => '索引所用的列。', - 'type' => 'string', - 'example' => 'test_column', - ], - 'Rows' => [ - 'description' => '待扫描行数。', - 'type' => 'string', - 'example' => '1000', - ], - 'Extra' => [ - 'description' => '附加信息。', - 'type' => 'string', - 'example' => '无', - ], - 'QueryPlan' => [ - 'title' => 'QUEYR_PLAN展示用', - 'description' => '保留字段,用于PG引擎。', - 'type' => 'string', - 'example' => '无', - ], - 'TableList' => [ - 'title' => 'queryPlan中用到的表名', - 'description' => '保留字段,用于PG引擎。', - 'type' => 'array', - 'items' => [ - 'description' => '保留字段,用于PG引擎。', - 'type' => 'string', - 'example' => '无', - ], - ], - 'IndexList' => [ - 'title' => 'queryPlan中用到的索引名', - 'description' => '保留字段,用于PG引擎。', - 'type' => 'array', - 'items' => [ - 'description' => '保留字段,用于PG引擎。', - 'type' => 'string', - 'example' => '无', - ], - ], - 'LogicalPlanList' => [ - 'description' => '保留字段,用于PolarDB X引擎。', - 'type' => 'array', - 'items' => [ - 'description' => '保留字段,用于PolarDB X引擎。', - 'type' => 'string', - 'example' => '无', + 'title' => 'ListResult<InstanceSSL>', + 'description' => 'ListResult<InstanceSSL>', + 'type' => 'object', + 'properties' => [ + 'GlobalSecurityIPGroupRel' => [ + 'description' => '全局IP白名单模板信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'RegionId' => ['description' => '地域 ID。', 'type' => 'string', 'example' => 'cn-shenzhen'], + 'GlobalIgName' => ['description' => 'IP白名单模板名称。', 'type' => 'string', 'example' => 'test2'], + 'GlobalSecurityGroupId' => ['description' => 'IP白名单模板ID。', 'type' => 'string', 'example' => 'g-1no2rzybnqcv0xxxxxx'], + 'GIpList' => ['description' => '白名单模板内的IP地址。'."\n" + ."\n" + .'> 多个IP地址需要用英文逗号隔开,所有IP白名单累积支持添加1000个IP地址或地址段。', 'type' => 'string', 'example' => '192.168.1.28/32'], ], - ], - 'StmtText' => [ - 'description' => '保留字段,用于SQLServer引擎。', - 'type' => 'string', - 'example' => '无', - ], - 'StmtId' => [ - 'description' => '保留字段,用于SQLServer引擎。', - 'type' => 'string', - 'example' => '无', - ], - 'NodeId' => [ - 'description' => '保留字段,用于SQLServer引擎。', - 'type' => 'string', - 'example' => '无', - ], - 'Parent' => [ - 'description' => '保留字段,用于SQLServer引擎。', - 'type' => 'string', - 'example' => '无', - ], - 'PhysicalOp' => [ - 'description' => '保留字段,用于SQLServer引擎。', - 'type' => 'string', - 'example' => '无', - ], - 'LogicalOp' => [ - 'description' => '保留字段,用于SQLServer引擎。', - 'type' => 'string', - 'example' => '无', - ], - 'Argument' => [ - 'description' => '保留字段,用于SQLServer引擎。', - 'type' => 'string', - 'example' => '无', - ], - 'DefinedValues' => [ - 'description' => '保留字段,用于SQLServer引擎。', - 'type' => 'string', - 'example' => '无', - ], - 'EstimateRows' => [ - 'description' => '保留字段,用于SQLServer引擎。', - 'type' => 'string', - 'example' => '无', - ], - 'EstimateIO' => [ - 'description' => '保留字段,用于SQLServer引擎。', - 'type' => 'string', - 'example' => '无', - ], - 'EstimateCPU' => [ - 'description' => '保留字段,用于SQLServer引擎。', - 'type' => 'string', - 'example' => '无', - ], - 'AvgRowSize' => [ - 'description' => '保留字段,用于SQLServer引擎。', - 'type' => 'string', - 'example' => '无', - ], - 'TotalSubtreeCost' => [ - 'description' => '保留字段,用于SQLServer引擎。', - 'type' => 'string', - 'example' => '无', - ], - 'OutputList' => [ - 'description' => '保留字段,用于SQLServer引擎。', - 'type' => 'string', - 'example' => '无', - ], - 'Warnings' => [ - 'description' => '保留字段,用于SQLServer引擎。', - 'type' => 'string', - 'example' => '无', - ], - 'Parallel' => [ - 'description' => '保留字段,用于SQLServer引擎。', - 'type' => 'string', - 'example' => '无', - ], - 'EstimateExecutions' => [ - 'description' => '保留字段,用于SQLServer引擎。', - 'type' => 'string', - 'example' => '无', + 'description' => '', ], ], + 'InstanceId' => ['description' => '实例ID。', 'type' => 'string', 'example' => 'rm-2ze1jdv45i7l6****'], ], ], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A6D1C8EE-013C-541F-83EB-B13C8xxxxxx'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": [\\n {\\n \\"Id\\": \\"1\\",\\n \\"SelectType\\": \\"SIMPLE\\",\\n \\"Table\\": \\"test\\",\\n \\"Type\\": \\"eq_ref\\",\\n \\"PossibleKeys\\": \\"test_idx\\",\\n \\"Key\\": \\"PRIMARY\\",\\n \\"KeyLen\\": \\"3\\",\\n \\"Ref\\": \\"test_column\\",\\n \\"Rows\\": \\"1000\\",\\n \\"Extra\\": \\"无\\",\\n \\"QueryPlan\\": \\"无\\",\\n \\"TableList\\": [\\n \\"无\\"\\n ],\\n \\"IndexList\\": [\\n \\"无\\"\\n ],\\n \\"LogicalPlanList\\": [\\n \\"无\\"\\n ],\\n \\"StmtText\\": \\"无\\",\\n \\"StmtId\\": \\"无\\",\\n \\"NodeId\\": \\"无\\",\\n \\"Parent\\": \\"无\\",\\n \\"PhysicalOp\\": \\"无\\",\\n \\"LogicalOp\\": \\"无\\",\\n \\"Argument\\": \\"无\\",\\n \\"DefinedValues\\": \\"无\\",\\n \\"EstimateRows\\": \\"无\\",\\n \\"EstimateIO\\": \\"无\\",\\n \\"EstimateCPU\\": \\"无\\",\\n \\"AvgRowSize\\": \\"无\\",\\n \\"TotalSubtreeCost\\": \\"无\\",\\n \\"OutputList\\": \\"无\\",\\n \\"Warnings\\": \\"无\\",\\n \\"Parallel\\": \\"无\\",\\n \\"EstimateExecutions\\": \\"无\\"\\n }\\n ]\\n}","type":"json"}]', - 'title' => '查询SQL执行计划', - 'description' => '- 当前仅支持RDS MySQL和PolarDB MySQL实例查询SQL的执行计划。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'summary' => '展示用户跨产品白名单模板与实例绑定信息', + 'description' => '使用该接口需满足以下前提条件:'."\n" + ."\n" .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - ], - 'DescribeHotBigKeys' => [ - 'summary' => '调用DescribeHotBigKeys接口,实时获取当前内存中的热Key和大Key。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', + 'title' => '跨产品白名单模板绑定信息展示接口', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeSecurityIPGroupRelation', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Data\\": {\\n \\"GlobalSecurityIPGroupRel\\": [\\n {\\n \\"RegionId\\": \\"cn-shenzhen\\",\\n \\"GlobalIgName\\": \\"test2\\",\\n \\"GlobalSecurityGroupId\\": \\"g-1no2rzybnqcv0xxxxxx\\",\\n \\"GIpList\\": \\"192.168.1.28/32\\"\\n }\\n ],\\n \\"InstanceId\\": \\"rm-2ze1jdv45i7l6****\\"\\n },\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"A6D1C8EE-013C-541F-83EB-B13C8xxxxxx\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', + ], + 'DescribeSlowLogHistogramAsync' => [ + 'summary' => '异步获取实例慢日志趋势数据。', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhdmROFBLE', - ], + 'abilityTreeCode' => '236527', + 'abilityTreeNodes' => ['FEATUREhdmR88NLD'], ], 'parameters' => [ [ - 'name' => 'ConsoleContext', - 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], - ], - [ 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'Redis实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'r-bp18ff4a195d****', - ], + 'in' => 'formData', + 'schema' => ['description' => '数据库实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'."\n"], ], [ 'name' => 'NodeId', - 'in' => 'query', + 'in' => 'formData', + 'schema' => ['description' => '节点ID。'."\n" + .'> 对于PolarDB MySQL版实例,需要提供节点ID。', 'type' => 'string', 'required' => false, 'example' => 'r-****-db-0'], + ], + [ + 'name' => 'StartTime', + 'in' => 'formData', + 'schema' => ['description' => '查询任务开始时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1596177993000'], + ], + [ + 'name' => 'EndTime', + 'in' => 'formData', + 'schema' => ['description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。'."\n" + .'> 查询结束时间需晚于任务开始时间。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1662518540764'], + ], + [ + 'name' => 'Filters', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'Redis实例的数据分片ID。', - 'type' => 'string', + 'description' => '查询筛选条件列表。', + 'type' => 'array', + 'items' => [ + 'description' => 'Key支持的参数和取值:'."\n" + ."\n" + .'hostAddress:来源,多个逗号分隔。'."\n" + ."\n" + .'sqlId:sqlId,多个逗号分隔。'."\n" + ."\n" + .'user:用户,多个逗号分隔。'."\n" + ."\n" + .'dbName:数据库,多个逗号分隔。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '过滤参数', 'description' => '过滤参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], + 'Value' => ['description' => '过滤参数的值。', 'type' => 'string', 'required' => false, 'example' => 'None'], + ], + 'required' => false, + ], 'required' => false, - 'example' => 'r-****-db-0', + 'maxItems' => 100, ], ], ], @@ -5327,695 +4764,1601 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '请求返回消息。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], 'Data' => [ - 'description' => '详情信息列表。', + 'title' => 'AsyncResult<Histogram>', + 'description' => 'AsyncResult<Histogram>。', 'type' => 'object', 'properties' => [ - 'HotKeys' => [ + 'RequestKey' => ['title' => '请求参数的Key', 'description' => '请求参数的Key。', 'type' => 'string', 'example' => '无'], + 'ResultId' => ['title' => '结果ID', 'description' => '结果ID。', 'type' => 'string', 'example' => 'async__20ee808e72257f16a4fe024057ca****'], + 'State' => ['title' => '当前状态 (RUNNING: 正在运行, SUCCESS: 成功, FAIL: 失败)', 'description' => '当前状态:'."\n" + .'- **RUNNING**:正在运行。'."\n" + .'- **SUCCESS**:成功。'."\n" + .'- **FAIL**:失败。', 'type' => 'string', 'example' => 'SUCCESS'], + 'IsFinish' => ['title' => '是否完成', 'description' => '是否完成。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'title' => '数据', + 'description' => '数据。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'HotKey' => [ - 'description' => '按QPS统计的热Key列表。', + 'Total' => ['description' => '查询的总记录数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'Count' => [ + 'description' => '慢日志数量趋势。', 'type' => 'array', - 'items' => [ - 'description' => '按QPS统计的热Key列表。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '具体的Key。', - 'type' => 'string', - 'example' => 'abc:def:eng', - ], - 'Db' => [ - 'description' => 'Key所在的DB。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Hot' => [ - 'description' => 'Key的访问频次,即Key的每秒访问数。', - 'type' => 'string', - 'example' => '5500~6000', - ], - 'KeyType' => [ - 'description' => 'Key的类型。', - 'type' => 'string', - 'example' => 'zset', - ], - 'Lfu' => [ - 'description' => 'LFU算法的统计值。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '253', - ], - 'NodeId' => [ - 'description' => 'Redis实例的数据分片ID。', - 'type' => 'string', - 'example' => 'r-x****-db-0', - ], - 'Size' => [ - 'description' => '元素的个数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - ], - ], + 'items' => ['description' => '慢日志个数。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], ], - ], - ], - 'BigKeys' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'BigKey' => [ - 'description' => '按子元素数量统计的大Key列表。', + 'Ts' => [ + 'title' => '关系型数据库只使用这个', + 'description' => '关系型数据库只使用这个。', 'type' => 'array', - 'items' => [ - 'description' => '按子元素数量统计的大Key列表。', - 'type' => 'object', - 'properties' => [ - 'Db' => [ - 'description' => 'Key所在的DB。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Key' => [ - 'description' => '具体的Key。', - 'type' => 'string', - 'example' => 'abc:def:eng', - ], - 'KeyType' => [ - 'description' => 'Key类型。', - 'type' => 'string', - 'example' => 'zset', - ], - 'Size' => [ - 'description' => '元素的个数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'NodeId' => [ - 'description' => 'Redis实例的数据分片ID。', - 'type' => 'string', - 'example' => 'r-x****-db-0', - ], - ], - ], + 'items' => ['description' => '第一个事件发生的时间,使用UNIX时间戳表示,单位:毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '['."\n" + .' 1735098480000,'."\n" + .' 1735098540000,'."\n" + .' 1735098600000,'."\n" + .' 1735098660000,'."\n" + .' 1735098720000,'."\n" + .' 1735098780000'."\n" + .' ]'], ], - ], - ], - 'HotKeyMsg' => [ - 'description' => '获取按QPS统计的热Key失败的原因。', - 'type' => 'string', - 'example' => 'current version doesn\'t support', - ], - 'BigKeyMsg' => [ - 'description' => '获取按子元素数量统计的大Key失败的原因。', - 'type' => 'string', - 'example' => 'current version doesn\'t support', - ], - 'HighTrafficKeyMsg' => [ - 'description' => '获取按流量统计的热Key失败的原因。', - 'type' => 'string', - 'example' => 'current version doesn\'t support', - ], - 'HighTrafficKeys' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'HighTrafficKey' => [ - 'description' => '按流量统计的热Key列表。', + 'TsEnd' => [ + 'description' => '无用,预留字段。', 'type' => 'array', - 'items' => [ - 'description' => '按流量统计的热Key列表。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '具体的Key。', - 'type' => 'string', - 'example' => 'abc:def:eng', - ], - 'Db' => [ - 'description' => 'Key所在的DB。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Hot' => [ - 'description' => 'Key的访问频次,即Key的每秒访问数。', - 'type' => 'string', - 'example' => '1988', - ], - 'KeyType' => [ - 'description' => 'Key的类型。', - 'type' => 'string', - 'example' => 'string', - ], - 'NodeId' => [ - 'description' => '节点ID。', - 'type' => 'string', - 'example' => 'r-x****-db-0'."\n", - ], - 'inBytes' => [ - 'description' => '入流量,单位:Byte。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '85767', - ], - 'outBytes' => [ - 'description' => '出流量,单位:Byte。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1054684', - ], - 'Size' => [ - 'description' => '元素的个数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - ], - ], + 'items' => ['description' => '查询结束时间戳。'."\n" + ."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '暂无'], ], - ], - ], - 'LargeKeys' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'LargeKey' => [ - 'description' => '按内存占用统计的大Key列表。', + 'Item' => [ + 'description' => '趋势指标。', 'type' => 'array', 'items' => [ - 'description' => '按内存占用统计的大Key列表。', + 'description' => '具体项目名称。', 'type' => 'object', 'properties' => [ - 'Db' => [ - 'description' => 'Key所在的DB。', - 'type' => 'string', - 'example' => '0', - ], - 'Key' => [ - 'description' => '具体的Key。', - 'type' => 'string', - 'example' => 'abc:def:eng', - ], - 'KeyType' => [ - 'description' => 'Key的类型。', - 'type' => 'string', - 'example' => 'string', - ], - 'DataSize' => [ - 'description' => 'Key的内存占用,单位:Byte。', - 'type' => 'string', - 'example' => '33554439', + 'NodeId' => ['description' => '节点ID。', 'type' => 'string', 'example' => 'r-bp1hi0wg57s3n0i3n8-db-0'], + 'Count' => [ + 'description' => '慢日志数量。', + 'type' => 'array', + 'items' => ['description' => '慢日志数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], ], - 'NodeId' => [ - 'description' => '节点ID。', - 'type' => 'string', - 'example' => 'r-x****-db-0', + 'InsItems' => [ + 'description' => '趋势指标。'."\n" + .'>仅云数据库MongoDB版实例支持。', + 'type' => 'array', + 'items' => [ + 'description' => '趋势指标。'."\n" + .'>仅云数据库MongoDB版实例支持。', + 'type' => 'object', + 'properties' => [ + 'InsId' => ['description' => '实例角色ID。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'string', 'example' => '2492'], + 'InsRole' => ['description' => '实例角色。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'string', 'example' => 'userAdmin'], + 'Count' => [ + 'description' => '执行次数。', + 'type' => 'array', + 'items' => ['description' => '执行次数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + ], + 'TotalCount' => ['description' => '物理节点的慢日志数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + ], + ], ], + 'TotalCount' => ['description' => '总的慢日志数。', 'type' => 'integer', 'format' => 'int64', 'example' => '20'], + 'InsRole' => ['description' => '实例角色。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'string'], ], ], ], + 'Rt' => [ + 'description' => '总执行耗时,单位为秒。', + 'type' => 'array', + 'items' => ['description' => '总执行耗时,单位为秒。', 'type' => 'number', 'format' => 'double', 'example' => '['."\n" + .' 2.306,'."\n" + .' 1.141,'."\n" + .' 0.0,'."\n" + .' 4.538,'."\n" + .' 1.247,'."\n" + .' 1.972'."\n" + .' ]'], + ], + 'AvgRt' => [ + 'description' => '平均执行耗时。', + 'type' => 'array', + 'items' => ['description' => '平均执行耗时。', 'type' => 'number', 'format' => 'double', 'example' => '['."\n" + .' 1.593,'."\n" + .' 2.306,'."\n" + .' 1.141,'."\n" + .' 0.0,'."\n" + .' 1.5127,'."\n" + .' 1.247'."\n" + .' ]'], + ], + 'MaxRt' => [ + 'description' => '最大执行耗时,单位秒。', + 'type' => 'array', + 'items' => ['description' => '最大执行耗时,单位秒。', 'type' => 'number', 'format' => 'double', 'example' => '['."\n" + .' 1.593,'."\n" + .' 2.306,'."\n" + .' 1.141,'."\n" + .' 14.115'."\n" + .' 0.0,'."\n" + .' 1.972'."\n" + .' ]'], + ], + 'LockTime' => [ + 'description' => '总锁等待时间,单位秒。', + 'type' => 'array', + 'items' => ['description' => '总锁等待时间,单位秒。', 'type' => 'number', 'format' => 'double', 'example' => '['."\n" + .' 1.051,'."\n" + .' 1.007,'."\n" + .' 0.0,'."\n" + .' 0.755,'."\n" + .' 0.096,'."\n" + .' 0.0'."\n" + .' ]'], + ], + 'AvgLockTime' => [ + 'description' => '平均锁等待时间,单位为秒。', + 'type' => 'array', + 'items' => ['description' => '平均锁等待时间,单位为秒。', 'type' => 'number', 'format' => 'double', 'example' => '['."\n" + .' 1.051,'."\n" + .' 0.0,'."\n" + .' 0.3357,'."\n" + .' 0.755,'."\n" + .' 0.324,'."\n" + .' 0.814'."\n" + .' ]'], + ], + 'MaxLockTime' => [ + 'description' => '最大锁等待时间,单位为秒。', + 'type' => 'array', + 'items' => ['description' => '最大锁等待时间,单位为秒。', 'type' => 'number', 'format' => 'double', 'example' => '['."\n" + .' 1.051,'."\n" + .' 1.007,'."\n" + .' 0.755,'."\n" + .' 0.0,'."\n" + .' 0.05,'."\n" + .' 0.656'."\n" + .' ]'], + ], + 'RowsExamined' => [ + 'description' => '总扫描行数。'."\n" + .'> 目前支持该字段的数据库:云数据库RDS MySQL版、云数据库RDS PostgreSQL版、云原生数据库PolarDB MySQL版。', + 'type' => 'array', + 'items' => ['description' => '总扫描行数。'."\n" + .'> 目前支持该字段的数据库:云数据库RDS MySQL版、云数据库RDS PostgreSQL版、云原生数据库PolarDB MySQL版。', 'type' => 'integer', 'format' => 'int64', 'example' => '['."\n" + .' 256,'."\n" + .' 1,'."\n" + .' 512,'."\n" + .' 0,'."\n" + .' 1476678,'."\n" + .' 24430'."\n" + .' ]'], + ], + 'AvgRowsExamined' => [ + 'description' => '平均扫描行数。', + 'type' => 'array', + 'items' => ['description' => '平均扫描行数。', 'type' => 'number', 'format' => 'double', 'example' => '['."\n" + .' 256.0,'."\n" + .' 256.3333,'."\n" + .' 512.0,'."\n" + .' 370860.1111,'."\n" + .' 0.0,'."\n" + .' 1.0'."\n" + .' ]'], + ], + 'MaxRowsExamined' => [ + 'description' => '最大扫描行数。', + 'type' => 'array', + 'items' => ['description' => '最大扫描行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '['."\n" + .' 256,'."\n" + .' 1,'."\n" + .' 512,'."\n" + .' 0,'."\n" + .' 1476678,'."\n" + .' 24430'."\n" + .' ]'], + ], + 'RowsSent' => [ + 'description' => '返回行数。', + 'type' => 'array', + 'items' => ['description' => '返回行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '['."\n" + .' 384,'."\n" + .' 256,'."\n" + .' 0,'."\n" + .' 207030,'."\n" + .' 4,'."\n" + .' 256'."\n" + .' ]'], + ], + 'AvgRowsSent' => [ + 'description' => '平均返回行数。', + 'type' => 'array', + 'items' => ['description' => '平均返回行数。', 'type' => 'number', 'format' => 'double', 'example' => '['."\n" + .' 128.0,'."\n" + .' 0.0,'."\n" + .' 256.0,'."\n" + .' 25878.75,'."\n" + .' 192.0,'."\n" + .' 72.7778'."\n" + .' ]'], + ], + 'MaxRowsSent' => [ + 'description' => '最大返回行数。', + 'type' => 'array', + 'items' => ['description' => '最大返回行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '['."\n" + .' 256,'."\n" + .' 207023,'."\n" + .' 0,'."\n" + .' 128,'."\n" + .' 0,'."\n" + .' 0'."\n" + .' ]'], + ], + 'KeysExamined' => [ + 'description' => '索引扫描行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', + 'type' => 'array', + 'items' => ['description' => '索引扫描行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '['."\n" + .' 384,'."\n" + .' 256,'."\n" + .' 0,'."\n" + .' 207030,'."\n" + .' 4,'."\n" + .' 256'."\n" + .' ]'], + ], + 'AvgKeysExamined' => [ + 'description' => '平均索引扫描行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', + 'type' => 'array', + 'items' => ['description' => '平均索引扫描行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'number', 'format' => 'double', 'example' => '['."\n" + .' 128.0,'."\n" + .' 0.0,'."\n" + .' 256.0,'."\n" + .' 25878.75,'."\n" + .' 192.0,'."\n" + .' 72.7778'."\n" + .' ]'], + ], + 'MaxKeysExamined' => [ + 'description' => '最大索引扫描行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', + 'type' => 'array', + 'items' => ['description' => '最大索引扫描行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '['."\n" + .' 384,'."\n" + .' 256,'."\n" + .' 0,'."\n" + .' 207030,'."\n" + .' 4,'."\n" + .' 256'."\n" + .' ]'], + ], + 'DocExamined' => [ + 'description' => '扫描文档行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', + 'type' => 'array', + 'items' => ['description' => '扫描文档行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '['."\n" + .' 256,'."\n" + .' 207023,'."\n" + .' 0,'."\n" + .' 128,'."\n" + .' 0,'."\n" + .' 0'."\n" + .' ]'], + ], + 'AvgDocExamined' => [ + 'description' => '平均扫描文档行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', + 'type' => 'array', + 'items' => ['description' => '平均扫描文档行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'number', 'format' => 'double', 'example' => '['."\n" + .' 128.0,'."\n" + .' 0.0,'."\n" + .' 256.0,'."\n" + .' 25878.75,'."\n" + .' 192.0,'."\n" + .' 72.7778'."\n" + .' ]'], + ], + 'MaxDocExamined' => [ + 'description' => '最大扫描文档行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', + 'type' => 'array', + 'items' => ['description' => '最大扫描文档行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '['."\n" + .' 256,'."\n" + .' 207023,'."\n" + .' 0,'."\n" + .' 128,'."\n" + .' 0,'."\n" + .' 0'."\n" + .' ]'], + ], + 'ReturnNum' => [ + 'description' => '返回行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', + 'type' => 'array', + 'items' => ['description' => '返回行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '['."\n" + .' 256,'."\n" + .' 207023,'."\n" + .' 0,'."\n" + .' 128,'."\n" + .' 0,'."\n" + .' 0'."\n" + .' ]'], + ], + 'AvgReturnNum' => [ + 'description' => '平均返回行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', + 'type' => 'array', + 'items' => ['description' => '平均返回行数'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'number', 'format' => 'double', 'example' => '['."\n" + .' 128.0,'."\n" + .' 0.0,'."\n" + .' 256.0,'."\n" + .' 25878.75,'."\n" + .' 192.0,'."\n" + .' 72.7778'."\n" + .' ]'], + ], + 'MaxReturnNum' => [ + 'description' => '最大返回行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', + 'type' => 'array', + 'items' => ['description' => '最大返回行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '['."\n" + .' 256,'."\n" + .' 207023,'."\n" + .' 0,'."\n" + .' 128,'."\n" + .' 0,'."\n" + .' 0'."\n" + .' ]'], + ], + 'IOWrites' => [ + 'description' => 'I/O 写次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', + 'type' => 'array', + 'items' => ['description' => 'I/O 写次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '['."\n" + .' 256,'."\n" + .' 207023,'."\n" + .' 0,'."\n" + .' 128,'."\n" + .' 0,'."\n" + .' 0'."\n" + .' ]'], + ], + 'AvgIOWrites' => [ + 'description' => '平均 I/O 写次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', + 'type' => 'array', + 'items' => ['description' => '平均 I/O 写次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'number', 'format' => 'double', 'example' => '['."\n" + .' 384,'."\n" + .' 256,'."\n" + .' 0,'."\n" + .' 207030,'."\n" + .' 4,'."\n" + .' 256'."\n" + .' ]'], + ], + 'MaxIOWrites' => [ + 'description' => '最大 I/O 写次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', + 'type' => 'array', + 'items' => ['description' => '最大 I/O 写次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '['."\n" + .' 256,'."\n" + .' 1,'."\n" + .' 512,'."\n" + .' 0,'."\n" + .' 1476678,'."\n" + .' 24430'."\n" + .' ]'], + ], + 'LastRowsCountAffected' => [ + 'description' => '最后一条语句的影响行数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', + 'type' => 'array', + 'items' => ['description' => '最后一条语句的影响行数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '['."\n" + .' 256,'."\n" + .' 207023,'."\n" + .' 0,'."\n" + .' 128,'."\n" + .' 0,'."\n" + .' 0'."\n" + .' ]'], + ], + 'AvgLastRowsCountAffected' => [ + 'description' => '平均最后一条语句的影响行数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', + 'type' => 'array', + 'items' => ['description' => '平均最后一条语句的影响行数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'number', 'format' => 'double', 'example' => '['."\n" + .' 1.593,'."\n" + .' 2.306,'."\n" + .' 1.141,'."\n" + .' 0.0,'."\n" + .' 1.5127,'."\n" + .' 1.247'."\n" + .' ]'], + ], + 'MaxLastRowsCountAffected' => [ + 'description' => '最大最后一条语句的影响行数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', + 'type' => 'array', + 'items' => ['description' => '平均最后一条语句的影响行数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '['."\n" + .' 1,'."\n" + .' 1,'."\n" + .' 3,'."\n" + .' 1,'."\n" + .' 2,'."\n" + .' 3'."\n" + .' ]'], + ], + 'LogicalIOReads' => [ + 'description' => '逻辑读次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', + 'type' => 'array', + 'items' => ['description' => '逻辑读次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '['."\n" + .' 384,'."\n" + .' 256,'."\n" + .' 0,'."\n" + .' 207030,'."\n" + .' 4,'."\n" + .' 256'."\n" + .' ]'], + ], + 'AvgLogicalIOReads' => [ + 'description' => '平均逻辑读次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', + 'type' => 'array', + 'items' => ['description' => '平均逻辑读次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'number', 'format' => 'double', 'example' => '['."\n" + .' 1.593,'."\n" + .' 2.306,'."\n" + .' 1.141,'."\n" + .' 0.0,'."\n" + .' 1.5127,'."\n" + .' 1.247'."\n" + .' ]'], + ], + 'MaxLogicalIOReads' => [ + 'description' => '最大逻辑读次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', + 'type' => 'array', + 'items' => ['description' => '最大逻辑读次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '['."\n" + .' 124,'."\n" + .' 2,'."\n" + .' 24,'."\n" + .' 251,'."\n" + .' 191,'."\n" + .' 721'."\n" + .' ]'], + ], + 'PhysicalIOReads' => [ + 'description' => '物理读次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', + 'type' => 'array', + 'items' => ['description' => '物理读次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '['."\n" + .' 324,'."\n" + .' 22,'."\n" + .' 254,'."\n" + .' 251,'."\n" + .' 191,'."\n" + .' 721'."\n" + .' ]'], + ], + 'AvgPhysicalIOReads' => [ + 'description' => '平均物理读次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', + 'type' => 'array', + 'items' => ['description' => '平均物理读次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'number', 'format' => 'double', 'example' => '['."\n" + .' 128.0,'."\n" + .' 0.0,'."\n" + .' 256.0,'."\n" + .' 25878.75,'."\n" + .' 192.0,'."\n" + .' 72.7778'."\n" + .' ]'], + ], + 'MaxPhysicalIOReads' => [ + 'description' => '最大物理读次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', + 'type' => 'array', + 'items' => ['description' => '最大物理读次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '['."\n" + .' 314,'."\n" + .' 242,'."\n" + .' 114,'."\n" + .' 351,'."\n" + .' 191,'."\n" + .' 721'."\n" + .' ]'], + ], + 'RowsCountAffected' => [ + 'description' => '影响的行数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', + 'type' => 'array', + 'items' => ['description' => '影响的行数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '['."\n" + .' 34,'."\n" + .' 42,'."\n" + .' 14,'."\n" + .' 51,'."\n" + .' 91,'."\n" + .' 71'."\n" + .' ]'], + ], + 'AvgRowsCountAffected' => [ + 'description' => '平均影响的行数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', + 'type' => 'array', + 'items' => ['description' => '平均影响的行数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'number', 'format' => 'double', 'example' => '['."\n" + .' 1.593,'."\n" + .' 2.306,'."\n" + .' 1.141,'."\n" + .' 14.115,'."\n" + .' 0.0,'."\n" + .' 1.783,'."\n" + .' 0.0,'."\n" + .' 1.972'."\n" + .' ]'], + ], + 'MaxRowsCountAffected' => [ + 'description' => '最大影响的行数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', + 'type' => 'array', + 'items' => ['description' => '最大影响的行数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '['."\n" + .' 714,'."\n" + .' 442,'."\n" + .' 314,'."\n" + .' 151,'."\n" + .' 291,'."\n" + .' 521'."\n" + .' ]'], + ], + 'CPUTime' => [ + 'description' => 'CPU处理时长。单位:秒(s)。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', + 'type' => 'array', + 'items' => ['description' => 'CPU处理时长。单位:秒(s)。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'number', 'format' => 'double', 'example' => '['."\n" + .' 1.051,'."\n" + .' 1.007,'."\n" + .' 0.755,'."\n" + .' 0.0,'."\n" + .' 0.05,'."\n" + .' 0.656'."\n" + .' ]'], + ], + 'AvgCPUTime' => [ + 'description' => '平均CPU处理时长。单位:秒(s)。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', + 'type' => 'array', + 'items' => ['description' => '平均CPU处理时长。单位:秒(s)。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'number', 'format' => 'double', 'example' => '['."\n" + .' 2.306,'."\n" + .' 1.141,'."\n" + .' 0.0,'."\n" + .' 4.538,'."\n" + .' 1.247,'."\n" + .' 0.0'."\n" + .' ]'], + ], + 'MaxCPUTime' => [ + 'description' => '最大CPU处理时长。单位:秒(s)。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', + 'type' => 'array', + 'items' => ['description' => '最大CPU处理时长。单位:秒(s)。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'number', 'format' => 'double', 'example' => '['."\n" + .' 2.306,'."\n" + .' 1.141,'."\n" + .' 0.0,'."\n" + .' 4.538,'."\n" + .' 1.247,'."\n" + .' 0.0'."\n" + .' ]'], + ], + 'Rows' => [ + 'description' => 'PolarDB-X 2.0数据库实例计算节点总更新或返回的行数。'."\n" + ."\n" + .'> 仅云数据库 PolarDB-X 2.0 版实例支持。', + 'type' => 'array', + 'items' => ['description' => 'PolarDB-X 2.0数据库实例计算节点总更新或返回的行数。'."\n" + ."\n" + .'> 仅云数据库 PolarDB-X 2.0 版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '[]'], + ], + 'AvgRows' => [ + 'description' => '平均行数。', + 'type' => 'array', + 'items' => ['description' => '平均行数。', 'type' => 'number', 'format' => 'double'], + ], + 'MaxRows' => [ + 'description' => '最大行数。', + 'type' => 'array', + 'items' => ['description' => '最大行数。', 'type' => 'integer', 'format' => 'int64'], + ], + 'Frows' => [ + 'description' => 'PolarDB-X 2.0计算节点(CN)的拉取行数。'."\n" + ."\n" + .'> 仅云数据库 PolarDB-X 2.0 版实例支持。', + 'type' => 'array', + 'items' => ['description' => 'PolarDB-X 2.0计算节点(CN)的拉取行数。'."\n" + ."\n" + .'> 仅云数据库 PolarDB-X 2.0 版实例支持。', 'type' => 'integer', 'format' => 'int64'], + ], + 'AvgFrows' => [ + 'description' => '平均拉取行数。', + 'type' => 'array', + 'items' => ['description' => '平均拉取行数。', 'type' => 'number', 'format' => 'double'], + ], + 'MaxFrows' => [ + 'description' => '最大拉取行数。', + 'type' => 'array', + 'items' => ['description' => '最大拉取行数。', 'type' => 'integer', 'format' => 'int64'], + ], + 'Scnt' => [ + 'description' => 'PolarDB-X 2.0计算节点(CN)的DN请求数。'."\n" + ."\n" + .'> 仅云数据库 PolarDB-X 2.0 版实例支持。', + 'type' => 'array', + 'items' => ['description' => 'PolarDB-X 2.0计算节点(CN)的DN请求数。'."\n" + ."\n" + .'> 仅云数据库 PolarDB-X 2.0 版实例支持。', 'type' => 'integer', 'format' => 'int64'], + ], + 'AvgScnt' => [ + 'description' => '平均请求数。', + 'type' => 'array', + 'items' => ['description' => '平均请求数。', 'type' => 'number', 'format' => 'double'], + ], + 'MaxScnt' => [ + 'description' => '最大请求数。', + 'type' => 'array', + 'items' => ['description' => '最大请求数。', 'type' => 'integer', 'format' => 'int64'], + ], + 'TotalCount' => ['description' => '慢日志总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '5'], ], ], - 'LargeKeyMsg' => [ - 'description' => '获取按内存占用统计的大Key失败的原因。', - 'type' => 'string', - 'example' => 'current version doesn\'t support', - ], + 'ErrorCode' => ['title' => '错误码', 'description' => '错误码。', 'type' => 'integer', 'format' => 'int32', 'example' => '10910'], + 'Message' => ['title' => '错误信息', 'description' => '错误信息。', 'type' => 'string', 'example' => 'Successful'], + 'Timestamp' => ['title' => '请求时间', 'description' => '请求时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1645668213000'], ], ], - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Data\\": {\\n \\"HotKeys\\": {\\n \\"HotKey\\": [\\n {\\n \\"Key\\": \\"abc:def:eng\\",\\n \\"Db\\": 0,\\n \\"Hot\\": \\"5500~6000\\",\\n \\"KeyType\\": \\"zset\\",\\n \\"Lfu\\": 253,\\n \\"NodeId\\": \\"r-x****-db-0\\",\\n \\"Size\\": 2\\n }\\n ]\\n },\\n \\"BigKeys\\": {\\n \\"BigKey\\": [\\n {\\n \\"Db\\": 0,\\n \\"Key\\": \\"abc:def:eng\\",\\n \\"KeyType\\": \\"zset\\",\\n \\"Size\\": 2,\\n \\"NodeId\\": \\"r-x****-db-0\\"\\n }\\n ]\\n },\\n \\"HotKeyMsg\\": \\"current version doesn\'t support\\",\\n \\"BigKeyMsg\\": \\"current version doesn\'t support\\",\\n \\"HighTrafficKeyMsg\\": \\"current version doesn\'t support\\",\\n \\"HighTrafficKeys\\": {\\n \\"HighTrafficKey\\": [\\n {\\n \\"Key\\": \\"abc:def:eng\\",\\n \\"Db\\": 0,\\n \\"Hot\\": \\"1988\\",\\n \\"KeyType\\": \\"string\\",\\n \\"NodeId\\": \\"r-x****-db-0\\\\n\\",\\n \\"inBytes\\": 85767,\\n \\"outBytes\\": 1054684,\\n \\"Size\\": 2\\n }\\n ]\\n },\\n \\"LargeKeys\\": {\\n \\"LargeKey\\": [\\n {\\n \\"Db\\": \\"0\\",\\n \\"Key\\": \\"abc:def:eng\\",\\n \\"KeyType\\": \\"string\\",\\n \\"DataSize\\": \\"33554439\\",\\n \\"NodeId\\": \\"r-x****-db-0\\"\\n }\\n ]\\n },\\n \\"LargeKeyMsg\\": \\"current version doesn\'t support\\"\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeHotBigKeysResponse>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Data>\\n <HotKeys>\\n <Key>abc:def:eng</Key>\\n <Db>0</Db>\\n <Hot>5500~6000</Hot>\\n <KeyType>zset</KeyType>\\n <Lfu>253</Lfu>\\n <NodeId>r-x****-db-0</NodeId>\\n </HotKeys>\\n <BigKeys>\\n <Db>0</Db>\\n <Key>abc:def:eng</Key>\\n <KeyType>zset</KeyType>\\n <Size>2</Size>\\n <NodeId>r-x****-db-0</NodeId>\\n </BigKeys>\\n <HotKeyMsg>current version doesn\'t support</HotKeyMsg>\\n <BigKeyMsg>current version doesn\'t support</BigKeyMsg>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</DescribeHotBigKeysResponse>","errorExample":""}]', - 'title' => '实时获取当前热Key和大Key', - 'description' => '对数据结构为List、Hash、Set、Zset的Key,按照Key中元素的数量排序并展示排名前3的Key,记录为大Key;当某个Key的QPS大于3,000时会被记录为热点Key。'."\n" + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"RequestKey\\": \\"无\\",\\n \\"ResultId\\": \\"async__20ee808e72257f16a4fe024057ca****\\",\\n \\"State\\": \\"SUCCESS\\",\\n \\"IsFinish\\": true,\\n \\"Data\\": {\\n \\"Total\\": 1,\\n \\"Count\\": [\\n 100\\n ],\\n \\"Ts\\": [\\n 0\\n ],\\n \\"TsEnd\\": [\\n 0\\n ],\\n \\"Item\\": [\\n {\\n \\"NodeId\\": \\"r-bp1hi0wg57s3n0i3n8-db-0\\",\\n \\"Count\\": [\\n 100\\n ],\\n \\"InsItems\\": [\\n {\\n \\"InsId\\": \\"2492\\",\\n \\"InsRole\\": \\"userAdmin\\",\\n \\"Count\\": [\\n 1\\n ],\\n \\"TotalCount\\": 10\\n }\\n ],\\n \\"TotalCount\\": 20,\\n \\"InsRole\\": \\"\\"\\n }\\n ],\\n \\"Rt\\": [\\n 0\\n ],\\n \\"AvgRt\\": [\\n 0\\n ],\\n \\"MaxRt\\": [\\n 0\\n ],\\n \\"LockTime\\": [\\n 0\\n ],\\n \\"AvgLockTime\\": [\\n 0\\n ],\\n \\"MaxLockTime\\": [\\n 0\\n ],\\n \\"RowsExamined\\": [\\n 0\\n ],\\n \\"AvgRowsExamined\\": [\\n 0\\n ],\\n \\"MaxRowsExamined\\": [\\n 0\\n ],\\n \\"RowsSent\\": [\\n 0\\n ],\\n \\"AvgRowsSent\\": [\\n 0\\n ],\\n \\"MaxRowsSent\\": [\\n 0\\n ],\\n \\"KeysExamined\\": [\\n 0\\n ],\\n \\"AvgKeysExamined\\": [\\n 0\\n ],\\n \\"MaxKeysExamined\\": [\\n 0\\n ],\\n \\"DocExamined\\": [\\n 0\\n ],\\n \\"AvgDocExamined\\": [\\n 0\\n ],\\n \\"MaxDocExamined\\": [\\n 0\\n ],\\n \\"ReturnNum\\": [\\n 0\\n ],\\n \\"AvgReturnNum\\": [\\n 0\\n ],\\n \\"MaxReturnNum\\": [\\n 0\\n ],\\n \\"IOWrites\\": [\\n 0\\n ],\\n \\"AvgIOWrites\\": [\\n 0\\n ],\\n \\"MaxIOWrites\\": [\\n 0\\n ],\\n \\"LastRowsCountAffected\\": [\\n 0\\n ],\\n \\"AvgLastRowsCountAffected\\": [\\n 0\\n ],\\n \\"MaxLastRowsCountAffected\\": [\\n 0\\n ],\\n \\"LogicalIOReads\\": [\\n 0\\n ],\\n \\"AvgLogicalIOReads\\": [\\n 0\\n ],\\n \\"MaxLogicalIOReads\\": [\\n 0\\n ],\\n \\"PhysicalIOReads\\": [\\n 0\\n ],\\n \\"AvgPhysicalIOReads\\": [\\n 0\\n ],\\n \\"MaxPhysicalIOReads\\": [\\n 0\\n ],\\n \\"RowsCountAffected\\": [\\n 0\\n ],\\n \\"AvgRowsCountAffected\\": [\\n 0\\n ],\\n \\"MaxRowsCountAffected\\": [\\n 0\\n ],\\n \\"CPUTime\\": [\\n 0\\n ],\\n \\"AvgCPUTime\\": [\\n 0\\n ],\\n \\"MaxCPUTime\\": [\\n 0\\n ],\\n \\"Rows\\": [\\n 0\\n ],\\n \\"AvgRows\\": [\\n 0\\n ],\\n \\"MaxRows\\": [\\n 0\\n ],\\n \\"Frows\\": [\\n 0\\n ],\\n \\"AvgFrows\\": [\\n 0\\n ],\\n \\"MaxFrows\\": [\\n 0\\n ],\\n \\"Scnt\\": [\\n 0\\n ],\\n \\"AvgScnt\\": [\\n 0\\n ],\\n \\"MaxScnt\\": [\\n 0\\n ],\\n \\"TotalCount\\": 5\\n },\\n \\"ErrorCode\\": 10910,\\n \\"Message\\": \\"Successful\\",\\n \\"Timestamp\\": 1645668213000\\n }\\n}","type":"json"}]', + 'title' => '异步获取实例慢日志趋势数据', + 'description' => '**请确保在使用该接口前,已充分了解DAS产品的[收费方式和价格](~~156195~~)。**'."\n" ."\n" - .'- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于4.3.3,建议使用最新版本。'."\n" - .'- 使用DAS的SDK的版本为1.0.2或以上。'."\n" + .'使用该接口需满足以下前提条件:'."\n" + ."\n" + .'- 请求实例已开通**DAS企业版**,或者智能运维服务(暂未上线)。'."\n" + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 本接口只适用于如下Redis实例:'."\n" - .' - 实例为Redis开源版或Tair(企业版)内存型。'."\n" - .' - 实例的小版本为最新。', - ], - 'DescribeTopHotKeys' => [ - 'summary' => '调用DescribeTopHotKeys接口,获取一段时间内排名前100的热Key。', - 'methods' => [ - 'get', - 'post', + ."\n" + .'该接口异步调用后不会立即返回完整结果,当返回数据中 isFinish 取值为 false 时,请等待 1s 后重新发起调用,直到 isFinish 取值为 true 时,返回完整结果。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeSlowLogHistogramAsync'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeSlowLogHistogramAsync', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeSlowLogRecords' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhdmROFBLE', - ], + 'abilityTreeCode' => '236528', + 'abilityTreeNodes' => ['FEATUREhdmR88NLD'], + 'autoTest' => true, ], 'parameters' => [ [ - 'name' => 'ConsoleContext', - 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], - ], - [ 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'Redis实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'r-bp18ff4a195d****', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例id。', 'type' => 'string', 'required' => true, 'example' => 'rm-8vbk4xz99su8****'], ], [ 'name' => 'NodeId', - 'in' => 'query', + 'in' => 'formData', + 'schema' => ['description' => '节点id。', 'type' => 'string', 'required' => false, 'example' => 'pi-d9j9fe7wq7t9i****'."\n"], + ], + [ + 'name' => 'StartTime', + 'in' => 'formData', + 'schema' => ['description' => '起始时间。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1596177993000'], + ], + [ + 'name' => 'EndTime', + 'in' => 'formData', + 'schema' => ['description' => '结束时间。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1634972640000'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'formData', + 'schema' => ['description' => '页码,从1开始。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'formData', + 'schema' => ['description' => '页大小。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], + ], + [ + 'name' => 'Filters', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'Redis实例的数据分片ID。', - 'type' => 'string', + 'description' => '筛选条件列表。', + 'type' => 'array', + 'items' => [ + 'description' => '筛选条件列表。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '过滤参数', 'description' => '过滤参数。'."\n" + ."\n" + .'> 详情请参见补充说明。', 'type' => 'string', 'required' => false, 'example' => 'None'], + 'Value' => ['description' => '过滤参数取值。', 'type' => 'string', 'required' => false, 'example' => 'None'], + ], + 'required' => false, + ], 'required' => false, - 'example' => 'r-****-db-0', + 'maxItems' => 100, ], ], [ - 'name' => 'StartTime', + 'name' => 'OrderBy', 'in' => 'query', - 'schema' => [ - 'description' => '查询任务开始时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'string', - 'required' => true, - 'example' => '1596177993000', - ], + 'schema' => ['description' => '- **MySQL** '."\n" + .' - QueryTimeSeconds:查询耗时(秒)。'."\n" + .' - LockTimeSeconds:锁时间(秒)。'."\n" + .' - RowsSent:配置行。'."\n" + .' - RowsExamined:检查行。'."\n" + .'- **Redis**'."\n" + .' - QueryTime:耗时。'."\n" + .' - Timestamp:执行结束时间。'."\n" + .'- **MongoDB**'."\n" + .' - QueryTime:耗时。'."\n" + .' - Timestamp:执行结束时间。'."\n" + .' - KeysExamined:已检查密匙。'."\n" + .' - DocExamined:已检查文件。'."\n" + .' - ReturnNum:返回行。'."\n" + ."\n" + .'<notice>RDS PostgreSQL、PolarDB PostgreSQL和SQLServer不支持排序。</notice>', 'type' => 'string', 'required' => false, 'example' => 'QueryTimeSeconds'], ], [ - 'name' => 'EndTime', + 'name' => 'Asc', 'in' => 'query', - 'schema' => [ - 'description' => '查询任务结束时间,格式为Unix时间戳,单位为毫秒。'."\n" - .'> - 查询任务结束时间需晚于查询任务开始时间。'."\n" - .'> - 仅支持最大查询时间范围为4天内的数据。'."\n" - .'> - **StartTime**和**EndTime**最大查询间隔为3小时内。', - 'type' => 'string', - 'required' => true, - 'example' => '1596177993001', - ], + 'schema' => ['description' => '是否升序排序,默认为**true**。'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '请求返回消息。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A1C79EE2-D04D-571B-8C60-961FAF8E****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + ."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], 'Data' => [ + 'title' => 'DBLogRecords<SlowLogItem>', + 'description' => 'DBLogRecords<SlowLogItem>', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'HotKey' => [ - 'description' => '热Key详细信息列表。', + 'DbInstanceName' => ['description' => '实例ID。', 'type' => 'string', 'example' => 'rm-bp157g54vy772****'], + 'NodeId' => ['description' => '节点id。', 'type' => 'string', 'example' => 'node123'], + 'ItemsNumbers' => ['description' => '当前页查询日志列表内的Item数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'StartTime' => ['description' => '起始时间。', 'type' => 'string', 'example' => '1672531200000'], + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '1672617600000'], + 'DbInstanceId' => ['description' => '实例数字ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'TotalRecords' => ['description' => '总记录数。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'PageNumbers' => ['description' => '分页查询的页码,从1开始,默认为1。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'MaxRecordsPerPage' => ['description' => '分页查询每页最大记录数。取值范围:5~100。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'Logs' => [ + 'description' => '返回数据。', 'type' => 'array', 'items' => [ - 'description' => '热key详细信息列表。', + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'Db' => [ - 'description' => 'Key所在的DB。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Key' => [ - 'description' => '具体的Key。', - 'type' => 'string', - 'example' => 'abc:def:eng', - ], - 'Hot' => [ - 'description' => 'Key的访问频次,即Key的每秒访问数。', - 'type' => 'string', - 'example' => '5500~6000', - ], - 'KeyType' => [ - 'description' => 'Key类型。', - 'type' => 'string', - 'example' => 'zset', - ], - 'Lfu' => [ - 'description' => 'LFU算法的统计值。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '253', - ], - 'NodeId' => [ - 'description' => 'Redis实例的数据分片ID。', - 'type' => 'string', - 'example' => 'r-x****-db-0', - ], - 'InBytes' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'OutBytes' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'Category' => [ - 'type' => 'string', + 'SqlId' => ['description' => 'SQL模板ID', 'type' => 'string', 'example' => 'sqlId'], + 'Scheme' => ['description' => '数据Schema', 'type' => 'string', 'example' => 'HTTPS'], + 'SubInstanceId' => ['description' => '子实例ID。', 'type' => 'string', 'example' => 'r-8vb219d10038****'], + 'DbInstanceName' => ['description' => '实例ID。', 'type' => 'string', 'example' => 'rm-2zebg30mk056g****'], + 'InsName' => ['description' => '实例名字', 'type' => 'string', 'example' => 'test'], + 'AccountName' => ['description' => '用户。', 'type' => 'string', 'example' => 'user1'], + 'HostAddress' => ['description' => '来源。', 'type' => 'string', 'example' => '192.168.1.1'], + 'QueryStartTime' => ['description' => '查询开始的时间。格式:yyyy-MM-dd hh:mm:ss(UTC时间)。', 'type' => 'string', 'example' => '2024-04-01 11:00:00'], + 'SQLText' => ['description' => 'sql文本。', 'type' => 'string', 'example' => 'SELECT * FROM my_table WHERE ROWNUM <= 10'], + 'Psql' => ['description' => 'SQL模板。', 'type' => 'string', 'example' => 'SELECT * FROM my_table WHERE ROWNUM <= 10'."\n"], + 'DBName' => ['description' => '数据库名称。', 'type' => 'string', 'example' => 'test'], + 'QueryTime' => ['description' => '查询耗时。', 'type' => 'integer', 'format' => 'int64', 'example' => '121'], + 'ReturnItemNumbers' => ['description' => '返回项目编号。', 'type' => 'string', 'example' => 'test'], + 'DocsExamined' => ['description' => 'MongoDB该操作执行时扫描的文档数。', 'type' => 'string', 'example' => '100'], + 'KeysExamined' => ['description' => 'MongoDB 索引扫描行数。', 'type' => 'string', 'example' => 'valueA'], + 'TableName' => ['description' => '表名。', 'type' => 'string', 'example' => 'tableNameExample'], + 'LockTime' => ['description' => '锁等待时间。', 'type' => 'number', 'format' => 'double', 'example' => '100'], + 'RowsExamined' => ['description' => '扫描行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'RowsSent' => ['description' => '返回行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'ThreadId' => ['title' => '仅 PolarDB MySQL 有thread_id', 'description' => '线程ID。', 'type' => 'string', 'example' => '57472578'], + 'Timestamp' => ['description' => '时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1747118812'], + 'SqlTag' => [ + 'description' => '标签。', + 'type' => 'object', + 'properties' => [ + 'SqlId' => ['description' => 'sqlid。', 'type' => 'string', 'example' => '8ad7069f236bcdaaa9b3ae4b6299****'], + 'Tags' => ['description' => '逗号分隔的多个tag。', 'type' => 'string', 'example' => 'DAS_IMPORTANT,DAS_IN_PLAN'], + 'Comments' => ['description' => '备注信息。', 'type' => 'string', 'example' => 'test'], + ], ], + 'LockTimeSeconds' => ['description' => '锁等待时间,单位为秒。', 'type' => 'number', 'format' => 'double', 'example' => '100'], + 'QueryTimeSeconds' => ['description' => '查询耗时,单位秒。', 'type' => 'number', 'format' => 'double', 'example' => '100'], + 'SqlType' => ['description' => '选择SQL的类型。'."\n" + .'- **SELECT**'."\n" + .'- **UPDATE**'."\n" + .'- **DELETE**', 'type' => 'string', 'example' => 'SELECT'], + 'CPUTime' => ['description' => 'CPU 查询时间。'."\n" + ."\n" + .'> 仅云数据库 RDS SQL Server 版实例支持。', 'type' => 'number', 'format' => 'double', 'example' => '50'], + 'IOWrites' => ['description' => 'I/O 写次数。'."\n" + ."\n" + .'> 仅云数据库 RDS SQL Server 版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'LastRowsCountAffected' => ['description' => '最后一条语句的影响行数。'."\n" + ."\n" + .'> 仅云数据库 RDS SQL Server 版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'LogicalIOReads' => ['description' => '逻辑读次数。'."\n" + ."\n" + .'> 仅云数据库 RDS SQL Server 版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'PhysicalIOReads' => ['description' => '物理读次数。'."\n" + ."\n" + .'> 仅云数据库 RDS SQL Server 版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'RowsCountAffected' => ['description' => '影响的行数。'."\n" + ."\n" + .'> 仅云数据库 RDS SQL Server 版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'Command' => ['description' => '慢查询语句。'."\n" + .'>仅云数据库 Tair(兼容 Redis)实例支持。', 'type' => 'string', 'example' => 'SELECT'], + 'Namespace' => ['description' => '命名空间。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'string', 'example' => 'pro-test'], + 'QueryId' => ['description' => 'Query ID。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'string', 'example' => 'sq-1pzcdMwRb'], + 'ReturnNum' => ['description' => '返回行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'string', 'example' => '20'], + 'ApplicationName' => ['description' => '应用名。'."\n" + ."\n" + .'> 仅云数据库 RDS SQL Server 版实例支持。', 'type' => 'string', 'example' => 'MyApp'], + 'CPUTimeSeconds' => ['description' => 'CPU 查询时间,单位秒。'."\n" + ."\n" + .'> 仅云数据库 RDS SQL Server 版实例支持。', 'type' => 'number', 'format' => 'double', 'example' => '100'], + 'Rows' => ['description' => 'PolarDB-X 2.0数据库实例计算节点总更新或返回的行数。'."\n" + ."\n" + .'> 仅云数据库 PolarDB-X 2.0 版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '20'], + 'Frows' => ['description' => 'PolarDB-X 2.0计算节点(CN)的拉取行数。'."\n" + ."\n" + .'> 仅云数据库 PolarDB-X 2.0 版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'Scnt' => ['description' => 'PolarDB-X 2.0计算节点(CN)的DN请求数。'."\n" + ."\n" + .'> 仅云数据库 PolarDB-X 2.0 版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'TraceId' => ['description' => 'PolarDB-X 2.0的跟踪ID,即SQL在数据节点的执行ID。'."\n" + ."\n" + .'> 仅云数据库 PolarDB-X 2.0 版实例支持。', 'type' => 'string', 'example' => '074ce334-5247-40b9-b0c1-158aea5d****'], + 'TemplateId' => ['description' => 'PolarDB-X 2.0 模板ID。'."\n" + ."\n" + .'> 仅云数据库 PolarDB-X 2.0 版实例支持。', 'type' => 'string', 'example' => '6a63b6ac4572abfaef7d1163f684****'], + 'NodeId' => ['type' => 'string'], + 'Cmd' => ['type' => 'string'], + 'Rt' => ['type' => 'integer', 'format' => 'int64'], + 'RequestSize' => ['type' => 'integer', 'format' => 'int64'], + 'ResponseSize' => ['type' => 'integer', 'format' => 'int64'], + 'ClientIp' => ['type' => 'string'], + 'DbId' => ['type' => 'string'], + 'OriginTime' => ['type' => 'string'], + 'OpType' => ['type' => 'string'], + 'Fail' => ['type' => 'string'], + 'Params' => ['type' => 'string'], + 'Reason' => ['type' => 'string'], + 'ReqId' => ['type' => 'string'], + 'ExtText' => ['type' => 'string'], ], ], ], ], ], - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Data\\": {\\n \\"HotKey\\": [\\n {\\n \\"Db\\": 0,\\n \\"Key\\": \\"abc:def:eng\\",\\n \\"Hot\\": \\"5500~6000\\",\\n \\"KeyType\\": \\"zset\\",\\n \\"Lfu\\": 253,\\n \\"NodeId\\": \\"r-x****-db-0\\",\\n \\"InBytes\\": 0,\\n \\"OutBytes\\": 0,\\n \\"Category\\": \\"\\"\\n }\\n ]\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeTopHotKeysResponse>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Data>\\n <Db>0</Db>\\n <Key>abc:def:eng</Key>\\n <Hot>5500~6000</Hot>\\n <KeyType>zset</KeyType>\\n <Lfu>253</Lfu>\\n <NodeId>r-x****-db-0</NodeId>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</DescribeTopHotKeysResponse>","errorExample":""}]', - 'title' => '获取排名前100的热Key', - 'description' => '当某个Key的QPS大于3,000时会被记录为热点Key。'."\n" - ."\n" - .'- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于4.3.3,建议使用最新版本。'."\n" - .'- 使用DAS的SDK的版本为1.0.2或以上。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 本接口只适用于如下Redis实例:'."\n" - .' - 实例为Redis开源版或Tair(企业版)内存型。'."\n" - .' - 实例的小版本为最新。', - ], - 'DescribeTopBigKeys' => [ - 'summary' => '调用DescribeTopBigKeys接口,获取一段时间内排名前100的大Key。', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'schemes' => [ - 'http', - 'https', + 'title' => '慢日志记录查询', + 'summary' => '本接口用于查询数据库实例的慢日志记录,支持按多种条件过滤和排序。', + 'description' => '- `InstanceId` 为实例ID,必填参数。'."\n" + .'- `StartTime` 和 `EndTime` 为查询的时间范围,必填参数。'."\n" + .'- 可以通过设置 `PageNumber` 和 `PageSize` 来分页获取结果。'."\n" + .'- 支持通过 `OrderBy` 参数对结果进行排序,具体可排序字段请参考文档。'."\n" + .'- 使用 `Filters` 参数可以进一步细化查询条件,如按主机地址、SQL ID等过滤。'."\n" + .'<notice>某些数据库类型(如pg和polarPG)不支持特定的排序方式,请根据实际情况选择合适的参数。</notice>', + 'requestParamsDescription' => '**Key**支持的参数和取值:'."\n" + .'- **RDS MySQL、PolarDB MySQL、RDS PostgreSQL、PolarDB PostgreSQL版**'."\n" + .' - hostAddress:来源,多个使用逗号分隔。'."\n" + .' - sqlId:SqlID,多个使用逗号分隔。'."\n" + .' - user:用户,多个使用逗号分隔。'."\n" + .' - dbName:数据库名称,多个使用逗号分隔。'."\n" + .' - tags:标签,多个使用逗号分隔。'."\n" + .'- **MongoDB**'."\n" + .' - hostInsId:角色ID,多个使用逗号分隔。'."\n" + .' - insRole:实例角色,多个使用逗号分隔。'."\n" + .' - opType:操作类型,多个使用逗号分隔。'."\n" + .' - namespace:命名空间,多个使用逗号分隔。'."\n" + .' - nodeType:组件类型,多个使用逗号分隔。'."\n" + .' - queryId:查询ID,多个使用逗号分隔。'."\n" + .'- **云数据库Tair(兼容redis)**'."\n" + .' - hostAddress:来源。'."\n" + .' - user:用户。'."\n" + .' - dbName:数据库。'."\n" + .' - nodeType:节点类型。'."\n" + .'- **RDS SQL Server**'."\n" + .' - hostAddress:来源,多个使用逗号分隔。'."\n" + .' - sqlId:SqlID,多个使用逗号分隔。'."\n" + .' - user:用户,多个使用逗号分隔。'."\n" + .' - dbName:数据库,多个使用逗号分隔。'."\n" + .' - tags:标签,多个使用逗号分隔。'."\n" + .'- **PolarDB-X**'."\n" + .' - traceId:实例的跟踪 ID。'."\n" + .' - role:节点角色,取值CN或DN(计算节点/存储节点),必传。'."\n" + .' - hostAddress:来源,多个使用逗号分隔。'."\n" + .' - sqlId:SqlID,多个使用逗号分隔。'."\n" + .' - user:user,多个使用逗号分隔。'."\n" + .' - dbName:数据库,多个使用逗号分隔。'."\n" + .' - tags:标签,多个使用逗号分隔。'."\n" + .'> - SQL引擎支持根据sqlId查询数据,且sqlId支持逗号分隔传入多个,最多20个。'."\n" + .'> - MongoDB支持根据queryId查询数据,且queryId支持逗号分隔传入多个,最多20个。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeSlowLogRecords'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeSlowLogRecords', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"A1C79EE2-D04D-571B-8C60-961FAF8E****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"DbInstanceName\\": \\"rm-bp157g54vy772****\\",\\n \\"NodeId\\": \\"node123\\",\\n \\"ItemsNumbers\\": 10,\\n \\"StartTime\\": \\"1672531200000\\",\\n \\"EndTime\\": \\"1672617600000\\",\\n \\"DbInstanceId\\": 100,\\n \\"TotalRecords\\": 100,\\n \\"PageNumbers\\": 1,\\n \\"MaxRecordsPerPage\\": 20,\\n \\"Logs\\": [\\n {\\n \\"SqlId\\": \\"sqlId\\",\\n \\"Scheme\\": \\"HTTPS\\",\\n \\"SubInstanceId\\": \\"r-8vb219d10038****\\",\\n \\"DbInstanceName\\": \\"rm-2zebg30mk056g****\\",\\n \\"InsName\\": \\"test\\",\\n \\"AccountName\\": \\"user1\\",\\n \\"HostAddress\\": \\"192.168.1.1\\",\\n \\"QueryStartTime\\": \\"2024-04-01 11:00:00\\",\\n \\"SQLText\\": \\"SELECT * FROM my_table WHERE ROWNUM <= 10\\",\\n \\"Psql\\": \\"SELECT * FROM my_table WHERE ROWNUM <= 10\\\\n\\",\\n \\"DBName\\": \\"test\\",\\n \\"QueryTime\\": 121,\\n \\"ReturnItemNumbers\\": \\"test\\",\\n \\"DocsExamined\\": \\"100\\",\\n \\"KeysExamined\\": \\"valueA\\",\\n \\"TableName\\": \\"tableNameExample\\",\\n \\"LockTime\\": 100,\\n \\"RowsExamined\\": 100,\\n \\"RowsSent\\": 10,\\n \\"ThreadId\\": \\"57472578\\",\\n \\"Timestamp\\": 1747118812,\\n \\"SqlTag\\": {\\n \\"SqlId\\": \\"8ad7069f236bcdaaa9b3ae4b6299****\\",\\n \\"Tags\\": \\"DAS_IMPORTANT,DAS_IN_PLAN\\",\\n \\"Comments\\": \\"test\\"\\n },\\n \\"LockTimeSeconds\\": 100,\\n \\"QueryTimeSeconds\\": 100,\\n \\"SqlType\\": \\"SELECT\\",\\n \\"CPUTime\\": 50,\\n \\"IOWrites\\": 1,\\n \\"LastRowsCountAffected\\": 10,\\n \\"LogicalIOReads\\": 1,\\n \\"PhysicalIOReads\\": 1,\\n \\"RowsCountAffected\\": 10,\\n \\"Command\\": \\"SELECT\\",\\n \\"Namespace\\": \\"pro-test\\",\\n \\"QueryId\\": \\"sq-1pzcdMwRb\\",\\n \\"ReturnNum\\": \\"20\\",\\n \\"ApplicationName\\": \\"MyApp\\",\\n \\"CPUTimeSeconds\\": 100,\\n \\"Rows\\": 20,\\n \\"Frows\\": 10,\\n \\"Scnt\\": 10,\\n \\"TraceId\\": \\"074ce334-5247-40b9-b0c1-158aea5d****\\",\\n \\"TemplateId\\": \\"6a63b6ac4572abfaef7d1163f684****\\",\\n \\"NodeId\\": \\"\\",\\n \\"Cmd\\": \\"\\",\\n \\"Rt\\": 0,\\n \\"RequestSize\\": 0,\\n \\"ResponseSize\\": 0,\\n \\"ClientIp\\": \\"\\",\\n \\"DbId\\": \\"\\",\\n \\"OriginTime\\": \\"\\",\\n \\"OpType\\": \\"\\",\\n \\"Fail\\": \\"\\",\\n \\"Params\\": \\"\\",\\n \\"Reason\\": \\"\\",\\n \\"ReqId\\": \\"\\",\\n \\"ExtText\\": \\"\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'DescribeSlowLogStatistic' => [ + 'summary' => '慢日志统计信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '236526', + 'abilityTreeNodes' => ['FEATUREhdmR88NLD'], ], 'parameters' => [ [ - 'name' => 'ConsoleContext', - 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], - ], - [ 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'Redis实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'r-bp18ff4a195d****', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze1jdv45i7l6****'], ], [ 'name' => 'NodeId', - 'in' => 'query', + 'in' => 'formData', + 'schema' => ['description' => '节点ID。'."\n" + ."\n" + .'- 对于RDS MySQL和PolarDB MySQL版,该参数仅适用于集群版实例。若不传该参数,默认查询主节点日志明细。'."\n" + .'- 对于PolarDB-X 2.0,该参数传入**polarx_cn**(计算节点)或**polarx_dn**(数据节点)。', 'type' => 'string', 'required' => false, 'example' => 'r-x****-db-0'], + ], + [ + 'name' => 'Type', + 'in' => 'formData', 'schema' => [ - 'description' => 'Redis实例的数据分片ID。', + 'description' => '任务类型:'."\n" + ."\n" + .'SQL引擎特有:'."\n" + ."\n" + .'**SlowLogRequestOrigin**:通过来源IP聚合日志。'."\n" + ."\n" + .'**SlowLogRequestUser**:通过来源USER聚合日志。'."\n" + ."\n" + .'**SQL**:通过SQLID聚合日志。'."\n" + ."\n\n" + .'MongoDB引擎特有:'."\n" + ."\n" + .'**SlowLogRequestOrigin**:通过来源IP聚合日志。'."\n" + ."\n" + .'**SlowLogRequestUser**:通过来源USER聚合日志。'."\n" + ."\n" + .'**SQL**:通过Query ID聚合日志。'."\n" + ."\n" + .'**SlowLogRequestOpType**:通过操作类型聚合日志。'."\n" + ."\n" + .'**SlowLogRequestNamespace**:通过namespace聚合日志。'."\n" + ."\n" + .'Redis引擎特有:'."\n" + ."\n" + .'**SlowLogRequestNodeId**:通过nodeId聚合日志。'."\n" + ."\n" + .'**SlowLogRequestHostInsId**:通过HostInsId聚合日志。', 'type' => 'string', 'required' => false, - 'example' => 'r-x****-db-0', + 'enumValueTitles' => ['SlowLogRequestOrigin' => 'SlowLogRequestOrigin', 'OriginHost' => 'OriginHost', 'SlowLogRequestUser' => 'SlowLogRequestUser', 'SQL' => 'SQL'], + 'example' => 'SQL', ], ], [ + 'name' => 'TemplateId', + 'in' => 'formData', + 'schema' => ['description' => '模板ID。', 'type' => 'string', 'required' => false, 'example' => '04ea3310df40c3fa8a6b4854db49f79a'], + ], + [ 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '查询任务开始时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'string', - 'required' => true, - 'example' => '1596177993000', - ], + 'in' => 'formData', + 'schema' => ['description' => '查询任务开始时间,格式为Unix时间戳(UTC时间),单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1568269711000'], ], [ 'name' => 'EndTime', - 'in' => 'query', + 'in' => 'formData', + 'schema' => ['description' => '查询结束时间,格式为Unix时间戳(UTC时间),单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1608888296000'], + ], + [ + 'name' => 'OrderBy', + 'in' => 'formData', + 'schema' => ['description' => '排序方式,可选为:'."\n" + ."\n" + .'**Count**'."\n" + ."\n" + .'**QueryTime**'."\n" + ."\n" + .'**LockTime**'."\n" + ."\n" + .'**RowsExamined**'."\n" + ."\n" + .'**RowsSent**', 'type' => 'string', 'required' => false, 'example' => 'count'], + ], + [ + 'name' => 'Asc', + 'in' => 'formData', + 'schema' => ['description' => '升序排序开关,默认关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'formData', + 'schema' => ['description' => '查询列表的页码,起始值为1,默认值为1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'formData', + 'schema' => ['description' => '每页最大记录数,默认值为10。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], + ], + [ + 'name' => 'Filters', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '查询任务结束时间,格式为Unix时间戳,单位为毫秒。'."\n" - .'> - 查询任务结束时间需晚于查询任务开始时间。'."\n" - .'> - 仅支持最大查询时间范围为4天内的数据。'."\n" - .'> - **StartTime**和**EndTime**最大查询间隔为3小时内。', - 'type' => 'string', - 'required' => true, - 'example' => '1596177993001', + 'description' => '查询筛选条件列表。', + 'type' => 'array', + 'items' => [ + 'description' => 'Key支持的参数和取值:'."\n" + ."\n" + .'hostAddress:来源,多个逗号分隔。'."\n" + ."\n" + .'sqlId:sqlId,多个逗号分隔。'."\n" + ."\n" + .'user:用户,多个逗号分隔。'."\n" + ."\n" + .'dbName:数据库,多个逗号分隔。'."\n" + ."\n" + .'keyWord:关键字,多个空格分隔。'."\n" + ."\n" + .'tags:标签,多个逗号分隔。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '过滤参数', 'description' => '过滤参数', 'type' => 'string', 'required' => false, 'example' => 'KeyWords'], + 'Value' => ['description' => '过滤参数的值。', 'type' => 'string', 'required' => false, 'example' => 'select'], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 100, ], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '请求返回消息。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '52D540CF-C517-1F57-BB42-9035F96******'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], 'Data' => [ + 'title' => 'AsyncResult<DBLogRecords<SlowLogStat>>', + 'description' => 'AsyncResult<DBLogRecords<SlowLogStat>>', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'BigKey' => [ - 'description' => '大Key详细信息列表。'."\n" - ."\n" - .'> 查询时间段内没有大Key时,返回为空。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '具体的Key。', - 'type' => 'string', - 'example' => 'abc:def:eng', - ], - 'Db' => [ - 'description' => 'Key所在的DB。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'KeyType' => [ - 'description' => 'Key的类型。', - 'type' => 'string', - 'example' => 'zset', - ], - 'Size' => [ - 'description' => '元素的个数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'NodeId' => [ - 'description' => 'Redis实例的数据分片ID。', - 'type' => 'string', - 'example' => 'r-x****-db-0', + 'RequestKey' => ['title' => '请求参数的Key', 'description' => '请求参数的Key。', 'type' => 'string', 'example' => '123456789'], + 'ResultId' => ['title' => '结果ID', 'description' => '结果ID。', 'type' => 'string', 'example' => 'async__665ee69612f1627c7fd9f3c85075****'], + 'State' => ['title' => '当前状态 (RUNNING: 正在运行, SUCCESS: 成功, FAIL: 失败)', 'description' => '当前状态:'."\n" + ."\n" + .'-**RUNNING**:正在运行。'."\n" + ."\n" + .'-**SUCCESS**:成功。'."\n" + ."\n" + .'-**FAIL**:失败。', 'type' => 'string', 'example' => 'SUCCESS'], + 'IsFinish' => ['title' => '是否完成', 'description' => '是否完成。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'title' => '数据', + 'description' => '数据。', + 'type' => 'object', + 'properties' => [ + 'DbInstanceName' => ['description' => '实例ID。', 'type' => 'string', 'example' => '0'], + 'NodeId' => ['description' => '节点ID。'."\n" + ."\n" + .'对于MongoDB实例,通过该参数指定节点进行空间分析。调用[DescribeRoleZoneInfo](~~123802~~)接口,可以查询MongoDB实例各个节点的详细信息。'."\n" + ."\n" + .'- 当传入目标节点的**InsName**(节点ID)时,例如`d-bp1872fa24d5****`,调用该接口分析其对应的Hidden节点。'."\n" + .'- 当传入目标节点的`InsName#RoleId`时,例如`d-bp1872fa24d5****#299****5`,调用该接口分析指定的节点。'."\n" + ."\n" + .'><notice>对于MongoDB副本集实例,不传入此参数时,调用该接口会默认分析唯一的Hidden节点。对于MongoDB分片集群实例,推荐传入此参数,指定目标节点。</notice>', 'type' => 'string', 'example' => 'pi-wz99g5rn7w1x8h0sf'], + 'ItemsNumbers' => ['description' => '当前页查询日志列表内的Item数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'StartTime' => ['description' => '开始时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'string', 'example' => '2024-10-08T02:01:00Z'], + 'EndTime' => ['description' => '查询任务结束时间,格式为Unix时间戳,单位为毫秒。'."\n" + .'> 查询任务结束时间需晚于查询任务开始时间。', 'type' => 'string', 'example' => '2024-08-08T02:15:00Z'], + 'DbInstanceId' => ['description' => '实例数字ID。', 'type' => 'integer', 'format' => 'int64', 'example' => 'rm-k2ja51w7cnusg5a1x'], + 'TotalRecords' => ['description' => '总记录数。', 'type' => 'integer', 'format' => 'int64', 'example' => '13'], + 'PageNumbers' => ['description' => '分页查询的页码,从1开始,默认为1。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'MaxRecordsPerPage' => ['description' => '分页查询每页最大记录数。取值范围:5~100。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Logs' => [ + 'description' => '操作对象名称。', + 'type' => 'array', + 'items' => [ + 'description' => '日志。', + 'type' => 'object', + 'properties' => [ + 'Count' => ['description' => 'Key的元素个数。', 'type' => 'integer', 'format' => 'int64', 'example' => '12'], + 'MaxLockTime' => ['description' => '已废弃。', 'type' => 'number', 'format' => 'double', 'example' => '-'], + 'MaxQueryTime' => ['description' => '已废弃。', 'type' => 'number', 'format' => 'double', 'example' => '-'], + 'MaxRowsExamined' => ['description' => '最大扫描行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '318613'], + 'MaxRowsSent' => ['description' => '最大返回行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '256'], + 'AvgQueryTime' => ['description' => '已废弃。', 'type' => 'number', 'format' => 'double', 'example' => '-'], + 'QueryTimeRate' => ['description' => '查询耗时比例。', 'type' => 'number', 'format' => 'double', 'example' => '0.1018'], + 'CountRate' => ['description' => '执行次数比例。', 'type' => 'number', 'format' => 'double', 'example' => '0.2034'], + 'AvgRowsExamined' => ['description' => '平均扫描行数。', 'type' => 'number', 'format' => 'double', 'example' => '53421.0'], + 'OriginAlias' => ['description' => '来源别名。', 'type' => 'string', 'example' => 'order-1'], + 'User' => ['description' => '用户。', 'type' => 'string', 'example' => 'user-1'], + 'SqlTag' => [ + 'description' => '标签。', + 'type' => 'object', + 'properties' => [ + 'SqlId' => ['description' => 'SQL ID。', 'type' => 'string', 'example' => 'a3931d8c3a9315dd5ed016d71cf*****'], + 'Tags' => ['title' => '逗号分隔的多个tag', 'description' => '逗号分隔的多个tag。', 'type' => 'string', 'example' => 'DAS_IN_PLAN'], + 'Comments' => ['description' => '备注。'."\n" + ."\n" + .'长度为1~300个字符。', 'type' => 'string', 'example' => 'dba 归档'], + ], + ], + 'Trend' => [ + 'description' => '慢日志趋势。', + 'type' => 'array', + 'items' => [ + 'description' => '慢日志趋势。', + 'type' => 'object', + 'properties' => [ + 'Timestamp' => ['description' => '执行时间,格式为Unix时间戳,单位为毫秒(ms)。', 'type' => 'integer', 'format' => 'int64', 'example' => '1723775362'], + 'Value' => ['description' => '过滤参数的值。', 'type' => 'any', 'example' => 'tf-testacc-oos-parameter'], + ], + ], + ], + 'Database' => ['description' => '数据库名。', 'type' => 'string', 'example' => 'work-wechat-api'], + 'Histogram' => [ + 'description' => '趋势图数据。', + 'type' => 'object', + 'properties' => [ + 'Total' => ['description' => '查询的总记录数。', 'type' => 'integer', 'format' => 'int64', 'example' => '7'], + 'Count' => [ + 'description' => '慢日志数量。', + 'type' => 'array', + 'items' => ['description' => '慢日志数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + ], + 'Ts' => [ + 'title' => '关系型数据库只使用这个', + 'description' => '执行时间戳。', + 'type' => 'array', + 'items' => ['description' => '事件发生的时间,使用UNIX时间戳表示,单位:秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1715220818'], + ], + 'TsEnd' => [ + 'description' => '已废弃。', + 'type' => 'array', + 'items' => ['description' => '已废弃。', 'type' => 'integer', 'format' => 'int64', 'example' => '-'], + ], + 'Item' => [ + 'description' => '任务状态。', + 'type' => 'array', + 'items' => [ + 'description' => '错误码信息。', + 'type' => 'object', + 'properties' => [ + 'NodeId' => ['description' => '节点id。', 'type' => 'string', 'example' => 'r-bp1s1m8hwzrm77kfvz-db-0'], + 'Count' => [ + 'description' => '慢日志数量。', + 'type' => 'array', + 'items' => ['description' => 'Key的元素个数。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + ], + ], + ], + ], + 'Rt' => [ + 'description' => '执行耗时,单位为秒。', + 'type' => 'array', + 'items' => ['description' => '执行耗时,单位为秒。', 'type' => 'number', 'format' => 'double', 'example' => '1854'], + ], + 'AvgRt' => [ + 'description' => '平均执行耗时。', + 'type' => 'array', + 'items' => ['description' => '平均执行耗时。', 'type' => 'number', 'format' => 'double', 'example' => '3709'], + ], + 'MaxRt' => [ + 'description' => '最大RT,单位ms。', + 'type' => 'array', + 'items' => ['description' => '最大RT,单位ms。', 'type' => 'number', 'format' => 'double', 'example' => '2516.0'], + ], + 'LockTime' => [ + 'description' => '锁等待时间,单位毫秒。', + 'type' => 'array', + 'items' => ['description' => '锁等待时间,单位毫秒。', 'type' => 'number', 'format' => 'double', 'example' => '300'], + ], + 'AvgLockTime' => [ + 'description' => '平均锁等待时间,单位为秒。', + 'type' => 'array', + 'items' => ['description' => '平均锁等待时间,单位为秒。', 'type' => 'number', 'format' => 'double', 'example' => '15'], + ], + 'MaxLockTime' => [ + 'description' => '最大锁等待时间,单位为秒。', + 'type' => 'array', + 'items' => ['description' => '最大锁等待时间,单位为秒。', 'type' => 'number', 'format' => 'double', 'example' => '1051'], + ], + 'RowsExamined' => [ + 'description' => '总扫描行数。'."\n" + .'> 目前支持该字段的数据库:RDS MySQL、RDS PostgreSQL、PolarDB MySQL版。', + 'type' => 'array', + 'items' => ['description' => '总扫描行数。'."\n" + .'> 目前支持该字段的数据库:RDS MySQL、RDS PostgreSQL、PolarDB MySQL版。', 'type' => 'integer', 'format' => 'int64', 'example' => '641057'], + ], + 'AvgRowsExamined' => [ + 'description' => '平均扫描行数。', + 'type' => 'array', + 'items' => ['description' => '平均扫描行数。', 'type' => 'number', 'format' => 'double', 'example' => '222189'], + ], + 'MaxRowsExamined' => [ + 'description' => '最大扫描行数。', + 'type' => 'array', + 'items' => ['description' => '最大扫描行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '878511'], + ], + 'RowsSent' => [ + 'description' => '返回行数。', + 'type' => 'array', + 'items' => ['description' => '返回行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '4'], + ], + 'AvgRowsSent' => [ + 'description' => '平均返回行数。', + 'type' => 'array', + 'items' => ['description' => '平均返回行数。', 'type' => 'number', 'format' => 'double', 'example' => '2.0'], + ], + 'MaxRowsSent' => [ + 'description' => '最大返回行数。', + 'type' => 'array', + 'items' => ['description' => '最大返回行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '256'], + ], + ], + ], + 'SqlId' => ['description' => 'SQL ID。', 'type' => 'string', 'example' => '2dca88762ec6b3812504ab8a4b******'], + 'Scheme' => ['description' => 'HTTP或HTTPS。', 'type' => 'string', 'example' => 'HTTP'], + 'SubInstanceId' => ['description' => '子实例ID。', 'type' => 'string', 'example' => 'r-8vba51c588ba3a94'], + 'DbInstanceName' => ['description' => '实例ID。', 'type' => 'string', 'example' => '0'], + 'InsName' => ['description' => '分片名。', 'type' => 'string', 'example' => 'rm-uf6zix1z2jh1y6fe5'], + 'AccountName' => ['description' => '数据库账号。', 'type' => 'string', 'example' => 'edu_admin'], + 'HostAddress' => ['description' => '客户端IP地址。', 'type' => 'string', 'example' => '172.23.142.178'], + 'QueryStartTime' => ['description' => '查询开始的时间。格式:yyyy-MM-dd hh:mm:ss(UTC时间)。', 'type' => 'string', 'example' => '2024-12-25T03:00:00Z'], + 'SQLText' => ['description' => 'SQL语句详情。', 'type' => 'string', 'example' => 'SELECT \'Hello, World!\' FROM DUAL'], + 'Psql' => ['description' => 'SQL模板。', 'type' => 'string', 'example' => 'SELECT b?.id,b?.t?,b?.id,b?.t? FROM testtb? b? JOIN testtb? b? ON b?.id=b?.id WHERE b?.t? LIKE ? ORDER BY b?.id DESC'], + 'DBName' => ['description' => '数据库名称。', 'type' => 'string', 'example' => 'member_score'], + 'QueryTime' => ['description' => '查询执行时间阈值,单位为毫秒(ms)。', 'type' => 'integer', 'format' => 'int64', 'example' => '272.444'], + 'ReturnItemNumbers' => ['description' => '返回项目编号。', 'type' => 'string', 'example' => '暂无'], + 'DocsExamined' => ['description' => 'MongoDB该操作执行时扫描的文档数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'KeysExamined' => ['description' => 'MongoDB索引扫描行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '20000'."\n"], + 'TableName' => ['description' => '表名。', 'type' => 'string', 'example' => 'users\\nifconfig\\n'], + 'LockTime' => ['description' => '已废弃。', 'type' => 'number', 'format' => 'double', 'example' => '-'], + 'RowsExamined' => ['description' => '总扫描行数。'."\n" + .'> 目前支持该字段的数据库:RDS MySQL、RDS PostgreSQL、PolarDB MySQL版。', 'type' => 'integer', 'format' => 'int64', 'example' => '2444081'], + 'RowsSent' => ['description' => '返回行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '772'], + 'ThreadId' => ['title' => '仅 PolarDB MySQL 有thread_id', 'description' => '仅 PolarDB MySQL 有thread_id。', 'type' => 'string', 'example' => '1'], + 'Timestamp' => ['description' => '执行时间,格式为Unix时间戳,单位为毫秒(ms)。', 'type' => 'integer', 'format' => 'int64', 'example' => '1708568930'], + 'AvgLockTime' => ['description' => '已废弃。', 'type' => 'number', 'format' => 'double', 'example' => '-'], + 'AvgRowsSent' => ['description' => '平均返回行数。', 'type' => 'number', 'format' => 'double', 'example' => '2.0'], + 'LockTimeSeconds' => ['description' => '锁等待时间,单位为秒。', 'type' => 'number', 'format' => 'double', 'example' => '0.0'], + 'QueryTimeSeconds' => ['description' => '查询耗时,单位为秒。', 'type' => 'number', 'format' => 'double', 'example' => '25.472'], + 'AvgLockTimeSeconds' => ['description' => '平均锁等待时间,单位为秒。', 'type' => 'number', 'format' => 'double', 'example' => '0.0'], + 'MaxLockTimeSeconds' => ['description' => '最大锁等待时间,单位为秒。', 'type' => 'number', 'format' => 'double', 'example' => '0.0'], + 'MaxQueryTimeSeconds' => ['description' => '最大查询耗时,单位为秒。', 'type' => 'number', 'format' => 'double', 'example' => '14.402'], + 'AvgQueryTimeSeconds' => ['description' => '平均查询耗时,单位为秒。', 'type' => 'number', 'format' => 'double', 'example' => '6.211'], + 'SqlType' => ['description' => 'SQL语句的类型。', 'type' => 'string', 'example' => 'LOGIN'], + 'QueryId' => ['description' => 'Query ID。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'string', 'example' => 'sq-1pzcdMwRb'], + 'NodeType' => ['description' => '节点类型。'."\n" + .'> 目前支持该字段的数据库:云数据库MongoDB版、云数据库 Tair(兼容 Redis)。', 'type' => 'string', 'example' => 'DLNode'], + 'HostInsId' => ['description' => '主机实例id。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'string', 'example' => 'mongo-abc123456'], + 'InsRole' => ['description' => '实例角色。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'string', 'example' => '__system'], + 'OpType' => ['description' => '操作类型。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'string', 'example' => 'Insert'], + 'Namespace' => ['description' => '命名空间。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'string', 'example' => 'database.collection'], + 'AvgKeysExamined' => ['description' => '平均索引扫描行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'number', 'format' => 'double', 'example' => '20000'], + 'AvgDocExamined' => ['description' => '平均扫描文档行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'number', 'format' => 'double', 'example' => '10000'], + 'AvgReturnNum' => ['description' => '平均返回行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'number', 'format' => 'double', 'example' => '1'], + 'MaxKeysExamined' => ['description' => '最大索引扫描行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '2000000'], + 'MaxDocExamined' => ['description' => '最大扫描文档行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '1000000'], + 'MaxReturnNum' => ['description' => '最大返回行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'ReturnNum' => ['description' => '返回行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'DocExamined' => ['description' => '扫描文档行数。'."\n" + .'>仅云数据库MongoDB版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '2000000'], + 'Command' => ['description' => '慢查询语句。'."\n" + .'>仅云数据库 Tair(兼容 Redis)实例支持。', 'type' => 'string', 'example' => 'SELECT b?.id,b?.t?,b?.id,b?.t? FROM testtb? b? JOIN testtb? b? ON b?.id=b?.id WHERE b?.t? LIKE ? ORDER BY b?.t? DESC'], + 'IOWrites' => ['description' => 'I/O 写次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '1000'], + 'MaxIOWrites' => ['description' => '最大 I/O 写次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '1000'], + 'LastRowsCountAffected' => ['description' => '最后一条语句的影响行数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '1000'], + 'MaxLastRowsCountAffected' => ['description' => '最大最后一条语句的影响行数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '1000'], + 'LogicalIOReads' => ['description' => '逻辑读次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '1000'], + 'MaxLogicalIOReads' => ['description' => '最大逻辑读次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '1000'], + 'PhysicalIOReads' => ['description' => '物理读次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '1000'], + 'MaxPhysicalIOReads' => ['description' => '最大物理读次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '1000'], + 'RowsCountAffected' => ['description' => '影响的行数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '1000'], + 'MaxRowsCountAffected' => ['description' => '最大影响的行数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '1000'], + 'CPUTime' => ['description' => '已废弃。', 'type' => 'number', 'format' => 'double', 'example' => '-'], + 'AvgCPUTime' => ['description' => '已废弃。', 'type' => 'number', 'format' => 'double', 'example' => '-'."\n"], + 'MaxCPUTime' => ['description' => '已废弃。', 'type' => 'number', 'format' => 'double', 'example' => '-'."\n"], + 'AvgIOWrites' => ['description' => '平均 I/O 写次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'number', 'format' => 'double', 'example' => '1000'], + 'AvgLastRowsCountAffected' => ['description' => '平均最后一条语句的影响行数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'number', 'format' => 'double', 'example' => '1000'], + 'AvgLogicalIOReads' => ['description' => '平均逻辑读次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'number', 'format' => 'double', 'example' => '1000'], + 'AvgPhysicalIOReads' => ['description' => '平均物理读次数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'number', 'format' => 'double', 'example' => '1000'], + 'AvgRowsCountAffected' => ['description' => '平均影响的行数。'."\n" + .'>仅云数据库RDS SQL Server版实例支持。', 'type' => 'number', 'format' => 'double', 'example' => '1000'], + 'AvgCPUTimeSeconds' => ['description' => 'CPU 平均查询时间,单位秒。', 'type' => 'number', 'format' => 'double', 'example' => '456'], + 'MaxCPUTimeSeconds' => ['description' => 'CPU 最长查询时间,单位秒。', 'type' => 'number', 'format' => 'double', 'example' => '456'], + 'CPUTimeSeconds' => ['description' => 'CPU 查询时间,单位秒。'."\n" + ."\n" + .'> 仅云数据库 RDS SQL Server 版实例支持。', 'type' => 'number', 'format' => 'double', 'example' => '456'], + 'Rows' => ['description' => 'PolarDB-X 2.0数据库实例计算节点总更新或返回的行数。'."\n" + ."\n" + .'> 仅云数据库 PolarDB-X 2.0 版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '105'], + 'AvgRows' => ['description' => '平均行数。', 'type' => 'number', 'format' => 'double', 'example' => '10'], + 'MaxRows' => ['description' => '最大行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'Frows' => ['description' => 'PolarDB-X 2.0计算节点(CN)的拉取行数。'."\n" + ."\n" + .'> 仅云数据库 PolarDB-X 2.0 版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'AvgFrows' => ['description' => '平均拉取行数。', 'type' => 'number', 'format' => 'double', 'example' => '10'], + 'MaxFrows' => ['description' => '最大拉取行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'Scnt' => ['description' => 'PolarDB-X 2.0计算节点(CN)的DN请求数。'."\n" + ."\n" + .'> 仅云数据库 PolarDB-X 2.0 版实例支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'AvgScnt' => ['description' => '平均请求数。', 'type' => 'number', 'format' => 'double', 'example' => '10'], + 'MaxScnt' => ['description' => '最大请求数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'RuleId' => ['description' => '规则ID,具体信息请参见[查询治理](~~290038~~)。', 'type' => 'string', 'example' => '181**47'], + 'AvgRt' => ['description' => '平均执行耗时。', 'type' => 'number', 'format' => 'double'], + 'MaxRt' => ['description' => '最大执行耗时,单位秒。', 'type' => 'number', 'format' => 'double'], + 'AvgRequestSize' => ['description' => '平均请求长度,单位字节(仅 Redis 有效)。', 'type' => 'number', 'format' => 'double'], + 'MaxRequestSize' => ['description' => '最大请求长度,单位字节(仅 Redis 有效)。', 'type' => 'number', 'format' => 'double'], + 'AvgResponseSize' => ['description' => '平均响应长度,单位字节(仅 Redis 有效)。', 'type' => 'number', 'format' => 'double'], + 'MaxResponseSize' => ['description' => '最大响应长度,单位字节(仅 Redis 有效)。', 'type' => 'number', 'format' => 'double'], + 'TotalCount' => ['description' => '总的记录数(仅 Redis 引擎有效)', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'Cmd' => ['description' => '执行的命令(仅 Redis 有效)', 'type' => 'string', 'example' => 'systemctl restart nginx.service'], + 'ClientIp' => ['description' => '查询中的客户端IP地址', 'type' => 'string', 'example' => '10.57.84.109'], + 'DbId' => ['description' => '数据库ID(仅 Redis 有效)', 'type' => 'string', 'example' => '0'], + ], ], ], ], ], + 'ErrorCode' => ['title' => '错误码', 'description' => '错误码。', 'type' => 'integer', 'format' => 'int32', 'example' => '10910'], + 'Message' => ['title' => '错误信息', 'description' => '错误信息。', 'type' => 'string', 'example' => 'Successful'], + 'Timestamp' => ['title' => '请求时间', 'description' => '请求时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1735104224250'], ], ], - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Data\\": {\\n \\"BigKey\\": [\\n {\\n \\"Key\\": \\"abc:def:eng\\",\\n \\"Db\\": 0,\\n \\"KeyType\\": \\"zset\\",\\n \\"Size\\": 2,\\n \\"NodeId\\": \\"r-x****-db-0\\"\\n }\\n ]\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeTopBigKeysResponse>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Data>\\n <Key>abc:def:eng</Key>\\n <Db>0</Db>\\n <KeyType>zset</KeyType>\\n <Size>2</Size>\\n <NodeId>r-x****-db-0</NodeId>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</DescribeTopBigKeysResponse>","errorExample":""}]', - 'title' => ' 获取排名前100的大Key', - 'description' => '对数据结构为List、Hash、Set、Zset的Key,按照Key中元素的数量排序并展示排名前3的Key,记录为大Key。'."\n" + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"52D540CF-C517-1F57-BB42-9035F96******\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"RequestKey\\": \\"123456789\\",\\n \\"ResultId\\": \\"async__665ee69612f1627c7fd9f3c85075****\\",\\n \\"State\\": \\"SUCCESS\\",\\n \\"IsFinish\\": true,\\n \\"Data\\": {\\n \\"DbInstanceName\\": \\"0\\",\\n \\"NodeId\\": \\"pi-wz99g5rn7w1x8h0sf\\",\\n \\"ItemsNumbers\\": 10,\\n \\"StartTime\\": \\"2024-10-08T02:01:00Z\\",\\n \\"EndTime\\": \\"2024-08-08T02:15:00Z\\",\\n \\"DbInstanceId\\": 0,\\n \\"TotalRecords\\": 13,\\n \\"PageNumbers\\": 1,\\n \\"MaxRecordsPerPage\\": 10,\\n \\"Logs\\": [\\n {\\n \\"Count\\": 12,\\n \\"MaxLockTime\\": 0,\\n \\"MaxQueryTime\\": 0,\\n \\"MaxRowsExamined\\": 318613,\\n \\"MaxRowsSent\\": 256,\\n \\"AvgQueryTime\\": 0,\\n \\"QueryTimeRate\\": 0.1018,\\n \\"CountRate\\": 0.2034,\\n \\"AvgRowsExamined\\": 53421,\\n \\"OriginAlias\\": \\"order-1\\",\\n \\"User\\": \\"user-1\\",\\n \\"SqlTag\\": {\\n \\"SqlId\\": \\"a3931d8c3a9315dd5ed016d71cf*****\\",\\n \\"Tags\\": \\"DAS_IN_PLAN\\",\\n \\"Comments\\": \\"dba 归档\\"\\n },\\n \\"Trend\\": [\\n {\\n \\"Timestamp\\": 1723775362,\\n \\"Value\\": \\"tf-testacc-oos-parameter\\"\\n }\\n ],\\n \\"Database\\": \\"work-wechat-api\\",\\n \\"Histogram\\": {\\n \\"Total\\": 7,\\n \\"Count\\": [\\n 100\\n ],\\n \\"Ts\\": [\\n 1715220818\\n ],\\n \\"TsEnd\\": [\\n 0\\n ],\\n \\"Item\\": [\\n {\\n \\"NodeId\\": \\"r-bp1s1m8hwzrm77kfvz-db-0\\",\\n \\"Count\\": [\\n 100\\n ]\\n }\\n ],\\n \\"Rt\\": [\\n 1854\\n ],\\n \\"AvgRt\\": [\\n 3709\\n ],\\n \\"MaxRt\\": [\\n 2516\\n ],\\n \\"LockTime\\": [\\n 300\\n ],\\n \\"AvgLockTime\\": [\\n 15\\n ],\\n \\"MaxLockTime\\": [\\n 1051\\n ],\\n \\"RowsExamined\\": [\\n 641057\\n ],\\n \\"AvgRowsExamined\\": [\\n 222189\\n ],\\n \\"MaxRowsExamined\\": [\\n 878511\\n ],\\n \\"RowsSent\\": [\\n 4\\n ],\\n \\"AvgRowsSent\\": [\\n 2\\n ],\\n \\"MaxRowsSent\\": [\\n 256\\n ]\\n },\\n \\"SqlId\\": \\"2dca88762ec6b3812504ab8a4b******\\",\\n \\"Scheme\\": \\"HTTP\\",\\n \\"SubInstanceId\\": \\"r-8vba51c588ba3a94\\",\\n \\"DbInstanceName\\": \\"0\\",\\n \\"InsName\\": \\"rm-uf6zix1z2jh1y6fe5\\",\\n \\"AccountName\\": \\"edu_admin\\",\\n \\"HostAddress\\": \\"172.23.142.178\\",\\n \\"QueryStartTime\\": \\"2024-12-25T03:00:00Z\\",\\n \\"SQLText\\": \\"SELECT \'Hello, World!\' FROM DUAL\\",\\n \\"Psql\\": \\"SELECT b?.id,b?.t?,b?.id,b?.t? FROM testtb? b? JOIN testtb? b? ON b?.id=b?.id WHERE b?.t? LIKE ? ORDER BY b?.id DESC\\",\\n \\"DBName\\": \\"member_score\\",\\n \\"QueryTime\\": 272.444,\\n \\"ReturnItemNumbers\\": \\"暂无\\",\\n \\"DocsExamined\\": 1,\\n \\"KeysExamined\\": 20000,\\n \\"TableName\\": \\"users\\\\\\\\nifconfig\\\\\\\\n\\",\\n \\"LockTime\\": 0,\\n \\"RowsExamined\\": 2444081,\\n \\"RowsSent\\": 772,\\n \\"ThreadId\\": \\"1\\",\\n \\"Timestamp\\": 1708568930,\\n \\"AvgLockTime\\": 0,\\n \\"AvgRowsSent\\": 2,\\n \\"LockTimeSeconds\\": 0,\\n \\"QueryTimeSeconds\\": 25.472,\\n \\"AvgLockTimeSeconds\\": 0,\\n \\"MaxLockTimeSeconds\\": 0,\\n \\"MaxQueryTimeSeconds\\": 14.402,\\n \\"AvgQueryTimeSeconds\\": 6.211,\\n \\"SqlType\\": \\"LOGIN\\",\\n \\"QueryId\\": \\"sq-1pzcdMwRb\\",\\n \\"NodeType\\": \\"DLNode\\",\\n \\"HostInsId\\": \\"mongo-abc123456\\",\\n \\"InsRole\\": \\"__system\\",\\n \\"OpType\\": \\"Insert\\",\\n \\"Namespace\\": \\"database.collection\\",\\n \\"AvgKeysExamined\\": 20000,\\n \\"AvgDocExamined\\": 10000,\\n \\"AvgReturnNum\\": 1,\\n \\"MaxKeysExamined\\": 2000000,\\n \\"MaxDocExamined\\": 1000000,\\n \\"MaxReturnNum\\": 1,\\n \\"ReturnNum\\": 1,\\n \\"DocExamined\\": 2000000,\\n \\"Command\\": \\"SELECT b?.id,b?.t?,b?.id,b?.t? FROM testtb? b? JOIN testtb? b? ON b?.id=b?.id WHERE b?.t? LIKE ? ORDER BY b?.t? DESC\\",\\n \\"IOWrites\\": 1000,\\n \\"MaxIOWrites\\": 1000,\\n \\"LastRowsCountAffected\\": 1000,\\n \\"MaxLastRowsCountAffected\\": 1000,\\n \\"LogicalIOReads\\": 1000,\\n \\"MaxLogicalIOReads\\": 1000,\\n \\"PhysicalIOReads\\": 1000,\\n \\"MaxPhysicalIOReads\\": 1000,\\n \\"RowsCountAffected\\": 1000,\\n \\"MaxRowsCountAffected\\": 1000,\\n \\"CPUTime\\": 0,\\n \\"AvgCPUTime\\": 0,\\n \\"MaxCPUTime\\": 0,\\n \\"AvgIOWrites\\": 1000,\\n \\"AvgLastRowsCountAffected\\": 1000,\\n \\"AvgLogicalIOReads\\": 1000,\\n \\"AvgPhysicalIOReads\\": 1000,\\n \\"AvgRowsCountAffected\\": 1000,\\n \\"AvgCPUTimeSeconds\\": 456,\\n \\"MaxCPUTimeSeconds\\": 456,\\n \\"CPUTimeSeconds\\": 456,\\n \\"Rows\\": 105,\\n \\"AvgRows\\": 10,\\n \\"MaxRows\\": 10,\\n \\"Frows\\": 10,\\n \\"AvgFrows\\": 10,\\n \\"MaxFrows\\": 10,\\n \\"Scnt\\": 10,\\n \\"AvgScnt\\": 10,\\n \\"MaxScnt\\": 10,\\n \\"RuleId\\": \\"181**47\\",\\n \\"AvgRt\\": 0,\\n \\"MaxRt\\": 0,\\n \\"AvgRequestSize\\": 0,\\n \\"MaxRequestSize\\": 0,\\n \\"AvgResponseSize\\": 0,\\n \\"MaxResponseSize\\": 0,\\n \\"TotalCount\\": 0,\\n \\"Cmd\\": \\"systemctl restart nginx.service\\",\\n \\"ClientIp\\": \\"10.57.84.109\\",\\n \\"DbId\\": \\"0\\"\\n }\\n ]\\n },\\n \\"ErrorCode\\": 10910,\\n \\"Message\\": \\"Successful\\",\\n \\"Timestamp\\": 1735104224250\\n }\\n}","type":"json"}]', + 'title' => '慢日志统计信息', + 'description' => '**请确保在使用该接口前,已充分了解DAS产品的[收费方式和价格](~~156195~~)。**'."\n" ."\n" - .'- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于4.3.3,建议使用最新版本。'."\n" - .'- 使用DAS的SDK的版本为1.0.2或以上。'."\n" + .'使用该接口需满足以下前提条件:'."\n" + .'- 请求实例已开通智能运维服务。'."\n" + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 本接口只适用于如下Redis实例:'."\n" - .' - 实例为Redis开源版或Tair(企业版)内存型。'."\n" - .' - 实例的小版本为最新。', - ], - 'DescribeHotKeys' => [ - 'summary' => '调用DescribeHotKeys接口,查询Redis实例的热Key。', - 'methods' => [ - 'post', - 'get', + ."\n" + .'该接口异步调用后不会立即返回完整结果,当返回数据中 isFinish 取值为 false 时,请等待 1s 后重新发起调用,直到 isFinish 取值为 true 时,返回完整结果。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeSlowLogStatistic'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeSlowLogStatistic', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeSqlLogConfig' => [ + 'summary' => '调用DescribeSqlLogConfig接口,查询数据库实例的DAS企业版配置信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeCode' => '198881', + 'abilityTreeNodes' => ['FEATUREhdmPGXCEW', 'FEATUREhdmFT57I0'], ], 'parameters' => [ [ 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'Redis实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'r-bp18ff4a195d****', - ], - ], - [ - 'name' => 'NodeId', - 'in' => 'query', - 'schema' => [ - 'description' => 'Redis实例的数据分片ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'r-x****-db-0', - ], + 'in' => 'formData', + 'schema' => ['description' => '数据库实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'], ], ], 'responses' => [ @@ -6023,263 +6366,291 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], 'Data' => [ + 'title' => 'SqlLogConfig', + 'description' => '返回数据。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'HotKey' => [ - 'description' => '详细信息列表。', - 'type' => 'array', - 'items' => [ - 'description' => '结果集。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '具体的Key。', - 'type' => 'string', - 'example' => 'abc:def:eng', - ], - 'Db' => [ - 'description' => 'Key所在的DB。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Hot' => [ - 'description' => 'Key的访问频次,即Key的每秒访问数。', - 'type' => 'string', - 'example' => '5500~6000', - ], - 'KeyType' => [ - 'description' => 'Key的类型。', - 'type' => 'string', - 'example' => 'zset', - ], - 'Size' => [ - 'description' => '元素的个数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'InBytes' => [ - 'description' => '入流量,单位Byte。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '85766', - ], - 'OutBytes' => [ - 'description' => '出流量,单位Byte。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1054688', - ], - 'NodeId' => [ - 'description' => '节点id。', - 'type' => 'string', - 'example' => 'r-x****-db-0', - ], - 'Category' => [ - 'description' => '热Key类别:'."\n" - .'- **qps**:按QPS统计的热Key。'."\n" - .'- **traffic**:按流量统计的热Key。', - 'type' => 'string', - 'example' => 'qps', - ], - ], - ], - ], + 'ColdEnable' => ['description' => '是否开启数据冷存储。'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'ColdRetention' => ['title' => '冷数据存储周期(不落库),通过 retention - hotRetention 计算', 'description' => '数据冷存储时长,单位为天。', 'type' => 'integer', 'format' => 'int32', 'example' => '23'], + 'ColdStartTime' => ['description' => '数据冷存储开始时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1683712800000'], + 'CollectorVersion' => ['description' => '采集器版本。'."\n" + ."\n" + .'- **MYSQL_V0**:MySQL V0版。'."\n" + .'- **MYSQL_V1**:MySQL V1版。'."\n" + .'- **MYSQL_V2**:MySQL V2版。'."\n" + .'- **MYSQL_V3**:MySQL V3版。'."\n" + .'- **PG_V1**:PostgreSQL V1版。'."\n" + .'- **rdspg_v1**:RDS PostgreSQL V1版。'."\n" + .'- **polarpg_v1**:PolarDB PostgreSQL版 V1版。', 'type' => 'string', 'example' => 'MYSQL_V3'], + 'HotEnable' => ['description' => '是否开启数据热存储。'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'HotRetention' => ['description' => '数据热存储时长,单位为天。', 'type' => 'integer', 'format' => 'int32', 'example' => '7'], + 'HotStartTime' => ['description' => '数据热存储开始时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1683712800000'], + 'LogFilter' => ['description' => '预留参数。', 'type' => 'string', 'example' => 'None'], + 'RequestEnable' => ['description' => '是否开启SQL洞察。'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'RequestStartTime' => ['description' => 'SQL洞察开启时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1683712800000'], + 'RequestStopTime' => ['description' => 'DAS企业版V1到期时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1715335200000'], + 'Retention' => ['description' => '数据总存储时长,**HotRetention**与**ColdRetention**之和,单位为天。', 'type' => 'integer', 'format' => 'int32', 'example' => '30'], + 'SqlLogEnable' => ['description' => '是否开启了DAS企业版。'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'SqlLogSource' => ['description' => '预留参数。', 'type' => 'string', 'example' => 'None'], + 'SqlLogState' => ['description' => '数据迁移状态。'."\n" + ."\n" + .'- **FINISH**: 历史数据迁移完成。'."\n" + .'- **RUNNING**: 历史数据迁移中。'."\n" + .'- **FAILURE**: 历史数据迁移失败。', 'type' => 'string', 'example' => 'FINISH'], + 'SqlLogVisibleTime' => ['description' => 'DAS企业版开启的时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1683712800000'], + 'SupportMigration' => ['description' => '预留参数。', 'type' => 'boolean', 'example' => 'None'], + 'SupportVersion' => ['title' => '当前实例支持的数据库版本(不落库)', 'description' => '当前支持的最新DAS企业版版本。'."\n" + .'- **SQL_LOG_V0**:企业版 V0。'."\n" + .'- **SQL_LOG_V1**:企业版 V1。'."\n" + .'- **SQL_LOG_V2**:企业版 V2。'."\n" + .'- **SQL_LOG_V3**:企业版 V3。'."\n" + .'- **SQL_LOG_NOT_ENABLE**:未开启企业版。'."\n" + .'- **SQL_LOG_NOT_SUPPORT**: 不支持企业版。', 'type' => 'string', 'example' => 'SQL_LOG_V3'], + 'Version' => ['title' => '当前审计日志的版本', 'description' => '当前开启的DAS企业版版本。'."\n" + .'- **SQL_LOG_V0**:企业版 V0。'."\n" + .'- **SQL_LOG_V1**:企业版 V1。'."\n" + .'- **SQL_LOG_V2**:企业版 V2。'."\n" + .'- **SQL_LOG_V3**:企业版 V3。'."\n" + .'- **SQL_LOG_NOT_ENABLE**:未开启企业版。'."\n" + .'- **SQL_LOG_NOT_SUPPORT**: 不支持企业版。', 'type' => 'string', 'example' => 'SQL_LOG_V3'], ], ], - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0A74B755-98B7-59DB-8724-1321B394****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + .'* **true**:执行成功'."\n" + .'* **false**:执行失败', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Data\\": {\\n \\"HotKey\\": [\\n {\\n \\"Key\\": \\"abc:def:eng\\",\\n \\"Db\\": 0,\\n \\"Hot\\": \\"5500~6000\\",\\n \\"KeyType\\": \\"zset\\",\\n \\"Size\\": 2,\\n \\"InBytes\\": 85766,\\n \\"OutBytes\\": 1054688,\\n \\"NodeId\\": \\"r-x****-db-0\\",\\n \\"Category\\": \\"qps\\"\\n }\\n ]\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeHotKeysResponse>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Data>\\n <Key>abc:def:eng</Key>\\n <Db>0</Db>\\n <Hot>5500~6000</Hot>\\n <KeyType>zset</KeyType>\\n <Size>2</Size>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</DescribeHotKeysResponse>","errorExample":""}]', - 'title' => '查询实例当前的热Key', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询DAS企业版配置信息', 'description' => '使用该接口需满足以下前提条件:'."\n" ."\n" - .'- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于4.3.3,建议使用最新版本。'."\n" - .'- 使用DAS的SDK的版本为1.0.2或以上。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 本接口只适用于如下Redis实例:'."\n" - .' - 实例为Redis开源版或Tair(企业版)内存型。'."\n" - .' - 实例的小版本为最新。', - ], - 'CreateQueryOptimizeTag' => [ - 'summary' => '调用CreateQueryOptimizeTag接口,对目标SQL进行打标。', - 'methods' => [ - 'post', + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'responseParamsDescription' => '对于**SQL_LOG_V0**(企业版 V0)和**SQL_LOG_V1**(企业版 V1) ,其数据存储在CStore中,视为热存储。开通该版本的数据库实例,查询返回结果中`SqlLogEnable = HotEnable = true, Retention = HotRetention, ColdEnable = false, ColdRetention = 0`。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeSqlLogConfig'], + ], ], - 'schemes' => [ - 'https', - 'http', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeSqlLogConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Data\\": {\\n \\"ColdEnable\\": true,\\n \\"ColdRetention\\": 23,\\n \\"ColdStartTime\\": 1683712800000,\\n \\"CollectorVersion\\": \\"MYSQL_V3\\",\\n \\"HotEnable\\": true,\\n \\"HotRetention\\": 7,\\n \\"HotStartTime\\": 1683712800000,\\n \\"LogFilter\\": \\"None\\",\\n \\"RequestEnable\\": true,\\n \\"RequestStartTime\\": 1683712800000,\\n \\"RequestStopTime\\": 1715335200000,\\n \\"Retention\\": 30,\\n \\"SqlLogEnable\\": true,\\n \\"SqlLogSource\\": \\"None\\",\\n \\"SqlLogState\\": \\"FINISH\\",\\n \\"SqlLogVisibleTime\\": 1683712800000,\\n \\"SupportMigration\\": true,\\n \\"SupportVersion\\": \\"SQL_LOG_V3\\",\\n \\"Version\\": \\"SQL_LOG_V3\\"\\n },\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"0A74B755-98B7-59DB-8724-1321B394****\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', + ], + 'DescribeSqlLogRecords' => [ + 'summary' => '调用DescribeSqlLogRecords接口,查询DAS企业版日志明细。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeCode' => '199697', + 'abilityTreeNodes' => ['FEATUREhdmFT57I0'], ], 'parameters' => [ [ - 'name' => 'Engine', - 'in' => 'query', - 'schema' => [ - 'description' => '数据库引擎,取值:'."\n" - ."\n" - .'- **MySQL**:RDS MySQL'."\n" - .'- **PolarDBMySQL**:PolarDB MySQL版'."\n" - .'- **PostgreSQL**:RDS PostgreSQL', - 'type' => 'string', - 'required' => true, - 'example' => 'MySQL', - ], + 'name' => 'InstanceId', + 'in' => 'formData', + 'schema' => ['title' => '实例ID', 'description' => '数据库实例ID。', 'type' => 'string', 'required' => true, 'example' => 'pc-2ze8g2am97624****'."\n"], ], [ - 'name' => 'SqlIds', - 'in' => 'query', - 'schema' => [ - 'description' => 'SQL模板ID,您可以调用[GetQueryOptimizeDataStats](~~405261~~)接口查询SQL模板ID。支持英文逗号(,)分隔传入多个模板ID,进行批量打标。', - 'type' => 'string', - 'required' => true, - 'example' => '6068ce044e3dc9b903979672fb0b69df,d12515c015fc9f41a0778a9e1de0****', - ], + 'name' => 'NodeId', + 'in' => 'formData', + 'schema' => ['description' => '节点ID。'."\n" + ."\n" + .'- 对于RDS MySQL和PolarDB MySQL版,该参数仅适用于集群版实例。若不传该参数,默认查询主节点日志明细。'."\n" + .'- 对于PolarDB-X 2.0,该参数传入**polarx_cn**(计算节点)或**polarx_dn**(数据节点)。', 'type' => 'string', 'required' => false, 'example' => 'pi-uf6k5f6g3912i****'], ], [ - 'name' => 'Tags', + 'name' => 'Role', 'in' => 'query', - 'schema' => [ - 'description' => 'SQL标签。支持英文逗号(,)分隔传入多个值。'."\n" - ."\n" - .'- **DAS\\_IMPORTANT**:重要SQL。'."\n" - .'- **DAS\\_NOT\\_IMPORTANT**:不重要SQL。'."\n" - .'- **USER\\_IGNORE**:无需优化。'."\n" - .'- **DAS\\_IN\\_PLAN**:排期优化。', - 'type' => 'string', - 'required' => true, - 'enumValueTitles' => [], - 'example' => 'DAS_IN_PLAN,DAS_NOT_IMPORTANT', - ], + 'schema' => ['description' => 'PolarDB-X 2.0数据库实例节点的角色。'."\n" + ."\n" + .'- **polarx_cn **:计算节点。'."\n" + .'- **polarx_dn **:数据节点。', 'type' => 'string', 'required' => false, 'example' => 'polarx_cn '], ], [ - 'name' => 'Status', + 'name' => 'Filters', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '设置请求参数**Tags**的状态:'."\n" - ."\n" - .'- **0**:清空请求参数**SqlIds**对应的全部标签,忽略请求参数**Tags**设置。'."\n" - .'- **1**:设置请求参数**SqlIds**对应的标签为请求参数**Tags**的值。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', + 'description' => '筛选条件列表。', + 'type' => 'array', + 'items' => [ + 'description' => '筛选条件。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '过滤参数', 'description' => '过滤参数。'."\n" + ."\n" + .'> 支持的过滤参数及其取值请参考**请求参数补充说明**。', 'type' => 'string', 'required' => false, 'example' => 'keyWords'], + 'Value' => ['description' => '过滤参数取值。', 'type' => 'string', 'required' => false, 'example' => 'select'], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 100, ], ], [ - 'name' => 'Comments', - 'in' => 'query', - 'schema' => [ - 'description' => '备注。'."\n" - ."\n" - .'长度为1~300个字符。', - 'type' => 'string', - 'required' => false, - 'example' => '离线同步类慢SQL,无需优化。', - ], + 'name' => 'StartTime', + 'in' => 'formData', + 'schema' => ['description' => '开始时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1596177993000'], ], [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze1jdv45i7l6****', - ], + 'name' => 'EndTime', + 'in' => 'formData', + 'schema' => ['description' => '结束时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1608888296000'], + ], + [ + 'name' => 'PageNo', + 'in' => 'formData', + 'schema' => ['description' => '分页查询的页码,从1开始,默认为1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'formData', + 'schema' => ['description' => '每页最大记录数,最大支持100,默认值为10。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => '根节点或根目录', + 'description' => '根节点或根目录', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'F43E7FB3-CE67-5FFD-A59C-EFD278BCD7BE'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], 'Data' => [ - 'title' => 'Boolean', - 'description' => '打标操作是否执行成功:'."\n" - ."\n" - .'- **true**:打标成功。'."\n" - .'- **false**:打标失败。', - 'type' => 'boolean', - 'example' => 'true', + 'title' => 'SqlLogDetailResult', + 'description' => '返回数据。', + 'type' => 'object', + 'properties' => [ + 'StartTime' => ['description' => '开始时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1596177993000'], + 'EndTime' => ['description' => '结束时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1608888296000'], + 'TotalRecords' => ['description' => '总记录数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'Items' => [ + 'description' => '列表数据', + 'type' => 'object', + 'properties' => [ + 'SQLLogRecord' => [ + 'description' => 'SQL日志数据。', + 'type' => 'array', + 'items' => [ + 'description' => 'SQL日志数据。', + 'type' => 'object', + 'properties' => [ + 'Ext' => ['description' => '扩展信息字段,备用参数。', 'type' => 'string', 'example' => 'None'], + 'ExecuteTime' => ['description' => '执行时间,格式为UTC时间:`yyyy-MM-ddTHH:mm:ssZ`。', 'type' => 'string', 'example' => '2023-12-07T02:15:32Z'], + 'OriginTime' => ['description' => '执行时间戳,格式为Unix时间,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1701886532000'], + 'HostAddress' => ['description' => '客户端IP地址。', 'type' => 'string', 'example' => '11.197.XX.XX'], + 'UpdateRows' => ['description' => '更新行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'LogicRead' => ['description' => '逻辑读。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'SqlText' => ['description' => 'SQL语句。', 'type' => 'string', 'example' => 'select resource_id as cluster_id, tpl_name \\n\\tfrom dbfree_alert_resource_tpl_ref\\n\\twhere user_id=? and type=\'cluster\' group by resource_id, tpl_name'], + 'LockTime' => ['description' => '锁等待时间,单位毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'ScanRows' => ['description' => '扫描行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'ThreadId' => ['description' => '线程ID。', 'type' => 'integer', 'format' => 'int64', 'example' => 'None'], + 'State' => ['description' => '执行状态。'."\n" + ."\n" + .'- **0**:执行成功。'."\n" + .'- **1**:执行失败。', 'type' => 'string', 'example' => '0'], + 'DBName' => ['description' => '数据库名称。', 'type' => 'string', 'example' => 'testdb'], + 'SqlType' => ['description' => 'SQL语句的类型。', 'type' => 'string', 'example' => 'select'], + 'AccountName' => ['description' => '数据库账号。', 'type' => 'string', 'example' => 'testname'], + 'PhysicSyncRead' => ['description' => '物理同步读。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'PhysicAsyncRead' => ['description' => '物理异步读。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'TrxId' => ['description' => '事务ID。', 'type' => 'string', 'example' => '200000'], + 'ReturnRows' => ['description' => '返回行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'Consume' => ['description' => '执行耗时(us)。', 'type' => 'integer', 'format' => 'int64', 'example' => '58'], + 'Vip' => ['description' => '查询链接的endpoint解析地址。', 'type' => 'string', 'example' => '100.115.XX.XX'], + 'NodeId' => ['description' => '节点ID。', 'type' => 'string', 'example' => 'pi-uf6k5f6g3912i****'], + 'SqlId' => ['description' => 'SQL ID。', 'type' => 'string', 'example' => 'c67649d4a7fb62c4f8c7a447c52b5b17'], + 'UseImciEngine' => ['description' => 'PolarDB MySQL版实例是否使用列存索引。'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'string', 'example' => 'true'], + 'ParallelQueueTime' => ['description' => 'PolarDB MySQL版实例的并行度。', 'type' => 'string', 'example' => '2'], + 'ParallelDegree' => ['description' => 'PolarDB MySQL版实例的并行排队时间,单位为毫秒。', 'type' => 'string', 'example' => '10'], + 'Scnt' => ['description' => 'PolarDB-X 2.0计算节点(CN)的DN请求数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'Rows' => ['description' => 'PolarDB-X 2.0数据库实例计算节点总更新或返回的行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'Frows' => ['description' => 'PolarDB-X 2.0计算节点(CN)的拉取行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'TraceId' => ['description' => 'PolarDB-X 2.0的跟踪ID,即SQL在数据节点的执行ID。', 'type' => 'string', 'example' => '14c93b7c7bf00000 '], + 'PhysicRead' => ['description' => '物理读。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'CpuTime' => ['description' => 'CPU执行时间,单位为微秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'Writes' => ['description' => 'RDS SQL Server引擎的写入数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'Collection' => ['description' => '预留参数。', 'type' => 'string', 'example' => 'None'], + 'TableName' => ['title' => 'SQL日志记录中的表名', 'description' => 'SQL日志记录中的表名', 'type' => 'string', 'example' => 'das'], + 'ConnectionId' => ['title' => 'SQL日志记录的连接ID', 'description' => 'SQL日志记录的连接ID', 'type' => 'string', 'example' => 'ld-******'], + 'Protocol' => ['title' => 'SQL日志记录的协议类型', 'description' => 'SQL日志记录的协议类型', 'type' => 'string', 'example' => 'MySQL'], + 'Params' => ['title' => 'SQL日志记录的参数', 'description' => 'SQL日志记录的参数', 'type' => 'string', 'example' => '[1, "das"]'], + 'ClientIp' => ['title' => 'SQL日志记录中的客户端IP'."\n" + .'SQL日志记录中客户端的IP地址', 'description' => 'SQL日志记录中的客户端IP'."\n" + .'SQL日志记录中客户端的IP地址', 'type' => 'string', 'example' => '10.0.0.1xx'], + 'ClientPort' => ['title' => '客户端端口号', 'description' => '客户端端口号', 'type' => 'integer', 'format' => 'int64', 'example' => '3306'], + 'RowKey' => ['title' => 'SQL日志记录的行键', 'description' => 'SQL日志记录的行键', 'type' => 'string', 'example' => '23'], + 'AffectColumns' => ['title' => '受影响的列', 'description' => '受影响的列', 'type' => 'string', 'example' => '["col1"]'], + ], + ], + ], + ], + ], + 'Finish' => ['description' => '任务是否完成。'."\n" + .'- **0**:未完成'."\n" + .'- **1**:已完成'."\n" + ."\n" + .'> 当**Finish**返回为0,并且包含**JobId**字段时,说明当前请求为异步请求,无法直接获取返回结果,需要进一步根据**JobId**进行查询。查询时将**JobId**作为**Filters**的输入值,例如:`Filters=[{"Key": "JobId", "Value": "******"}]`。', 'type' => 'string', 'example' => '1'], + 'JobId' => ['description' => '异步任务ID。', 'type' => 'string', 'example' => 'MzI4NTZfUUlOR0RBT19DTTlfTlUyMF9NWVNRTF9PREJTX0xWU18zMjg1Nl9teXNxbF9XZWQgTWFyIDA2IDE0OjUwOjQ3IENTVCAyMDI0XzBfMzBfRXhlY3V0ZVRpbWVfREVTQ19XZWQgTWFyIDA2IDE0OjM1OjQ3IENTVCAyMDI0Xw==_1709708406465'], + ], ], ], ], @@ -6287,376 +6658,458 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": true\\n}","errorExample":""},{"type":"xml","example":"<CreateQueryOptimizeTagResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n <Data>true</Data>\\n</CreateQueryOptimizeTagResponse>","errorExample":""}]', - 'title' => '对目标SQL进行打标', - 'description' => '- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 本接口适用的数据库引擎为:'."\n" - .' - RDS MySQL'."\n" - .' - PolarDB MySQL版'."\n" - .' - RDS PostgreSQL', - ], - 'GetQueryOptimizeExecErrorStats' => [ - 'summary' => '调用GetQueryOptimizeExecErrorStats接口,获取执行失败的模板数据。', - 'methods' => [ - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '(废弃)查询DAS企业版日志明细', + 'description' => '使用该接口需满足以下前提条件:'."\n" + ."\n" + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'requestParamsDescription' => '**Key**支持的参数和取值:'."\n" + ."\n" + .'- **KeyWords**:关键字,多个关键字间使用空格隔开。'."\n" + .'- **LogicalOperator**:关键字间的逻辑操作,取值为and或or。'."\n" + .'- **AccountName**:用户名,可以传递多个的,用逗号分开,上限为5。'."\n" + .'- **dbName**:数据库名称,可以传递多个的,用逗号分开,上限为5。'."\n" + .'- **HostAddress**:客户端IP地址,可以传递多个的,用逗号分开,上限为5。'."\n" + .'- **MaxConsume**:最大耗时,单位us。'."\n" + .'- **MinConsume**:最小耗时,单位us。'."\n" + .'- **MaxScanRows**:最大扫描行。'."\n" + .'- **MinScanRows**:最小扫描行。'."\n" + .'- **SqlType**:SQL类型,取值select、update、insert或delete。'."\n" + .'- **State**:执行结果,取值0(成功)或1(失败)。'."\n" + .'- **ThreadId**:线程ID。'."\n" + .'- **SortKey**:排序列名称,取值ScanRows(扫描行数)、UpdateRows(更新行数)、Consume(耗时)、ExecuteTime(执行时间)、ReturnRows(返回行数)、LockTime(锁等待时间)、Frows(PolarDB-X 2.0计算节点的拉取行数)、Scnt(PolarDB-X 2.0计算节点的DN请求数)、CpuTime(CPU执行时间)、PhysicalRead(物理读)。'."\n" + .'- **SortMethod**:排序方式,取值DESC(降序)、ASC(升序)。默认为DESC。'."\n" + .'- **TraceId**:PolarDB-X 2.0实例的跟踪ID。'."\n" + .'- **MinRows**:最小更新行数。'."\n" + .'- **MaxRows**:最大更新行数。'."\n" + .'- **MinScnt**:PolarDB-X 2.0计算节点(CN)的DN最小请求数。'."\n" + .'- **MaxScnt**:PolarDB-X 2.0计算节点(CN)的DN最大请求数。'."\n" + .'- **TrxId**:事务ID。'."\n" + .'- **Fail**:错误码。'."\n" + .'- **SqlId**:SQL ID。'."\n" + .'- **JobId**:通过异步任务ID进一步查询返回结果。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeSqlLogRecords'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'hdm:DescribeSqlLogRecords', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"F43E7FB3-CE67-5FFD-A59C-EFD278BCD7BE\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"StartTime\\": 1596177993000,\\n \\"EndTime\\": 1608888296000,\\n \\"TotalRecords\\": 1,\\n \\"Items\\": {\\n \\"SQLLogRecord\\": [\\n {\\n \\"Ext\\": \\"None\\",\\n \\"ExecuteTime\\": \\"2023-12-07T02:15:32Z\\",\\n \\"OriginTime\\": 1701886532000,\\n \\"HostAddress\\": \\"11.197.XX.XX\\",\\n \\"UpdateRows\\": 0,\\n \\"LogicRead\\": 0,\\n \\"SqlText\\": \\"select resource_id as cluster_id, tpl_name \\\\\\\\n\\\\\\\\tfrom dbfree_alert_resource_tpl_ref\\\\\\\\n\\\\\\\\twhere user_id=? and type=\'cluster\' group by resource_id, tpl_name\\",\\n \\"LockTime\\": 0,\\n \\"ScanRows\\": 0,\\n \\"ThreadId\\": 0,\\n \\"State\\": \\"0\\",\\n \\"DBName\\": \\"testdb\\",\\n \\"SqlType\\": \\"select\\",\\n \\"AccountName\\": \\"testname\\",\\n \\"PhysicSyncRead\\": 0,\\n \\"PhysicAsyncRead\\": 0,\\n \\"TrxId\\": \\"200000\\",\\n \\"ReturnRows\\": 0,\\n \\"Consume\\": 58,\\n \\"Vip\\": \\"100.115.XX.XX\\",\\n \\"NodeId\\": \\"pi-uf6k5f6g3912i****\\",\\n \\"SqlId\\": \\"c67649d4a7fb62c4f8c7a447c52b5b17\\",\\n \\"UseImciEngine\\": \\"true\\",\\n \\"ParallelQueueTime\\": \\"2\\",\\n \\"ParallelDegree\\": \\"10\\",\\n \\"Scnt\\": 10,\\n \\"Rows\\": 10,\\n \\"Frows\\": 10,\\n \\"TraceId\\": \\"14c93b7c7bf00000 \\",\\n \\"PhysicRead\\": 0,\\n \\"CpuTime\\": 100,\\n \\"Writes\\": 10,\\n \\"Collection\\": \\"None\\",\\n \\"TableName\\": \\"das\\",\\n \\"ConnectionId\\": \\"ld-******\\",\\n \\"Protocol\\": \\"MySQL\\",\\n \\"Params\\": \\"[1, \\\\\\"das\\\\\\"]\\",\\n \\"ClientIp\\": \\"10.0.0.1xx\\",\\n \\"ClientPort\\": 3306,\\n \\"RowKey\\": \\"23\\",\\n \\"AffectColumns\\": \\"[\\\\\\"col1\\\\\\"]\\"\\n }\\n ]\\n },\\n \\"Finish\\": \\"1\\",\\n \\"JobId\\": \\"MzI4NTZfUUlOR0RBT19DTTlfTlUyMF9NWVNRTF9PREJTX0xWU18zMjg1Nl9teXNxbF9XZWQgTWFyIDA2IDE0OjUwOjQ3IENTVCAyMDI0XzBfMzBfRXhlY3V0ZVRpbWVfREVTQ19XZWQgTWFyIDA2IDE0OjM1OjQ3IENTVCAyMDI0Xw==_1709708406465\\"\\n }\\n}","type":"json"}]', + ], + 'DescribeSqlLogStatistic' => [ + 'summary' => '调用DescribeSqlLogStatistic接口,查询DAS企业版的数据统计信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '198879', + 'abilityTreeNodes' => ['FEATUREhdmFT57I0'], ], 'parameters' => [ [ - 'name' => 'Engine', - 'in' => 'query', - 'schema' => [ - 'description' => '数据库引擎,取值:'."\n" - ."\n" - .'- **MySQL**'."\n" - .'- **PolarDBMySQL**'."\n" - .'- **PostgreSQL**', - 'type' => 'string', - 'required' => true, - 'example' => 'MySQL', - ], + 'name' => 'InstanceId', + 'in' => 'formData', + 'schema' => ['description' => '数据库实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze1jdv45i7l6****'], ], - [ - 'name' => 'InstanceIds', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '实例ID,多个实例ID间用逗号分隔。', - 'type' => 'string', - 'required' => false, - 'example' => 'rm-2ze8g2am97624****', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + .'* true:执行成功'."\n" + .'* false:执行失败'."\n", 'type' => 'string', 'example' => 'true'], + 'Data' => [ + 'title' => 'SqlLogStatistic', + 'description' => '返回数据。', + 'type' => 'object', + 'properties' => [ + 'Timestamp' => ['title' => '时间戳', 'description' => '时间戳,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1712568564928'], + 'HotSqlSize' => [ + 'title' => '热数据量', + 'description' => '总的热存储数据,单位字节(Byte)。', + 'type' => 'integer', + 'format' => 'int64', + 'enumValueTitles' => [], + 'example' => '1118042', + ], + 'ColdSqlSize' => ['title' => '冷数据量', 'description' => '总的冷存储数据,单位字节(Byte)。', 'type' => 'integer', 'format' => 'int64', 'example' => '8585901'], + 'ImportSqlSize' => ['title' => '引入量', 'description' => '最近一天该的数据引入量,单位字节(Byte)。', 'type' => 'integer', 'format' => 'int64', 'example' => '297245'], + 'FreeHotSqlSize' => ['description' => '免费的热存储数据,单位字节(Byte)。', 'type' => 'integer', 'format' => 'int64', 'example' => '297245'], + 'FreeColdSqlSize' => ['description' => '免费的冷存储数据,单位字节(Byte)。', 'type' => 'integer', 'format' => 'int64', 'example' => '5041450'], + 'TotalSqlSize' => ['description' => '总存储数据(冷数据+热数据)', 'type' => 'integer', 'format' => 'int64', 'example' => '9703943'], + ], + ], + ], + 'description' => '', ], ], - [ - 'name' => 'Keywords', - 'in' => 'query', - 'schema' => [ - 'description' => 'SQL文本关键词,多个关键词以空格分隔。', - 'type' => 'string', - 'required' => false, - 'example' => 'select update', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], - [ - 'name' => 'LogicalOperator', - 'in' => 'query', - 'schema' => [ - 'description' => '多个SQL文本关键词逻辑关系,当前支持:'."\n" - ."\n" - .'- **or**:或。'."\n" - .'- **and**:与。', - 'type' => 'string', - 'required' => false, - 'example' => 'or', - ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], - [ - 'name' => 'DbNames', - 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的数据库名。', - 'type' => 'string', - 'required' => false, - 'example' => 'testdb01', - ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"Timestamp\\": 1712568564928,\\n \\"HotSqlSize\\": 1118042,\\n \\"ColdSqlSize\\": 8585901,\\n \\"ImportSqlSize\\": 297245,\\n \\"FreeHotSqlSize\\": 297245,\\n \\"FreeColdSqlSize\\": 5041450,\\n \\"TotalSqlSize\\": 9703943\\n }\\n}","type":"json"}]', + 'title' => '查询DAS企业版数据统计信息', + 'description' => '使用该接口需满足以下前提条件:'."\n" + ."\n" + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeSqlLogStatistic'], ], + ], + 'ramActions' => [ [ - 'name' => 'Time', - 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的日期,格式为Unix时间戳,单位为毫秒。', - 'type' => 'string', - 'required' => true, - 'example' => '1642953600000', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeSqlLogStatistic', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'DescribeSqlLogTask' => [ + 'summary' => '调用DescribeSqlLogTask接口,查询DAS企业版离线任务详情。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '分页查询每页数据量,默认为10。', - 'type' => 'string', - 'required' => true, - 'example' => '10', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '213185', + 'abilityTreeNodes' => ['FEATUREhdmFT57I0'], + ], + 'parameters' => [ [ - 'name' => 'PageNo', - 'in' => 'query', - 'schema' => [ - 'description' => '分页查询的页码,从1开始,默认为1。', - 'type' => 'string', - 'required' => true, - 'example' => '1', - ], + 'name' => 'InstanceId', + 'in' => 'formData', + 'schema' => ['description' => '数据库实例ID。', 'type' => 'string', 'required' => false, 'example' => 'r-bp1nti25tc7bq5****'."\n"], ], [ - 'name' => 'OrderBy', - 'in' => 'query', - 'schema' => [ - 'description' => '排序字段,当前仅支持error_count(SQL执行错误次数)。', - 'type' => 'string', - 'required' => false, - 'example' => 'error_count', - ], + 'name' => 'TaskId', + 'in' => 'formData', + 'schema' => ['description' => '任务ID。', 'type' => 'string', 'required' => false, 'example' => 'a4f5c4494dbd6713185d87a97aa53e8'."\n"], ], [ - 'name' => 'Asc', - 'in' => 'query', - 'schema' => [ - 'description' => '是否升序排序,默认为**true**。'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'string', - 'required' => false, - 'example' => 'true', - ], + 'name' => 'PageNo', + 'in' => 'formData', + 'schema' => ['description' => '分页查询的页码,从1开始,默认为1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ - 'name' => 'Region', - 'in' => 'query', - 'schema' => [ - 'description' => '实例所属地域,取值:'."\n" - ."\n" - .'- **cn-china**:中国内地。'."\n" - .'- **cn-hongkong**:中国香港。'."\n" - .'- **ap-southeast-1**:新加坡。'."\n" - ."\n" - .'此参数只有在请求参数**InstanceIds**为空时有效。如果请求参数**InstanceIds**为空时,按照**Region**参数设置的地域获取数据,系统默认实例所属地域为**cn-china**;如果请求参数**InstanceIds**不为空时,即使设置了**Region**参数,也以**InstanceIds**所传入的第一个实例所在地域为准获取数据。'."\n" - ."\n" - .'> 在中国内地各地域创建的实例,传入此参数时,都为**cn-china**。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-china', - ], + 'name' => 'PageSize', + 'in' => 'formData', + 'schema' => ['description' => '分页查询每页最大记录数,最大支持100,默认为10。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => '根节点或根目录', + 'description' => '根节点或根目录', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。'."\n" + ."\n", 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], 'Data' => [ - 'description' => '详细信息列表,包括信息总数、错误码等。', + 'title' => 'SqlLogTaskDetail', + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'Total' => [ - 'description' => '总数据量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '19', - ], - 'PageNo' => [ - 'description' => '页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '每页数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Extra' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', + 'Name' => ['title' => '任务名', 'description' => '任务名称。', 'type' => 'string', 'example' => 'SQL audit export 1'], + 'TaskId' => ['title' => '任务ID', 'description' => '任务ID。', 'type' => 'string', 'example' => '9a4f5c4494dbd6713185d87a97aa53e8'."\n"], + 'TaskType' => ['title' => '任务类型', 'description' => '任务类型。'."\n" + ."\n" + .'- **Export**:导出任务。'."\n" + .'- **Query**:查询任务。', 'type' => 'string', 'example' => 'Query'], + 'CreateTime' => ['title' => '任务创建时间', 'description' => '任务创建时间,格式为unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1681363254423'."\n"], + 'Status' => ['title' => '任务状态', 'description' => '任务状态。'."\n" + .'- **INIT**:待调度 。'."\n" + .'- **RUNNING**:运行中。'."\n" + .'- **FAILED**:失败。'."\n" + .'- **CANCELED**:已取消。'."\n" + .'- **COMPLETED**:完成。'."\n" + .'> 当任务处于**COMPLETED**时,可以查看离线任务的结果。', 'type' => 'string', 'example' => 'COMPLETED'], + 'Expire' => ['description' => '任务是否过期。'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'false'."\n"], + 'Start' => ['title' => '查询开始时间', 'description' => '查询开始时间,格式为unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1596177993000'."\n"], + 'End' => ['title' => '查询结束时间', 'description' => '查询结束时间,格式为unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1608888296000'."\n"], + 'Filters' => [ + 'title' => '过滤条件', + 'description' => '过滤条件。', + 'type' => 'array', + 'items' => [ + 'description' => '查询筛选条件。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '过滤参数', 'description' => '过滤参数的名称。'."\n" + .'>支持的过滤参数及其取值请参考**返回参数补充说明**。', 'type' => 'string', 'example' => 'keyWords'."\n"], + 'Value' => ['title' => '过滤值', 'description' => '过滤参数的值。', 'type' => 'any', 'example' => 'select'], + ], + ], ], - 'List' => [ - 'description' => '执行失败的模板数据列表。', + 'Total' => ['title' => '总条数', 'description' => '任务总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'Queries' => [ + 'title' => '明细列表', + 'description' => '离线查询任务结果。'."\n" + .'当TaskType == Query 时才会返回该值。', 'type' => 'array', 'items' => [ - 'description' => '执行失败的模板数据列表。', + 'description' => '离线查询任务结果。', 'type' => 'object', 'properties' => [ - 'InstanceId' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze8g2am97624****', - ], - 'InstanceName' => [ - 'description' => '实例别名。', - 'type' => 'string', - 'example' => 'test01', - ], - 'Dbname' => [ - 'description' => '数据库名。', - 'type' => 'string', - 'example' => 'testdb01', - ], - 'SqlId' => [ - 'description' => 'SQL模板ID。', - 'type' => 'string', - 'example' => '2e8147b5ca2dfc640dfd5e43d96a****', - ], - 'SqlText' => [ - 'description' => '执行错误的SQL文本。', - 'type' => 'string', - 'example' => 'select * from test1', - ], - 'ErrorCode' => [ - 'description' => '错误码。', - 'type' => 'string', - 'example' => '1146', - ], - 'ErrorCount' => [ - 'description' => '错误次数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], + 'Vip' => ['description' => '查询链接的endpoint解析地址。', 'type' => 'string', 'example' => '10.146.XX.XX'], + 'NodeId' => ['description' => '子节点ID。', 'type' => 'string', 'example' => 'pi-bp1o58x3ib7e6****'."\n"], + 'SqlText' => ['description' => 'SQL语句详情。', 'type' => 'string', 'example' => 'SELECT @@session.transaction_read_only'], + 'SqlType' => ['description' => '选择SQL的类型。取值:'."\n" + .'- **SELECT**'."\n" + .'- **UPDATE**'."\n" + .'- **DELETE**', 'type' => 'string', 'example' => 'SELECT'], + 'State' => ['description' => '执行结果。'."\n" + ."\n" + .'- **0**:执行成功。'."\n" + .'- **1**:执行失败。', 'type' => 'string', 'example' => '0'], + 'DBName' => ['description' => '数据库名称。', 'type' => 'string', 'example' => 'testdb01'], + 'SqlId' => ['description' => 'SQL ID。', 'type' => 'string', 'example' => 'a4111670e80596c5bf42cf5154438a91'], + 'ExecuteTime' => ['title' => 'yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'', 'description' => '执行时间,格式为UTC时间:`yyyy-MM-ddTHH:mm:ssZ`。', 'type' => 'string', 'example' => '2023-12-07T02:15:32Z'], + 'OriginTime' => ['title' => 'ts unix', 'description' => '执行时间戳,格式为Unix时间,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1701886532000'."\n"], + 'AccountName' => ['description' => '数据库账号。', 'type' => 'string', 'example' => 'testname'."\n"], + 'HostAddress' => ['description' => '客户端IP地址。', 'type' => 'string', 'example' => '11.197.XX.XX'."\n"], + 'Consume' => ['description' => '执行耗时,单位毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '58'], + 'LockTime' => ['description' => '锁等待时间,单位毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'UpdateRows' => ['description' => '更新行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'ScanRows' => ['description' => '扫描行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'ReturnRows' => ['description' => '返回行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'LogicRead' => ['description' => '逻辑读。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'PhysicSyncRead' => ['description' => '物理同步读。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'PhysicAsyncRead' => ['description' => '物理异步读。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'ThreadId' => ['description' => '线程ID。', 'type' => 'integer', 'format' => 'int64', 'example' => 'None'], + 'TrxId' => ['description' => '事务ID。', 'type' => 'string', 'example' => '200000'."\n"], + 'Ext' => ['description' => '扩展信息字段,备用参数。', 'type' => 'string', 'example' => 'None'], + 'Scnt' => ['title' => 'polarx cn节点,dn请求总数', 'description' => 'PolarDB-X 2.0计算节点(CN)的DN请求数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'."\n"], + 'Rows' => ['title' => 'polarx cn节点,总更新/返回行数', 'description' => 'PolarDB-X 2.0数据库实例计算节点总更新或返回的行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'Frows' => ['title' => 'polarx cn节点,拉取行数', 'description' => 'PolarDB-X 2.0计算节点(CN)的拉取行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'TraceId' => ['description' => 'PolarDB-X 2.0的跟踪ID,即SQL在数据节点的执行ID。', 'type' => 'string', 'example' => '14c93b7c7bf00000 '], + 'UseImciEngine' => ['description' => 'PolarDB MySQL版实例是否使用列存索引。'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'string', 'example' => 'true'."\n"], + 'ParallelDegree' => ['description' => 'PolarDB MySQL版实例的并行排队时间,单位为毫秒。', 'type' => 'string', 'example' => '10'."\n"], + 'ParallelQueueTime' => ['description' => 'PolarDB MySQL版实例的并行度。', 'type' => 'string', 'example' => '2'], + 'PhysicRead' => ['description' => '物理读。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'CpuTime' => ['description' => 'CPU执行时间,单位为微秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'."\n"], + 'Writes' => ['description' => 'RDS SQL Server引擎的写入数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'Collection' => ['description' => '预留参数', 'type' => 'string', 'example' => 'None'], + 'SqlCommand' => ['title' => '查询中的SQL命令', 'description' => '查询中的SQL命令', 'type' => 'integer', 'format' => 'int64', 'example' => 'sql'], + 'ConnectionId' => ['title' => '查询中使用的连接ID', 'description' => '查询中使用的连接ID', 'type' => 'string', 'example' => 'ld-******'], + 'Protected' => ['title' => '查询项是否受保护', 'description' => '查询项是否受保护', 'type' => 'string', 'example' => 'MySQL'], + 'Params' => ['title' => '查询参数列表', 'description' => '查询参数列表', 'type' => 'string', 'example' => '[1, "das"]'], + 'ClientIp' => ['title' => '查询中的客户端IP地址', 'description' => '查询中的客户端IP地址', 'type' => 'string', 'example' => '10.0.0.1xx'], + 'ClientPort' => ['title' => '查询中客户端端口号', 'description' => '查询中客户端端口号', 'type' => 'integer', 'format' => 'int64', 'example' => '3306'], + 'RowKey' => ['title' => '查询中的行键', 'description' => '查询中的行键', 'type' => 'string', 'example' => '23'], + 'AffectColumns' => ['title' => '影响的列', 'description' => '影响的列', 'type' => 'string', 'example' => '["col1"]'], + 'TableName' => ['title' => '查询中使用的表名', 'description' => '查询中使用的表名', 'type' => 'string', 'example' => 'das'], ], ], ], + 'Export' => ['title' => '导出地址', 'description' => '导出任务的下载地址。当TaskType == Export 时才会返回该值。', 'type' => 'string', 'example' => '"https://das-sqllog-download-cn-hongkong.oss-cn-hongkong.aliyuncs.com/****"'], ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Total\\": 19,\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10,\\n \\"Extra\\": \\"None\\",\\n \\"List\\": [\\n {\\n \\"InstanceId\\": \\"rm-2ze8g2am97624****\\",\\n \\"InstanceName\\": \\"test01\\",\\n \\"Dbname\\": \\"testdb01\\",\\n \\"SqlId\\": \\"2e8147b5ca2dfc640dfd5e43d96a****\\",\\n \\"SqlText\\": \\"select * from test1\\",\\n \\"ErrorCode\\": \\"1146\\",\\n \\"ErrorCount\\": 10\\n }\\n ]\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetQueryOptimizeExecErrorStatsResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Total>19</Total>\\n <PageNo>1</PageNo>\\n <PageSize>10</PageSize>\\n <Extra>None</Extra>\\n <List>\\n <InstanceId>rm-2ze8g2am97624****</InstanceId>\\n <InstanceName>test01</InstanceName>\\n <Dbname>testdb01</Dbname>\\n <SqlId>2e8147b5ca2dfc640dfd5e43d96a****</SqlId>\\n <SqlText>select * from test1</SqlText>\\n <ErrorCode>1146</ErrorCode>\\n <ErrorCount>10</ErrorCount>\\n </List>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetQueryOptimizeExecErrorStatsResponse>","errorExample":""}]', - 'title' => '获取执行失败的模板数据', - 'description' => '- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 本接口适用的数据库引擎为:'."\n" - .' - RDS MySQL'."\n" - .' - PolarDB MySQL版'."\n" - .' - RDS PostgreSQL', - ], - 'GetQueryOptimizeExecErrorSample' => [ - 'summary' => '调用GetQueryOptimizeExecErrorSample接口,获取执行失败的样本数据。', - 'methods' => [ - 'get', - 'post', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"Name\\": \\"SQL audit export 1\\",\\n \\"TaskId\\": \\"9a4f5c4494dbd6713185d87a97aa53e8\\\\n\\",\\n \\"TaskType\\": \\"Query\\",\\n \\"CreateTime\\": 1681363254423,\\n \\"Status\\": \\"COMPLETED\\",\\n \\"Expire\\": true,\\n \\"Start\\": 1596177993000,\\n \\"End\\": 1608888296000,\\n \\"Filters\\": [\\n {\\n \\"Key\\": \\"keyWords\\\\n\\",\\n \\"Value\\": \\"select\\"\\n }\\n ],\\n \\"Total\\": 1,\\n \\"Queries\\": [\\n {\\n \\"Vip\\": \\"10.146.XX.XX\\",\\n \\"NodeId\\": \\"pi-bp1o58x3ib7e6****\\\\n\\",\\n \\"SqlText\\": \\"SELECT @@session.transaction_read_only\\",\\n \\"SqlType\\": \\"SELECT\\",\\n \\"State\\": \\"0\\",\\n \\"DBName\\": \\"testdb01\\",\\n \\"SqlId\\": \\"a4111670e80596c5bf42cf5154438a91\\",\\n \\"ExecuteTime\\": \\"2023-12-07T02:15:32Z\\",\\n \\"OriginTime\\": 1701886532000,\\n \\"AccountName\\": \\"testname\\\\n\\",\\n \\"HostAddress\\": \\"11.197.XX.XX\\\\n\\",\\n \\"Consume\\": 58,\\n \\"LockTime\\": 0,\\n \\"UpdateRows\\": 0,\\n \\"ScanRows\\": 0,\\n \\"ReturnRows\\": 0,\\n \\"LogicRead\\": 0,\\n \\"PhysicSyncRead\\": 0,\\n \\"PhysicAsyncRead\\": 0,\\n \\"ThreadId\\": 0,\\n \\"TrxId\\": \\"200000\\\\n\\",\\n \\"Ext\\": \\"None\\",\\n \\"Scnt\\": 10,\\n \\"Rows\\": 10,\\n \\"Frows\\": 10,\\n \\"TraceId\\": \\"14c93b7c7bf00000 \\",\\n \\"UseImciEngine\\": \\"true\\\\n\\",\\n \\"ParallelDegree\\": \\"10\\\\n\\",\\n \\"ParallelQueueTime\\": \\"2\\",\\n \\"PhysicRead\\": 0,\\n \\"CpuTime\\": 100,\\n \\"Writes\\": 10,\\n \\"Collection\\": \\"None\\",\\n \\"SqlCommand\\": 0,\\n \\"ConnectionId\\": \\"ld-******\\",\\n \\"Protected\\": \\"MySQL\\",\\n \\"Params\\": \\"[1, \\\\\\"das\\\\\\"]\\",\\n \\"ClientIp\\": \\"10.0.0.1xx\\",\\n \\"ClientPort\\": 3306,\\n \\"RowKey\\": \\"23\\",\\n \\"AffectColumns\\": \\"[\\\\\\"col1\\\\\\"]\\",\\n \\"TableName\\": \\"das\\"\\n }\\n ],\\n \\"Export\\": \\"\\\\\\"https://das-sqllog-download-cn-hongkong.oss-cn-hongkong.aliyuncs.com/****\\\\\\"\\"\\n }\\n}","type":"json"}]', + 'title' => '查询DAS企业版离线任务详情', + 'description' => '使用该接口需满足以下前提条件:'."\n" + ."\n" + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'responseParamsDescription' => '**Key**支持的参数和取值:'."\n" + ."\n" + .'- **KeyWords**:关键字,多个关键字间使用空格隔开。'."\n" + .'- **LogicalOperator**:关键字间的逻辑操作,取值为and或or。'."\n" + .'- **AccountName**:用户名,可以传递多个的,用逗号分开,上限为5。'."\n" + .'- **dbName**:数据库名称,可以传递多个的,用逗号分开,上限为5。'."\n" + .'- **HostAddress**:客户端IP地址,可以传递多个的,用逗号分开,上限为5。'."\n" + .'- **MaxConsume**:最大耗时,单位us。'."\n" + .'- **MinConsume**:最小耗时,单位us。'."\n" + .'- **MaxScanRows**:最大扫描行。'."\n" + .'- **MinScanRows**:最小扫描行。'."\n" + .'- **SqlType**:SQL类型,取值select、update、insert或delete。'."\n" + .'- **State**:执行结果,取值0(成功)或1(失败)。'."\n" + .'- **ThreadId**:线程ID。'."\n" + .'- **SortKey**:排序列名称,取值ScanRows(扫描行数)、UpdateRows(更新行数)、Consume(耗时)、ExecuteTime(执行时间)、ReturnRows(返回行数)、LockTime(锁等待时间)、Frows(PolarDB-X 2.0计算节点的拉取行数)、Scnt(PolarDB-X 2.0计算节点的DN请求数)、CpuTime(CPU执行时间)、PhysicalRead(物理读)。'."\n" + .'- **SortMethod**:排序方式,取值DESC(降序)、ASC(升序)。默认为DESC。'."\n" + .'- **TraceId**:PolarDB-X 2.0实例的跟踪ID。'."\n" + .'- **MinRows**:最小更新行数。'."\n" + .'- **MaxRows**:最大更新行数。'."\n" + .'- **MinScnt**:PolarDB-X 2.0计算节点(CN)的DN最小请求数。'."\n" + .'- **MaxScnt**:PolarDB-X 2.0计算节点(CN)的DN最大请求数。'."\n" + .'- **TrxId**:事务ID。'."\n" + .'- **Fail**:错误码。'."\n" + .'- **SqlId**:SQL ID。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeSqlLogTask'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeSqlLogTask', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeSqlLogTasks' => [ + 'summary' => '查询实例的审计日志任务列表。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhdmTQGIFY', - ], + 'abilityTreeCode' => '199696', + 'abilityTreeNodes' => ['FEATUREhdmFT57I0'], ], 'parameters' => [ [ - 'name' => 'Engine', - 'in' => 'query', - 'schema' => [ - 'description' => '数据库引擎,取值:'."\n" - ."\n" - .'- **MySQL**'."\n" - .'- **PolarDBMySQL**'."\n" - .'- **PostgreSQL**', - 'type' => 'string', - 'required' => true, - 'example' => 'MySQL', - ], + 'name' => 'InstanceId', + 'in' => 'formData', + 'schema' => ['description' => '数据库实例ID。', 'type' => 'string', 'required' => false, 'example' => 'r-bp1nti25tc7bq5****'], ], [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****', - ], + 'name' => 'NodeId', + 'in' => 'formData', + 'schema' => ['description' => '节点ID。'."\n" + .'>该参数仅适用于集群版实例,可以选择查询指定节点离线任务。若不传该参数,默认返回主节点离线任务。', 'type' => 'string', 'required' => false, 'example' => 'pi-bp1o58x3ib7e6****'], ], [ - 'name' => 'SqlId', - 'in' => 'query', + 'name' => 'Filters', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'SQL模板ID,您可调用[GetQueryOptimizeExecErrorStats](~~405235~~)接口查询SQL模板ID。', - 'type' => 'string', - 'required' => true, - 'example' => '2e8147b5ca2dfc640dfd5e43d96a****', + 'description' => '查询筛选条件列表。', + 'type' => 'array', + 'items' => [ + 'description' => '查询筛选条件。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '过滤参数', 'description' => '过滤参数。'."\n" + ."\n" + .'> 支持的过滤参数及其取值请参考**请求参数补充说明**。', 'type' => 'string', 'required' => false, 'example' => 'keyWords'], + 'Value' => ['description' => '过滤参数的值。', 'type' => 'string', 'required' => false, 'example' => 'select'."\n"], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 100, ], ], [ - 'name' => 'Time', - 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的日期,格式为Unix时间戳,单位为毫秒。', - 'type' => 'string', - 'required' => true, - 'example' => '1642953600000', - ], + 'name' => 'StartTime', + 'in' => 'formData', + 'schema' => ['description' => '查询开始时间,格式为unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1596177993000'], + ], + [ + 'name' => 'EndTime', + 'in' => 'formData', + 'schema' => ['description' => '查询结束时间,格式为unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1608888296000'], + ], + [ + 'name' => 'PageNo', + 'in' => 'formData', + 'schema' => ['description' => '分页查询的页码,从1开始,默认为1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'formData', + 'schema' => ['description' => '每页最大记录数,最大支持100,默认值为10。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], ], ], 'responses' => [ @@ -6664,141 +7117,128 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], 'Data' => [ - 'description' => '详细信息列表。', + 'title' => 'ListResult<SqlLogTask>', + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'Total' => [ - 'description' => '总数据量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'PageNo' => [ - 'description' => '备用参数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => 'None', - ], - 'PageSize' => [ - 'description' => '备用参数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => 'None', - ], - 'Extra' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', - ], 'List' => [ 'description' => '返回信息列表。', 'type' => 'array', 'items' => [ + 'description' => '返回信息列表。', 'type' => 'object', 'properties' => [ - 'OrigHost' => [ - 'description' => '执行SQL的客户端IP地址。', - 'type' => 'string', - 'example' => '100.104.XX.XX', - ], - 'User' => [ - 'description' => '执行SQL的客户端用户名。', - 'type' => 'string', - 'example' => 'test01', - ], - 'Dbname' => [ - 'description' => '数据库名。', - 'type' => 'string', - 'example' => 'testdb01', - ], - 'SqlId' => [ - 'description' => 'SQL模板ID。', - 'type' => 'string', - 'example' => '2e8147b5ca2dfc640dfd5e43d96a****', - ], - 'SqlText' => [ - 'description' => '执行错误的SQL文本。', - 'type' => 'string', - 'example' => 'select * from test1', - ], - 'ErrorCode' => [ - 'description' => '错误码。', - 'type' => 'string', - 'example' => '1146', - ], - 'Timestamp' => [ - 'description' => '错误SQL执行的时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1643020306739', + 'TaskId' => ['description' => '任务ID。', 'type' => 'string', 'example' => '9a4f5c4494dbd6713185d87a97aa53e8'], + 'InstanceId' => ['title' => '实例标识', 'description' => '数据库实例ID。', 'type' => 'string', 'example' => 'r-bp1nti25tc7bq5****'."\n"], + 'Name' => ['title' => '任务别名', 'description' => '任务名称。', 'type' => 'string', 'example' => 'SQL audit export 1'], + 'Start' => ['title' => '查询开始时间', 'description' => '任务开始时间,格式为unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1683859555482'], + 'End' => ['title' => '查询结束时间', 'description' => '任务结束时间,格式为unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1705975320000'], + 'Status' => ['title' => '任务状态', 'description' => '任务状态。'."\n" + ."\n" + .'- **INIT**:待调度 。'."\n" + .'- **RUNNING**:运行中。'."\n" + .'- **FAILED**:失败。'."\n" + .'- **CANCELED**:已取消。'."\n" + .'- **COMPLETED**:完成。'."\n" + ."\n" + .'> 当任务处于**COMPLETED**时,可以查看离线任务的结果。', 'type' => 'string', 'example' => 'RUNNING'], + 'LogCount' => ['title' => '日志总数', 'description' => '日志总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '99999'], + 'Progress' => ['title' => '任务进度', 'description' => '任务进度。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'ScanFileSize' => ['title' => '扫描的文件量', 'description' => '扫描的文件数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '3000'], + 'Expire' => ['title' => '任务是否过期', 'description' => '任务是否过期。'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'false'], + 'CreateTime' => ['title' => '任务创建时间', 'description' => '任务创建时间,格式为unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1681363254423'], + 'AnalysisTaskFinishTime' => ['title' => '分析任务完成时间', 'description' => '分析任务完成时间,格式为unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1712751923000'], + 'AnalysisTaskStatus' => ['description' => '分析任务状态。'."\n" + ."\n" + .'> 系统内部参数,用户无需关注。', 'type' => 'string', 'example' => 'SCAN_ANALYZE_COMPLETED'], + 'Result' => ['title' => 'oss链接或其他信息', 'description' => '任务类型为**Export**时的链接地址。', 'type' => 'string', 'example' => 'https://das-sqllog-download-cn-shanghai.oss-cn-shanghai.aliyuncs.com/la'], + 'TaskType' => ['description' => '任务类型。'."\n" + ."\n" + .'- **Export**:导出任务。'."\n" + .'- **Query**:查询任务。', 'type' => 'string', 'example' => 'Export'], + 'Filters' => [ + 'description' => '查询筛选条件列表。', + 'type' => 'array', + 'items' => [ + 'description' => '查询筛选条件。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '过滤参数。'."\n" + ."\n" + .'> 支持的过滤参数及其取值请参考**请求参数补充说明**。', 'type' => 'string', 'example' => 'keyWords'."\n"], + 'Value' => ['description' => '过滤参数的值。', 'type' => 'string', 'example' => 'select'."\n"], + ], + ], ], + 'InnerResult' => ['description' => 'VPC内网地址', 'type' => 'string', 'example' => 'https://das-sqllog-download-oss-cn-shanghai-internal.aliyuncs.com'."\n" + .'/la'], ], ], ], + 'Total' => ['description' => '任务数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '40'], + 'PageNo' => ['description' => '页码。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'PageSize' => ['description' => '每页数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Total\\": 2,\\n \\"PageNo\\": 0,\\n \\"PageSize\\": 0,\\n \\"Extra\\": \\"None\\",\\n \\"List\\": [\\n {\\n \\"OrigHost\\": \\"100.104.XX.XX\\",\\n \\"User\\": \\"test01\\",\\n \\"Dbname\\": \\"testdb01\\",\\n \\"SqlId\\": \\"2e8147b5ca2dfc640dfd5e43d96a****\\",\\n \\"SqlText\\": \\"select * from test1\\",\\n \\"ErrorCode\\": \\"1146\\",\\n \\"Timestamp\\": 1643020306739\\n }\\n ]\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetQueryOptimizeExecErrorSampleResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Total>2</Total>\\n <Extra>None</Extra>\\n <List>\\n <OrigHost>100.104.XX.XX</OrigHost>\\n <User>test01</User>\\n <Dbname>testdb01</Dbname>\\n <SqlId>2e8147b5ca2dfc640dfd5e43d96a****</SqlId>\\n <SqlText>select * from test1</SqlText>\\n <ErrorCode>1146</ErrorCode>\\n <Timestamp>1643020306739</Timestamp>\\n </List>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetQueryOptimizeExecErrorSampleResponse>","errorExample":""}]', - 'title' => '获取执行失败的样本数据', - 'description' => '- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于2.1.8,建议使用最新版本。'."\n" - .'- 使用DAS的SDK的版本为2.1.8或以上。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 本接口适用的数据库引擎为:'."\n" - .' - RDS MySQL'."\n" - .' - PolarDB MySQL版'."\n" - .' - RDS PostgreSQL', - ], - 'GetQueryOptimizeSolution' => [ - 'summary' => '调用GetQueryOptimizeSolution接口,获取治理建议。', - 'methods' => [ - 'get', - 'post', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"List\\": [\\n {\\n \\"TaskId\\": \\"9a4f5c4494dbd6713185d87a97aa53e8\\",\\n \\"InstanceId\\": \\"r-bp1nti25tc7bq5****\\\\n\\",\\n \\"Name\\": \\"SQL audit export 1\\",\\n \\"Start\\": 1683859555482,\\n \\"End\\": 1705975320000,\\n \\"Status\\": \\"RUNNING\\",\\n \\"LogCount\\": 99999,\\n \\"Progress\\": 100,\\n \\"ScanFileSize\\": 3000,\\n \\"Expire\\": false,\\n \\"CreateTime\\": 1681363254423,\\n \\"AnalysisTaskFinishTime\\": 1712751923000,\\n \\"AnalysisTaskStatus\\": \\"SCAN_ANALYZE_COMPLETED\\",\\n \\"Result\\": \\"https://das-sqllog-download-cn-shanghai.oss-cn-shanghai.aliyuncs.com/la\\",\\n \\"TaskType\\": \\"Export\\",\\n \\"Filters\\": [\\n {\\n \\"Key\\": \\"keyWords\\\\n\\",\\n \\"Value\\": \\"select\\\\n\\"\\n }\\n ],\\n \\"InnerResult\\": \\"https://das-sqllog-download-oss-cn-shanghai-internal.aliyuncs.com\\\\n/la\\"\\n }\\n ],\\n \\"Total\\": 40,\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10\\n }\\n}","type":"json"}]', + 'title' => '查询DAS企业版离线任务列表', + 'description' => '使用该接口需满足以下前提条件:'."\n" + ."\n" + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'requestParamsDescription' => '**Key**支持的参数和取值:'."\n" + ."\n" + .'- **taskId**:任务ID。'."\n" + .'- **keyWords**:任务名。'."\n" + .'- **status**:状态筛选,取值INIT(待调度)、RUNNING(运行中)、FAILED(失败)、CANCELED(已取消)、COMPLETED(完成)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeSqlLogTasks'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'hdm:DescribeSqlLogTasks', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeTopBigKeys' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6809,184 +7249,122 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhdmTQGIFY', - ], + 'abilityTreeNodes' => ['FEATUREhdmTQGIFY'], ], 'parameters' => [ [ - 'name' => 'Engine', + 'name' => 'ConsoleContext', 'in' => 'query', - 'schema' => [ - 'description' => '数据库引擎,取值:'."\n" - ."\n" - .'- **MySQL**'."\n" - .'- **PolarDBMySQL**'."\n" - .'- **PostgreSQL**', - 'type' => 'string', - 'required' => true, - 'example' => 'MySQL', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ - 'name' => 'SqlId', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'SQL模板ID。'."\n" - .'您可调用[GetQueryOptimizeDataStats](~~405261~~)接口查询SQL模板ID。', - 'type' => 'string', - 'required' => true, - 'example' => '05fecf7e7b3efd123c4d5197035f****', - ], + 'schema' => ['description' => 'Redis实例ID。', 'type' => 'string', 'required' => true, 'example' => 'r-bp18ff4a195d****'], ], [ - 'name' => 'RuleIds', + 'name' => 'NodeId', 'in' => 'query', - 'schema' => [ - 'description' => '规则ID,具体信息请参见[查询治理](~~290038~~)。', - 'type' => 'string', - 'required' => true, - 'example' => 'LARGE_ROWS_EXAMINED', - ], + 'schema' => ['description' => 'Redis实例的数据分片ID。', 'type' => 'string', 'required' => false, 'example' => 'r-x****-db-0'], ], [ - 'name' => 'InstanceId', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - .'您可调用[GetQueryOptimizeDataStats](~~405261~~)接口查询实例ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'rm-bp1o3z6beqpej****', - ], + 'schema' => ['description' => '查询任务开始时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'string', 'required' => true, 'example' => '1596177993000'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '查询任务结束时间,格式为Unix时间戳,单位为毫秒。'."\n" + .'> - 查询任务结束时间需晚于查询任务开始时间。'."\n" + .'> - 仅支持最大查询时间范围为4天内的数据。'."\n" + .'> - **StartTime**和**EndTime**最大查询间隔为3小时内。', 'type' => 'string', 'required' => true, 'example' => '1596177993001'], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Message' => ['description' => '请求返回消息。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], 'Data' => [ - 'description' => '详细信息列表。', 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'Total' => [ - 'description' => '总数据量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'PageNo' => [ - 'description' => '备用参数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => 'None', - ], - 'PageSize' => [ - 'description' => '备用参数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => 'None', - ], - 'Extra' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', - ], - 'List' => [ - 'description' => '治理建议列表。', + 'BigKey' => [ + 'description' => '大Key详细信息列表。'."\n" + ."\n" + .'> 查询时间段内没有大Key时,返回为空。', 'type' => 'array', 'items' => [ - 'description' => '治理建议列表。', 'type' => 'object', 'properties' => [ - 'Level' => [ - 'description' => '建议级别:'."\n" - ."\n" - .'- **INFO**:提示。'."\n" - .'- **WARN**:警告。', - 'type' => 'string', - 'example' => 'INFO', - ], - 'RuleId' => [ - 'description' => '规则ID,具体信息请参见[查询治理](~~290038~~)。', - 'type' => 'string', - 'example' => 'LARGE_ROWS_EXAMINED', - ], - 'Solution' => [ - 'description' => '解决方案,具体信息请参见[查询治理](~~290038~~)。', - 'type' => 'string', - 'example' => 'LARGE_ROWS_EXAMINED_SOLUTION', - ], - 'SolutionExt' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', - ], + 'Key' => ['description' => '具体的Key。', 'type' => 'string', 'example' => 'abc:def:eng'], + 'Db' => ['description' => 'Key所在的DB。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'KeyType' => ['description' => 'Key的类型。', 'type' => 'string', 'example' => 'zset'], + 'Size' => ['description' => '元素的个数。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'NodeId' => ['description' => 'Redis实例的数据分片ID。', 'type' => 'string', 'example' => 'r-x****-db-0'], ], + 'description' => '', ], ], ], + 'description' => '', ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '30FF4E40-17F3-5A51-AB23-43F30D9B****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Total\\": 1,\\n \\"PageNo\\": 0,\\n \\"PageSize\\": 0,\\n \\"Extra\\": \\"None\\",\\n \\"List\\": [\\n {\\n \\"Level\\": \\"INFO\\",\\n \\"RuleId\\": \\"LARGE_ROWS_EXAMINED\\",\\n \\"Solution\\": \\"LARGE_ROWS_EXAMINED_SOLUTION\\",\\n \\"SolutionExt\\": \\"None\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"30FF4E40-17F3-5A51-AB23-43F30D9B****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetQueryOptimizeSolutionResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Total>1</Total>\\n <Extra>None</Extra>\\n <List>\\n <Level>INFO</Level>\\n <RuleId>LARGE_ROWS_EXAMINED</RuleId>\\n <Solution>LARGE_ROWS_EXAMINED_SOLUTION</Solution>\\n <SolutionExt>None</SolutionExt>\\n </List>\\n </Data>\\n <RequestId>30FF4E40-17F3-5A51-AB23-43F30D9B****</RequestId>\\n <Success>true</Success>\\n</GetQueryOptimizeSolutionResponse>","errorExample":""}]', - 'title' => '获取治理建议', - 'description' => '- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + 'title' => ' 获取排名前100的大Key', + 'summary' => '调用DescribeTopBigKeys接口,获取一段时间内排名前100的大Key。', + 'description' => '对数据结构为List、Hash、Set、Zset的Key,按照Key中元素的数量排序并展示排名前3的Key,记录为大Key。'."\n" + ."\n" + .'- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于4.3.3,建议使用最新版本。'."\n" + .'- 使用DAS的SDK的版本为1.0.2或以上。'."\n" .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 本接口适用的数据库引擎为:'."\n" - .' - RDS MySQL'."\n" - .' - PolarDB MySQL版'."\n" - .' - RDS PostgreSQL', - ], - 'GetQueryOptimizeRuleList' => [ - 'summary' => '调用GetQueryOptimizeRuleList接口,获取规则列表。', - 'methods' => [ - 'get', + .'- 本接口只适用于如下Redis实例:'."\n" + .' - 实例为Redis开源版或Tair(企业版)内存型。'."\n" + .' - 实例的小版本为最新。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeTopBigKeys'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeTopBigKeys', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Data\\": {\\n \\"BigKey\\": [\\n {\\n \\"Key\\": \\"abc:def:eng\\",\\n \\"Db\\": 0,\\n \\"KeyType\\": \\"zset\\",\\n \\"Size\\": 2,\\n \\"NodeId\\": \\"r-x****-db-0\\"\\n }\\n ]\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeTopBigKeysResponse>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Data>\\n <Key>abc:def:eng</Key>\\n <Db>0</Db>\\n <KeyType>zset</KeyType>\\n <Size>2</Size>\\n <NodeId>r-x****-db-0</NodeId>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</DescribeTopBigKeysResponse>","errorExample":""}]', + ], + 'DescribeTopHotKeys' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6995,266 +7373,229 @@ 'operationType' => 'read', 'systemTags' => [ 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhdmROFBLE'], ], 'parameters' => [ [ - 'name' => 'Engine', + 'name' => 'ConsoleContext', 'in' => 'query', - 'schema' => [ - 'description' => '数据库引擎,取值:'."\n" - ."\n" - .'- **MySQL**'."\n" - .'- **PolarDBMySQL**'."\n" - .'- **PostgreSQL**', - 'type' => 'string', - 'required' => true, - 'example' => 'MySQL', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ - 'name' => 'InstanceIds', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID,多个实例ID用逗号分隔。', - 'type' => 'string', - 'required' => false, - 'example' => 'rm-2ze8g2am97624****', - ], + 'schema' => ['description' => 'Redis实例ID。', 'type' => 'string', 'required' => true, 'example' => 'r-bp18ff4a195d****'], ], [ - 'name' => 'TagNames', + 'name' => 'NodeId', 'in' => 'query', - 'schema' => [ - 'title' => '', - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], + 'schema' => ['description' => 'Redis实例的数据分片ID。', 'type' => 'string', 'required' => false, 'example' => 'r-****-db-0'], ], [ - 'name' => 'Region', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '实例所属地域,取值:'."\n" - ."\n" - .'- **cn-china**:中国内地。'."\n" - .'- **cn-hongkong**:中国香港。'."\n" - .'- **ap-southeast-1**:新加坡。'."\n" - ."\n" - .'此参数只有在请求参数**InstanceIds**为空时有效。如果请求参数**InstanceIds**为空时,按照**Region**参数设置的地域获取数据,系统默认实例所属地域为**cn-china**;如果请求参数**InstanceIds**不为空时,即使设置了**Region**参数,也以**InstanceIds**所传入的第一个实例所在地域为准获取数据。'."\n" - ."\n" - .'> 在中国内地各地域创建的实例,传入此参数时,都为**cn-china**。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-china', - ], + 'schema' => ['description' => '查询任务开始时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'string', 'required' => true, 'example' => '1596177993000'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '查询任务结束时间,格式为Unix时间戳,单位为毫秒。'."\n" + .'> - 查询任务结束时间需晚于查询任务开始时间。'."\n" + .'> - 仅支持最大查询时间范围为4天内的数据。'."\n" + .'> - **StartTime**和**EndTime**最大查询间隔为3小时内。', 'type' => 'string', 'required' => true, 'example' => '1596177993001'], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Message' => ['description' => '请求返回消息。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], 'Data' => [ - 'description' => '详细信息列表。', 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'Total' => [ - 'description' => '总数据量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'PageNo' => [ - 'description' => '备用参数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => 'None', - ], - 'PageSize' => [ - 'description' => '备用参数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => 'None', - ], - 'Extra' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', - ], - 'List' => [ - 'description' => '规则数据列表。', + 'HotKey' => [ + 'description' => '热Key详细信息列表。', 'type' => 'array', 'items' => [ - 'description' => '规则数据列表。', + 'description' => '热key详细信息列表。', 'type' => 'object', 'properties' => [ - 'Type' => [ - 'description' => '规则类型,当前只支持 **Predefined**(系统预定义)。', - 'type' => 'string', - 'example' => 'Predefined', - ], - 'Name' => [ - 'description' => '规则名,具体信息请参见[查询治理](~~290038~~)。', - 'type' => 'string', - 'example' => 'LARGE_ROWS_EXAMINED', - ], - 'RuleId' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', - ], + 'Db' => ['description' => 'Key所在的DB。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Key' => ['description' => '具体的Key。', 'type' => 'string', 'example' => 'abc:def:eng'], + 'Hot' => ['description' => 'Key的访问频次,即Key的每秒访问数。', 'type' => 'string', 'example' => '5500~6000'], + 'KeyType' => ['description' => 'Key类型。', 'type' => 'string', 'example' => 'zset'], + 'Lfu' => ['description' => 'LFU算法的统计值。', 'type' => 'integer', 'format' => 'int32', 'example' => '253'], + 'NodeId' => ['description' => 'Redis实例的数据分片ID。', 'type' => 'string', 'example' => 'r-x****-db-0'], + 'InBytes' => ['description' => '入流量,单位Byte。仅按流量统计的热 Key 返回。', 'type' => 'integer', 'format' => 'int64', 'example' => '4502693'], + 'OutBytes' => ['description' => '出流量,单位Byte。仅按流量统计的热 Key 返回。', 'type' => 'integer', 'format' => 'int64', 'example' => '1291659'], + 'Category' => ['description' => '热Key类别:'."\n" + .'- **qps**:按QPS统计的热Key。'."\n" + .'- **traffic**:按流量统计的热Key。', 'type' => 'string', 'example' => 'qps'], ], ], ], ], + 'description' => '', ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Total\\": 1,\\n \\"PageNo\\": 0,\\n \\"PageSize\\": 0,\\n \\"Extra\\": \\"None\\",\\n \\"List\\": [\\n {\\n \\"Type\\": \\"Predefined\\",\\n \\"Name\\": \\"LARGE_ROWS_EXAMINED\\",\\n \\"RuleId\\": \\"None\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetQueryOptimizeRuleListResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Total>1</Total>\\n <Extra>None</Extra>\\n <List>\\n <Type>Predefined</Type>\\n <Name>LARGE_ROWS_EXAMINED</Name>\\n <RuleId>None</RuleId>\\n </List>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetQueryOptimizeRuleListResponse>","errorExample":""}]', - 'title' => '获取规则列表', - 'description' => '- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于2.1.8,建议使用最新版本。'."\n" - .'- 使用DAS的SDK的版本为2.1.8或以上。'."\n" + 'title' => '获取排名前100的热Key', + 'summary' => '调用DescribeTopHotKeys接口,获取一段时间内排名前100的热Key。', + 'description' => '当某个Key的QPS大于3,000时会被记录为热点Key。'."\n" + ."\n" + .'- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于4.3.3,建议使用最新版本。'."\n" + .'- 使用DAS的SDK的版本为1.0.2或以上。'."\n" .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 本接口适用的数据库引擎为:'."\n" - .' - RDS MySQL'."\n" - .' - PolarDB MySQL版'."\n" - .' - RDS PostgreSQL', - ], - 'GetQueryOptimizeDataTrend' => [ - 'summary' => '调用GetQueryOptimizeDataTrend接口,获取查询治理趋势数据。', - 'methods' => [ - 'get', + .'- 本接口只适用于如下Redis实例:'."\n" + .' - 实例为Redis开源版或Tair(企业版)内存型。'."\n" + .' - 实例的小版本为最新。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeTopHotKeys'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeTopHotKeys', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Data\\": {\\n \\"HotKey\\": [\\n {\\n \\"Db\\": 0,\\n \\"Key\\": \\"abc:def:eng\\",\\n \\"Hot\\": \\"5500~6000\\",\\n \\"KeyType\\": \\"zset\\",\\n \\"Lfu\\": 253,\\n \\"NodeId\\": \\"r-x****-db-0\\",\\n \\"InBytes\\": 4502693,\\n \\"OutBytes\\": 1291659,\\n \\"Category\\": \\"qps\\"\\n }\\n ]\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeTopHotKeysResponse>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Data>\\n <Db>0</Db>\\n <Key>abc:def:eng</Key>\\n <Hot>5500~6000</Hot>\\n <KeyType>zset</KeyType>\\n <Lfu>253</Lfu>\\n <NodeId>r-x****-db-0</NodeId>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</DescribeTopHotKeysResponse>","errorExample":""}]', + ], + 'DisableAllSqlConcurrencyControlRules' => [ + 'summary' => '调用DisableAllSqlConcurrencyControlRules接口,关闭全部正在执行的限流规则。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'Engine', + 'name' => 'ConsoleContext', 'in' => 'query', - 'schema' => [ - 'description' => '数据库引擎,取值:'."\n" - ."\n" - .'- **MySQL**'."\n" - .'- **PolarDBMySQL**'."\n" - .'- **PostgreSQL**', - 'type' => 'string', - 'required' => true, - 'example' => 'MySQL', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ - 'name' => 'InstanceIds', + 'name' => 'InstanceId', 'in' => 'query', + 'schema' => ['description' => '实例ID。'."\n" + .'>仅支持RDS MySQL和 PolarDB MySQL版实例。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze1jdv45i7l6****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '实例ID,多个实例ID用逗号分隔。', - 'type' => 'string', - 'required' => false, - 'example' => 'rm-2ze8g2am97624****', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'Data' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功'."\n" + .'- **false**:执行失败', 'type' => 'string', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + ], + 'title' => ' 关闭全部正在执行的限流规则', + 'description' => '本接口适用的数据库引擎为:'."\n" + .'- RDS MySQL'."\n" + .'- PolarDB MySQL版', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DisableAllSqlConcurrencyControlRules'], + ], + ], + 'ramActions' => [ [ - 'name' => 'TagNames', - 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'hdm:DisableAllSqlConcurrencyControlRules', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": \\"None\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DisableAllSqlConcurrencyControlRulesResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</DisableAllSqlConcurrencyControlRulesResponse>","errorExample":""}]', + ], + 'DisableAutoResourceOptimizeRules' => [ + 'summary' => '调用DisableAutoResourceOptimizeRules接口,批量关闭指定数据库实例的空间碎片自动回收功能。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Start', - 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的起始日期,格式为Unix时间戳,单位为毫秒。'."\n" - ."\n" - .'> 查询开始时间最大不能早于当前时间2个月。', - 'type' => 'string', - 'required' => true, - 'example' => '1642435200000', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhdmTFSOG0'], + ], + 'parameters' => [ [ - 'name' => 'End', + 'name' => 'ConsoleContext', 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的终止日期,格式为Unix时间戳,单位为毫秒。'."\n" - ."\n" - .'> 查询结束时间需晚于查询开始时间,最晚只能查询到当天凌晨0点的数据。', - 'type' => 'string', - 'required' => true, - 'example' => '1643040000000', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ - 'name' => 'Region', + 'name' => 'InstanceIds', 'in' => 'query', - 'schema' => [ - 'description' => '实例所属地域,取值:'."\n" - ."\n" - .'- **cn-china**:中国内地。'."\n" - .'- **cn-hongkong**:中国香港。'."\n" - .'- **ap-southeast-1**:新加坡。'."\n" - ."\n" - .'此参数只有在请求参数**InstanceIds**为空时有效。如果请求参数**InstanceIds**为空时,按照**Region**参数设置的地域获取数据,系统默认实例所属地域为**cn-china**;如果请求参数**InstanceIds**不为空时,即使设置了**Region**参数,也以**InstanceIds**所传入的第一个实例所在地域为准获取数据。'."\n" - ."\n" - .'> 在中国内地各地域创建的实例,传入此参数时,都为**cn-china**。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-china', - ], + 'schema' => ['description' => '数据库实例ID。'."\n" + ."\n" + .'> 数据格式为JSONArray,例如`[\'实例ID1\',\'实例ID2\']`,实例ID间用英文逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => '[\'rm-2ze8g2am97624****\',\'rm-2ze9xrhze0709****\']'], ], ], 'responses' => [ @@ -7262,215 +7603,120 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ - 'description' => '详细信息列表。', + 'description' => '返回的数据。', 'type' => 'object', 'properties' => [ - 'Total' => [ - 'description' => '总数据量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'PageNo' => [ - 'description' => '备用参数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => 'None', - ], - 'PageSize' => [ - 'description' => '备用参数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => 'None', - ], - 'Extra' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', + 'TotalInstanceCount' => ['description' => '总数据库实例ID数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'ConfigSuccessInstanceCount' => ['description' => '关闭空间碎片自动回收功能成功的数据库实例数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'ConfigFailInstanceCount' => ['description' => '关闭空间碎片自动回收功能失败的数据库实例数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'ConfigSuccessInstanceList' => [ + 'description' => '关闭空间碎片自动回收功能成功的数据库实例列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ConfigSuccess' => ['description' => '关闭设置是否成功:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'InstanceId' => ['description' => '数据库实例ID。', 'type' => 'string', 'example' => 'rm-2ze8g2am97624****'], + ], + 'description' => '', + ], ], - 'List' => [ - 'description' => '趋势数据列表。', + 'ConfigFailInstanceList' => [ + 'description' => '关闭空间碎片自动回收功能失败的数据库实例列表。', 'type' => 'array', 'items' => [ - 'description' => '趋势数据列表。', 'type' => 'object', 'properties' => [ - 'Kpi' => [ - 'description' => '指标名,指标名及其含义如下:'."\n" - ."\n" - .'- **sqlExecuteCount**:慢SQL执行次数。'."\n" - .'- **sqlExecuteCountDiff**:慢SQL执行次数相较于前一天的差值。'."\n" - .'- **sqlCount**:慢SQL模板数据。'."\n" - .'- **sqlCountDiff**:慢SQL模板数相较于前一天的差值。'."\n" - .'- **optimizedSqlExecuteCount**:推荐优化的慢SQL执行次。'."\n" - .'- **optimizedSqlExecuteCountDiff**:推荐优化的慢SQL执行次数相较于前一天的差值。'."\n" - .'- **optimizedSqlCount**:推荐优化的慢SQL数。'."\n" - .'- **optimizedSqlCountDiff**:推荐优化的慢SQL数相较于前一天的差值。', - 'type' => 'string', - 'example' => 'sqlExecuteCount', - ], - 'Timestamp' => [ - 'description' => '数据日期,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1643040000000', - ], - 'Value' => [ - 'description' => '指标数据的值。', - 'type' => 'number', - 'format' => 'double', - 'example' => '1000', - ], + 'ConfigSuccess' => ['description' => '关闭设置是否成功:'."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'false'], + 'InstanceId' => ['description' => '数据库实例ID。', 'type' => 'string', 'example' => 'rm-2ze9xrhze0709****'], + 'ErrorMessage' => ['description' => '错误信息。', 'type' => 'string', 'example' => 'cannot found instance by rm-2ze9xrhze0709****'], ], + 'description' => '', ], ], ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。'."\n", 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Total\\": 10,\\n \\"PageNo\\": 0,\\n \\"PageSize\\": 0,\\n \\"Extra\\": \\"None\\",\\n \\"List\\": [\\n {\\n \\"Kpi\\": \\"sqlExecuteCount\\",\\n \\"Timestamp\\": 1643040000000,\\n \\"Value\\": 1000\\n }\\n ]\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetQueryOptimizeDataTrendResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Total>10</Total>\\n <Extra>None</Extra>\\n <List>\\n <Kpi>sqlExecuteCount</Kpi>\\n <Timestamp>1643040000000</Timestamp>\\n <Value>1000</Value>\\n </List>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetQueryOptimizeDataTrendResponse>","errorExample":""}]', - 'title' => '获取查询治理趋势数据', - 'description' => '- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于2.1.8,建议使用最新版本。'."\n" - .'- 使用DAS的SDK的版本为2.1.8或以上。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 本接口适用的数据库引擎为:'."\n" - .' - RDS MySQL'."\n" - .' - PolarDB MySQL版'."\n" - .' - RDS PostgreSQL', - ], - 'GetQueryOptimizeDataTop' => [ - 'summary' => '调用GetQueryOptimizeDataTop接口,获取查询治理实例红榜和实例黑榜的数据。', - 'methods' => [ - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '关闭空间碎片自动回收功能', + 'description' => '在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n", + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DisableAutoResourceOptimizeRules'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:DisableAutoResourceOptimizeRules', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"TotalInstanceCount\\": 2,\\n \\"ConfigSuccessInstanceCount\\": 1,\\n \\"ConfigFailInstanceCount\\": 1,\\n \\"ConfigSuccessInstanceList\\": [\\n {\\n \\"ConfigSuccess\\": true,\\n \\"InstanceId\\": \\"rm-2ze8g2am97624****\\"\\n }\\n ],\\n \\"ConfigFailInstanceList\\": [\\n {\\n \\"ConfigSuccess\\": false,\\n \\"InstanceId\\": \\"rm-2ze9xrhze0709****\\",\\n \\"ErrorMessage\\": \\"cannot found instance by rm-2ze9xrhze0709****\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<DisableAutoResourceOptimizeRulesResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <TotalInstanceCount>2</TotalInstanceCount>\\n <ConfigSuccessInstanceCount>1</ConfigSuccessInstanceCount>\\n <ConfigFailInstanceCount>1</ConfigFailInstanceCount>\\n <ConfigSuccessInstanceList>\\n <ConfigSuccess>true</ConfigSuccess>\\n <InstanceId>rm-2ze8g2am97624****</InstanceId>\\n </ConfigSuccessInstanceList>\\n <ConfigFailInstanceList>\\n <ConfigSuccess>false</ConfigSuccess>\\n <InstanceId>rm-2ze9xrhze0709****</InstanceId>\\n <ErrorMessage>cannot found instance by rm-2ze9xrhze0709****</ErrorMessage>\\n </ConfigFailInstanceList>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</DisableAutoResourceOptimizeRulesResponse>","errorExample":""}]', + ], + 'DisableAutoThrottleRules' => [ + 'summary' => '调用DisableAutoThrottleRules接口,批量关闭指定数据库实例的自动SQL限流功能。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhdmDSULQV'], ], 'parameters' => [ [ - 'name' => 'Engine', + 'name' => 'ConsoleContext', 'in' => 'query', - 'schema' => [ - 'description' => '数据库引擎,取值:'."\n" - ."\n" - .'- **MySQL**'."\n" - .'- **PolarDBMySQL**'."\n" - .'- **PostgreSQL**', - 'type' => 'string', - 'required' => true, - 'example' => 'MySQL', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ 'name' => 'InstanceIds', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID,多个实例ID用逗号分隔。', - 'type' => 'string', - 'required' => false, - 'example' => 'rm-2ze8g2am97624****', - ], - ], - [ - 'name' => 'TagNames', - 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], - ], - [ - 'name' => 'Time', - 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的日期,格式为Unix时间戳,单位为毫秒。', - 'type' => 'string', - 'required' => true, - 'example' => '1642953600000', - ], - ], - [ - 'name' => 'Type', - 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的榜单类型:'."\n" - ."\n" - .'- **RED**:实例红榜。'."\n" - .'- **BLACK**:实例黑榜。', - 'type' => 'string', - 'required' => true, - 'example' => 'RED', - ], - ], - [ - 'name' => 'Region', - 'in' => 'query', - 'schema' => [ - 'description' => '实例所属地域,取值:'."\n" - ."\n" - .'- **cn-china**:中国内地。'."\n" - .'- **cn-hongkong**:中国香港。'."\n" - .'- **ap-southeast-1**:新加坡。'."\n" - ."\n" - .'此参数只有在请求参数**InstanceIds**为空时有效。如果请求参数**InstanceIds**为空时,按照**Region**参数设置的地域获取数据,系统默认实例所属地域为**cn-china**;如果请求参数**InstanceIds**不为空时,即使设置了**Region**参数,也以**InstanceIds**所传入的第一个实例所在地域为准获取数据。'."\n" - ."\n" - .'> 在中国内地各地域创建的实例,传入此参数时,都为**cn-china**。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-china', - ], + 'schema' => ['description' => '数据库实例ID。'."\n" + ."\n" + .'> 数据格式为JSONArray,例如`[\'实例ID1\',\'实例ID2\']`,实例ID间用英文逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => '[\'rm-2ze8g2am97624****\',\'rm-2ze9xrhze0709****\']'], ], ], 'responses' => [ @@ -7478,323 +7724,292 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ - 'description' => '详细信息列表。', + 'description' => '返回的数据。', 'type' => 'object', 'properties' => [ - 'Total' => [ - 'description' => '总数据量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'PageNo' => [ - 'description' => '备用参数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => 'None', - ], - 'PageSize' => [ - 'description' => '备用参数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => 'None', - ], - 'Extra' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', + 'TotalInstanceCount' => ['description' => '总数据库实例数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'ConfigSuccessInstanceCount' => ['description' => '关闭自动SQL限流功能成功的数据库实例数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'ConfigFailInstanceCount' => ['description' => '关闭自动SQL限流功能失败的数据库实例数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'ConfigSuccessInstanceList' => [ + 'description' => '关闭自动SQL限流功能成功的数据库实例列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ConfigSuccess' => ['description' => '关闭设置是否成功:'."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'InstanceId' => ['description' => '数据库实例ID。', 'type' => 'string', 'example' => 'rm-2ze8g2am97624****'], + ], + 'description' => '', + ], ], - 'List' => [ - 'description' => '榜单信息列表。', + 'ConfigFailInstanceList' => [ + 'description' => '关闭自动SQL限流功能失败的数据库实例列表。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'InstanceId' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze8g2am97624****', - ], - 'Type' => [ - 'description' => '指标名:'."\n" - ."\n" - .'- **sqlExecuteCount**:慢SQL执行次数。'."\n" - .'- **optimizedSqlExecuteCount**:推荐优化的慢SQL执行次数。', - 'type' => 'string', - 'example' => 'sqlExecuteCount', - ], - 'Value' => [ - 'description' => '指标的数值。', - 'type' => 'number', - 'format' => 'double', - 'example' => '100', - ], + 'ConfigSuccess' => ['description' => '关闭设置是否成功:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'false'], + 'InstanceId' => ['description' => '数据库实例ID。', 'type' => 'string', 'example' => 'rm-2ze9xrhze0709****'], + 'ErrorMessage' => ['description' => '错误信息。', 'type' => 'string', 'example' => 'cannot found instance by rm-2ze9xrhze0709****'], ], + 'description' => '', ], ], ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Total\\": 10,\\n \\"PageNo\\": 0,\\n \\"PageSize\\": 0,\\n \\"Extra\\": \\"None\\",\\n \\"List\\": [\\n {\\n \\"InstanceId\\": \\"rm-2ze8g2am97624****\\",\\n \\"Type\\": \\"sqlExecuteCount\\",\\n \\"Value\\": 100\\n }\\n ]\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetQueryOptimizeDataTopResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Total>10</Total>\\n <Extra>None</Extra>\\n <List>\\n <InstanceId>rm-2ze8g2am97624****</InstanceId>\\n <Type>sqlExecuteCount</Type>\\n <Value>100</Value>\\n </List>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetQueryOptimizeDataTopResponse>","errorExample":""}]', - 'title' => '获取查询治理实例红榜和实例黑榜的数据', - 'description' => '- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于2.1.8,建议使用最新版本。'."\n" - .'- 使用DAS的SDK的版本为2.1.8或以上。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 本接口适用的数据库引擎为:'."\n" - .' - RDS MySQL'."\n" - .' - PolarDB MySQL版'."\n" - .' - RDS PostgreSQL', - ], - 'GetQueryOptimizeDataStats' => [ - 'summary' => '调用GetQueryOptimizeDataStats接口,获取查询治理模板数据。', - 'methods' => [ - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '关闭自动SQL限流功能', + 'description' => '在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DisableAutoThrottleRules'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:DisableAutoThrottleRules', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"TotalInstanceCount\\": 2,\\n \\"ConfigSuccessInstanceCount\\": 1,\\n \\"ConfigFailInstanceCount\\": 1,\\n \\"ConfigSuccessInstanceList\\": [\\n {\\n \\"ConfigSuccess\\": true,\\n \\"InstanceId\\": \\"rm-2ze8g2am97624****\\"\\n }\\n ],\\n \\"ConfigFailInstanceList\\": [\\n {\\n \\"ConfigSuccess\\": false,\\n \\"InstanceId\\": \\"rm-2ze9xrhze0709****\\",\\n \\"ErrorMessage\\": \\"cannot found instance by rm-2ze9xrhze0709****\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<DisableAutoThrottleRulesResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <TotalInstanceCount>2</TotalInstanceCount>\\n <ConfigSuccessInstanceCount>1</ConfigSuccessInstanceCount>\\n <ConfigFailInstanceCount>1</ConfigFailInstanceCount>\\n <ConfigSuccessInstanceList>\\n <ConfigSuccess>true</ConfigSuccess>\\n <InstanceId>rm-2ze8g2am97624****</InstanceId>\\n </ConfigSuccessInstanceList>\\n <ConfigFailInstanceList>\\n <ConfigSuccess>false</ConfigSuccess>\\n <InstanceId>rm-2ze9xrhze0709****</InstanceId>\\n <ErrorMessage>cannot found instance by rm-2ze9xrhze0709****</ErrorMessage>\\n </ConfigFailInstanceList>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</DisableAutoThrottleRulesResponse>","errorExample":""}]', + ], + 'DisableDasPro' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ - 'name' => 'Engine', + 'name' => 'UserId', 'in' => 'query', - 'schema' => [ - 'description' => '数据库引擎,取值:'."\n" - ."\n" - .'- **MySQL**'."\n" - .'- **PolarDBMySQL**'."\n" - .'- **PostgreSQL**', - 'type' => 'string', - 'required' => true, - 'example' => 'MySQL', - ], + 'schema' => ['description' => '用户ID,即创建数据库实例的阿里云主账号ID。'."\n" + ."\n" + .'> 非必填,输入目标数据库实例ID后,在调用API接口时,系统会自动获取用户ID。', 'type' => 'string', 'required' => false, 'example' => '196278346919****'], ], [ - 'name' => 'InstanceIds', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID,多个实例ID用逗号分隔。', - 'type' => 'string', - 'required' => false, - 'example' => 'rm-2ze8g2am97624****', - ], + 'schema' => ['description' => '数据库实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'], ], - [ - 'name' => 'TagNames', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '7172BECE-588A-5961-8126-C216E16B****'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'Synchro' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], + 'Data' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + ."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], + ['errorCode' => '-1020004', 'errorMessage' => 'the dbconfig is applying', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + ], + 'title' => '关闭DAS企业版 V1', + 'summary' => '关闭指定实例DAS专业版。', + 'description' => '- 目前支持的数据库实例请参见[DAS企业版使用说明](~~190912~~)。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 该接口仅适用于DAS企业版 V1。'."\n" + .'>推荐使用[ModifySqlLogConfig](~~2778835~~)接口,为实例开启或关闭DAS企业版。DAS企业版各个版本支持的数据库和地域请参见[DAS产品系列及支持的功能](~~156204~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DisableDasPro'], + ], + ], + 'ramActions' => [ [ - 'name' => 'Keywords', - 'in' => 'query', - 'schema' => [ - 'description' => 'SQL文本关键词,多个关键词以空格分隔。', - 'type' => 'string', - 'required' => false, - 'example' => 'select update', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'hdm:DisableDasPro', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7172BECE-588A-5961-8126-C216E16B****\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Synchro\\": \\"None\\",\\n \\"Data\\": \\"None\\",\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DisableDasProResponse>\\n <RequestId>7172BECE-588A-5961-8126-C216E16B****</RequestId>\\n <Message>Successful</Message>\\n <Code>200</Code>\\n <Success>true</Success>\\n</DisableDasProResponse>","errorExample":""}]', + ], + 'DisableInstanceDasConfig' => [ + 'summary' => '调用DisableInstanceDasConfig接口,关闭指定弹性伸缩功能。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'LogicalOperator', - 'in' => 'query', - 'schema' => [ - 'description' => '多个SQL文本关键词的逻辑关系。'."\n" - ."\n" - .'- **or**:或。'."\n" - .'- **and**:与。', - 'type' => 'string', - 'required' => false, - 'example' => 'or', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ [ - 'name' => 'Rules', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '需要过滤的规则,多个规则以逗号分隔。具体信息请参见[查询治理](~~290038~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'DAS_NOT_IMPORTANT', - ], + 'schema' => ['description' => '数据库实例ID。', 'type' => 'string', 'required' => true, 'example' => 'r-bp1nti25tc7bq5****'], ], [ - 'name' => 'DbNames', + 'name' => 'Engine', 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的数据库名。', - 'type' => 'string', - 'required' => false, - 'example' => 'testdb01', - ], + 'schema' => ['description' => '数据库引擎,当前仅支持Redis。', 'type' => 'string', 'required' => true, 'example' => 'Redis'], ], [ - 'name' => 'Time', + 'name' => 'ScaleType', 'in' => 'query', 'schema' => [ - 'description' => '查询数据的日期,格式为Unix时间戳,单位为毫秒。', + 'description' => '弹性伸缩类型,取值:'."\n" + .'- **specScale**:规格自动弹性伸缩。'."\n" + .'- **shardScale**:分片自动弹性伸缩。'."\n" + .'- **bandwidthScale**:带宽自动弹性伸缩。', 'type' => 'string', 'required' => true, - 'example' => '1642953600000', + 'example' => 'bandwidthScale', + 'enum' => ['specScale', 'shardScale', 'bandwidthScale'], ], ], - [ - 'name' => 'PageSize', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '分页查询每页最大记录数,默认为10。', - 'type' => 'string', - 'required' => false, - 'example' => '10', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'Data' => ['description' => '关闭数据库实例指定弹性伸缩功能的结果。', 'type' => 'string', 'example' => 'success'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '7172BECE-588A-5961-8126-C216E16B****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + .'* **true**:执行成功。'."\n" + .'* **false**:执行失败。'."\n", 'type' => 'string', 'example' => 'true'], + ], + 'description' => '', ], ], - [ - 'name' => 'PageNo', - 'in' => 'query', - 'schema' => [ - 'description' => '分页查询的页码,从1开始,默认为1。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], - [ - 'name' => 'OrderBy', - 'in' => 'query', - 'schema' => [ - 'description' => '排序字段,默认为**count**。'."\n" - ."\n" - .'- **count**:执行次数。'."\n" - .'- **maxQueryTime**:最大执行时间。'."\n" - .'- **avgQueryTime**:平均执行时间。'."\n" - .'- **maxLockTime**:最大锁等待时间。'."\n" - .'- **avgLockTime**:平均锁等待时间。'."\n" - .'- **maxRowsExamined**:最大扫描行数。'."\n" - .'- **avgRowsExamined**:平均扫描行数。'."\n" - .'- **maxRowsSent**:最大返回行数。'."\n" - .'- **avgRowsSent**:平均返回行数。', - 'type' => 'string', - 'required' => false, - 'example' => 'count', - ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], + ], + 'title' => '关闭指定弹性伸缩功能', + 'description' => '使用该接口需满足以下前提条件:'."\n" + ."\n" + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 本接口当前仅适用于Redis数据库实例。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DisableInstanceDasConfig'], + ], + ], + 'ramActions' => [ [ - 'name' => 'Asc', - 'in' => 'query', - 'schema' => [ - 'description' => '是否升序排序,默认为**true**。'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'string', - 'required' => false, - 'example' => 'true', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'hdm:DisableInstanceDasConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": \\"success\\",\\n \\"RequestId\\": \\"7172BECE-588A-5961-8126-C216E16B****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DisableInstanceDasConfigResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>success</Data>\\n <RequestId>7172BECE-588A-5961-8126-C216E16B****</RequestId>\\n <Success>true</Success>\\n</DisableInstanceDasConfigResponse>","errorExample":""}]', + ], + 'DisableSqlConcurrencyControl' => [ + 'summary' => '调用DisableSqlConcurrencyControl接口,关闭指定限流规则。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'OnlyOptimizedSql', - 'in' => 'query', - 'schema' => [ - 'description' => '是否只查询待优化的SQL,默认为**false**。'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'string', - 'required' => false, - 'example' => 'false', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ [ - 'name' => 'SqlIds', + 'name' => 'ConsoleContext', 'in' => 'query', - 'schema' => [ - 'description' => 'SQL模板ID,您可调用[GetQueryOptimizeExecErrorStats](~~405235~~)接口查询SQL模板ID。', - 'type' => 'string', - 'required' => false, - 'example' => '2e8147b5ca2dfc640dfd5e43d96a****', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ - 'name' => 'Region', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例所属地域,取值:'."\n" - ."\n" - .'- **cn-china**:中国内地。'."\n" - .'- **cn-hongkong**:中国香港。'."\n" - .'- **ap-southeast-1**:新加坡。'."\n" - ."\n" - .'此参数只有在请求参数**InstanceIds**为空时有效。如果请求参数**InstanceIds**为空时,按照**Region**参数设置的地域获取数据,系统默认实例所属地域为**cn-china**;如果请求参数**InstanceIds**不为空时,即使设置了**Region**参数,也以**InstanceIds**所传入的第一个实例所在地域为准获取数据。'."\n" - ."\n" - .'> 在中国内地各地域创建的实例,传入此参数时,都为**cn-china**。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-china', - ], + 'schema' => ['description' => '实例ID。'."\n" + .'>仅支持RDS MySQL和PolarDB MySQL版实例。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze1jdv45i7l6****'], ], [ - 'name' => 'User', + 'name' => 'ItemId', 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的数据库账号。', - 'type' => 'string', - 'required' => false, - 'example' => 'testUser', - ], + 'schema' => ['description' => '当前实例限流规则ID,可调用[GetRunningSqlConcurrencyControlRules](~~223538~~)接口获取。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1'], ], ], 'responses' => [ @@ -7802,283 +8017,91 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'Data' => [ - 'description' => '详细信息列表。', - 'type' => 'object', - 'properties' => [ - 'Total' => [ - 'description' => '总数据量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'PageNo' => [ - 'description' => '备用参数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => 'None', - ], - 'PageSize' => [ - 'description' => '备用参数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => 'None', - ], - 'Extra' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', - ], - 'List' => [ - 'description' => '模板数据列表。', - 'type' => 'array', - 'items' => [ - 'description' => '模板数据列表。', - 'type' => 'object', - 'properties' => [ - 'InstanceId' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze8g2am97624****', - ], - 'Dbname' => [ - 'description' => 'SQL所属数据库名。', - 'type' => 'string', - 'example' => 'testdb01', - ], - 'SqlId' => [ - 'description' => 'SQL模板ID。', - 'type' => 'string', - 'example' => '2e8147b5ca2dfc640dfd5e43d96a****', - ], - 'SqlType' => [ - 'description' => 'SQL类别。', - 'type' => 'string', - 'example' => 'INSERT', - ], - 'Psql' => [ - 'description' => 'SQL模板。', - 'type' => 'string', - 'example' => 'select 1', - ], - 'SqlSample' => [ - 'description' => 'SQL模板下执行最慢的SQL样本。', - 'type' => 'string', - 'example' => 'select 2', - ], - 'Count' => [ - 'description' => 'SQL执行次数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'MaxQueryTime' => [ - 'description' => '最大查询时间,单位为秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '1.1', - ], - 'AvgQueryTime' => [ - 'description' => '平均查询时间,单位为秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '1.1', - ], - 'MaxLockTime' => [ - 'description' => '最大锁等待时间,单位为秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0.1', - ], - 'AvgLockTime' => [ - 'description' => '平均锁等待时间,单位为秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0.1', - ], - 'MaxRowsExamined' => [ - 'description' => '最大扫描行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100000', - ], - 'AvgRowsExamined' => [ - 'description' => '平均扫描行数。', - 'type' => 'number', - 'format' => 'double', - 'example' => '100.1', - ], - 'MaxRowsSent' => [ - 'description' => '最大返回行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10000', - ], - 'AvgRowsSent' => [ - 'description' => '平均返回行数。', - 'type' => 'number', - 'format' => 'double', - 'example' => '100.1', - ], - 'MaxRowsAffected' => [ - 'description' => '最大影响行数。'."\n" - ."\n" - .'> 取值为-1说明暂未采集到该字段。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10000', - ], - 'AvgRowsAffected' => [ - 'description' => '平均影响行数。'."\n" - ."\n" - .'> 取值为-1说明暂未采集到该字段。', - 'type' => 'number', - 'format' => 'double', - 'example' => '100.1', - ], - 'RuleList' => [ - 'description' => '规则列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Name' => [ - 'description' => '规则名,具体信息请参见[查询治理](~~290038~~)。', - 'type' => 'string', - 'example' => 'DAS_NOT_IMPORTANT', - ], - 'Type' => [ - 'description' => '规则类别:'."\n" - ."\n" - .'- **Predefined**:系统预定义。'."\n" - .'- **UserDefined**:用户自定义。', - 'type' => 'string', - 'example' => 'Predefined', - ], - ], - ], - ], - 'User' => [ - 'description' => '数据库账号。', - 'type' => 'string', - 'example' => 'testUser', - ], - ], - ], - ], - ], - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'Data' => ['description' => '详细信息列表,包括信息总数、错误码等。', 'type' => 'string', 'example' => 'Null'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功'."\n" + .'- **false**:执行失败', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Total\\": 10,\\n \\"PageNo\\": 0,\\n \\"PageSize\\": 0,\\n \\"Extra\\": \\"None\\",\\n \\"List\\": [\\n {\\n \\"InstanceId\\": \\"rm-2ze8g2am97624****\\",\\n \\"Dbname\\": \\"testdb01\\",\\n \\"SqlId\\": \\"2e8147b5ca2dfc640dfd5e43d96a****\\",\\n \\"SqlType\\": \\"INSERT\\",\\n \\"Psql\\": \\"select 1\\",\\n \\"SqlSample\\": \\"select 2\\",\\n \\"Count\\": 100,\\n \\"MaxQueryTime\\": 1.1,\\n \\"AvgQueryTime\\": 1.1,\\n \\"MaxLockTime\\": 0.1,\\n \\"AvgLockTime\\": 0.1,\\n \\"MaxRowsExamined\\": 100000,\\n \\"AvgRowsExamined\\": 100.1,\\n \\"MaxRowsSent\\": 10000,\\n \\"AvgRowsSent\\": 100.1,\\n \\"MaxRowsAffected\\": 10000,\\n \\"AvgRowsAffected\\": 100.1,\\n \\"RuleList\\": [\\n {\\n \\"Name\\": \\"DAS_NOT_IMPORTANT\\",\\n \\"Type\\": \\"Predefined\\"\\n }\\n ],\\n \\"User\\": \\"testUser\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetQueryOptimizeDataStatsResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Total>10</Total>\\n <Extra>None</Extra>\\n <List>\\n <InstanceId>rm-2ze8g2am97624****</InstanceId>\\n <Dbname>testdb01</Dbname>\\n <SqlId>2e8147b5ca2dfc640dfd5e43d96a****</SqlId>\\n <SqlType>INSERT</SqlType>\\n <Psql>select 1</Psql>\\n <SqlSample>select 2</SqlSample>\\n <Count>100</Count>\\n <MaxQueryTime>1.1</MaxQueryTime>\\n <AvgQueryTime>1.1</AvgQueryTime>\\n <MaxLockTime>0.1</MaxLockTime>\\n <AvgLockTime>0.1</AvgLockTime>\\n <MaxRowsExamined>100000</MaxRowsExamined>\\n <AvgRowsExamined>100.1</AvgRowsExamined>\\n <MaxRowsSent>10000</MaxRowsSent>\\n <AvgRowsSent>100.1</AvgRowsSent>\\n <MaxRowsAffected>10000</MaxRowsAffected>\\n <AvgRowsAffected>100.1</AvgRowsAffected>\\n <RuleList>\\n <Name>DAS_NOT_IMPORTANT</Name>\\n <Type>Predefined</Type>\\n </RuleList>\\n </List>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetQueryOptimizeDataStatsResponse>","errorExample":""}]', - 'title' => '获取查询治理模板数据', - 'description' => '- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于2.1.8,建议使用最新版本。'."\n" - .'- 使用DAS的SDK的版本为2.1.8或以上。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 本接口适用的数据库引擎为:'."\n" - .' - RDS MySQL'."\n" - .' - PolarDB MySQL版'."\n" - .' - RDS PostgreSQL', - ], - 'GetQueryOptimizeTag' => [ - 'summary' => '调用GetQueryOptimizeTag接口,获取指定SQL的标签。', - 'methods' => [ - 'get', - 'post', + 'title' => '关闭指定限流规则', + 'description' => '本接口适用的数据库引擎为:'."\n" + .'- RDS MySQL'."\n" + .'- PolarDB MySQL版', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DisableSqlConcurrencyControl'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'hdm:DisableSqlConcurrencyControl', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": \\"Null\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DisableSqlConcurrencyControlResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>Null</Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</DisableSqlConcurrencyControlResponse>","errorExample":""}]', + ], + 'EnableDasPro' => [ + 'summary' => '开启指定实例DAS专业版。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhdmTQGIFY', - ], + 'operationType' => 'create', + 'abilityTreeCode' => '23825', + 'abilityTreeNodes' => ['FEATUREhdm543Z01'], ], 'parameters' => [ [ - 'name' => 'Engine', + 'name' => 'UserId', 'in' => 'query', - 'schema' => [ - 'description' => '数据库引擎,取值:'."\n" - ."\n" - .'- **MySQL**:RDS MySQL'."\n" - .'- **PolarDBMySQL**:PolarDB MySQL版'."\n" - .'- **PostgreSQL**:RDS PostgreSQL', - 'type' => 'string', - 'required' => true, - 'example' => 'MySQL', - ], + 'schema' => ['description' => '用户ID,即创建数据库实例的阿里云主账号ID。'."\n" + ."\n" + .'> 非必填,输入目标数据库实例ID后,在调用API接口时,系统会自动获取用户ID。', 'type' => 'string', 'required' => false, 'example' => '196278346919****'], ], [ - 'name' => 'SqlId', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'SQL模板ID。'."\n" - .'您可调用[GetQueryOptimizeDataStats](~~405261~~)接口查询SQL模板ID。', - 'type' => 'string', - 'required' => true, - 'example' => '29d9fef63e347d39c3436658a5fe****', - ], + 'schema' => ['description' => '数据库实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'], ], [ - 'name' => 'InstanceId', + 'name' => 'SqlRetention', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****', - ], + 'schema' => ['description' => 'SQL洞察数据存储时长,单位为天,默认为**30**。'."\n" + ."\n" + .'- **30**'."\n" + .'- **180**'."\n" + .'- **365**'."\n" + .'- **1095**'."\n" + .'- **1825**', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30'], ], ], 'responses' => [ @@ -8086,303 +8109,192 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], - 'Data' => [ - 'title' => 'SqlTag', - 'description' => '返回的SQL标签数据。', - 'type' => 'object', - 'properties' => [ - 'SqlId' => [ - 'description' => 'SQL模板ID', - 'type' => 'string', - 'example' => '29d9fef63e347d39c3436658a5fe****', - ], - 'Tags' => [ - 'title' => '逗号分隔的多个tag', - 'description' => 'SQL标签,多个标签间使用英文逗号(,)分隔。', - 'type' => 'string', - 'example' => 'DAS_IN_PLAN,DAS_NOT_IMPORTANT', - ], - 'Comments' => [ - 'description' => '备注信息。', - 'type' => 'string', - 'example' => '离线同步类慢SQL,无需优化。', - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '7172BECE-588A-5961-8126-C216E16B****'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'Synchro' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], + 'Data' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], + 'Code' => ['description' => '状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + ."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7172BECE-588A-5961-8126-C216E16B****\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Synchro\\": \\"None\\",\\n \\"Data\\": \\"None\\",\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<EnableDasProResponse>\\n <RequestId>7172BECE-588A-5961-8126-C216E16B****</RequestId>\\n <Message>Successful</Message>\\n <Code>200</Code>\\n <Success>true</Success>\\n</EnableDasProResponse>","errorExample":""}]', + 'title' => '开启DAS企业版 V1', + 'description' => '- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 该接口仅适用于DAS企业版 V1。'."\n" + ."\n" + .'>推荐使用[ModifySqlLogConfig](~~2778835~~)接口,为实例开启或关闭DAS企业版。DAS企业版各个版本支持的数据库和地域请参见[DAS产品系列及支持的功能](~~156204~~)。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'hdm:EnableDasPro', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"SqlId\\": \\"29d9fef63e347d39c3436658a5fe****\\",\\n \\"Tags\\": \\"DAS_IN_PLAN,DAS_NOT_IMPORTANT\\",\\n \\"Comments\\": \\"离线同步类慢SQL,无需优化。\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<GetQueryOptimizeTagResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n <Data>\\n <SqlId>29d9fef63e347d39c3436658a5fe****</SqlId>\\n <Tags>DAS_IN_PLAN,DAS_NOT_IMPORTANT</Tags>\\n <Comments>离线同步类慢SQL,无需优化。</Comments>\\n </Data>\\n</GetQueryOptimizeTagResponse>","errorExample":""}]', - 'title' => '获取SQL标签', - 'description' => '- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 本接口适用的数据库引擎为:'."\n" - .' - RDS MySQL'."\n" - .' - PolarDB MySQL版'."\n" - .' - RDS PostgreSQL', ], - 'GetQueryOptimizeShareUrl' => [ - 'summary' => '调用GetQueryOptimizeShareUrl接口,获取查询治理的分享链接。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'EnableSqlConcurrencyControl' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhdmTQGIFY', - ], - ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'Engine', + 'name' => 'ConsoleContext', 'in' => 'query', - 'schema' => [ - 'description' => '数据库引擎,取值:'."\n" - ."\n" - .'- **MySQL**:RDS MySQL'."\n" - .'- **PolarDBMySQL**:PolarDB MySQL版'."\n" - .'- **PostgreSQL**:RDS PostgreSQL', - 'type' => 'string', - 'required' => true, - 'example' => 'MySQL', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ - 'name' => 'InstanceIds', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID,多个实例ID间用逗号分隔。', - 'type' => 'string', - 'required' => false, - 'example' => 'rm-2ze1jdv45i7l6****', - ], + 'schema' => ['description' => '实例ID。'."\n" + .'>仅支持RDS MySQL和 PolarDB MySQL版实例。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze1jdv45i7l6****'], ], [ - 'name' => 'TagNames', + 'name' => 'SqlType', 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], + 'schema' => ['description' => '选择SQL的类型。取值:'."\n" + .'- **SELECT**'."\n" + .'- **UPDATE**'."\n" + .'- **DELETE**', 'type' => 'string', 'required' => true, 'example' => 'SELECT'], ], [ - 'name' => 'Keywords', + 'name' => 'MaxConcurrency', 'in' => 'query', - 'schema' => [ - 'description' => 'SQL文本关键词,多个关键词以空格分隔。', - 'type' => 'string', - 'required' => false, - 'example' => 'select update', - ], + 'schema' => ['description' => 'SQL最大并发数,取值为大于或等于1的整数。'."\n" + .'>当包含关键词的SQL达到最大并发数时会触发限流规则。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '3'], ], [ - 'name' => 'LogicalOperator', + 'name' => 'SqlKeywords', 'in' => 'query', - 'schema' => [ - 'description' => '多个SQL文本关键词的逻辑关系。'."\n" - ."\n" - .'- **or**:或。'."\n" - .'- **and**:与。', - 'type' => 'string', - 'required' => false, - 'example' => 'or', - ], + 'schema' => ['description' => '需要限流的SQL关键词。'."\n" + .'>多个关键词间用波浪线(~)分隔,SQL语句中需要同时包含这些关键词才会触发限流规则。', 'type' => 'string', 'required' => true, 'example' => 'call~open~api~test~4~from~POP'], ], [ - 'name' => 'Rules', + 'name' => 'ConcurrencyControlTime', 'in' => 'query', - 'schema' => [ - 'description' => '需要过滤的规则,多个规则以逗号分隔。具体信息请参见[查询治理](~~290038~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'DAS_NOT_IMPORTANT', - ], + 'schema' => ['description' => 'SQL限流的生效时长,单位为秒。'."\n" + .'>限流规则仅在生效时间内开启。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '300'], ], - [ - 'name' => 'DbNames', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '需要查询的数据库名。', - 'type' => 'string', - 'required' => false, - 'example' => 'testdb01', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'Data' => ['description' => '详细信息列表,包括信息总数、错误码等。', 'type' => 'string', 'example' => 'Null'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功'."\n" + .'- **false**:执行失败', 'type' => 'string', 'example' => 'true'], + ], + 'description' => '', ], ], - [ - 'name' => 'Time', - 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的日期,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1642953600000', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '分页查询每页最大记录数,默认为10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], + ], + 'title' => '启用SQL限流', + 'summary' => '调用EnableSqlConcurrencyControl接口,启用SQL限流来控制数据库请求访问量和SQL并发量。', + 'description' => '本接口适用的数据库引擎为:'."\n" + .'- RDS MySQL'."\n" + .'- PolarDB MySQL版', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EnableSqlConcurrencyControl'], + ], + ], + 'ramActions' => [ [ - 'name' => 'PageNo', - 'in' => 'query', - 'schema' => [ - 'description' => '分页查询的页码,从1开始,默认为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'hdm:EnableSqlConcurrencyControl', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": \\"Null\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<EnableSqlConcurrencyControlResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\"Data\\": { \\"total\\": 1, \\"list\\":[...] }, \\"Code\\": 200, \\"Success\\": true }</Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</EnableSqlConcurrencyControlResponse>","errorExample":""}]', + ], + 'GetAsyncErrorRequestListByCode' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'OrderBy', - 'in' => 'query', - 'schema' => [ - 'description' => '排序字段,默认为**count**。'."\n" - ."\n" - .'- **count**:执行次数。'."\n" - .'- **maxQueryTime**:最大执行时间。'."\n" - .'- **avgQueryTime**:平均执行时间。'."\n" - .'- **maxLockTime**:最大锁等待时间。'."\n" - .'- **avgLockTime**:平均锁等待时间。'."\n" - .'- **maxRowsExamined**:最大扫描行数。'."\n" - .'- **avgRowsExamined**:平均扫描行数。'."\n" - .'- **maxRowsSent**:最大返回行数。'."\n" - .'- **avgRowsSent**:平均返回行数。', - 'type' => 'string', - 'required' => false, - 'example' => 'count', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'Asc', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '是否升序排序,默认为**true**。'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'], ], [ - 'name' => 'OnlyOptimizedSql', + 'name' => 'NodeId', 'in' => 'query', - 'schema' => [ - 'description' => '是否只查询待优化的SQL,默认为**false**。'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '节点ID。'."\n" + .'> 对于PolarDB MySQL版实例,需要提供节点ID。', 'type' => 'string', 'required' => false, 'example' => 'pi-wz9s658475e58****'], ], [ - 'name' => 'SqlIds', + 'name' => 'Start', 'in' => 'query', - 'schema' => [ - 'description' => 'SQL模板ID,您可调用[GetQueryOptimizeDataStats](~~405261~~)接口查询SQL模板ID。', - 'type' => 'string', - 'required' => false, - 'example' => '6068ce044e3dc9b903979672fb0b69df,d12515c015fc9f41a0778a9e1de0****', - ], + 'schema' => ['description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。'."\n" + ."\n" + .'> 查询开始时间需要在数据库实例SQL洞察存储时长范围内,最大不能早于当前时间90天。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1642556990714'], ], [ - 'name' => 'Region', + 'name' => 'End', 'in' => 'query', - 'schema' => [ - 'description' => '实例所属地域,取值:'."\n" - ."\n" - .'- **cn-china**:中国内地。'."\n" - .'- **cn-hongkong**:中国香港。'."\n" - .'- **ap-southeast-1**:新加坡。'."\n" - ."\n" - .'此参数只有在请求参数**InstanceIds**为空时有效。如果请求参数**InstanceIds**为空时,按照**Region**参数设置的地域获取数据,系统默认实例所属地域为**cn-china**;如果请求参数**InstanceIds**不为空时,即使设置了**Region**参数,也以**InstanceIds**所传入的第一个实例所在地域为准获取数据。'."\n" - ."\n" - .'> 在中国内地各地域创建的实例,传入此参数时,都为**cn-china**。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-china', - ], + 'schema' => ['description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。'."\n" + ."\n" + .'> 查询结束时间需晚于查询开始时间,且查询开始时间和查询结束时间的间隔不能超过1天。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1642566830000'], ], [ - 'name' => 'User', + 'name' => 'ErrorCode', 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的数据库账号。', - 'type' => 'string', - 'required' => false, - 'example' => 'testUser', - ], + 'schema' => ['description' => '错误码,您可调用[GetAsyncErrorRequestStatByCode](~~409804~~)接口查询实例的MySQL错误码。', 'type' => 'string', 'required' => false, 'example' => '1064'], ], ], 'responses' => [ @@ -8390,151 +8302,139 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - ."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ - 'title' => 'String', - 'description' => '分享链接', - 'type' => 'string', - 'example' => 'https://hdm.console.aliyun.com/#/queryOptimize****', + 'description' => '返回的数据。', + 'type' => 'object', + 'properties' => [ + 'fail' => ['description' => '请求是否失败:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'false'], + 'result' => [ + 'description' => '产生指定MySQL错误码的SQL ID列表。', + 'type' => 'array', + 'items' => [ + 'description' => '产生指定MySQL错误码的SQL ID列表。', + 'type' => 'object', + 'properties' => [ + 'sqlId' => ['description' => 'SQL ID。', 'type' => 'string', 'example' => 'ad78a4e7d3ce81590c9dc2d5f4bc****'], + 'instanceId' => ['description' => '实例ID。', 'type' => 'string', 'example' => 'rm-2ze8g2am97624****'], + ], + ], + ], + 'resultId' => ['description' => '异步请求ID。', 'type' => 'string', 'example' => 'async__c39d43ece52d35267cc4b92a0c26****'], + 'isFinish' => ['description' => '异步请求是否执行完成:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'state' => ['description' => '异步请求的执行状态:'."\n" + ."\n" + .'- **RUNNING**:正在运行。'."\n" + ."\n" + .'- **SUCCESS**:成功。'."\n" + ."\n" + .'- **FAIL**:失败。', 'type' => 'string', 'example' => 'SUCCESS'], + 'complete' => ['description' => '异步请求是否完成:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'timestamp' => ['description' => '执行时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1644559407740'], + ], + 'example' => '{ "fail": false, "data": [ { "sqlId": "ad78a4e7d3ce81590c9dc2d5f4bc****", "instanceId": "rm-2ze8g2am97624****" }, { "sqlId": "0f92feacd92c048b06a16617a633****", "instanceId": "rm-2ze8g2am97624****" } ], "resultId": "async__c39d43ece52d35267cc4b92a0c26****", "isFinish": true, "state": "SUCCESS", "complete": true, "timestamp": 1644559407740 }', ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '9CB97BC4-6479-55D0-B9D0-EA925AFE****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + ."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": \\"https://hdm.console.aliyun.com/#/queryOptimize****\\"\\n}","errorExample":""},{"type":"xml","example":"<GetQueryOptimizeShareUrlResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n <Data>https://hdm.console.aliyun.com/#/queryOptimize****</Data>\\n</GetQueryOptimizeShareUrlResponse>","errorExample":""}]', - 'title' => '获取查询治理的分享链接', - 'description' => '- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + 'title' => '查询产生指定MySQL错误码的SQL ID', + 'summary' => '调用GetAsyncErrorRequestListByCode接口,异步查询数据库实例SQL洞察结果中产生指定MySQL错误码的SQL ID。', + 'description' => '> 异步调用后不会立即返回完整结果,当返回数据中**isFinish**取值为**false**时,请等待1s后重新发起调用,直到**isFinish**取值为**true**时,返回完整结果。'."\n" + ."\n\n" + .'- 目前仅支持RDS MySQL和PolarDB MySQL版实例,请确保在使用该接口前,该实例已经开启DAS企业版,具体请参见[购买DAS企业版](~~163298~~)。'."\n" .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 本接口适用的数据库引擎为:'."\n" - .' - RDS MySQL'."\n" - .' - PolarDB MySQL版'."\n" - .' - RDS PostgreSQL', - ], - 'GetErrorRequestSample' => [ - 'methods' => [ - 'get', - 'post', + .'- 2024年09月01日起,由于SQL的模板化算法优化,调用本接口时,SqlId 字段的值将发生变更。详情请参见[【通知】SQL模板化算法优化](~~2845725~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAsyncErrorRequestListByCode'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetAsyncErrorRequestListByCode', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"fail\\": false,\\n \\"result\\": [\\n {\\n \\"sqlId\\": \\"ad78a4e7d3ce81590c9dc2d5f4bc****\\",\\n \\"instanceId\\": \\"rm-2ze8g2am97624****\\"\\n }\\n ],\\n \\"resultId\\": \\"async__c39d43ece52d35267cc4b92a0c26****\\",\\n \\"isFinish\\": true,\\n \\"state\\": \\"SUCCESS\\",\\n \\"complete\\": true,\\n \\"timestamp\\": 1644559407740\\n },\\n \\"RequestId\\": \\"9CB97BC4-6479-55D0-B9D0-EA925AFE****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetAsyncErrorRequestListByCodeResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <fail>false</fail>\\n <result>\\n <sqlId>ad78a4e7d3ce81590c9dc2d5f4bc****</sqlId>\\n <instanceId>rm-2ze8g2am97624****</instanceId>\\n </result>\\n <resultId>async__c39d43ece52d35267cc4b92a0c26****</resultId>\\n <isFinish>true</isFinish>\\n <state>SUCCESS</state>\\n <complete>true</complete>\\n <timestamp>1644559407740</timestamp>\\n </Data>\\n <RequestId>9CB97BC4-6479-55D0-B9D0-EA925AFE****</RequestId>\\n <Success>true</Success>\\n</GetAsyncErrorRequestListByCodeResponse>","errorExample":""}]', + ], + 'GetAsyncErrorRequestStatByCode' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****', - ], + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'], ], [ 'name' => 'NodeId', 'in' => 'query', - 'schema' => [ - 'description' => '节点ID。'."\n" - .'> 对于PolarDB MySQL版实例,需要提供节点ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'pi-bp179lg03445l****', - ], - ], - [ - 'name' => 'SqlId', - 'in' => 'query', - 'schema' => [ - 'description' => 'SQL ID,您可以调用[GetAsyncErrorRequestListByCode](~~410746~~)接口查询实例中产生MySQL错误码的SQL ID。', - 'type' => 'string', - 'required' => false, - 'example' => '2cd4432556c3dab9d825ba363637****', - ], + 'schema' => ['description' => '节点ID。'."\n" + .'> 对于PolarDB MySQL版实例,需要提供节点ID。', 'type' => 'string', 'required' => false, 'example' => 'pi-wz9s658475e58****'], ], [ 'name' => 'Start', 'in' => 'query', - 'schema' => [ - 'description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。'."\n" - ."\n" - .'> 查询开始时间需在数据库实例SQL洞察存储时长范围内,最大不能早于当前时间90天。'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1642556990714', - ], + 'schema' => ['description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。'."\n" + ."\n" + .'> 查询开始时间需在数据库实例SQL洞察存储时长范围内,最大不能早于当前时间90天。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1642556990714'], ], [ 'name' => 'End', 'in' => 'query', - 'schema' => [ - 'description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。'."\n" - ."\n" - .'> 查询结束时间需晚于查询开始时间,且查询开始时间和查询结束时间的间隔不能超过1天。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1642566830000', - ], + 'schema' => ['description' => '查询的结束时间,格式为Unix时间戳,单位为毫秒。'."\n" + ."\n" + .'> 查询结束时间需晚于查询开始时间,且查询开始时间和查询结束时间的间隔不能超过1天。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1642566830000'], ], [ 'name' => 'DbName', 'in' => 'query', - 'schema' => [ - 'description' => '数据库名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'testdb01', - ], + 'schema' => ['description' => '数据库名称。', 'type' => 'string', 'required' => false, 'example' => 'testdb01'], ], ], 'responses' => [ @@ -8542,129 +8442,105 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ - 'description' => '返回的数据。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'sqlId' => [ - 'description' => 'SQL ID。', - 'type' => 'string', - 'example' => '2cd4432556c3dab9d825ba363637****', - ], - 'database' => [ - 'description' => '数据库名。', - 'type' => 'string', - 'example' => 'dbgateway', - ], - 'originHost' => [ - 'description' => '执行SQL的客户端IP地址。', - 'type' => 'string', - 'example' => '172.16.1****', - ], - 'tables' => [ - 'description' => '表数据。', - 'type' => 'array', - 'items' => [ - 'description' => '表名。', - 'type' => 'string', - 'example' => 'meter_****', + 'description' => '返回的数据。'."\n" + ."\n", + 'type' => 'object', + 'properties' => [ + 'fail' => ['description' => '请求是否失败:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'false'], + 'isFinish' => ['description' => '异步请求是否执行完成:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'resultId' => ['description' => '异步请求ID。', 'type' => 'string', 'example' => 'async__fcd7c35788e62324622c3b4a03de****'], + 'state' => ['description' => '异步请求的执行状态:'."\n" + ."\n" + .'- **RUNNING**:正在运行。'."\n" + ."\n" + .'- **SUCCESS**:成功。'."\n" + ."\n" + .'- **FAIL**:失败。', 'type' => 'string', 'example' => 'SUCCESS'], + 'timestamp' => ['description' => '执行时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1644560866961'], + 'complete' => ['description' => '异步请求是否完成:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'result' => [ + 'description' => '返回的错误码以及每个错误码对应的SQL数量列表。', + 'type' => 'array', + 'items' => [ + 'description' => '返回的错误码以及每个错误码对应的SQL数量列表。', + 'type' => 'object', + 'properties' => [ + 'instanceId' => ['description' => '实例ID。', 'type' => 'string', 'example' => 'rm-2ze8g2am97624****'], + 'errorCode' => ['description' => '错误码。', 'type' => 'string', 'example' => '1062'], + 'count' => ['description' => '错误码对应SQL的数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], ], ], - 'instanceId' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze8g2am97624****', - ], - 'errorCode' => [ - 'description' => '错误码。', - 'type' => 'string', - 'example' => '1062', - ], - 'user' => [ - 'description' => '数据库用户名。', - 'type' => 'string', - 'example' => 'dbgat****', - ], - 'sql' => [ - 'description' => 'SQL语句。', - 'type' => 'string', - 'example' => 'insert into meter_****', - ], - 'timestamp' => [ - 'description' => '执行时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1644476100435', - ], ], ], - 'example' => '[ { "sqlId": "2cd4432556c3dab9d825ba363637****", "database": "dbgateway", "originHost": "172.16.1****", "tables": [ "meter_****" ], "instanceId": "rm-2ze8g2am97624****", "errorCode": "1062", "user": "dbgat****", "sql": "insert into meter_****\\n ( \\n ****\\n )\\n values (now(), now(), \'bbbc8624-5e19-455a-9714-8466f688****\', \'2022-02-10 14:00:00\', \'{\\"endTime\\":\\"2022-02-10 14:00:00\\",\\"endTimestamp\\":1644472800,\\"startTime\\":\\"2022-02-10 13:00:00\\",\\"startTimestamp\\":1644469200}\', null, null)", "timestamp": 1644476100435 }]', - ], - 'RequestId' => [ - 'description' => '请求的ID。', - 'type' => 'string', - 'example' => '7172BECE-588A-5961-8126-C216E16B****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - ."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', + 'example' => '{ "fail": false, "data": [ { "instanceId": "rm-2ze8g2am97624****", "count": 1, "errorCode": "1062" }, { "instanceId": "rm-2ze8g2am97624****", "count": 2, "errorCode": "1064" } ], "resultId": "async__fcd7c35788e62324622c3b4a03de****", "isFinish": true, "state": "SUCCESS", "complete": true, "timestamp": 1644560866961 }', ], + 'RequestId' => ['description' => '请求的ID。', 'type' => 'string', 'example' => '840F51F7-9C01-538D-94F6-AE712905****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + ."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": [\\n {\\n \\"sqlId\\": \\"2cd4432556c3dab9d825ba363637****\\",\\n \\"database\\": \\"dbgateway\\",\\n \\"originHost\\": \\"172.16.1****\\",\\n \\"tables\\": [\\n \\"meter_****\\"\\n ],\\n \\"instanceId\\": \\"rm-2ze8g2am97624****\\",\\n \\"errorCode\\": \\"1062\\",\\n \\"user\\": \\"dbgat****\\",\\n \\"sql\\": \\"insert into meter_****\\",\\n \\"timestamp\\": 1644476100435\\n }\\n ],\\n \\"RequestId\\": \\"7172BECE-588A-5961-8126-C216E16B****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetErrorRequestSampleResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <sqlId>2cd4432556c3dab9d825ba363637****</sqlId>\\n <database>dbgateway</database>\\n <originHost>172.16.1****</originHost>\\n <tables>meter_****</tables>\\n <instanceId>rm-2ze8g2am97624****</instanceId>\\n <errorCode>1062</errorCode>\\n <user>dbgat****</user>\\n <sql>insert into meter_****</sql>\\n <timestamp>1644476100435</timestamp>\\n </Data>\\n <RequestId>7172BECE-588A-5961-8126-C216E16B****</RequestId>\\n <Success>true</Success>\\n</GetErrorRequestSampleResponse>","errorExample":""}]', - 'title' => '查询执行错误的SQL样本数据', - 'summary' => '调用GetErrorRequestSample接口,异步查询数据库实例SQL洞察结果中执行错误的SQL样本数据,最多返回指定时间范围内20条数据。', + 'title' => '查询MySQL错误码以及每个错误码对应的SQL数量', + 'summary' => '调用GetAsyncErrorRequestStatByCode接口,异步查询数据库实例SQL洞察结果中的MySQL错误码以及每个错误码对应的SQL数量。', 'description' => '> 异步调用后不会立即返回完整结果,当返回数据中**isFinish**取值为**false**时,请等待1s后重新发起调用,直到**isFinish**取值为**true**时,返回完整结果。'."\n" - ."\n\n" + ."\n" .'- 目前仅支持RDS MySQL和PolarDB MySQL版实例,请确保在使用该接口前,该实例已经开启DAS企业版,具体请参见[购买DAS企业版](~~163298~~)。'."\n" .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAsyncErrorRequestStatByCode'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetAsyncErrorRequestStatByCode', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"fail\\": false,\\n \\"isFinish\\": true,\\n \\"resultId\\": \\"async__fcd7c35788e62324622c3b4a03de****\\",\\n \\"state\\": \\"SUCCESS\\",\\n \\"timestamp\\": 1644560866961,\\n \\"complete\\": true,\\n \\"result\\": [\\n {\\n \\"instanceId\\": \\"rm-2ze8g2am97624****\\",\\n \\"errorCode\\": \\"1062\\",\\n \\"count\\": 1\\n }\\n ]\\n },\\n \\"RequestId\\": \\"840F51F7-9C01-538D-94F6-AE712905****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetAsyncErrorRequestStatByCodeResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <fail>false</fail>\\n <isFinish>true</isFinish>\\n <resultId>async__fcd7c35788e62324622c3b4a03de****</resultId>\\n <state>SUCCESS</state>\\n <timestamp>1644560866961</timestamp>\\n <complete>true</complete>\\n <result>\\n <instanceId>rm-2ze8g2am97624****</instanceId>\\n <errorCode>1062</errorCode>\\n <count>1</count>\\n </result>\\n </Data>\\n <RequestId>840F51F7-9C01-538D-94F6-AE712905****</RequestId>\\n <Success>true</Success>\\n</GetAsyncErrorRequestStatByCodeResponse>","errorExample":""}]', ], 'GetAsyncErrorRequestStatResult' => [ 'summary' => '调用GetAsyncErrorRequestStatResult接口,异步获取数据库实例SQL洞察结果中指定SQL的执行错误次数。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -8675,78 +8551,44 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhdmFT57I0', - ], + 'abilityTreeNodes' => ['FEATUREhdmFT57I0'], ], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****', - ], + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'], ], [ 'name' => 'NodeId', 'in' => 'query', - 'schema' => [ - 'description' => '节点ID。'."\n" - ."\n" - .'> 对于PolarDB MySQL版实例,需要提供节点ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'pi-bp179lg03445l****', - ], + 'schema' => ['description' => '节点ID。'."\n" + ."\n" + .'> 对于PolarDB MySQL版实例,需要提供节点ID。', 'type' => 'string', 'required' => false, 'example' => 'pi-bp179lg03445l****'], ], [ 'name' => 'SqlIdList', 'in' => 'query', - 'schema' => [ - 'description' => 'SQL ID,多个SQL ID请使用英文逗号分隔。您可以调用[GetAsyncErrorRequestListByCode](~~410746~~)接口查询实例中产生MySQL错误码的SQL ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'ad78a4e7d3ce81590c9dc2d5f4bc****,0f92feacd92c048b06a16617a633****', - ], + 'schema' => ['description' => 'SQL ID,多个SQL ID请使用英文逗号分隔。您可以调用[GetAsyncErrorRequestListByCode](~~410746~~)接口查询实例中产生MySQL错误码的SQL ID。', 'type' => 'string', 'required' => false, 'example' => 'ad78a4e7d3ce81590c9dc2d5f4bc****,0f92feacd92c048b06a16617a633****'], ], [ 'name' => 'Start', 'in' => 'query', - 'schema' => [ - 'description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。'."\n" - ."\n" - .'> 查询开始时间需在数据库实例SQL洞察存储时长范围内,最大不能早于当前时间90天。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1642556990714', - ], + 'schema' => ['description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。'."\n" + ."\n" + .'> 查询开始时间需在数据库实例SQL洞察存储时长范围内,最大不能早于当前时间90天。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1642556990714'], ], [ 'name' => 'End', 'in' => 'query', - 'schema' => [ - 'description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。'."\n" - ."\n" - .'> 查询结束时间需晚于查询开始时间,且查询开始时间和查询结束时间的间隔不能超过1天。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1642566830000', - ], + 'schema' => ['description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。'."\n" + ."\n" + .'> 查询结束时间需晚于查询开始时间,且查询开始时间和查询结束时间的间隔不能超过1天。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1642566830000'], ], [ 'name' => 'DbName', 'in' => 'query', - 'schema' => [ - 'description' => '数据库名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'testdb01', - ], + 'schema' => ['description' => '数据库名称。', 'type' => 'string', 'required' => false, 'example' => 'testdb01'], ], ], 'responses' => [ @@ -8755,207 +8597,134 @@ 'description' => '返回数据列表。', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ 'description' => '返回的数据。', 'type' => 'object', 'properties' => [ - 'fail' => [ - 'description' => '请求是否失败:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'isFinish' => [ - 'description' => '异步请求是否执行完成:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'resultId' => [ - 'description' => '异步请求ID。', - 'type' => 'string', - 'example' => 'async__61f45ee381b2fa4e8a6545e3bee9****', - ], - 'state' => [ - 'description' => '异步请求的执行状态:'."\n" - ."\n" - .'- **RUNNING**:正在运行。'."\n" - ."\n" - .'- **SUCCESS**:成功。'."\n" - ."\n" - .'- **FAIL**:失败。', - 'type' => 'string', - 'example' => 'SUCCESS', - ], - 'timestamp' => [ - 'description' => '执行时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1644558576717', - ], - 'complete' => [ - 'description' => '异步请求是否完成:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'fail' => ['description' => '请求是否失败:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'false'], + 'isFinish' => ['description' => '异步请求是否执行完成:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'resultId' => ['description' => '异步请求ID。', 'type' => 'string', 'example' => 'async__61f45ee381b2fa4e8a6545e3bee9****'], + 'state' => ['description' => '异步请求的执行状态:'."\n" + ."\n" + .'- **RUNNING**:正在运行。'."\n" + ."\n" + .'- **SUCCESS**:成功。'."\n" + ."\n" + .'- **FAIL**:失败。', 'type' => 'string', 'example' => 'SUCCESS'], + 'timestamp' => ['description' => '执行时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1644558576717'], + 'complete' => ['description' => '异步请求是否完成:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], 'result' => [ 'description' => '异步请求的返回数据列表。', 'type' => 'object', 'additionalProperties' => [ 'type' => 'object', 'properties' => [ - 'sqlId' => [ - 'type' => 'string', - ], - 'instanceId' => [ - 'type' => 'string', - ], - 'count' => [ - 'type' => 'integer', - 'format' => 'int32', - ], + 'sqlId' => ['type' => 'string', 'description' => 'SQL模板ID', 'example' => '61f45ee381b2fa4e8a6545e3bee9'], + 'instanceId' => ['type' => 'string', 'example' => 'rm-xxx', 'description' => '实例ID'], + 'count' => ['type' => 'integer', 'format' => 'int32', 'description' => '数量', 'example' => '10'], ], + 'description' => '异步请求的返回数据列表。', ], ], ], 'example' => '{ "fail": false, "data": { "ad78a4e7d3ce81590c9dc2d5f4bc****": { "sqlId": "ad78a4e7d3ce81590c9dc2d5f4bc****", "instanceId": "rm-2ze8g2am97624****", "count": 1 }, "0f92feacd92c048b06a16617a633****": { "sqlId": "0f92feacd92c048b06a16617a633****", "instanceId": "rm-2ze8g2am97624****", "count": 2 } }, "resultId": "async__61f45ee381b2fa4e8a6545e3bee9****", "isFinish": true, "state": "SUCCESS", "complete": true, "timestamp": 1644558576717 }', ], - 'RequestId' => [ - 'description' => '请求的ID。', - 'type' => 'string', - 'example' => '3FC3F8EB-3564-5D1A-B187-3B03E5B0****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - ."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'RequestId' => ['description' => '请求的ID。', 'type' => 'string', 'example' => '3FC3F8EB-3564-5D1A-B187-3B03E5B0****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + ."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"fail\\": false,\\n \\"isFinish\\": true,\\n \\"resultId\\": \\"async__61f45ee381b2fa4e8a6545e3bee9****\\",\\n \\"state\\": \\"SUCCESS\\",\\n \\"timestamp\\": 1644558576717,\\n \\"complete\\": true,\\n \\"result\\": {\\n \\"key\\": {\\n \\"sqlId\\": \\"\\",\\n \\"instanceId\\": \\"\\",\\n \\"count\\": 0\\n }\\n }\\n },\\n \\"RequestId\\": \\"3FC3F8EB-3564-5D1A-B187-3B03E5B0****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetAsyncErrorRequestStatResultResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <fail>false</fail>\\n <isFinish>true</isFinish>\\n <resultId>async__61f45ee381b2fa4e8a6545e3bee9****</resultId>\\n <state>SUCCESS</state>\\n <timestamp>1644558576717</timestamp>\\n <complete>true</complete>\\n <result>\\n <key>\\n <sqlId>ad78a4e7d3ce81590c9dc2d5f4bc****</sqlId>\\n <instanceId>rm-2ze8g2am97624****</instanceId>\\n <count>1</count>\\n </key>\\n </result>\\n </Data>\\n <RequestId>3FC3F8EB-3564-5D1A-B187-3B03E5B0****</RequestId>\\n <Success>true</Success>\\n</GetAsyncErrorRequestStatResultResponse>","errorExample":""}]', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"fail\\": false,\\n \\"isFinish\\": true,\\n \\"resultId\\": \\"async__61f45ee381b2fa4e8a6545e3bee9****\\",\\n \\"state\\": \\"SUCCESS\\",\\n \\"timestamp\\": 1644558576717,\\n \\"complete\\": true,\\n \\"result\\": {\\n \\"key\\": {\\n \\"sqlId\\": \\"61f45ee381b2fa4e8a6545e3bee9\\",\\n \\"instanceId\\": \\"rm-xxx\\",\\n \\"count\\": 10\\n }\\n }\\n },\\n \\"RequestId\\": \\"3FC3F8EB-3564-5D1A-B187-3B03E5B0****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetAsyncErrorRequestStatResultResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <fail>false</fail>\\n <isFinish>true</isFinish>\\n <resultId>async__61f45ee381b2fa4e8a6545e3bee9****</resultId>\\n <state>SUCCESS</state>\\n <timestamp>1644558576717</timestamp>\\n <complete>true</complete>\\n <result>\\n <key>\\n <sqlId>ad78a4e7d3ce81590c9dc2d5f4bc****</sqlId>\\n <instanceId>rm-2ze8g2am97624****</instanceId>\\n <count>1</count>\\n </key>\\n </result>\\n </Data>\\n <RequestId>3FC3F8EB-3564-5D1A-B187-3B03E5B0****</RequestId>\\n <Success>true</Success>\\n</GetAsyncErrorRequestStatResultResponse>","errorExample":""}]', 'title' => '获取指定SQL的执行错误次数', 'description' => '> 异步调用后不会立即返回完整结果,当返回数据中**isFinish**取值为**false**时,请等待1s后重新发起调用,直到**isFinish**取值为**true**时,返回完整结果。'."\n" ."\n\n" .'- 目前仅支持RDS MySQL和PolarDB MySQL版实例,请确保在使用该接口前,该实例已经开启DAS企业版,具体请参见[购买DAS企业版](~~163298~~)。'."\n" .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - ], - 'GetAsyncErrorRequestListByCode' => [ - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAsyncErrorRequestStatResult'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetAsyncErrorRequestStatResult', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetAutoIncrementUsageStatistic' => [ + 'summary' => '调用GetAutoIncrementUsageStatistic接口,获取表自增ID的使用数据。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****', - ], - ], - [ - 'name' => 'NodeId', - 'in' => 'query', - 'schema' => [ - 'description' => '节点ID。'."\n" - .'> 对于PolarDB MySQL版实例,需要提供节点ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'pi-wz9s658475e58****', - ], + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'], ], [ - 'name' => 'Start', + 'name' => 'DbNames', 'in' => 'query', - 'schema' => [ - 'description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。'."\n" - ."\n" - .'> 查询开始时间需要在数据库实例SQL洞察存储时长范围内,最大不能早于当前时间90天。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1642556990714', - ], + 'schema' => ['description' => '数据库名。传入此参数时,查询指定数据库中表自增ID使用情况,不传入时查询实例上所有数据库的表自增ID使用情况。'."\n" + .'>数据格式为JSONArray,例如[\'db1\',\'db2\'],数据库名间用英文逗号(,)分隔。', 'type' => 'string', 'required' => false, 'example' => '[\'db1\',\'db2\']'], ], [ - 'name' => 'End', + 'name' => 'RatioFilter', 'in' => 'query', - 'schema' => [ - 'description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。'."\n" - ."\n" - .'> 查询结束时间需晚于查询开始时间,且查询开始时间和查询结束时间的间隔不能超过1天。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1642566830000', - ], + 'schema' => ['description' => '自增ID使用比例过滤值,只返回超过该比例的自增ID使用数据。取值为0~1的小数。', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.9'], ], [ - 'name' => 'ErrorCode', + 'name' => 'RealTime', 'in' => 'query', - 'schema' => [ - 'description' => '错误码,您可调用[GetAsyncErrorRequestStatByCode](~~409804~~)接口查询实例的MySQL错误码。', - 'type' => 'string', - 'required' => false, - 'example' => '1064', - ], + 'schema' => ['description' => '是否获取实时数据:'."\n" + ."\n" + .'- **true**:实时查询实例上数据并计算。最小查询时间粒度为10分钟,即有10分钟内的数据时,即使传递**true**也不进行实时查询。'."\n" + .'- **false**:当有近两小时的数据时,返回该数据,否则查询实例上最新数据。', 'type' => 'boolean', 'required' => true, 'example' => 'false'], ], ], 'responses' => [ @@ -8963,210 +8732,113 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ 'description' => '返回的数据。', 'type' => 'object', 'properties' => [ - 'fail' => [ - 'description' => '请求是否失败:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'result' => [ - 'description' => '产生指定MySQL错误码的SQL ID列表。', + 'Finish' => ['description' => '任务是否结束:'."\n" + ."\n" + .'- **true**:任务结束。'."\n" + .'- **false**:任务未结束。', 'type' => 'boolean', 'example' => 'false'], + 'Timestamp' => ['description' => '执行时间,格式为Unix时间戳,单位为毫秒(ms)。', 'type' => 'integer', 'format' => 'int64', 'example' => '1697183353000'], + 'TaskStatus' => ['description' => '任务状态:'."\n" + .'- **INIT**:初始化。'."\n" + .'- **RUNNING**:任务执行中。'."\n" + .'- **SUCCESS**:任务成功。'."\n" + .'- **FAIL**:任务失败。', 'type' => 'string', 'example' => 'INIT'], + 'ErrorInfo' => ['description' => '任务失败时的错误信息。', 'type' => 'string', 'example' => 'the given database name list invalid, none of the database names in the list exist on the instance'], + 'AutoIncrementUsageList' => [ + 'description' => '自增ID使用数据列表。', 'type' => 'array', 'items' => [ - 'description' => '产生指定MySQL错误码的SQL ID列表。', 'type' => 'object', 'properties' => [ - 'sqlId' => [ - 'description' => 'SQL ID。', - 'type' => 'string', - 'example' => 'ad78a4e7d3ce81590c9dc2d5f4bc****', - ], - 'instanceId' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze8g2am97624****', - ], + 'DbName' => ['description' => '数据库名。', 'type' => 'string', 'example' => 'db01'], + 'TableName' => ['description' => '表名。', 'type' => 'string', 'example' => 'test_table'], + 'ColumnName' => ['description' => '列名。', 'type' => 'string', 'example' => 'id'], + 'AutoIncrementCurrentValue' => ['description' => '自增ID当前值。', 'type' => 'integer', 'format' => 'int64', 'example' => '2147483647'], + 'MaximumValue' => ['description' => '该数据类型的自增ID支持的最大值。', 'type' => 'integer', 'format' => 'int64', 'example' => '2147483647'], + 'AutoIncrementRatio' => ['description' => '自增ID使用比例。', 'type' => 'number', 'format' => 'double', 'example' => '1'], ], + 'description' => '', ], ], - 'resultId' => [ - 'description' => '异步请求ID。', - 'type' => 'string', - 'example' => 'async__c39d43ece52d35267cc4b92a0c26****', - ], - 'isFinish' => [ - 'description' => '异步请求是否执行完成:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'state' => [ - 'description' => '异步请求的执行状态:'."\n" - ."\n" - .'- **RUNNING**:正在运行。'."\n" - ."\n" - .'- **SUCCESS**:成功。'."\n" - ."\n" - .'- **FAIL**:失败。', - 'type' => 'string', - 'example' => 'SUCCESS', - ], - 'complete' => [ - 'description' => '异步请求是否完成:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'timestamp' => [ - 'description' => '执行时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1644559407740', - ], ], - 'example' => '{ "fail": false, "data": [ { "sqlId": "ad78a4e7d3ce81590c9dc2d5f4bc****", "instanceId": "rm-2ze8g2am97624****" }, { "sqlId": "0f92feacd92c048b06a16617a633****", "instanceId": "rm-2ze8g2am97624****" } ], "resultId": "async__c39d43ece52d35267cc4b92a0c26****", "isFinish": true, "state": "SUCCESS", "complete": true, "timestamp": 1644559407740 }', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '9CB97BC4-6479-55D0-B9D0-EA925AFE****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - ."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0A74B755-98B7-59DB-8724-1321B394****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"fail\\": false,\\n \\"result\\": [\\n {\\n \\"sqlId\\": \\"ad78a4e7d3ce81590c9dc2d5f4bc****\\",\\n \\"instanceId\\": \\"rm-2ze8g2am97624****\\"\\n }\\n ],\\n \\"resultId\\": \\"async__c39d43ece52d35267cc4b92a0c26****\\",\\n \\"isFinish\\": true,\\n \\"state\\": \\"SUCCESS\\",\\n \\"complete\\": true,\\n \\"timestamp\\": 1644559407740\\n },\\n \\"RequestId\\": \\"9CB97BC4-6479-55D0-B9D0-EA925AFE****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetAsyncErrorRequestListByCodeResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <fail>false</fail>\\n <result>\\n <sqlId>ad78a4e7d3ce81590c9dc2d5f4bc****</sqlId>\\n <instanceId>rm-2ze8g2am97624****</instanceId>\\n </result>\\n <resultId>async__c39d43ece52d35267cc4b92a0c26****</resultId>\\n <isFinish>true</isFinish>\\n <state>SUCCESS</state>\\n <complete>true</complete>\\n <timestamp>1644559407740</timestamp>\\n </Data>\\n <RequestId>9CB97BC4-6479-55D0-B9D0-EA925AFE****</RequestId>\\n <Success>true</Success>\\n</GetAsyncErrorRequestListByCodeResponse>","errorExample":""}]', - 'title' => '查询产生指定MySQL错误码的SQL ID', - 'summary' => '调用GetAsyncErrorRequestListByCode接口,异步查询数据库实例SQL洞察结果中产生指定MySQL错误码的SQL ID。', - 'description' => '> 异步调用后不会立即返回完整结果,当返回数据中**isFinish**取值为**false**时,请等待1s后重新发起调用,直到**isFinish**取值为**true**时,返回完整结果。'."\n" - ."\n\n" - .'- 目前仅支持RDS MySQL和PolarDB MySQL版实例,请确保在使用该接口前,该实例已经开启DAS企业版,具体请参见[购买DAS企业版](~~163298~~)。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 2024年09月01日起,由于SQL的模板化算法优化,调用本接口时,SqlId 字段的值将发生变更。详情请参见[【通知】SQL模板化算法优化](~~2845725~~)。', - ], - 'GetAsyncErrorRequestStatByCode' => [ - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '获取表自增ID使用数据', + 'description' => '- 本接口只适用于RDS MySQL和PolarDB MySQL版实例。'."\n" + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'extraInfo' => '- 调用接口时,当返回数据中Finish不为true时,需要继续调用。当Finish为true且TaskStatus为SUCCESS时,可以查看具体的自增ID使用数据。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAutoIncrementUsageStatistic'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:GetAutoIncrementUsageStatistic', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Finish\\": false,\\n \\"Timestamp\\": 1697183353000,\\n \\"TaskStatus\\": \\"INIT\\",\\n \\"ErrorInfo\\": \\"the given database name list invalid, none of the database names in the list exist on the instance\\",\\n \\"AutoIncrementUsageList\\": [\\n {\\n \\"DbName\\": \\"db01\\",\\n \\"TableName\\": \\"test_table\\",\\n \\"ColumnName\\": \\"id\\",\\n \\"AutoIncrementCurrentValue\\": 2147483647,\\n \\"MaximumValue\\": 2147483647,\\n \\"AutoIncrementRatio\\": 1\\n }\\n ]\\n },\\n \\"RequestId\\": \\"0A74B755-98B7-59DB-8724-1321B394****\\",\\n \\"Success\\": true\\n}","type":"json"}]', + ], + 'GetAutoResourceOptimizeRules' => [ + 'summary' => '获取指定数据库实例的空间碎片自动回收规则。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'operationType' => 'read', + 'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****', - ], - ], - [ - 'name' => 'NodeId', - 'in' => 'query', - 'schema' => [ - 'description' => '节点ID。'."\n" - .'> 对于PolarDB MySQL版实例,需要提供节点ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'pi-wz9s658475e58****', - ], - ], - [ - 'name' => 'Start', - 'in' => 'query', - 'schema' => [ - 'description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。'."\n" - ."\n" - .'> 查询开始时间需在数据库实例SQL洞察存储时长范围内,最大不能早于当前时间90天。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1642556990714', - ], - ], - [ - 'name' => 'End', + 'name' => 'ConsoleContext', 'in' => 'query', - 'schema' => [ - 'description' => '查询的结束时间,格式为Unix时间戳,单位为毫秒。'."\n" - ."\n" - .'> 查询结束时间需晚于查询开始时间,且查询开始时间和查询结束时间的间隔不能超过1天。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1642566830000', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ - 'name' => 'DbName', + 'name' => 'InstanceIds', 'in' => 'query', - 'schema' => [ - 'description' => '数据库名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'testdb01', - ], + 'schema' => ['description' => '数据库实例ID。'."\n" + ."\n" + .'- 数据格式为JSONArray,例如`[\'实例ID1\',\'实例ID2\']`,实例ID间用英文逗号(,)分隔。'."\n" + .'- 不输入数据库实例ID时,默认返回当前账号曾经开启过空间碎片自动回收功能的全部数据库实例信息,包括:'."\n" + .' - 正在使用该功能的数据库实例。'."\n" + .' - 已关闭该功能的数据库实例(包含已经关闭了DAS企业版数据库实例,但不包含已经释放的数据库实例)。', 'type' => 'string', 'required' => false, 'example' => '[\'rm-2ze8g2am97624****\',\'rm-2vc54m2a6pd6p****\',\'rm-2ze9xrhze0709****\',\'rm-2ze8g2am97627****\']'], ], ], 'responses' => [ @@ -9174,1199 +8846,594 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ 'description' => '返回的数据。'."\n" ."\n", 'type' => 'object', 'properties' => [ - 'fail' => [ - 'description' => '请求是否失败:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'isFinish' => [ - 'description' => '异步请求是否执行完成:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'resultId' => [ - 'description' => '异步请求ID。', - 'type' => 'string', - 'example' => 'async__fcd7c35788e62324622c3b4a03de****', - ], - 'state' => [ - 'description' => '异步请求的执行状态:'."\n" - ."\n" - .'- **RUNNING**:正在运行。'."\n" - ."\n" - .'- **SUCCESS**:成功。'."\n" - ."\n" - .'- **FAIL**:失败。', - 'type' => 'string', - 'example' => 'SUCCESS', - ], - 'timestamp' => [ - 'description' => '执行时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1644560866961', + 'TotalAutoResourceOptimizeRulesCount' => ['description' => '所有开启过空间碎片自动回收功能的数据库实例数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '3'], + 'EnableAutoResourceOptimizeCount' => ['description' => '正在使用空间碎片自动回收功能的数据库实例数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'TurnOffAutoResourceOptimizeCount' => ['description' => '曾经开启并且当前已关闭空间碎片自动回收功能的数据库实例数量。'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'HasEnableRuleButNotDasProCount' => ['description' => '已开启并且未关闭空间碎片自动回收功能,但已不再使用DAS企业版的数据库实例数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'EnableAutoResourceOptimizeList' => [ + 'description' => '正在使用空间碎片自动回收功能的数据库实例信息列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'InstanceId' => ['description' => '数据库实例ID。', 'type' => 'string', 'example' => 'rm-2ze8g2am97624****'], + 'AutoDefragment' => ['description' => '是否开启了自动空间碎片回收功能。'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'TableSpaceSize' => ['description' => '触发空间碎片自动回收单个物理表的最小空间,单位为GB。', 'type' => 'number', 'format' => 'double', 'example' => '10'], + 'DasProOn' => ['description' => '是否开启了DAS企业版。'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'TableFragmentationRatio' => ['description' => '触发空间碎片自动回收单个物理表的碎片率。', 'type' => 'number', 'format' => 'double', 'example' => '0.2'], + 'UserId' => ['description' => '用户ID,即创建数据库实例的阿里云主账号ID。', 'type' => 'string', 'example' => '140692647406****'], + ], + 'description' => '', + ], ], - 'complete' => [ - 'description' => '异步请求是否完成:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', + 'TurnOffAutoResourceOptimizeList' => [ + 'description' => '曾经开启并且当前已关闭空间碎片自动回收功能的数据库实例信息列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'InstanceId' => ['description' => '数据库实例ID。', 'type' => 'string', 'example' => 'rm-2vc54m2a6pd6p****'], + 'AutoDefragment' => ['description' => '是否开启了自动空间碎片回收功能。'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'false'], + 'TableSpaceSize' => ['description' => '触发空间碎片自动回收单个物理表的最小空间,单位为GB。', 'type' => 'number', 'format' => 'double', 'example' => '10'], + 'DasProOn' => ['description' => '是否开启了DAS企业版。'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'TableFragmentationRatio' => ['description' => '触发空间碎片自动回收单个物理表的碎片率。', 'type' => 'number', 'format' => 'double', 'example' => '0.2'], + 'UserId' => ['description' => '用户ID,即创建数据库实例的阿里云主账号ID。', 'type' => 'string', 'example' => '140692647406****'], + ], + 'description' => '', + ], ], - 'result' => [ - 'description' => '返回的错误码以及每个错误码对应的SQL数量列表。', + 'HasEnableRuleButNotDasProList' => [ + 'description' => '已开启并且未关闭空间碎片自动回收功能,但已不再使用DAS企业版的数据库实例列表。'."\n" + .'> 此类数据库实例不会执行空间碎片自动回收,直至再次为数据库实例开启DAS企业版。', 'type' => 'array', 'items' => [ - 'description' => '返回的错误码以及每个错误码对应的SQL数量列表。', 'type' => 'object', 'properties' => [ - 'instanceId' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze8g2am97624****', - ], - 'errorCode' => [ - 'description' => '错误码。', - 'type' => 'string', - 'example' => '1062', - ], - 'count' => [ - 'description' => '错误码对应SQL的数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], + 'InstanceId' => ['description' => '数据库实例ID。', 'type' => 'string', 'example' => 'rm-2ze9xrhze0709****'], + 'AutoDefragment' => ['description' => '是否开启了自动空间碎片回收功能。'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'TableSpaceSize' => ['description' => '触发空间碎片自动回收单个物理表的最小空间,单位为GB。', 'type' => 'number', 'format' => 'double', 'example' => '10'], + 'DasProOn' => ['description' => '是否开启了DAS企业版。'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'false'], + 'TableFragmentationRatio' => ['description' => '触发空间碎片自动回收单个物理表的碎片率。', 'type' => 'number', 'format' => 'double', 'example' => '0.2'], + 'UserId' => ['description' => '用户ID,即创建数据库实例的阿里云主账号ID。', 'type' => 'string', 'example' => '140692647406****'], ], + 'description' => '', ], ], + 'NeverEnableAutoResourceOptimizeOrReleasedInstanceCount' => ['description' => '从未开启过空间碎片自动回收或者实例不存在的数据库实例数量。'."\n" + .'> 实例不存在:数据库实例已经释放或者传入的数据库实例ID存在错误。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'NeverEnableAutoResourceOptimizeOrReleasedInstanceIdList' => [ + 'description' => '从未开启过空间碎片自动回收或者实例不存在的数据库实例信息列表。', + 'type' => 'array', + 'items' => ['description' => '数据库实例ID。', 'type' => 'string', 'example' => 'rm-2ze8g2am97624****'], + ], ], - 'example' => '{ "fail": false, "data": [ { "instanceId": "rm-2ze8g2am97624****", "count": 1, "errorCode": "1062" }, { "instanceId": "rm-2ze8g2am97624****", "count": 2, "errorCode": "1064" } ], "resultId": "async__fcd7c35788e62324622c3b4a03de****", "isFinish": true, "state": "SUCCESS", "complete": true, "timestamp": 1644560866961 }', - ], - 'RequestId' => [ - 'description' => '请求的ID。', - 'type' => 'string', - 'example' => '840F51F7-9C01-538D-94F6-AE712905****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - ."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"fail\\": false,\\n \\"isFinish\\": true,\\n \\"resultId\\": \\"async__fcd7c35788e62324622c3b4a03de****\\",\\n \\"state\\": \\"SUCCESS\\",\\n \\"timestamp\\": 1644560866961,\\n \\"complete\\": true,\\n \\"result\\": [\\n {\\n \\"instanceId\\": \\"rm-2ze8g2am97624****\\",\\n \\"errorCode\\": \\"1062\\",\\n \\"count\\": 1\\n }\\n ]\\n },\\n \\"RequestId\\": \\"840F51F7-9C01-538D-94F6-AE712905****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetAsyncErrorRequestStatByCodeResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <fail>false</fail>\\n <isFinish>true</isFinish>\\n <resultId>async__fcd7c35788e62324622c3b4a03de****</resultId>\\n <state>SUCCESS</state>\\n <timestamp>1644560866961</timestamp>\\n <complete>true</complete>\\n <result>\\n <instanceId>rm-2ze8g2am97624****</instanceId>\\n <errorCode>1062</errorCode>\\n <count>1</count>\\n </result>\\n </Data>\\n <RequestId>840F51F7-9C01-538D-94F6-AE712905****</RequestId>\\n <Success>true</Success>\\n</GetAsyncErrorRequestStatByCodeResponse>","errorExample":""}]', - 'title' => '查询MySQL错误码以及每个错误码对应的SQL数量', - 'summary' => '调用GetAsyncErrorRequestStatByCode接口,异步查询数据库实例SQL洞察结果中的MySQL错误码以及每个错误码对应的SQL数量。', - 'description' => '> 异步调用后不会立即返回完整结果,当返回数据中**isFinish**取值为**false**时,请等待1s后重新发起调用,直到**isFinish**取值为**true**时,返回完整结果。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '获取空间碎片自动回收规则', + 'description' => '使用该接口需满足以下前提条件:'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" ."\n" - .'- 目前仅支持RDS MySQL和PolarDB MySQL版实例,请确保在使用该接口前,该实例已经开启DAS企业版,具体请参见[购买DAS企业版](~~163298~~)。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - ], - 'GetFullRequestOriginStatByInstanceId' => [ - 'methods' => [ - 'post', + .'- 实例类型为RDS MySQL高可用系列。'."\n" + ."\n" + .'- 数据库实例的CPU规格不小于4核,且**innodb_file_per_table**参数值为**ON**。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAutoResourceOptimizeRules'], + ], ], - 'schemes' => [ - 'https', - 'http', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:GetAutoResourceOptimizeRules', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"TotalAutoResourceOptimizeRulesCount\\": 3,\\n \\"EnableAutoResourceOptimizeCount\\": 1,\\n \\"TurnOffAutoResourceOptimizeCount\\": 1,\\n \\"HasEnableRuleButNotDasProCount\\": 1,\\n \\"EnableAutoResourceOptimizeList\\": [\\n {\\n \\"InstanceId\\": \\"rm-2ze8g2am97624****\\",\\n \\"AutoDefragment\\": true,\\n \\"TableSpaceSize\\": 10,\\n \\"DasProOn\\": true,\\n \\"TableFragmentationRatio\\": 0.2,\\n \\"UserId\\": \\"140692647406****\\"\\n }\\n ],\\n \\"TurnOffAutoResourceOptimizeList\\": [\\n {\\n \\"InstanceId\\": \\"rm-2vc54m2a6pd6p****\\",\\n \\"AutoDefragment\\": false,\\n \\"TableSpaceSize\\": 10,\\n \\"DasProOn\\": true,\\n \\"TableFragmentationRatio\\": 0.2,\\n \\"UserId\\": \\"140692647406****\\"\\n }\\n ],\\n \\"HasEnableRuleButNotDasProList\\": [\\n {\\n \\"InstanceId\\": \\"rm-2ze9xrhze0709****\\",\\n \\"AutoDefragment\\": true,\\n \\"TableSpaceSize\\": 10,\\n \\"DasProOn\\": false,\\n \\"TableFragmentationRatio\\": 0.2,\\n \\"UserId\\": \\"140692647406****\\"\\n }\\n ],\\n \\"NeverEnableAutoResourceOptimizeOrReleasedInstanceCount\\": 1,\\n \\"NeverEnableAutoResourceOptimizeOrReleasedInstanceIdList\\": [\\n \\"rm-2ze8g2am97624****\\"\\n ]\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetAutoResourceOptimizeRulesResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <TotalAutoResourceOptimizeRulesCount>3</TotalAutoResourceOptimizeRulesCount>\\n <EnableAutoResourceOptimizeCount>1</EnableAutoResourceOptimizeCount>\\n <TurnOffAutoResourceOptimizeCount>1</TurnOffAutoResourceOptimizeCount>\\n <HasEnableRuleButNotDasProCount>1</HasEnableRuleButNotDasProCount>\\n <EnableAutoResourceOptimizeList>\\n <InstanceId>rm-2ze8g2am97624****</InstanceId>\\n <AutoDefragment>true</AutoDefragment>\\n <TableSpaceSize>10</TableSpaceSize>\\n <DasProOn>true</DasProOn>\\n <TableFragmentationRatio>0.2</TableFragmentationRatio>\\n <UserId>140692647406****</UserId>\\n </EnableAutoResourceOptimizeList>\\n <TurnOffAutoResourceOptimizeList>\\n <InstanceId>rm-2vc54m2a6pd6p****</InstanceId>\\n <AutoDefragment>false</AutoDefragment>\\n <TableSpaceSize>10</TableSpaceSize>\\n <DasProOn>true</DasProOn>\\n <TableFragmentationRatio>0.2</TableFragmentationRatio>\\n <UserId>140692647406****</UserId>\\n </TurnOffAutoResourceOptimizeList>\\n <HasEnableRuleButNotDasProList>\\n <InstanceId>rm-2ze9xrhze0709****</InstanceId>\\n <AutoDefragment>true</AutoDefragment>\\n <TableSpaceSize>10</TableSpaceSize>\\n <DasProOn>false</DasProOn>\\n <TableFragmentationRatio>0.2</TableFragmentationRatio>\\n <UserId>140692647406****</UserId>\\n </HasEnableRuleButNotDasProList>\\n <NeverEnableAutoResourceOptimizeOrReleasedInstanceCount>1</NeverEnableAutoResourceOptimizeOrReleasedInstanceCount>\\n <NeverEnableAutoResourceOptimizeOrReleasedInstanceIdList>rm-2ze8g2am97624****</NeverEnableAutoResourceOptimizeOrReleasedInstanceIdList>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetAutoResourceOptimizeRulesResponse>","errorExample":""}]', + ], + 'GetAutoThrottleRules' => [ + 'summary' => '获取指定数据库实例的自动SQL限流规则。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'operationType' => 'read', + 'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'UserId', - 'in' => 'query', - 'schema' => [ - 'description' => '用户ID,即创建数据库实例的阿里云主账号ID。'."\n" - ."\n" - .'> 非必填,输入目标数据库实例ID后,在调用API接口时,系统会自动获取用户ID。', - 'type' => 'string', - 'required' => false, - 'example' => '196278346919****', - ], - ], - [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****', - ], - ], - [ - 'name' => 'NodeId', - 'in' => 'query', - 'schema' => [ - 'description' => '节点ID。'."\n" - ."\n" - .'> 对于PolarDB MySQL版实例,需要提供节点ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'pi-bp12v7243x012****', - ], - ], - [ - 'name' => 'Start', - 'in' => 'query', - 'schema' => [ - 'description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。'."\n" - ."\n" - .'> 查询开始时间需在数据库实例SQL洞察存储时长范围内,最大不能早于当前时间90天。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1644716649000', - ], - ], - [ - 'name' => 'End', - 'in' => 'query', - 'schema' => [ - 'description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。'."\n" - .' '."\n" - .'> 查询结束时间需晚于查询开始时间,且查询开始时间和查询结束时间的间隔不能超过1天。'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1644803409000', - ], - ], - [ - 'name' => 'OrderBy', - 'in' => 'query', - 'schema' => [ - 'description' => '排序字段,默认为**count**。'."\n" - ."\n" - .'- **count**:执行次数。'."\n" - ."\n" - .'- **avgRt**:平均执行时间。'."\n" - ."\n" - .'- **rtRate**:耗时比例。'."\n" - ."\n" - .'- **rowsExamined**:总扫描行数。'."\n" - ."\n" - .'- **avgRowsExamined**:平均扫描行数。'."\n" - ."\n" - .'- **avgRowsReturned**:平均返回行数。', - 'type' => 'string', - 'required' => false, - 'example' => 'count', - ], - ], - [ - 'name' => 'Asc', - 'in' => 'query', - 'schema' => [ - 'description' => '升序排序开关,默认关闭。', - 'type' => 'boolean', - 'required' => false, - 'example' => '关闭', - ], - ], - [ - 'name' => 'PageNo', - 'in' => 'query', - 'schema' => [ - 'description' => '分页查询的页码,从1开始,默认为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '分页查询每页最大记录数,默认为20。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '20', - ], - ], - [ - 'name' => 'SqlType', + 'name' => 'ConsoleContext', 'in' => 'query', - 'schema' => [ - 'description' => 'SQL语句的类型,取值包括:**SELECT**、**INSERT**、**UPDATE**、**DELETE**、**MERGE**、**ALTER**、**CREATEINDEX**、**DROPINDEX**、**CREATE**、**DROP**、**SET**、**DESC**、**REPLACE**、**CALL**、**BEGIN**、**DESCRIBE**、**ROLLBACK**、**FLUSH**、**USE**、**SHOW**、**START**、**COMMIT**和**RENAME**。'."\n" - ."\n" - .'> 当数据库实例为RDS MySQL、PolarDB MySQL版、PolarDB-X 2.0时,可以通过SQL语句类型进行统计。', - 'type' => 'string', - 'required' => false, - 'example' => 'SELECT', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ - 'name' => 'Role', + 'name' => 'InstanceIds', 'in' => 'query', - 'schema' => [ - 'description' => 'PolarDB-X 2.0数据库实例节点(角色)信息。'."\n" - ."\n" - .'- **polarx_cn**:计算节点。'."\n" - ."\n" - .'- **polarx_en**:数据节点。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'polarx_cn', - ], + 'schema' => ['description' => '数据库实例ID。'."\n" + ."\n" + .'- 数据格式为JSONArray,例如`[\'实例ID1\',\'实例ID2\']`,实例ID间用英文逗号(,)分隔。'."\n" + .'- 不输入数据库实例ID时,默认返回当前账号曾经开启过自动SQL限流功能的全部数据库实例信息,包括:'."\n" + .' - 正在使用该功能的数据库实例。'."\n" + .' - 已关闭该功能的数据库实例(不包含已经释放的数据库实例)。', 'type' => 'string', 'required' => false, 'example' => '[\'rm-2ze8g2am97624****\',\'rm-2vc54m2a6pd6p****\',\'rm-2ze9xrhze0709****\']'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回信息的详细列表。', 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '7172BECE-588A-5961-8126-C216E16B****', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ - 'description' => '返回数据。', + 'description' => '返回的数据。', 'type' => 'object', 'properties' => [ - 'List' => [ - 'description' => '全量请求数据列表。', + 'TotalAutoThrottleRulesCount' => ['description' => '所有开启过自动SQL限流功能的数据库数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '3'], + 'EnableAutoThrottleCount' => ['description' => '正在使用自动SQL限流功能的数据库实例数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'TurnOffAutoThrottleCount' => ['description' => '曾经开启并且当前已关闭自动SQL限流功能的数据库实例数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'NeverEnableAutoThrottleOrReleasedInstanceCount' => ['description' => '从未开启过自动SQL限流或者实例不存在的数据库实例数量。'."\n" + .'> 实例不存在:数据库实例已经释放或者传入的数据库实例ID存在错误。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'EnableAutoThrottleList' => [ + 'description' => '正在使用自动SQL限流功能的数据库实例信息列表。', 'type' => 'array', 'items' => [ - 'description' => '全量请求数据列表。', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => '执行SQL的客户端IP地址。', - 'type' => 'string', - 'example' => '172.26.6****', - ], - 'AvgFetchRows' => [ - 'description' => 'PolarDB-X 2.0数据库实例计算节点平均拉取数据节点的行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'AvgLockWaitTime' => [ - 'description' => '平均锁等待时长,单位为秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0.00009589874265269765', - ], - 'AvgLogicalRead' => [ - 'description' => '平均逻辑读。', - 'type' => 'number', - 'format' => 'double', - 'example' => '654.4470327860251', - ], - 'AvgPhysicalAsyncRead' => [ - 'description' => '平均物理异步读取。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'AvgPhysicalSyncRead' => [ - 'description' => '平均物理同步读取。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0', - ], - 'AvgRows' => [ - 'description' => '平均行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'AvgExaminedRows' => [ - 'description' => '平均扫描行数。'."\n" - ."\n" - .'> 目前支持该字段的数据库:RDS MySQL、RDS PostgreSQL、PolarDB MySQL版。', - 'type' => 'number', - 'format' => 'double', - 'example' => '10000', - ], - 'AvgReturnedRows' => [ - 'description' => '平均返回行数。', - 'type' => 'number', - 'format' => 'double', - 'example' => '10000', - ], - 'AvgUpdatedRows' => [ - 'description' => '平均修改行数。'."\n" - ."\n" - .'> 目前支持该字段的数据库:RDS MySQL、PolarDB-X 2.0。', - 'type' => 'number', - 'format' => 'double', - 'example' => '10000', - ], - 'AvgRt' => [ - 'description' => '平均执行耗时。', - 'type' => 'number', - 'format' => 'double', - 'example' => '2.499', - ], - 'AvgSqlCount' => [ - 'description' => '平均SQL数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10000', - ], - 'Count' => [ - 'description' => '总执行次数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100000', - ], - 'CountRate' => [ - 'description' => '执行次数比例。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0.0586', - ], - 'Database' => [ - 'description' => '数据库名。', - 'type' => 'string', - 'example' => 'dbtest01', - ], - 'ErrorCount' => [ - 'description' => '执行错误次数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'FetchRows' => [ - 'description' => 'PolarDB-X 2.0数据库实例计算节点拉取数据节点的行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Ip' => [ - 'description' => '实例的网络地址。', - 'type' => 'string', - 'example' => 'rm-uf6dyi58dm6****.mysql.rds.aliy****.com', - ], - 'LockWaitTime' => [ - 'description' => '锁等待时长,单位为秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '1089.4177720290281', - ], - 'LogicalRead' => [ - 'description' => '逻辑读。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '7.434573266E9', - ], - 'OriginHost' => [ - 'description' => '执行SQL的客户端IP地址。', - 'type' => 'string', - 'example' => '172.26.6****', - ], - 'PhysicalAsyncRead' => [ - 'description' => '物理异步读取。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'PhysicalSyncRead' => [ - 'description' => '物理同步读取。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'Port' => [ - 'description' => '端口号。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '3306', - ], - 'Rows' => [ - 'description' => 'PolarDB-X 2.0数据库实例计算节点总更新或返回的行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'ExaminedRows' => [ - 'description' => '总扫描行数。'."\n" - ."\n" - .'> 目前支持该字段的数据库:RDS MySQL、RDS PostgreSQL、PolarDB MySQL版。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10000', - ], - 'RtGreaterThanOneSecondCount' => [ - 'description' => '执行时长大于1秒的SQL数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'RtRate' => [ - 'description' => '耗时比例。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0.1384', - ], - 'SqlCount' => [ - 'description' => 'SQL的数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'SumUpdatedRows' => [ - 'description' => '总变更行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Version' => [ - 'description' => '版本。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'VpcId' => [ - 'description' => 'VPC ID。', - 'type' => 'string', - 'example' => 'vpc-2zentqj1sk4qmolci****', - ], + 'AbnormalDuration' => ['description' => '触发自动限SQL流规则的异常的持续时间阈值,单位:分钟。', 'type' => 'number', 'format' => 'double', 'example' => '2'], + 'CpuUsage' => ['description' => 'CPU利用率阈值。', 'type' => 'number', 'format' => 'double', 'example' => '70'], + 'CpuSessionRelation' => ['description' => 'CPU利用率阈值和活跃会话数阈值的逻辑关系:'."\n" + ."\n" + .'- **AND**:且。'."\n" + .'- **OR**:或。', 'type' => 'string', 'example' => 'AND'], + 'ActiveSessions' => ['description' => '活跃会话数量阈值。', 'type' => 'integer', 'format' => 'int64', 'example' => '32'], + 'MaxThrottleTime' => ['description' => '最大限流时长,单位:分钟。', 'type' => 'number', 'format' => 'double', 'example' => '10'], + 'AllowThrottleStartTime' => ['description' => '可限流时间段的开始时间(UTC时间)。', 'type' => 'string', 'example' => '00:00Z'], + 'AllowThrottleEndTime' => ['description' => '可限流时间段的结束时间(UTC时间)。', 'type' => 'string', 'example' => '23:59Z'], + 'Visible' => ['description' => '自动SQL限流规则是否开启:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'AutoKillSession' => ['description' => '是否同时KILL执行中的异常SQL:'."\n" + .'> 异常SQL:与需要限流的SQL模板相同。'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'InstanceId' => ['description' => '数据库实例ID。', 'type' => 'string', 'example' => 'rm-2ze8g2am97624****'], + 'UserId' => ['description' => '用户ID,即创建数据库实例的阿里云主账号ID。', 'type' => 'string', 'example' => '140692647406****'], ], + 'description' => '', ], ], - 'Total' => [ - 'description' => '总数据量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', + 'TurnOffAutoThrottleList' => [ + 'description' => '曾经开启并且当前已关闭自动SQL限流功能的数据库实例信息列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AbnormalDuration' => ['description' => '触发自动限流规则的持续时间阈值,单位:分钟。', 'type' => 'number', 'format' => 'double', 'example' => '2'], + 'CpuUsage' => ['description' => 'CPU利用率阈值。', 'type' => 'number', 'format' => 'double', 'example' => '80'], + 'AllowThrottleEndTime' => ['description' => '可限流时间段的结束时间(UTC时间)。', 'type' => 'string', 'example' => '23:59Z'], + 'InstanceId' => ['description' => '数据库实例ID。', 'type' => 'string', 'example' => 'rm-2ze9xrhze0709****'], + 'Visible' => ['description' => '自动SQL限流规则是否开启:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'false'], + 'CpuSessionRelation' => ['description' => 'CPU利用率阈值和活跃会话数阈值的关系:'."\n" + .'- **AND**:且。'."\n" + .'- **OR**:或。', 'type' => 'string', 'example' => 'OR'], + 'AutoKillSession' => ['description' => '是否同时KILL执行中的异常SQL:'."\n" + .'> 异常SQL:与需要限流的SQL模板相同。'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'ActiveSessions' => ['description' => '活跃会话数阈值。', 'type' => 'integer', 'format' => 'int64', 'example' => '64'], + 'MaxThrottleTime' => ['description' => '最大限流时长,单位:分钟。', 'type' => 'number', 'format' => 'double', 'example' => '10'], + 'UserId' => ['description' => '用户ID,即创建数据库实例的阿里云主账号ID。', 'type' => 'string', 'example' => '140692647406****'], + 'AllowThrottleStartTime' => ['description' => '可限流时间段的开始时间(UTC时间)。', 'type' => 'string', 'example' => '00:00Z'], + ], + 'description' => '', + ], + ], + 'NeverEnableAutoThrottleOrReleasedInstanceIdList' => [ + 'description' => '从未开启过自动SQL限流或者实例不存在的数据库实例数量。'."\n" + .'> 实例不存在:数据库实例已经释放或者传入的数据库实例ID存在错误。', + 'type' => 'array', + 'items' => ['description' => '数据库实例ID。', 'type' => 'string', 'example' => 'rm-2vc54m2a6pd6p****'], ], ], ], - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '7172BECE-588A-5961-8126-C216E16B****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"7172BECE-588A-5961-8126-C216E16B****\\",\\n \\"Data\\": {\\n \\"List\\": [\\n {\\n \\"Key\\": \\"172.26.6****\\",\\n \\"AvgFetchRows\\": 0,\\n \\"AvgLockWaitTime\\": 0.00009589874265269765,\\n \\"AvgLogicalRead\\": 654.4470327860251,\\n \\"AvgPhysicalAsyncRead\\": 0,\\n \\"AvgPhysicalSyncRead\\": 0,\\n \\"AvgRows\\": 0,\\n \\"AvgExaminedRows\\": 10000,\\n \\"AvgReturnedRows\\": 10000,\\n \\"AvgUpdatedRows\\": 10000,\\n \\"AvgRt\\": 2.499,\\n \\"AvgSqlCount\\": 10000,\\n \\"Count\\": 100000,\\n \\"CountRate\\": 0.0586,\\n \\"Database\\": \\"dbtest01\\",\\n \\"ErrorCount\\": 1,\\n \\"FetchRows\\": 200,\\n \\"Ip\\": \\"rm-uf6dyi58dm6****.mysql.rds.aliy****.com\\",\\n \\"LockWaitTime\\": 1089.4177720290281,\\n \\"LogicalRead\\": 7434573266,\\n \\"OriginHost\\": \\"172.26.6****\\",\\n \\"PhysicalAsyncRead\\": 0,\\n \\"PhysicalSyncRead\\": 0,\\n \\"Port\\": 3306,\\n \\"Rows\\": 0,\\n \\"ExaminedRows\\": 10000,\\n \\"RtGreaterThanOneSecondCount\\": 2,\\n \\"RtRate\\": 0.1384,\\n \\"SqlCount\\": 200,\\n \\"SumUpdatedRows\\": 200,\\n \\"Version\\": 1,\\n \\"VpcId\\": \\"vpc-2zentqj1sk4qmolci****\\"\\n }\\n ],\\n \\"Total\\": 1\\n },\\n \\"Code\\": 200,\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetFullRequestOriginStatByInstanceIdResponse>\\n <Message>Successful</Message>\\n <RequestId>7172BECE-588A-5961-8126-C216E16B****</RequestId>\\n <Data>\\n <List>\\n <Key>172.26.6****</Key>\\n <AvgFetchRows>0</AvgFetchRows>\\n <AvgLockWaitTime>0.00009589874265269765</AvgLockWaitTime>\\n <AvgLogicalRead>654.4470327860251</AvgLogicalRead>\\n <AvgPhysicalAsyncRead>0</AvgPhysicalAsyncRead>\\n <AvgPhysicalSyncRead>0</AvgPhysicalSyncRead>\\n <AvgRows>0</AvgRows>\\n <AvgExaminedRows>10000</AvgExaminedRows>\\n <AvgReturnedRows>10000</AvgReturnedRows>\\n <AvgUpdatedRows>10000</AvgUpdatedRows>\\n <AvgRt>2.499</AvgRt>\\n <AvgSqlCount>10000</AvgSqlCount>\\n <Count>100000</Count>\\n <CountRate>0.0586</CountRate>\\n <Database>dbtest01</Database>\\n <ErrorCount>1</ErrorCount>\\n <FetchRows>200</FetchRows>\\n <Ip>rm-uf6dyi58dm6****.mysql.rds.aliy****.com</Ip>\\n <LockWaitTime>1089.4177720290281</LockWaitTime>\\n <OriginHost>172.26.6****</OriginHost>\\n <PhysicalAsyncRead>0</PhysicalAsyncRead>\\n <PhysicalSyncRead>0</PhysicalSyncRead>\\n <Port>3306</Port>\\n <Rows>0</Rows>\\n <ExaminedRows>10000</ExaminedRows>\\n <RtGreaterThanOneSecondCount>2</RtGreaterThanOneSecondCount>\\n <RtRate>0.1384</RtRate>\\n <SqlCount>200</SqlCount>\\n <SumUpdatedRows>200</SumUpdatedRows>\\n <Version>1</Version>\\n <VpcId>vpc-2zentqj1sk4qmolci****</VpcId>\\n </List>\\n <Total>1</Total>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetFullRequestOriginStatByInstanceIdResponse>","errorExample":""}]', - 'title' => '按照访问来源统计全量请求数据', - 'summary' => '调用GetFullRequestOriginStatByInstanceId接口,按照访问来源统计数据库实例SQL洞察结果中的全量请求数据。', - 'description' => 'SQL洞察功能可对SQL进行健康情况诊断、性能问题排查,详情请参见[SQL洞察](~~204096~~)。'."\n" - ."\n" - .'- 目前支持的数据库实例请参见[DAS企业版使用说明](~~190912~~)。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - ], - 'GetFullRequestStatResultByInstanceId' => [ - 'methods' => [ - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '获取自动SQL限流规则', + 'description' => '使用该接口需满足以下前提条件:'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 目标数据库实例为:'."\n" + .' - RDS MySQL 5.6、5.7、 8.0高可用系列、三节点企业系列。'."\n" + .' - PolarDB MySQL版 5.6集群版、5.7集群版、 8.0集群版。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAutoThrottleRules'], + ], ], - 'schemes' => [ - 'https', - 'http', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:GetAutoThrottleRules', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"TotalAutoThrottleRulesCount\\": 3,\\n \\"EnableAutoThrottleCount\\": 1,\\n \\"TurnOffAutoThrottleCount\\": 1,\\n \\"NeverEnableAutoThrottleOrReleasedInstanceCount\\": 1,\\n \\"EnableAutoThrottleList\\": [\\n {\\n \\"AbnormalDuration\\": 2,\\n \\"CpuUsage\\": 70,\\n \\"CpuSessionRelation\\": \\"AND\\",\\n \\"ActiveSessions\\": 32,\\n \\"MaxThrottleTime\\": 10,\\n \\"AllowThrottleStartTime\\": \\"00:00Z\\",\\n \\"AllowThrottleEndTime\\": \\"23:59Z\\",\\n \\"Visible\\": true,\\n \\"AutoKillSession\\": true,\\n \\"InstanceId\\": \\"rm-2ze8g2am97624****\\",\\n \\"UserId\\": \\"140692647406****\\"\\n }\\n ],\\n \\"TurnOffAutoThrottleList\\": [\\n {\\n \\"AbnormalDuration\\": 2,\\n \\"CpuUsage\\": 80,\\n \\"AllowThrottleEndTime\\": \\"23:59Z\\",\\n \\"InstanceId\\": \\"rm-2ze9xrhze0709****\\",\\n \\"Visible\\": false,\\n \\"CpuSessionRelation\\": \\"OR\\",\\n \\"AutoKillSession\\": true,\\n \\"ActiveSessions\\": 64,\\n \\"MaxThrottleTime\\": 10,\\n \\"UserId\\": \\"140692647406****\\",\\n \\"AllowThrottleStartTime\\": \\"00:00Z\\"\\n }\\n ],\\n \\"NeverEnableAutoThrottleOrReleasedInstanceIdList\\": [\\n \\"rm-2vc54m2a6pd6p****\\"\\n ]\\n },\\n \\"RequestId\\": \\"7172BECE-588A-5961-8126-C216E16B****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetAutoThrottleRulesResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <TotalAutoThrottleRulesCount>3</TotalAutoThrottleRulesCount>\\n <EnableAutoThrottleCount>1</EnableAutoThrottleCount>\\n <TurnOffAutoThrottleCount>1</TurnOffAutoThrottleCount>\\n <NeverEnableAutoThrottleOrReleasedInstanceCount>1</NeverEnableAutoThrottleOrReleasedInstanceCount>\\n <EnableAutoThrottleList>\\n <AbnormalDuration>2</AbnormalDuration>\\n <CpuUsage>70</CpuUsage>\\n <CpuSessionRelation>AND</CpuSessionRelation>\\n <ActiveSessions>32</ActiveSessions>\\n <MaxThrottleTime>10</MaxThrottleTime>\\n <AllowThrottleStartTime>00:00Z</AllowThrottleStartTime>\\n <AllowThrottleEndTime>23:59Z</AllowThrottleEndTime>\\n <Visible>true</Visible>\\n <AutoKillSession>true</AutoKillSession>\\n <InstanceId>rm-2ze8g2am97624****</InstanceId>\\n <UserId>140692647406****</UserId>\\n </EnableAutoThrottleList>\\n <TurnOffAutoThrottleList>\\n <AbnormalDuration>2</AbnormalDuration>\\n <CpuUsage>80</CpuUsage>\\n <AllowThrottleEndTime>23:59Z</AllowThrottleEndTime>\\n <InstanceId>rm-2ze9xrhze0709****</InstanceId>\\n <Visible>false</Visible>\\n <CpuSessionRelation>OR</CpuSessionRelation>\\n <AutoKillSession>true</AutoKillSession>\\n <ActiveSessions>64</ActiveSessions>\\n <MaxThrottleTime>10</MaxThrottleTime>\\n <UserId>140692647406****</UserId>\\n <AllowThrottleStartTime>00:00Z</AllowThrottleStartTime>\\n </TurnOffAutoThrottleList>\\n <NeverEnableAutoThrottleOrReleasedInstanceIdList>rm-2vc54m2a6pd6p****</NeverEnableAutoThrottleOrReleasedInstanceIdList>\\n </Data>\\n <RequestId>7172BECE-588A-5961-8126-C216E16B****</RequestId>\\n <Success>true</Success>\\n</GetAutoThrottleRulesResponse>","errorExample":""}]', + ], + 'GetAutonomousNotifyEventContent' => [ + 'summary' => '调用GetAutonomousNotifyEventContent接口,获取指定数据库实例自治事件的内容。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'deprecated' => false, + 'operationType' => 'read', 'systemTags' => [ 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '23868', + 'abilityTreeNodes' => ['FEATUREhdmETIPZF'], ], 'parameters' => [ [ - 'name' => 'UserId', + 'name' => '__context', 'in' => 'query', - 'schema' => [ - 'description' => '用户ID,即创建数据库实例的阿里云主账号ID。'."\n" - ."\n" - .'> 非必填,输入目标数据库实例ID后,在调用API接口时,系统会自动获取用户ID。', - 'type' => 'string', - 'required' => false, - 'example' => '196278346919****', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****', - ], + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-18ff4a195d****'], ], [ - 'name' => 'NodeId', + 'name' => 'SpanId', 'in' => 'query', + 'schema' => ['description' => '事件的唯一标识,您可调用[GetAutonomousNotifyEventsInRange](~~288371~~)接口查看返回参数中的SpanId。', 'type' => 'string', 'required' => true, 'example' => '7e7b2774-95b8-4fa3-bd9c-0ab47cb7****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '节点ID。'."\n" - ."\n" - .'> 对于PolarDB MySQL版实例,需要提供节点ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'pi-bp12v7243x012****', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Data' => ['description' => '详细信息列表。', 'type' => 'string', 'example' => '{\\"taskId\\":\\"7e1ba595-0889-48ff-a6ff-010f54991d****\\",\\"taskType\\":\\"SQL_OPTIMIZE\\",\\"advisorId\\":\\"636dc5f34664dd56ff0****\\",\\"sqlId\\":\\"e2b1d6c1ee1bb29555a828b59f16****\\",\\"indexAdviceCount\\":1,\\"indexAdvices\\":[{\\"schemaName\\":\\"das\\",\\"tableName\\":\\"students\\",\\"indexName\\":\\"idx_name\\",\\"columns\\":[\\"name\\"],\\"unique\\":false,\\"ddlAddIndex\\":\\"ALTER TABLE `das`.`students` ADD INDEX `idx_name` (`name`)\\",\\"priority\\":0,\\"optimizeId\\":\\"96232794517277511\\"}],\\"tuningAdvices\\":[],\\"improvement\\":8127.25,\\"supportLevel\\":3,\\"priority\\":\\"HIGH\\"}'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + ], + 'title' => '获取实例自治事件内容', + 'description' => '使用该接口需满足以下前提条件:'."\n" + ."\n" + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 当您的实例接入DAS之后,DAS异常检测发现数据库相关的监控指标发生变化,就会触发快照抓取等通知类事件。'."\n" + ."\n" + .' '."\n" + .'>只有开启[自治中心](~~152139~~)才能获取通知事件的详情。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAutonomousNotifyEventContent'], + ], + ], + 'ramActions' => [ [ - 'name' => 'SqlId', - 'in' => 'query', - 'schema' => [ - 'description' => 'SQL ID。'."\n" - ."\n" - .'> 填写SQL ID时,统计目标SQL ID的全量请求数据;为空时,统计整个数据库实例的全量请求数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'd71f82be1eef72bd105128204d2e****', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetAutonomousNotifyEventContent', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Data\\": \\"{\\\\\\\\\\\\\\"taskId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"7e1ba595-0889-48ff-a6ff-010f54991d****\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"taskType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"SQL_OPTIMIZE\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"advisorId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"636dc5f34664dd56ff0****\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"sqlId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"e2b1d6c1ee1bb29555a828b59f16****\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"indexAdviceCount\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"indexAdvices\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"schemaName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"das\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"tableName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"students\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"indexName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"idx_name\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"columns\\\\\\\\\\\\\\":[\\\\\\\\\\\\\\"name\\\\\\\\\\\\\\"],\\\\\\\\\\\\\\"unique\\\\\\\\\\\\\\":false,\\\\\\\\\\\\\\"ddlAddIndex\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"ALTER TABLE `das`.`students` ADD INDEX `idx_name` (`name`)\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"priority\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"optimizeId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"96232794517277511\\\\\\\\\\\\\\"}],\\\\\\\\\\\\\\"tuningAdvices\\\\\\\\\\\\\\":[],\\\\\\\\\\\\\\"improvement\\\\\\\\\\\\\\":8127.25,\\\\\\\\\\\\\\"supportLevel\\\\\\\\\\\\\\":3,\\\\\\\\\\\\\\"priority\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"HIGH\\\\\\\\\\\\\\"}\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetAutonomousNotifyEventContentResponse>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Data>{\\"taskId\\":\\"7e1ba595-0889-48ff-a6ff-010f54991d****\\",\\"taskType\\":\\"SQL_OPTIMIZE\\",\\"advisorId\\":\\"636dc5f34664dd56ff0****\\",\\"sqlId\\":\\"e2b1d6c1ee1bb29555a828b59f16****\\",\\"indexAdviceCount\\":1,\\"indexAdvices\\":[{\\"schemaName\\":\\"das\\",\\"tableName\\":\\"students\\",\\"indexName\\":\\"idx_name\\",\\"columns\\":[\\"name\\"],\\"unique\\":false,\\"ddlAddIndex\\":\\"ALTER TABLE `das`.`students` ADD INDEX `idx_name` (`name`)\\",\\"priority\\":0,\\"optimizeId\\":\\"96232794517277511\\"}],\\"tuningAdvices\\":[],\\"improvement\\":8127.25,\\"supportLevel\\":3,\\"priority\\":\\"HIGH\\"}</Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetAutonomousNotifyEventContentResponse>","errorExample":""}]', + ], + 'GetAutonomousNotifyEventsInRange' => [ + 'summary' => '调用GetAutonomousNotifyEventsInRange接口,获取指定类型或范围的通知事件。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'OriginHost', - 'in' => 'query', - 'schema' => [ - 'description' => '执行SQL的客户端IP地址。'."\n" - ."\n" - .'> 非必填,输入目标客户端IP地址后,统计目标客户端IP地址的全量请求数据;为空时,统计整个数据库实例的全量请求数据。', - 'type' => 'string', - 'required' => false, - 'example' => '172.26.XX.XXX', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '23871', + 'abilityTreeNodes' => ['FEATUREhdm56JBRC'], + ], + 'parameters' => [ [ - 'name' => 'Keyword', + 'name' => '__context', 'in' => 'query', - 'schema' => [ - 'description' => '查询关键词。', - 'type' => 'string', - 'required' => false, - 'example' => 'dbtest01', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ - 'name' => 'Start', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。'."\n" - ."\n" - .'> 查询开始时间需要在数据库实例SQL洞察存储时长范围内,最大不能早于当前时间90天。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1645581813000', - ], + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => false, 'example' => 'rm-18ff4a195d****'], ], [ - 'name' => 'End', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。'."\n" - ."\n" - .'> 查询结束时间需晚于查询开始时间,且查询开始时间和查询结束时间的间隔不能超过1天。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1645668213000', - ], + 'schema' => ['description' => '查询任务开始时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'string', 'required' => true, 'example' => '1568269711000'], ], [ - 'name' => 'OrderBy', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '排序字段,默认为**count**。'."\n" - ."\n" - .'- **count**:执行次数。'."\n" - ."\n" - .'- **avgRt**:平均执行时间。'."\n" - ."\n" - .'- **rtRate**:耗时比例。'."\n" - ."\n" - .'- **rowsExamined**:总扫描行数。'."\n" - ."\n" - .'- **avgRowsExamined**:平均扫描行数。'."\n" - ."\n" - .'- **avgRowsReturned**:平均返回行数。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'count', - ], + 'schema' => ['description' => '查询任务结束时间,格式为Unix时间戳,单位为毫秒。'."\n" + .'>查询任务结束时间需晚于查询任务开始时间。', 'type' => 'string', 'required' => true, 'example' => '1568265711221'], ], [ - 'name' => 'Asc', + 'name' => 'NodeId', 'in' => 'query', - 'schema' => [ - 'description' => '升序排序开关,默认关闭。', - 'type' => 'boolean', - 'required' => false, - 'example' => '关闭', - ], + 'schema' => ['description' => 'PolarDB的节点ID,您可以通过调用[DescribeDBClusters](~~98094~~)接口查看返回参数的DBNodeId。'."\n" + .'>仅支持PolarDB MySQL版实例。', 'type' => 'string', 'required' => false, 'example' => 'r-x****-db-0'], ], [ - 'name' => 'PageNo', + 'name' => 'EventContext', 'in' => 'query', - 'schema' => [ - 'description' => '分页查询的页码,从1开始,默认为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ - 'name' => 'PageSize', + 'name' => 'Level', 'in' => 'query', - 'schema' => [ - 'description' => '分页查询每页数据量,默认为20。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '20', - ], + 'schema' => ['description' => '指定事件紧急程度,当该字段设置时,MinLevel参数将无效。取值:'."\n" + ."\n" + .'- **Notice**:通知类事件。'."\n" + .'- **Optimization**:优化类事件。'."\n" + .'- **Warn**:警告类事件。'."\n" + .'- **Critical**:危机类事件。', 'type' => 'string', 'required' => false, 'example' => 'Warn'], ], [ - 'name' => 'SqlType', + 'name' => 'MinLevel', 'in' => 'query', - 'schema' => [ - 'description' => 'SQL语句的类型,取值包括:**SELECT**、**INSERT**、**UPDATE**、**DELETE**、**LOGIN**、**LOGOUT**、**MERGE**、**ALTER**、**CREATEINDEX**、**DROPINDEX**、**CREATE**、**DROP**、**SET**、**DESC**、**REPLACE**、**CALL**、**BEGIN**、**DESCRIBE**、**ROLLBACK**、**FLUSH**、**USE**、**SHOW**、**START**、**COMMIT**和**RENAME**。'."\n" - ."\n" - .'> 当数据库实例为RDS MySQL、PolarDB MySQL版、PolarDB-X 2.0时,可以通过SQL语句类型进行统计。', - 'type' => 'string', - 'required' => false, - 'example' => 'SELECT', - ], + 'schema' => ['description' => '最小事件紧急程度。取值:'."\n" + ."\n" + .'- **Notice**:通知类事件。'."\n" + .'- **Optimization**:优化类事件。'."\n" + .'- **Warn**:警告类事件。'."\n" + .'- **Critical**:危机类事件。', 'type' => 'string', 'required' => false, 'example' => 'Notice'], ], [ - 'name' => 'DbName', + 'name' => 'PageOffset', 'in' => 'query', - 'schema' => [ - 'description' => '数据库名。', - 'type' => 'string', - 'required' => false, - 'example' => 'dbtest01', - ], + 'schema' => ['description' => '分页查询,页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', 'type' => 'string', 'required' => false, 'example' => '1'], ], [ - 'name' => 'Role', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'PolarDB-X 2.0数据库实例节点信息。'."\n" - ."\n" - .'- **polarx_cn**:计算节点。'."\n" - ."\n" - .'- **polarx_dn**:数据节点。', - 'type' => 'string', - 'required' => false, - 'example' => 'polarx_cn', - ], + 'schema' => ['description' => '分页查询,每页大小。', 'type' => 'string', 'required' => false, 'example' => '30'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回信息的详细列表。', 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '7172BECE-588A-5961-8126-C216E16B****', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], 'Data' => [ - 'description' => '返回数据。', + 'description' => '详细信息列表,包括信息总数、错误码等。', 'type' => 'object', 'properties' => [ - 'Result' => [ - 'description' => '返回的全量请求数据。', + 'Extra' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], + 'List' => [ 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'List' => [ - 'description' => '全量请求数据列表。', + 'T' => [ + 'description' => '详细信息列表,包括信息总数、错误码等。', 'type' => 'array', - 'items' => [ - 'description' => '全量请求数据列表。', - 'type' => 'object', - 'properties' => [ - 'SqlId' => [ - 'description' => 'SQL ID。', - 'type' => 'string', - 'example' => 'd71f82be1eef72bd105128204d2e****', - ], - 'AvgFetchRows' => [ - 'description' => 'PolarDB-X 2.0数据库实例计算节点平均拉取数据节点的行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'AvgLockWaitTime' => [ - 'description' => '平均锁等待时长,单位为秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0.00009589874265269765', - ], - 'AvgLogicalRead' => [ - 'description' => '平均逻辑读。', - 'type' => 'number', - 'format' => 'double', - 'example' => '654.4470327860251', - ], - 'AvgPhysicalAsyncRead' => [ - 'description' => '平均物理异步读取。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'AvgPhysicalSyncRead' => [ - 'description' => '平均物理同步读取。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'AvgExaminedRows' => [ - 'description' => '平均扫描行数。'."\n" - ."\n" - .'> 目前支持该字段的数据库:RDS MySQL、RDS PostgreSQL、PolarDB MySQL版。', - 'type' => 'number', - 'format' => 'double', - 'example' => '10000', - ], - 'AvgReturnedRows' => [ - 'description' => '平均返回行数。', - 'type' => 'number', - 'format' => 'double', - 'example' => '10000', - ], - 'AvgUpdatedRows' => [ - 'description' => '平均修改行数。'."\n" - ."\n" - .'> 目前支持该字段的数据库:RDS MySQL、PolarDB-X 2.0。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10000', - ], - 'AvgRt' => [ - 'description' => '平均执行耗时。', - 'type' => 'number', - 'format' => 'double', - 'example' => '2.499', - ], - 'AvgSqlCount' => [ - 'description' => '平均SQL计数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10000', - ], - 'Count' => [ - 'description' => '总执行次数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100000', - ], - 'CountRate' => [ - 'description' => '执行次数比例。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0.0586', - ], - 'Database' => [ - 'description' => '数据库名。', - 'type' => 'string', - 'example' => 'dbtest01', - ], - 'ErrorCount' => [ - 'description' => '执行错误次数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'FetchRows' => [ - 'description' => 'PolarDB-X 2.0数据库实例计算节点拉取数据节点的行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'Ip' => [ - 'description' => '实例的网络地址。', - 'type' => 'string', - 'example' => 'rm-uf6dyi58dm6****.mysql.rds.aliy****.com', - ], - 'LockWaitTime' => [ - 'description' => '锁等待时长,单位为秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '1089.4177720290281', - ], - 'LogicalRead' => [ - 'description' => '逻辑读。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '7.434573266E9', - ], - 'PhysicalAsyncRead' => [ - 'description' => '物理异步读取。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'PhysicalSyncRead' => [ - 'description' => '物理同步读取。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'Port' => [ - 'description' => '端口号。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '3306', - ], - 'Psql' => [ - 'description' => 'SQL模板。', - 'type' => 'string', - 'example' => 'select * from dbtest01 where ****', - ], - 'Rows' => [ - 'description' => 'PolarDB-X 2.0数据库实例计算节点总更新或返回的行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'ExaminedRows' => [ - 'description' => '总扫描行数。'."\n" - ."\n" - .'> 目前支持该字段的数据库:RDS MySQL、RDS PostgreSQL、PolarDB MySQL版。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10000', - ], - 'RtGreaterThanOneSecondCount' => [ - 'description' => '执行时长大于1秒的SQL数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], - 'RtRate' => [ - 'description' => '耗时比例。', - 'type' => 'number', - 'format' => 'double', - 'example' => '2.499', - ], - 'SqlCount' => [ - 'description' => 'SQL的数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'SumUpdatedRows' => [ - 'description' => '总变更行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'Tables' => [ - 'description' => '数据库表名。', - 'type' => 'array', - 'items' => [ - 'description' => '数据库表名。'."\n", - 'type' => 'string', - 'example' => 'tabletest01,tabletest02', - ], - ], - 'Version' => [ - 'description' => '版本。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'VpcId' => [ - 'description' => 'VPC ID。', - 'type' => 'string', - 'example' => 'vpc-2zentqj1sk4qmolci****', - ], - ], - ], - ], - 'Total' => [ - 'description' => '总数据量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', + 'items' => ['description' => '详细信息列表。', 'type' => 'string', 'example' => '"T": []'], ], ], + 'description' => '', ], - 'Fail' => [ - 'description' => '请求是否失败。'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'IsFinish' => [ - 'description' => '异步请求是否执行完成。'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ResultId' => [ - 'description' => '请求的ID。', - 'type' => 'string', - 'example' => '9CB97BC4-6479-55D0-B9D0-EA925AFE****', - ], - 'State' => [ - 'description' => '异步请求的执行状态。'."\n" - ."\n" - .'- **RUNNING**:正在运行。'."\n" - ."\n" - .'- **SUCCESS**:成功。'."\n" - ."\n" - .'- **FAIL**:失败。', - 'type' => 'string', - 'example' => 'SUCCESS', - ], - 'Timestamp' => [ - 'description' => '执行时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1645668213000', - ], + 'PageNo' => ['description' => '页码。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'PageSize' => ['description' => '每页最大记录数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'Total' => ['description' => '总记录数。', 'type' => 'integer', 'format' => 'int64', 'example' => '4'], ], ], - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"7172BECE-588A-5961-8126-C216E16B****\\",\\n \\"Data\\": {\\n \\"Result\\": {\\n \\"List\\": [\\n {\\n \\"SqlId\\": \\"d71f82be1eef72bd105128204d2e****\\",\\n \\"AvgFetchRows\\": 0,\\n \\"AvgLockWaitTime\\": 0.00009589874265269765,\\n \\"AvgLogicalRead\\": 654.4470327860251,\\n \\"AvgPhysicalAsyncRead\\": 0,\\n \\"AvgPhysicalSyncRead\\": 0,\\n \\"AvgExaminedRows\\": 10000,\\n \\"AvgReturnedRows\\": 10000,\\n \\"AvgUpdatedRows\\": 10000,\\n \\"AvgRt\\": 2.499,\\n \\"AvgSqlCount\\": 10000,\\n \\"Count\\": 100000,\\n \\"CountRate\\": 0.0586,\\n \\"Database\\": \\"dbtest01\\",\\n \\"ErrorCount\\": 1,\\n \\"FetchRows\\": 0,\\n \\"Ip\\": \\"rm-uf6dyi58dm6****.mysql.rds.aliy****.com\\",\\n \\"LockWaitTime\\": 1089.4177720290281,\\n \\"LogicalRead\\": 7434573266,\\n \\"PhysicalAsyncRead\\": 0,\\n \\"PhysicalSyncRead\\": 0,\\n \\"Port\\": 3306,\\n \\"Psql\\": \\"select * from dbtest01 where ****\\",\\n \\"Rows\\": 0,\\n \\"ExaminedRows\\": 10000,\\n \\"RtGreaterThanOneSecondCount\\": 20,\\n \\"RtRate\\": 2.499,\\n \\"SqlCount\\": 200,\\n \\"SumUpdatedRows\\": 100,\\n \\"Tables\\": [\\n \\"tabletest01,tabletest02\\"\\n ],\\n \\"Version\\": 1,\\n \\"VpcId\\": \\"vpc-2zentqj1sk4qmolci****\\"\\n }\\n ],\\n \\"Total\\": 1\\n },\\n \\"Fail\\": false,\\n \\"IsFinish\\": true,\\n \\"ResultId\\": \\"9CB97BC4-6479-55D0-B9D0-EA925AFE****\\",\\n \\"State\\": \\"SUCCESS\\",\\n \\"Timestamp\\": 1645668213000\\n },\\n \\"Code\\": 200,\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetFullRequestStatResultByInstanceIdResponse>\\n <Message>Successful</Message>\\n <RequestId>7172BECE-588A-5961-8126-C216E16B****</RequestId>\\n <Data>\\n <Result>\\n <List>\\n <SqlId>d71f82be1eef72bd105128204d2e****</SqlId>\\n <AvgFetchRows>0</AvgFetchRows>\\n <AvgLockWaitTime>0.00009589874265269765</AvgLockWaitTime>\\n <AvgLogicalRead>654.4470327860251</AvgLogicalRead>\\n <AvgPhysicalAsyncRead>0</AvgPhysicalAsyncRead>\\n <AvgPhysicalSyncRead>0</AvgPhysicalSyncRead>\\n <AvgExaminedRows>10000</AvgExaminedRows>\\n <AvgReturnedRows>10000</AvgReturnedRows>\\n <AvgUpdatedRows>10000</AvgUpdatedRows>\\n <AvgRt>2.499</AvgRt>\\n <AvgSqlCount>10000</AvgSqlCount>\\n <Count>100000</Count>\\n <CountRate>0.0586</CountRate>\\n <Database>dbtest01</Database>\\n <ErrorCount>1</ErrorCount>\\n <FetchRows>0</FetchRows>\\n <Ip>rm-uf6dyi58dm6****.mysql.rds.aliy****.com</Ip>\\n <LockWaitTime>1089.4177720290281</LockWaitTime>\\n <PhysicalAsyncRead>0</PhysicalAsyncRead>\\n <PhysicalSyncRead>0</PhysicalSyncRead>\\n <Port>3306</Port>\\n <Psql>select * from dbtest01 where ****</Psql>\\n <Rows>0</Rows>\\n <ExaminedRows>10000</ExaminedRows>\\n <RtGreaterThanOneSecondCount>20</RtGreaterThanOneSecondCount>\\n <RtRate>2.499</RtRate>\\n <SqlCount>200</SqlCount>\\n <SumUpdatedRows>100</SumUpdatedRows>\\n <Tables>tabletest01,tabletest02</Tables>\\n <Version>1</Version>\\n <VpcId>vpc-2zentqj1sk4qmolci****</VpcId>\\n </List>\\n <Total>1</Total>\\n </Result>\\n <Fail>false</Fail>\\n <IsFinish>true</IsFinish>\\n <ResultId>9CB97BC4-6479-55D0-B9D0-EA925AFE****</ResultId>\\n <State>SUCCESS</State>\\n <Timestamp>1645668213000</Timestamp>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetFullRequestStatResultByInstanceIdResponse>","errorExample":""}]', - 'title' => '按照SQL ID异步统计全量请求数据', - 'summary' => '调用GetFullRequestStatResultByInstanceId接口,按照SQL ID异步统计数据库实例SQL洞察结果中的全量请求数据。', - 'description' => '> 异步调用后不会立即返回完整结果,当返回数据中isFinish取值为**false**时,请等待1s后重新发起调用,直到isFinish取值为**true**时,返回完整结果。'."\n" + 'title' => '获取指定类型或范围的通知事件', + 'description' => '使用该接口需满足以下前提条件:'."\n" ."\n" - .'SQL洞察功能可对SQL进行健康情况诊断、性能问题排查,详情请参见[SQL洞察](~~204096~~)。'."\n" + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 当您的实例接入DAS之后,DAS异常检测发现数据库相关的监控指标发生变化,就会触发快照抓取等通知类事件。'."\n" ."\n" - .'- 目前支持的数据库实例请参见[DAS企业版使用说明](~~190912~~)。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 2024年09月01日起,由于SQL的模板化算法优化,调用本接口时,SqlId 字段的值将发生变更。详情请参见[【通知】SQL模板化算法优化](~~2845725~~)。', - ], - 'GetFullRequestSampleByInstanceId' => [ - 'summary' => '调用GetFullRequestSampleByInstanceId接口,按照SQL ID查询数据库实例SQL洞察结果中的SQL样本数据,最大返回20条样本数据。', - 'methods' => [ - 'post', + .' '."\n" + .'>只有开启[自治中心](~~152139~~)才能获取通知事件的详情。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAutonomousNotifyEventsInRange'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetAutonomousNotifyEventsInRange', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Data\\": {\\n \\"Extra\\": \\"None\\",\\n \\"List\\": {\\n \\"T\\": [\\n \\"\\\\\\"T\\\\\\": []\\"\\n ]\\n },\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10,\\n \\"Total\\": 4\\n },\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetAutonomousNotifyEventsInRangeResponse>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Data>\\n <List>\\n </List>\\n <PageNo>1</PageNo>\\n <PageSize>10</PageSize>\\n <Extra>None</Extra>\\n <Total>4</Total>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetAutonomousNotifyEventsInRangeResponse>","errorExample":""}]', + ], + 'GetBlockingDetailList' => [ + 'summary' => '调用GetBlockingDetailList接口,查询RDS SQL Server实例的锁阻塞列表。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhdmFT57I0', - ], - ], + 'systemTags' => ['operationType' => 'list'], 'parameters' => [ [ - 'name' => 'UserId', - 'in' => 'formData', - 'schema' => [ - 'description' => '用户ID,即创建数据库实例的阿里云主账号ID。'."\n" - ."\n" - .'> 非必填,输入目标数据库实例ID后,在调用API接口时,系统会自动获取用户ID。', - 'type' => 'string', - 'required' => false, - 'example' => '196278346919****', - ], + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '数据库实例ID。'."\n" + ."\n", 'type' => 'string', 'required' => true, 'example' => 'rm-t4nfalp2ap421****'], ], [ - 'name' => 'InstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****', - ], + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'string', 'required' => true, 'example' => '1679429913757'], ], [ - 'name' => 'SqlId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'SQL ID。', - 'type' => 'string', - 'required' => true, - 'example' => '651b56fe9418d48edb8fdf0980ec****', - ], + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'string', 'required' => true, 'example' => '1682490480548'], ], [ - 'name' => 'Start', - 'in' => 'formData', - 'schema' => [ - 'description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。'."\n" - ."\n" - .'> 查询开始时间需要在数据库实例SQL洞察存储时长范围内,最大不能早于当前时间90天。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1660097421000', - ], + 'name' => 'PageNo', + 'in' => 'query', + 'schema' => ['description' => '页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', 'type' => 'string', 'required' => false, 'example' => '1'], ], [ - 'name' => 'End', - 'in' => 'formData', - 'schema' => [ - 'description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。'."\n" - ."\n" - .'> 查询结束时间需晚于查询开始时间,且查询开始时间和查询结束时间的间隔不能小于1小时。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1660104621000', - ], + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每页最大记录数,取值大于0且不超过Integer数据类型的最大值,默认值为10。', 'type' => 'string', 'required' => false, 'example' => '10'], ], [ - 'name' => 'Role', + 'name' => 'QueryHash', 'in' => 'query', - 'schema' => [ - 'description' => 'PolarDB-X 2.0数据库实例节点信息。'."\n" - ."\n" - .'- **polarx_cn**:计算节点。'."\n" - .'- **polarx_en**:数据节点。', - 'type' => 'string', - 'required' => false, - 'example' => 'polarx_cn', - ], + 'schema' => ['description' => 'SQL哈希值。将SQL语句进行Hash之后得出的值,同一种SQL对应同一个QueryHash。', 'type' => 'string', 'required' => false, 'example' => 'DC08B955CAD25E7B'], + ], + [ + 'name' => 'DbNameList', + 'in' => 'query', + 'schema' => ['description' => '数据库名。传入多个数据库时,各个数据库名称间使用英文逗号(,)进行分隔。', 'type' => 'string', 'required' => false, 'example' => 'testdb1,testdb2'], ], ], 'responses' => [ @@ -10374,774 +9441,459 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。'."\n" - ."\n", - 'type' => 'string', - 'example' => '0A74B755-98B7-59DB-8724-1321B394****', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ - 'description' => '返回数据', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Timestamp' => [ - 'description' => '执行SQL的时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1660100753556', - ], - 'SqlId' => [ - 'description' => 'SQL ID。', - 'type' => 'string', - 'example' => '651b56fe9418d48edb8fdf0980ec****', - ], - 'Sql' => [ - 'description' => 'SQL样本。', - 'type' => 'string', - 'example' => 'select * from testdb01 where ****', - ], - 'Database' => [ - 'description' => '数据库名。', - 'type' => 'string', - 'example' => 'dbtest', - ], - 'Rt' => [ - 'description' => '执行耗时,单位为秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0.409789', - ], - 'User' => [ - 'description' => '执行SQL的用户名称。', - 'type' => 'string', - 'example' => 'testuser', - ], - 'LockWaitTime' => [ - 'description' => '锁等待时长,单位为秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0.0137', - ], - 'LogicalRead' => [ - 'description' => '逻辑读。', - 'type' => 'number', - 'format' => 'double', - 'example' => '165848', - ], - 'PhysicalSyncRead' => [ - 'description' => '物理同步读取。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0', - ], - 'PhysicalAsyncRead' => [ - 'description' => '物理异步读取。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0', - ], - 'RowsExamined' => [ - 'title' => '扫描行数', - 'description' => '总扫描行数。'."\n" - .'> 目前支持该字段的数据库:RDS MySQL、RDS PostgreSQL、PolarDB MySQL版。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2048576', - ], - 'RowsReturned' => [ - 'description' => '返回行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '14', - ], - 'OriginHost' => [ - 'description' => '访问来源。', - 'type' => 'string', - 'example' => '172.17.XX.XX', - ], - 'ScanRows' => [ - 'title' => '扫描行数, RDS MySQL DescribeTemplateSqlDetail', - 'description' => '扫描行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'UpdateRows' => [ - 'title' => '更新行数, RDS MySQL DescribeTemplateSqlDetail', - 'description' => '更新行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'SqlType' => [ - 'description' => 'SQL语句的类型,取值包括:**SELECT**、**INSERT**、**UPDATE**、**DELETE**、**LOGIN**、**LOGOUT**、**MERGE**、**ALTER**、**CREATEINDEX**、**DROPINDEX**、**CREATE**、**DROP**、**SET**、**DESC**、**REPLACE**、**CALL**、**BEGIN**、**DESCRIBE**、**ROLLBACK**、**FLUSH**、**USE**、**SHOW**、**START**、**COMMIT**和**RENAME**。', - 'type' => 'string', - 'example' => 'SELECT', - ], - 'Scnt' => [ - 'title' => 'polarx cn节点,dn请求总数', - 'description' => 'PolarDB-X 2.0计算节点(CN)的DN请求数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'Rows' => [ - 'title' => 'polarx cn节点,总更新/返回行数', - 'description' => 'PolarDB-X 2.0计算节点(CN)的更新/返回行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'Frows' => [ - 'title' => 'polarx cn节点,拉取行数', - 'description' => 'PolarDB-X 2.0计算节点(CN)的拉取行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', + 'description' => '返回的数据。', + 'type' => 'object', + 'properties' => [ + 'List' => [ + 'description' => '返回信息列表。', + 'type' => 'array', + 'items' => [ + 'description' => '数据详情。', + 'type' => 'object', + 'properties' => [ + 'BatchId' => ['description' => '采集批次。', 'type' => 'integer', 'format' => 'int64', 'example' => '1683530096156'], + 'ClientAppName' => ['description' => '客户端名称。', 'type' => 'string', 'example' => '.Net SqlClient Data Provider'], + 'DataBase' => ['description' => '数据库名称。', 'type' => 'string', 'example' => 'testdb1'], + 'HostName' => ['description' => '客户端主机名称。', 'type' => 'string', 'example' => 'ALLBNMGTAPPRD01'], + 'LoginId' => ['description' => '登录用户名。', 'type' => 'string', 'example' => 'Testuser'], + 'QueryHash' => ['description' => 'SQL HASH值。', 'type' => 'string', 'example' => 'DC08B955CAD25E7B'], + 'Spid' => ['description' => '会话ID。', 'type' => 'string', 'example' => '1717'], + 'SqlText' => ['description' => 'SQL语句。', 'type' => 'string', 'example' => 'select * from test1'], + 'StartTime' => ['description' => '开始执行的时间。格式为Unix时间戳,单位为毫秒。', 'type' => 'string', 'example' => '1608888296000'], + 'WaitTimeMs' => ['description' => '阻塞时长,单位毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '30000'], + 'WaitType' => ['description' => '等待类型。更多等待类型及说明,请参见[等待类型](https://learn.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-os-wait-stats-transact-sql?view=sql-server-ver15)。', 'type' => 'string', 'example' => 'MISCELLANEOUS'], + 'CurrentCollectionTime' => ['description' => '阻塞的采集时间。格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1700065800000'], + ], ], ], + 'PageNo' => ['description' => '页码。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'PageSize' => ['description' => '分页大小。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'Total' => ['description' => '总记录数。', 'type' => 'integer', 'format' => 'int64', 'example' => '19'], ], ], - 'Code' => [ - 'description' => '返回的状态码。'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"0A74B755-98B7-59DB-8724-1321B394****\\",\\n \\"Data\\": [\\n {\\n \\"Timestamp\\": 1660100753556,\\n \\"SqlId\\": \\"651b56fe9418d48edb8fdf0980ec****\\",\\n \\"Sql\\": \\"select * from testdb01 where ****\\",\\n \\"Database\\": \\"dbtest\\",\\n \\"Rt\\": 0.409789,\\n \\"User\\": \\"testuser\\",\\n \\"LockWaitTime\\": 0.0137,\\n \\"LogicalRead\\": 165848,\\n \\"PhysicalSyncRead\\": 0,\\n \\"PhysicalAsyncRead\\": 0,\\n \\"RowsExamined\\": 2048576,\\n \\"RowsReturned\\": 14,\\n \\"OriginHost\\": \\"172.17.XX.XX\\",\\n \\"ScanRows\\": 0,\\n \\"UpdateRows\\": 0,\\n \\"SqlType\\": \\"SELECT\\",\\n \\"Scnt\\": 0,\\n \\"Rows\\": 0,\\n \\"Frows\\": 0\\n }\\n ],\\n \\"Code\\": 200,\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetFullRequestSampleByInstanceIdResponse>\\n <Message>Successful</Message>\\n <RequestId>0A74B755-98B7-59DB-8724-1321B394****</RequestId>\\n <Data>\\n <Timestamp>1660100753556</Timestamp>\\n <SqlId>651b56fe9418d48edb8fdf0980ec****</SqlId>\\n <Sql>select * from testdb01 where ****</Sql>\\n <Database>dbtest</Database>\\n <Rt>0.409789</Rt>\\n <User>testuser</User>\\n <LockWaitTime>0.0137</LockWaitTime>\\n <LogicalRead>165848</LogicalRead>\\n <PhysicalSyncRead>0</PhysicalSyncRead>\\n <PhysicalAsyncRead>0</PhysicalAsyncRead>\\n <RowsExamined>2048576</RowsExamined>\\n <RowsReturned>14</RowsReturned>\\n <OriginHost>172.17.XX.XX</OriginHost>\\n <ScanRows>0</ScanRows>\\n <UpdateRows>0</UpdateRows>\\n <SqlType>SELECT</SqlType>\\n <Scnt>0</Scnt>\\n <Rows>0</Rows>\\n <Frows>0</Frows>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetFullRequestSampleByInstanceIdResponse>","errorExample":""}]', - 'title' => '按照SQL ID查询SQL样本数据', - 'description' => 'SQL洞察功能可对SQL进行健康情况诊断、性能问题排查,详情请参见[SQL洞察](~~204096~~)。'."\n" - ."\n" - .'- 支持的数据库引擎请参见[SQL洞察](~~204096~~)。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - ], - 'DescribeSqlLogConfig' => [ - 'summary' => '调用DescribeSqlLogConfig接口,查询数据库实例的DAS企业版配置信息。', - 'methods' => [ - 'post', - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询RDS SQL Server实例的锁阻塞列表', + 'description' => '* 本接口仅适用于RDS SQL Server版实例。'."\n" + .'* 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'* 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetBlockingDetailList'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'hdm:GetBlockingDetailList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"List\\": [\\n {\\n \\"BatchId\\": 1683530096156,\\n \\"ClientAppName\\": \\".Net SqlClient Data Provider\\",\\n \\"DataBase\\": \\"testdb1\\",\\n \\"HostName\\": \\"ALLBNMGTAPPRD01\\",\\n \\"LoginId\\": \\"Testuser\\",\\n \\"QueryHash\\": \\"DC08B955CAD25E7B\\",\\n \\"Spid\\": \\"1717\\",\\n \\"SqlText\\": \\"select * from test1\\",\\n \\"StartTime\\": \\"1608888296000\\",\\n \\"WaitTimeMs\\": 30000,\\n \\"WaitType\\": \\"MISCELLANEOUS\\",\\n \\"CurrentCollectionTime\\": 1700065800000\\n }\\n ],\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10,\\n \\"Total\\": 19\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', + ], + 'GetDBInstanceConnectivityDiagnosis' => [ + 'summary' => '获取用户输入IP地址到指定数据库实例的网络连通性诊断结果。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '198881', - 'abilityTreeNodes' => [ - 'FEATUREhdmPGXCEW', - 'FEATUREhdmFT57I0', - ], - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'InstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****', - ], + 'in' => 'query', + 'schema' => ['title' => '实例ID', 'description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'], + ], + [ + 'name' => 'SrcIp', + 'in' => 'query', + 'schema' => ['title' => '源IP', 'description' => '源IP地址。', 'type' => 'string', 'required' => true, 'example' => '47.100.XX.XX'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '返回信息列表。', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ - 'title' => 'SqlLogConfig', - 'description' => '返回数据。', + 'description' => '详细信息列表。', 'type' => 'object', 'properties' => [ - 'ColdEnable' => [ - 'description' => '是否开启数据冷存储。'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ColdRetention' => [ - 'title' => '冷数据存储周期(不落库),通过 retention - hotRetention 计算', - 'description' => '数据冷存储时长,单位为天。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '23', - ], - 'ColdStartTime' => [ - 'description' => '数据冷存储开始时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1683712800000', - ], - 'CollectorVersion' => [ - 'description' => '采集器版本。'."\n" - ."\n" - .'- **MYSQL_V0**:MySQL V0版。'."\n" - .'- **MYSQL_V1**:MySQL V1版。'."\n" - .'- **MYSQL_V2**:MySQL V2版。'."\n" - .'- **MYSQL_V3**:MySQL V3版。'."\n" - .'- **PG_V1**:PostgreSQL V1版。'."\n" - .'- **rdspg_v1**:RDS PostgreSQL V1版。'."\n" - .'- **polarpg_v1**:PolarDB PostgreSQL版 V1版。', - 'type' => 'string', - 'example' => 'MYSQL_V3', - ], - 'HotEnable' => [ - 'description' => '是否开启数据热存储。'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'HotRetention' => [ - 'description' => '数据热存储时长,单位为天。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '7', - ], - 'HotStartTime' => [ - 'description' => '数据热存储开始时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1683712800000', - ], - 'LogFilter' => [ - 'description' => '预留参数。', - 'type' => 'string', - 'example' => 'None', - ], - 'RequestEnable' => [ - 'description' => '是否开启SQL洞察。'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'RequestStartTime' => [ - 'description' => 'SQL洞察开启时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1683712800000', - ], - 'RequestStopTime' => [ - 'description' => 'DAS企业版V1到期时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1715335200000', - ], - 'Retention' => [ - 'description' => '数据总存储时长,**HotRetention**与**ColdRetention**之和,单位为天。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '30', - ], - 'SqlLogEnable' => [ - 'description' => '是否开启了DAS企业版。'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'SqlLogSource' => [ - 'description' => '预留参数。', - 'type' => 'string', - 'example' => 'None', - ], - 'SqlLogState' => [ - 'description' => '数据迁移状态。'."\n" + 'instanceId' => ['title' => '实例ID', 'description' => '实例ID。', 'type' => 'string', 'example' => 'rm-2ze8g2am97624****'], + 'success' => [ + 'title' => '是否检测通过', + 'description' => '是否检测通过:'."\n" ."\n" - .'- **FINISH**: 历史数据迁移完成。'."\n" - .'- **RUNNING**: 历史数据迁移中。'."\n" - .'- **FAILURE**: 历史数据迁移失败。', - 'type' => 'string', - 'example' => 'FINISH', - ], - 'SqlLogVisibleTime' => [ - 'description' => 'DAS企业版开启的时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1683712800000', - ], - 'SupportMigration' => [ - 'description' => '预留参数。', + .'- **true**:检测通过。'."\n" + .'- **false**:检测不通过。', 'type' => 'boolean', - 'example' => 'None', - ], - 'SupportVersion' => [ - 'title' => '当前实例支持的数据库版本(不落库)', - 'description' => '当前支持的最新DAS企业版版本。'."\n" - .'- **SQL_LOG_V0**:企业版 V0。'."\n" - .'- **SQL_LOG_V1**:企业版 V1。'."\n" - .'- **SQL_LOG_V2**:企业版 V2。'."\n" - .'- **SQL_LOG_V3**:企业版 V3。'."\n" - .'- **SQL_LOG_NOT_ENABLE**:未开启企业版。'."\n" - .'- **SQL_LOG_NOT_SUPPORT**: 不支持企业版。', - 'type' => 'string', - 'example' => 'SQL_LOG_V3', - ], - 'Version' => [ - 'title' => '当前审计日志的版本', - 'description' => '当前开启的DAS企业版版本。'."\n" - .'- **SQL_LOG_V0**:企业版 V0。'."\n" - .'- **SQL_LOG_V1**:企业版 V1。'."\n" - .'- **SQL_LOG_V2**:企业版 V2。'."\n" - .'- **SQL_LOG_V3**:企业版 V3。'."\n" - .'- **SQL_LOG_NOT_ENABLE**:未开启企业版。'."\n" - .'- **SQL_LOG_NOT_SUPPORT**: 不支持企业版。', - 'type' => 'string', - 'example' => 'SQL_LOG_V3', + 'enumValueTitles' => [], + 'example' => 'false', ], + 'failType' => ['title' => '异常类型', 'description' => '异常类型:'."\n" + ."\n" + .'- **0**:用户可自助处理的。'."\n" + .'- **1**:需要联系值班人员处理的。', 'type' => 'string', 'example' => '0'], + 'connCheckErrorCode' => ['title' => '异常检测项', 'description' => '异常检测项:'."\n" + ."\n" + .'- **SRC\\_IP\\_NOT\\_IN\\_USER\\_WHITELIST**:源IP地址没有配置在用户白名单中。'."\n" + .'- **VIP\\_NOT\\_EXISTS**:VIP对应的ALB实例不存在。'."\n" + .'- **RS\\_NOT\\_EXISTS**:RS不正常挂载。'."\n" + .'- **VIP\\_TUNNEL\\_ID\\_NOT\\_CONSISTENT**:VPC类型VIP使用的TUNNEL ID与VPC对应的实际TUNNEL ID不一致。'."\n" + .'- **VIP\\_VPC\\_CLOUD\\_INSTANCE\\_NOT\\_EXISTS**:VPC类型VIP不存在。'."\n" + .'- **VIP\\_IS\\_NOT\\_NGLB**:VIP关闭了NGLB模式。'."\n" + .'- **CUSTINS\\_NOT\\_ASSOCIATE\\_ECS\\_SECURITY\\_GROUP**:实例没有关联安全组。'."\n" + .'- **SRC\\_IP\\_NOT\\_IN\\_USER\\_WHITELIST**:源IP地址没有配置在用户白名单中。'."\n" + .'- **SRC\\_IP\\_NOT\\_IN\\_ADMIN\\_WHITELIST**:源IP地址没有配置在管理机白名单中。'."\n" + .'- **SRC\\_IP\\_NOT\\_IN\\_ECS\\_SECURITY\\_GROUP**:源IP地址没有配置在实例关联的安全组中。'."\n" + .'- **VPC\\_INSTANCE\\_IP\\_NOT\\_WORKING\\_STATUS**:VPC IP地址状态异常。', 'type' => 'string', 'example' => 'SRC_IP_NOT_IN_USER_WHITELIST'], + 'connCheckErrorMessage' => ['title' => '异常检测详情信息', 'description' => '异常检测详情信息。', 'type' => 'string', 'example' => 'Src ip:47.100.XX.XX not in user whitelist'], ], ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0A74B755-98B7-59DB-8724-1321B394****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - .'* **true**:执行成功'."\n" - .'* **false**:执行失败', - 'type' => 'string', - 'example' => 'true', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + .'* **true**:执行成功。'."\n" + .'* **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Data\\": {\\n \\"ColdEnable\\": true,\\n \\"ColdRetention\\": 23,\\n \\"ColdStartTime\\": 1683712800000,\\n \\"CollectorVersion\\": \\"MYSQL_V3\\",\\n \\"HotEnable\\": true,\\n \\"HotRetention\\": 7,\\n \\"HotStartTime\\": 1683712800000,\\n \\"LogFilter\\": \\"None\\",\\n \\"RequestEnable\\": true,\\n \\"RequestStartTime\\": 1683712800000,\\n \\"RequestStopTime\\": 1715335200000,\\n \\"Retention\\": 30,\\n \\"SqlLogEnable\\": true,\\n \\"SqlLogSource\\": \\"None\\",\\n \\"SqlLogState\\": \\"FINISH\\",\\n \\"SqlLogVisibleTime\\": 1683712800000,\\n \\"SupportMigration\\": true,\\n \\"SupportVersion\\": \\"SQL_LOG_V3\\",\\n \\"Version\\": \\"SQL_LOG_V3\\"\\n },\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"0A74B755-98B7-59DB-8724-1321B394****\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', - 'title' => '查询DAS企业版配置信息', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"instanceId\\": \\"rm-2ze8g2am97624****\\",\\n \\"success\\": false,\\n \\"failType\\": \\"0\\",\\n \\"connCheckErrorCode\\": \\"SRC_IP_NOT_IN_USER_WHITELIST\\",\\n \\"connCheckErrorMessage\\": \\"Src ip:47.100.XX.XX not in user whitelist\\"\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', + 'title' => '获取数据库实例网络连通性诊断结果', 'description' => '使用该接口需满足以下前提条件:'."\n" ."\n" .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - 'responseParamsDescription' => '对于**SQL_LOG_V0**(企业版 V0)和**SQL_LOG_V1**(企业版 V1) ,其数据存储在CStore中,视为热存储。开通该版本的数据库实例,查询返回结果中`SqlLogEnable = HotEnable = true, Retention = HotRetention, ColdEnable = false, ColdRetention = 0`。', - ], - 'ModifySqlLogConfig' => [ - 'summary' => '调用ModifySqlLogConfig接口,为数据库实例开启或配置DAS企业版。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + .'- 使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 数据库实例已接入DAS。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetDBInstanceConnectivityDiagnosis', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetDasAgentSSE' => [ + 'summary' => 'DAS大模型交互SSE接口。可以进行知识问答,性能诊断等功能。', + 'path' => '/getDasAgentSSE', + 'methods' => ['post'], + 'schemes' => ['https', 'sse'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '198880', - 'abilityTreeNodes' => [ - 'FEATUREhdmPGXCEW', - 'FEATUREhdmFT57I0', - ], + 'abilityTreeNodes' => ['FEATUREhdmB8MM4L', 'FEATUREhdmROFBLE', 'FEATUREhdm1XKIXR', 'FEATUREhdmR88NLD', 'FEATUREhdm3TU4OK'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'InstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rr-2ze770smbq3tp****', - ], - ], - [ - 'name' => 'Enable', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否开启DAS企业版:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - .'> 开通企业版时必须配置,默认开启当前支持的最新版本。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - ], - [ - 'name' => 'RequestEnable', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否开启SQL洞察。'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> 仅支持开通企业版 V3时,需要配置该参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - ], - [ - 'name' => 'Retention', - 'in' => 'formData', - 'schema' => [ - 'description' => '数据总存储时长,单位为天,取值为:'."\n" - ."\n" - .'- 7'."\n" - .'- 30'."\n" - .'- 180'."\n" - .'- 365'."\n" - ."\n" - .'> 开通DAS企业版 V3时,该参数取值必须大于等于30。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '30', - ], + 'name' => 'Query', + 'in' => 'query', + 'schema' => ['description' => '问答自然语言描述', 'type' => 'string', 'required' => true, 'example' => 'Are there any issues or abnormalities with my instance rm-xxx?'], ], [ - 'name' => 'HotRetention', - 'in' => 'formData', - 'schema' => [ - 'description' => '数据热存储时长,单位为天,取值为[1, 7]范围内的整数。'."\n" - ."\n" - .'> 仅支持开通企业版 V3时,需要配置该参数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'name' => 'InstanceId', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => ['description' => '废弃参数, 实例Id通过Query字段传入', 'type' => 'string', 'required' => false, 'example' => 'rm-xxxx'], ], [ - 'name' => 'Filters', + 'name' => 'SessionId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '预留参数。', - 'type' => 'array', - 'items' => [ - 'description' => '预留参数。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '预留参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], - 'Value' => [ - 'description' => '预留参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 100, - ], + 'schema' => ['description' => '可选,会话Id,格式为UUID字符串,未传入会创建新的会话,上下文对话需保持同一个会话Id', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-xxxxxxxxxxxx'], ], [ - 'name' => 'EnableAudit', + 'name' => 'AgentId', 'in' => 'query', - 'schema' => [ - 'description' => '开启安全审计。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '可选,默认使用默认Agent进行服务,或者传入开启DASAgent服务后生成的或者主动创建的Agent', 'type' => 'string', 'required' => false, 'example' => 'ag-472T0DxtmjIxxxxx'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '03C88D8E-1541-518E-8BFF-BEC6589B6334', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功'."\n" - .'- **false**:执行失败', - 'type' => 'string', - 'example' => 'false', - ], - 'Data' => [ - 'title' => 'SqlLogConfig', - 'description' => '返回数据。', + 'Id' => ['description' => 'SessionId, 同请求参数中的SessionId', 'type' => 'string', 'example' => '123e4567-e89b-12d3-a456-xxxxxxxxxxxx'], + 'Answer' => ['description' => '回答内容', 'type' => 'string', 'example' => 'rm-xxxx'], + 'Metadata' => [ + 'description' => '元信息', 'type' => 'object', 'properties' => [ - 'SqlLogVisibleTime' => [ - 'description' => 'DAS企业版开启的时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1683712800000', - ], - 'RequestStopTime' => [ - 'description' => 'DAS企业版V1到期时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1715335200000', - ], - 'CollectorVersion' => [ - 'description' => '采集器版本。'."\n" - .'- **MYSQL_V0**:MySQL V0版。'."\n" - .'- **MYSQL_V1**:MySQL V1版。'."\n" - .'- **MYSQL_V2**:MySQL V2版。'."\n" - .'- **MYSQL_V3**:MySQL V3版。'."\n" - .'- **PG_V1**:PostgreSQL V1版。'."\n" - .'- **rdspg_v1**:RDS PostgreSQL V1版。'."\n" - .'- **polarpg_v1**:PolarDB PostgreSQL版 V1版。', - 'type' => 'string', - 'example' => 'MYSQL_V3', - ], - 'SupportVersion' => [ - 'title' => '当前实例支持的数据库版本(不落库)', - 'description' => '当前支持的最新DAS企业版版本。'."\n" - ."\n" - .'- **SQL_LOG_V0**:企业版 V0。'."\n" - .'- **SQL_LOG_V1**:企业版 V1。'."\n" - .'- **SQL_LOG_V2**:企业版 V2。'."\n" - .'- **SQL_LOG_V3**:企业版 V3。'."\n" - .'- **SQL_LOG_NOT_ENABLE**:未开启企业版。'."\n" - .'- **SQL_LOG_NOT_SUPPORT**: 不支持企业版。', - 'type' => 'string', - 'example' => 'SQL_LOG_V3', - ], - 'ColdRetention' => [ - 'title' => '冷数据存储周期(不落库),通过 retention - hotRetention 计算', - 'description' => '数据冷存储时长,单位为天,由` Retention - HotRetention` 计算获得。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '23', - ], - 'SqlLogEnable' => [ - 'description' => '是否开启了DAS企业版。'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Retention' => [ - 'description' => '数据总存储时长,单位为天。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '30', - ], - 'HotRetention' => [ - 'description' => '数据热存储时长,单位为天。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '7', - ], - 'RequestEnable' => [ - 'description' => '是否开启SQL洞察。'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Version' => [ - 'title' => '当前审计日志的版本', - 'description' => '当前开启的DAS企业版版本。'."\n" - ."\n" - .'- **SQL_LOG_V0**:企业版 V0。'."\n" - .'- **SQL_LOG_V1**:企业版 V1。'."\n" - .'- **SQL_LOG_V2**:企业版 V2。'."\n" - .'- **SQL_LOG_V3**:企业版 V3。'."\n" - .'- **SQL_LOG_NOT_ENABLE**:未开启企业版。'."\n" - .'- **SQL_LOG_NOT_SUPPORT**: 不支持企业版。', - 'type' => 'string', - 'example' => 'SQL_LOG_V3', - ], - 'RequestStartTime' => [ - 'description' => 'SQL洞察开启时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1683712800000', - ], - 'HotEnable' => [ - 'description' => '是否开启数据热存储。'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'HotStartTime' => [ - 'description' => '数据热存储开始时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1683712800000', - ], - 'ColdEnable' => [ - 'description' => '是否开启数据冷存储。'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ColdStartTime' => [ - 'description' => '数据冷存储开始时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1683712800000', - ], - 'SqlLogState' => [ - 'description' => '数据迁移状态。'."\n" - ."\n" - .'- **FINISH**: 历史数据迁移完成。'."\n" - .'- **RUNNING**: 历史数据迁移中。'."\n" - .'- **FAILURE**: 历史数据迁移失败。', - 'type' => 'string', - 'example' => 'FINISH', - ], - 'LogFilter' => [ - 'description' => '预留参数。', - 'type' => 'string', - 'example' => 'None', - ], - 'SqlLogSource' => [ - 'title' => '开启审计日志来源', - 'description' => '开启审计日志来源', - 'type' => 'string', + 'Code' => ['description' => '如果异常,会返回错误类型,无异常时返回为空', 'type' => 'integer', 'format' => 'int32', 'example' => '-1810001'], + 'CharCount' => ['description' => '回答的字符数量', 'type' => 'integer', 'format' => 'int64', 'example' => '1403'], + 'ToolName' => ['description' => '调用的工具命令', 'type' => 'string', 'example' => 'SqlFilter'], + 'ToolParams' => [ + 'description' => '工具参数', + 'type' => 'array', + 'items' => ['description' => '字符串列表', 'type' => 'string', 'example' => '["--instanceId", "rm-*****", "--sqlText", "select~from~das~where~name~das1"]'], ], + 'RequestId' => ['description' => '请求Id', 'type' => 'string', 'example' => '04930480-9404-50CB-8252-Axxxxxxxx'], ], ], + 'Event' => [ + 'description' => '返回回答信息的类型', + 'type' => 'string', + 'enumValueTitles' => ['summary' => '回答的相关统计', ' error ' => '报错信息', 'agent_message ' => '大模型生成的回答'], + 'example' => 'summary', + ], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + [ + ['errorCode' => 'InstanceNotFound', 'errorMessage' => 'Requested instance not found.', 'description' => '对应实例id无法找到'], + ], + 500 => [ + ['errorCode' => 'Timeout', 'errorMessage' => 'The request processing has failed due to timeout.', 'description' => '由于超时请求处理失败。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"03C88D8E-1541-518E-8BFF-BEC6589B6334\\",\\n \\"Success\\": \\"false\\",\\n \\"Data\\": {\\n \\"SqlLogVisibleTime\\": 1683712800000,\\n \\"RequestStopTime\\": 1715335200000,\\n \\"CollectorVersion\\": \\"MYSQL_V3\\",\\n \\"SupportVersion\\": \\"SQL_LOG_V3\\",\\n \\"ColdRetention\\": 23,\\n \\"SqlLogEnable\\": true,\\n \\"Retention\\": 30,\\n \\"HotRetention\\": 7,\\n \\"RequestEnable\\": false,\\n \\"Version\\": \\"SQL_LOG_V3\\",\\n \\"RequestStartTime\\": 1683712800000,\\n \\"HotEnable\\": true,\\n \\"HotStartTime\\": 1683712800000,\\n \\"ColdEnable\\": true,\\n \\"ColdStartTime\\": 1683712800000,\\n \\"SqlLogState\\": \\"FINISH\\",\\n \\"LogFilter\\": \\"None\\",\\n \\"SqlLogSource\\": \\"\\"\\n }\\n}","type":"json"}]', - 'title' => '开启或配置DAS企业版', - 'description' => '使用该接口需满足以下前提条件:'."\n" - .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 使用该接口默认开启当前支持的最新版本。DAS企业版各个版本支持的数据库和地域请参见[DAS产品系列及支持的功能](~~156204~~)。', - 'requestParamsDescription' => 'DAS企业版当前存在V0、V1、V2、V3四个版本,默认开通当前支持的最新版本。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '(废弃)Das Agent 数据流接口', + 'description' => '该接口是付费接口,会按照输出字符进行计费,请确保在使用该接口前,已充分了解DAS Agent产品的收费方式和[价格](https://help.aliyun.com/zh/das/product-overview/billing-details-of-the-previous-version?spm=a2c4g.11186623.help-menu-63907.d_0_1_0.b7203b87MDNqHO&scm=20140722.H_156195._.OR_help-T_cn~zh-V_1#cad160563fbkd)。', + 'extraInfo' => '### Java 版本示例'."\n" ."\n" - .'- 对于仅支持开启企业版 V0的数据库实例,仅需传入参数**Enable**和**Retention**。'."\n" - .'- 对于支持开启企业版 V1的数据库实例,仅需传入参数**Enable**和**Retention**,系统自动开启SQL洞察功能(即**RequestEnable**默认配置为**true**)。'."\n" - .'- 对于支持开启企业版 V2的数据库实例,仅需传入参数**Enable**和**Retention**,系统自动开启SQL洞察功能(即**RequestEnable**默认配置为**true**),且数据热存储时长(**HotRetention**)固定为7天,数据冷存储时长为`Retention - 7`天。', - ], - 'DescribeSqlLogStatistic' => [ - 'summary' => '调用DescribeSqlLogStatistic接口,查询DAS企业版的数据统计信息。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + .'```'."\n" + .'import com.aliyun.auth.credentials.Credential;'."\n" + .'import com.aliyun.auth.credentials.provider.StaticCredentialProvider;'."\n" + .'import com.aliyun.sdk.gateway.pop.Configuration;'."\n" + .'import com.aliyun.sdk.gateway.pop.auth.SignatureVersion;'."\n" + .'import com.aliyun.sdk.service.das20200116.models.GetDasAgentSSERequest;'."\n" + .'import com.aliyun.sdk.service.das20200116.models.GetDasAgentSSEResponseBody;'."\n" + .'import com.aliyun.sdk.service.das20200116.models.*;'."\n" + .'import com.aliyun.sdk.service.das20200116.*;'."\n" + .'import darabonba.core.ResponseIterable;'."\n" + .'import darabonba.core.client.ClientOverrideConfiguration;'."\n" + ."\n" + .'import java.util.*;'."\n" + .'import java.io.*;'."\n" + ."\n" + .'public class GetDasAgentSSESample {'."\n" + ."\n" + .' public static void main(String[] args) throws Exception {'."\n" + ."\n" + .' StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()'."\n" + .' .accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))'."\n" + .' .accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))'."\n" + .' .build());'."\n" + ."\n" + .' AsyncClient client = AsyncClient.builder()'."\n" + .' .region("cn-shanghai")'."\n" + .' .credentialsProvider(provider)'."\n" + .' .serviceConfiguration(Configuration.create().setSignatureVersion(SignatureVersion.V3))'."\n" + .' .overrideConfiguration(ClientOverrideConfiguration.create().setProtocol("HTTPS")'."\n" + .' .setEndpointOverride("das.cn-shanghai.aliyuncs.com"))'."\n" + .' .build();'."\n" + ."\n" + .' GetDasAgentSSERequest request = GetDasAgentSSERequest.builder()'."\n" + .' .query("麻烦介绍下DAS Agent,相关文字在1000字左右").build();'."\n" + .' ResponseIterable<GetDasAgentSSEResponseBody> x = client.getDasAgentSSEWithResponseIterable(request);'."\n" + .' for (GetDasAgentSSEResponseBody event : x) {'."\n" + .' System.out.printf(event.getAnswer());'."\n" + .' }'."\n" + ."\n" + .' client.close();'."\n" + .' }'."\n" + ."\n" + .'}'."\n" + .'```'."\n" + .'### Python 版本示例'."\n" + ."\n" + .'```'."\n" + .'# -*- coding: utf-8 -*-'."\n" + .'import os'."\n" + .'import sys'."\n" + .'import json'."\n" + .'import asyncio'."\n" + ."\n" + .'from typing import List'."\n" + ."\n" + .'from alibabacloud_das20200116.client import Client as DAS20200116Client'."\n" + .'from alibabacloud_credentials.client import Client as CredentialClient'."\n" + .'from alibabacloud_tea_openapi import models as open_api_models'."\n" + .'from alibabacloud_das20200116 import models as das20200116_models'."\n" + .'from alibabacloud_tea_util import models as util_models'."\n" + .'from alibabacloud_tea_util.client import Client as UtilClient'."\n" + ."\n\n" + .'class GetDasAgentSseSample:'."\n" + .' def __init__(self):'."\n" + .' pass'."\n" + ."\n" + .' @staticmethod'."\n" + .' def create_client() -> DAS20200116Client:'."\n" + .' """'."\n" + .' 使用凭据初始化账号Client'."\n" + .' @return: Client'."\n" + .' @throws Exception'."\n" + .' """'."\n" + .' credential = CredentialClient()'."\n" + .' config = open_api_models.Config('."\n" + .' credential=credential'."\n" + .' )'."\n" + .' config.endpoint = f\'das.cn-shanghai.aliyuncs.com\''."\n" + .' return DAS20200116Client(config)'."\n" + ."\n" + .' @staticmethod'."\n" + .' def create_api_info() -> open_api_models.Params:'."\n" + .' params = open_api_models.Params('."\n" + .' action=\'GetDasAgentSSE\','."\n" + .' version=\'2020-01-16\','."\n" + .' protocol=\'HTTPS\','."\n" + .' pathname=\'/\','."\n" + .' method=\'POST\','."\n" + .' auth_type=\'AK\','."\n" + .' style=\'RPC\','."\n" + .' req_body_type=\'json\','."\n" + .' body_type=\'sse\''."\n" + .' )'."\n" + .' return params'."\n" + ."\n" + .' @staticmethod'."\n" + .' def build_open_api_request(request_obj) -> open_api_models.OpenApiRequest:'."\n" + .' query_dict = {} '."\n" + .' for attr_name in dir(request_obj):'."\n" + .' if attr_name.startswith(\'_\'):'."\n" + .' continue'."\n" + .' if callable(getattr(request_obj, attr_name, None)):'."\n" + .' continue'."\n" + .' try:'."\n" + .' value = getattr(request_obj, attr_name)'."\n" + .' except AttributeError:'."\n" + .' continue '."\n" + .' if UtilClient.is_unset(value):'."\n" + .' continue'."\n" + .' '."\n" + .' api_key = \'\'.join(word.capitalize() for word in attr_name.split(\'_\'))'."\n" + .' query_dict[api_key] = value'."\n" + .' '."\n" + .' return open_api_models.OpenApiRequest('."\n" + .' query=query_dict,'."\n" + .' headers={}'."\n" + .' )'."\n" + ."\n" + .' @staticmethod'."\n" + .' def run() -> None:'."\n" + .' client = GetDasAgentSseSample.create_client()'."\n" + .' params = GetDasAgentSseSample.create_api_info()'."\n" + .' runtime = util_models.RuntimeOptions()'."\n" + .' '."\n" + .' # 创建请求对象(可以通过命令行参数传递 query)'."\n" + .' get_das_agent_sserequest = das20200116_models.GetDasAgentSSERequest('."\n" + .' query=\'麻烦介绍下DAS Agent,相关文字在1000字左右\''."\n" + .' )'."\n" + .' '."\n" + .' # 转换为 OpenApiRequest 格式'."\n" + .' open_api_request = GetDasAgentSseSample.build_open_api_request(get_das_agent_sserequest)'."\n" + .' '."\n" + .' response = client.call_sseapi(params, open_api_request, runtime)'."\n" + .' for res in response:'."\n" + .' answer = None '."\n" + .' if hasattr(res.event, \'data\'):'."\n" + .' # event.data 可能是字符串或字典'."\n" + .' event_data = res.event.data'."\n" + .' if isinstance(event_data, str):'."\n" + .' try:'."\n" + .' event_data = json.loads(event_data)'."\n" + .' except json.JSONDecodeError:'."\n" + .' pass'."\n" + .' if isinstance(event_data, dict):'."\n" + .' answer = event_data.get(\'Answer\')'."\n" + .' if answer:'."\n" + .' print(answer, end=\'\', flush=True)'."\n" + ."\n\n" + .'if __name__ == \'__main__\':'."\n" + .' GetDasAgentSseSample.run()'."\n" + .'```', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetDasAgentSSE', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Id\\": \\"123e4567-e89b-12d3-a456-xxxxxxxxxxxx\\",\\n \\"Answer\\": \\"rm-xxxx\\",\\n \\"Metadata\\": {\\n \\"Code\\": -1810001,\\n \\"CharCount\\": 1403,\\n \\"ToolName\\": \\"SqlFilter\\",\\n \\"ToolParams\\": [\\n \\"[\\\\\\"--instanceId\\\\\\", \\\\\\"rm-*****\\\\\\", \\\\\\"--sqlText\\\\\\", \\\\\\"select~from~das~where~name~das1\\\\\\"]\\"\\n ],\\n \\"RequestId\\": \\"04930480-9404-50CB-8252-Axxxxxxxx\\"\\n },\\n \\"Event\\": \\"summary\\"\\n}","type":"json"}]', + ], + 'GetDasProServiceUsage' => [ + 'summary' => '调用GetDasProServiceUsage接口,查询数据库实例DAS企业版 V1或企业版 V2存储空间的使用情况。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -11149,25 +9901,19 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '198879', - 'abilityTreeNodes' => [ - 'FEATUREhdmFT57I0', - ], - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => ['description' => '用户ID,即创建数据库实例的阿里云主账号ID。'."\n" + ."\n" + .'> 非必填,输入目标数据库实例ID后,在调用API接口时,系统会自动获取用户ID。', 'type' => 'string', 'required' => false, 'example' => '196278346919****'], + ], + [ 'name' => 'InstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze1jdv45i7l6****', - ], + 'in' => 'query', + 'schema' => ['description' => '数据库实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'], ], ], 'responses' => [ @@ -11175,119 +9921,88 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - .'* true:执行成功'."\n" - .'* false:执行失败'."\n", - 'type' => 'string', - 'example' => 'true', - ], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '7172BECE-588A-5961-8126-C216E16B****'], 'Data' => [ - 'title' => 'SqlLogStatistic', 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'Timestamp' => [ - 'title' => '时间戳', - 'description' => '时间戳,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1712568564928', - ], - 'HotSqlSize' => [ - 'title' => '热数据量', - 'description' => '总的热存储数据,单位字节(Byte)。', - 'type' => 'integer', - 'format' => 'int64', - 'enumValueTitles' => [], - 'example' => '1118042', - ], - 'ColdSqlSize' => [ - 'title' => '冷数据量', - 'description' => '总的冷存储数据,单位字节(Byte)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '8585901', - ], - 'ImportSqlSize' => [ - 'title' => '引入量', - 'description' => '最近一天该的数据引入量,单位字节(Byte)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '297245', - ], - 'FreeHotSqlSize' => [ - 'description' => '免费的热存储数据,单位字节(Byte)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '297245', - ], - 'FreeColdSqlSize' => [ - 'description' => '免费的冷存储数据,单位字节(Byte)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '5041450', - ], - 'TotalSqlSize' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'storageFreeQuotaInMB' => ['description' => '赠送的SQL洞察数据存储空间,单位为MB。', 'type' => 'number', 'format' => 'double', 'example' => '5120'], + 'ip' => ['description' => '数据库实例的地址。', 'type' => 'string', 'example' => 'rm-2ze8g2am97624****.mysql.****.com'], + 'userId' => ['description' => '用户ID,即创建数据库实例的阿里云主账号ID。', 'type' => 'string', 'example' => '196278346919****'], + 'expireTime' => ['description' => '数据库实例企业版到期时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1648742400000'], + 'instanceId' => ['description' => '数据库实例ID。', 'type' => 'string', 'example' => 'rm-2ze8g2am97624****'], + 'storageUsed' => ['description' => '数据库实例已使用的SQL洞察数据存储空间,单位为Byte。', 'type' => 'integer', 'format' => 'int64', 'example' => '35903498'], + 'engine' => ['description' => '数据库引擎。', 'type' => 'string', 'example' => 'MySQL'], + 'instanceAlias' => ['description' => '数据库实例名称。', 'type' => 'string', 'example' => 'TESTDB01'], + 'port' => ['description' => '端口号。', 'type' => 'integer', 'format' => 'int32', 'example' => '3306'], + 'vpcId' => ['description' => 'VPC ID。', 'type' => 'string', 'example' => 'vpc-2zentqj1sk4qmolci****'], + 'commodityInstanceId' => ['description' => 'DAS企业版ID。', 'type' => 'string', 'example' => 'daspro-cn-v0h1l6i****'], + 'startTime' => ['description' => '开启企业版的时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1646100892000'], + 'isSpare' => ['description' => '数据库实例的企业版是否过期:'."\n" + ."\n" + .'- **true**:过期。'."\n" + .'- **false**:未过期。', 'type' => 'boolean', 'example' => 'false'], + 'region' => ['description' => '数据库实例所属的地域。', 'type' => 'string', 'example' => 'cn-shanghai'], + 'serviceUnitId' => ['description' => '服务单元ID。', 'type' => 'string', 'example' => '4'], + 'sqlRetention' => ['description' => 'SQL洞察数据存储时长,单位为天。', 'type' => 'string', 'example' => '180'], + 'migrationPredictRemainingTime' => ['description' => '旧版SQL洞察和审计迁移到新版的预计剩余时间,单位为毫秒。'."\n" + .'><notice>仅当进行旧版SQL洞察和审计迁移到新版操作时,返回此参数。'."\n" + .'></notice>', 'type' => 'integer', 'format' => 'int64', 'example' => '60000'], ], + 'example' => '{ "storageFreeQuotaInMB": 5120, "ip": "rm-2ze8g2am97624****.mysql.****.com", "custinsId": 12448331, "userId": "196278346919****", "uuid": "hdm_b0ae36343407609bf3e8df8709d8****", "expireTime": 1924963200000, "instanceId": "rm-2ze8g2am97624****", "storageUsed": 10773752667393, "engine": "MySQL", "instanceAlias": "TESTDB01_PROD", "port": 3310, "vpcId": "hdm_****", "commodityInstanceId": "daspro-****", "startTime": 1606381940000, "isSpare": false, "region": "cn-shanghai", "serviceUnitId": "5", "sqlRetention": 30 }', ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"Timestamp\\": 1712568564928,\\n \\"HotSqlSize\\": 1118042,\\n \\"ColdSqlSize\\": 8585901,\\n \\"ImportSqlSize\\": 297245,\\n \\"FreeHotSqlSize\\": 297245,\\n \\"FreeColdSqlSize\\": 5041450,\\n \\"TotalSqlSize\\": 0\\n }\\n}","type":"json"}]', - 'title' => '查询DAS企业版数据统计信息', - 'description' => '使用该接口需满足以下前提条件:'."\n" - ."\n" + 'title' => '查询DAS企业版(V1或V2)存储空间使用情况', + 'description' => '- 当前支持的数据库请参见[DAS企业版使用说明](~~190912~~)。'."\n" .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 该接口仅适用于DAS企业版 V1、V2。'."\n" + .'>推荐使用[DescribeSqlLogStatistic](~~2778836~~)接口,查询DAS企业版的数据统计信息。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDasProServiceUsage'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetDasProServiceUsage', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"7172BECE-588A-5961-8126-C216E16B****\\",\\n \\"Data\\": {\\n \\"storageFreeQuotaInMB\\": 5120,\\n \\"ip\\": \\"rm-2ze8g2am97624****.mysql.****.com\\",\\n \\"userId\\": \\"196278346919****\\",\\n \\"expireTime\\": 1648742400000,\\n \\"instanceId\\": \\"rm-2ze8g2am97624****\\",\\n \\"storageUsed\\": 35903498,\\n \\"engine\\": \\"MySQL\\",\\n \\"instanceAlias\\": \\"TESTDB01\\",\\n \\"port\\": 3306,\\n \\"vpcId\\": \\"vpc-2zentqj1sk4qmolci****\\",\\n \\"commodityInstanceId\\": \\"daspro-cn-v0h1l6i****\\",\\n \\"startTime\\": 1646100892000,\\n \\"isSpare\\": false,\\n \\"region\\": \\"cn-shanghai\\",\\n \\"serviceUnitId\\": \\"4\\",\\n \\"sqlRetention\\": \\"180\\",\\n \\"migrationPredictRemainingTime\\": 60000\\n },\\n \\"Code\\": 200,\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetDasProServiceUsageResponse>\\n <Message>Successful</Message>\\n <RequestId>7172BECE-588A-5961-8126-C216E16B****</RequestId>\\n <Data>\\n <storageFreeQuotaInMB>5120</storageFreeQuotaInMB>\\n <ip>rm-2ze8g2am97624****.mysql.****.com</ip>\\n <userId>196278346919****</userId>\\n <expireTime>1648742400000</expireTime>\\n <instanceId>rm-2ze8g2am97624****</instanceId>\\n <storageUsed>35903498</storageUsed>\\n <engine>MySQL</engine>\\n <instanceAlias>TESTDB01</instanceAlias>\\n <port>3306</port>\\n <vpcId>vpc-2zentqj1sk4qmolci****</vpcId>\\n <commodityInstanceId>daspro-cn-v0h1l6i****</commodityInstanceId>\\n <startTime>1646100892000</startTime>\\n <isSpare>false</isSpare>\\n <region>cn-shanghai</region>\\n <serviceUnitId>4</serviceUnitId>\\n <sqlRetention>180</sqlRetention>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetDasProServiceUsageResponse>","errorExample":""}]', ], 'GetDasSQLLogHotData' => [ 'summary' => '获取审计日志热数据。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -11300,46 +10015,27 @@ 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeCode' => '178715', - 'abilityTreeNodes' => [ - 'FEATUREhdmFT57I0', - ], + 'abilityTreeNodes' => ['FEATUREhdmFT57I0'], ], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze1jdv45i7l6****', - ], + 'schema' => ['description' => '数据库实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze1jdv45i7l6****'], ], [ 'name' => 'Start', 'in' => 'formData', - 'schema' => [ - 'description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。'."\n" - ."\n" - .'> 只能查询开启DAS企业版后的数据,查询开始时间最大不能早于当前时间7天。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1684734297000', - ], + 'schema' => ['description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。'."\n" + ."\n" + .'> 只能查询开启DAS企业版后的数据,查询开始时间最大不能早于当前时间7天。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1684734297000'], ], [ 'name' => 'End', 'in' => 'formData', - 'schema' => [ - 'description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。'."\n" - ."\n" - .'> 查询结束时间需晚于查询开始时间,且查询开始时间和查询结束时间的间隔不能超过1天。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1684820697000', - ], + 'schema' => ['description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。'."\n" + ."\n" + .'> 查询结束时间需晚于查询开始时间,且查询开始时间和查询结束时间的间隔不能超过1天。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1684820697000'], ], [ 'name' => 'QueryKeyword', @@ -11357,95 +10053,51 @@ [ 'name' => 'AccountName', 'in' => 'formData', - 'schema' => [ - 'description' => '数据库账号。'."\n" - ."\n" - .'> 支持多个数据库账号组合查询,数据库账号间以空格分隔,例如:`user1 user2 user3`。', - 'type' => 'string', - 'required' => false, - 'example' => 'testuser', - ], + 'schema' => ['description' => '数据库账号。'."\n" + ."\n" + .'> 支持多个数据库账号组合查询,数据库账号间以空格分隔,例如:`user1 user2 user3`。', 'type' => 'string', 'required' => false, 'example' => 'testuser'], ], [ 'name' => 'DBName', 'in' => 'formData', - 'schema' => [ - 'description' => '数据库名。'."\n" - ."\n" - .'> 支持多个数据库名组合查询,数据库名间以空格分隔,例如:`DB1 DB2 DB3`。', - 'type' => 'string', - 'required' => false, - 'example' => 'testDB', - ], + 'schema' => ['description' => '数据库名。'."\n" + ."\n" + .'> 支持多个数据库名组合查询,数据库名间以空格分隔,例如:`DB1 DB2 DB3`。', 'type' => 'string', 'required' => false, 'example' => 'testDB'], ], [ 'name' => 'HostAddress', 'in' => 'formData', - 'schema' => [ - 'description' => '客户端IP地址。'."\n" - ."\n" - .'> 支持多个客户端IP地址组合查询,客户端IP地址间以空格分隔,例如:`IP1 IP2 IP3`。', - 'type' => 'string', - 'required' => false, - 'example' => '47.100.XX.XX', - ], + 'schema' => ['description' => '客户端IP地址。'."\n" + ."\n" + .'> 支持多个客户端IP地址组合查询,客户端IP地址间以空格分隔,例如:`IP1 IP2 IP3`。', 'type' => 'string', 'required' => false, 'example' => '47.100.XX.XX'], ], [ 'name' => 'LogicalOperator', 'in' => 'formData', - 'schema' => [ - 'description' => '多个关键字的逻辑关系。'."\n" - ."\n" - .'- **or**:或。'."\n" - .'- **and**:与。', - 'type' => 'string', - 'required' => false, - 'example' => 'or', - ], + 'schema' => ['description' => '多个关键字的逻辑关系。'."\n" + ."\n" + .'- **or**:或。'."\n" + .'- **and**:与。', 'type' => 'string', 'required' => false, 'example' => 'or'], ], [ 'name' => 'MaxLatancy', 'in' => 'formData', - 'schema' => [ - 'description' => '最大执行耗时 ,单位为微秒。查询执行耗时小于该参数值的SQL语句。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '100', - ], + 'schema' => ['description' => '最大执行耗时 ,单位为微秒。查询执行耗时小于该参数值的SQL语句。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '100'], ], [ 'name' => 'MaxScanRows', 'in' => 'formData', - 'schema' => [ - 'description' => '最大扫描行数 ,查询扫描行数小于该参数值的SQL语句。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '10000', - ], + 'schema' => ['description' => '最大扫描行数 ,查询扫描行数小于该参数值的SQL语句。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '10000'], ], [ 'name' => 'MinLatancy', 'in' => 'formData', - 'schema' => [ - 'description' => '最小执行耗时 ,单位为微秒。查询执行耗时大于等于该参数值的SQL语句。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => '最小执行耗时 ,单位为微秒。查询执行耗时大于等于该参数值的SQL语句。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '10'], ], [ 'name' => 'MinScanRows', 'in' => 'formData', - 'schema' => [ - 'description' => '最小扫描行数 ,查询扫描行数大于等于该参数值的SQL语句。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => '最小扫描行数 ,查询扫描行数大于等于该参数值的SQL语句。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '10'], ], [ 'name' => 'SqlType', @@ -11457,181 +10109,96 @@ .'- **delete**', 'type' => 'string', 'required' => false, - 'enumValueTitles' => [ - 'select' => '查询', - 'update' => '修改', - 'delete' => '删除', - ], + 'enumValueTitles' => ['select' => '查询', 'update' => '修改', 'delete' => '删除'], 'example' => 'select', ], ], [ 'name' => 'State', 'in' => 'formData', - 'schema' => [ - 'description' => '执行结果,输入**0**时表示查询执行成功的SQL,您也可以输入具体的错误码,查询对应的SQL。', - 'type' => 'string', - 'required' => false, - 'example' => '0', - ], + 'schema' => ['description' => '执行结果,输入**0**时表示查询执行成功的SQL,您也可以输入具体的错误码,查询对应的SQL。', 'type' => 'string', 'required' => false, 'example' => '0'], ], [ 'name' => 'ThreadID', 'in' => 'formData', - 'schema' => [ - 'description' => '线程ID。'."\n" - ."\n" - .'> 支持多个线程ID组合查询,线程ID间以空格分隔,例如:`线程ID1 线程ID2 线程ID3`。', - 'type' => 'string', - 'required' => false, - 'example' => '657', - ], + 'schema' => ['description' => '线程ID。'."\n" + ."\n" + .'> 支持多个线程ID组合查询,线程ID间以空格分隔,例如:`线程ID1 线程ID2 线程ID3`。', 'type' => 'string', 'required' => false, 'example' => '657'], ], [ 'name' => 'PageNumbers', 'in' => 'formData', - 'schema' => [ - 'description' => '分页查询的页码,从1开始,默认为1。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '2', - ], + 'schema' => ['description' => '分页查询的页码,从1开始,默认为1。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '2'], ], [ 'name' => 'MaxRecordsPerPage', 'in' => 'formData', - 'schema' => [ - 'description' => '分页查询每页最大记录数。取值范围:5~100。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => '分页查询每页最大记录数。取值范围:5~100。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '10'], ], [ 'name' => 'SortKey', 'in' => 'formData', - 'schema' => [ - 'description' => '排序依据。'."\n" - ."\n" - .'- **ScanRows**:扫描行数。'."\n" - .'- **UpdateRows**:更新行数。'."\n" - .'- **Consume**:耗时。'."\n" - .'- **OriginTime**:执行时间。'."\n" - .'- **ReturnRows**:返回行数。', - 'type' => 'string', - 'required' => false, - 'example' => 'ScanRows', - ], + 'schema' => ['description' => '排序依据。'."\n" + ."\n" + .'- **ScanRows**:扫描行数。'."\n" + .'- **UpdateRows**:更新行数。'."\n" + .'- **Consume**:耗时。'."\n" + .'- **OriginTime**:执行时间。'."\n" + .'- **ReturnRows**:返回行数。', 'type' => 'string', 'required' => false, 'example' => 'ScanRows'], ], [ 'name' => 'SortMethod', 'in' => 'formData', - 'schema' => [ - 'description' => '排序方式。'."\n" - .'- **ASC**:正序。'."\n" - .'- **DESC**:倒序。', - 'type' => 'string', - 'required' => false, - 'example' => 'ASC', - ], + 'schema' => ['description' => '排序方式。'."\n" + .'- **ASC**:正序。'."\n" + .'- **DESC**:倒序。', 'type' => 'string', 'required' => false, 'example' => 'ASC'], ], [ 'name' => 'ChildDBInstanceIDs', 'in' => 'formData', - 'schema' => [ - 'description' => '节点ID。'."\n" - ."\n" - .'> 对于PolarDB MySQL版实例,需要提供节点ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'pi-bp179lg03445l****', - ], + 'schema' => ['description' => '节点ID。'."\n" + ."\n" + .'> 对于PolarDB MySQL版实例,需要提供节点ID。', 'type' => 'string', 'required' => false, 'example' => 'pi-bp179lg03445l****'], ], [ 'name' => 'Role', 'in' => 'formData', - 'schema' => [ - 'description' => '预留参数,暂不支持。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], + 'schema' => ['description' => '预留参数,暂不支持。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ 'name' => 'TraceId', 'in' => 'formData', - 'schema' => [ - 'description' => '预留参数,暂不支持。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], + 'schema' => ['description' => '预留参数,暂不支持。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ 'name' => 'MinRows', 'in' => 'formData', - 'schema' => [ - 'description' => '预留参数,暂不支持。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => 'None', - ], + 'schema' => ['description' => '预留参数,暂不支持。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => 'None'], ], [ 'name' => 'MaxRows', 'in' => 'formData', - 'schema' => [ - 'description' => '预留参数,暂不支持。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => 'None', - ], + 'schema' => ['description' => '预留参数,暂不支持。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => 'None'], ], [ 'name' => 'MinSpillCnt', 'in' => 'formData', - 'schema' => [ - 'description' => '预留参数,暂不支持。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => 'None', - ], + 'schema' => ['description' => '预留参数,暂不支持。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => 'None'], ], [ 'name' => 'MaxSpillCnt', 'in' => 'formData', - 'schema' => [ - 'description' => '预留参数,暂不支持。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => 'None', - ], + 'schema' => ['description' => '预留参数,暂不支持。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => 'None'], ], [ 'name' => 'TransactionId', 'in' => 'formData', - 'schema' => [ - 'description' => '事务ID。', - 'type' => 'string', - 'required' => false, - 'example' => '0', - ], + 'schema' => ['description' => '事务ID。', 'type' => 'string', 'required' => false, 'example' => '0'], ], [ 'name' => 'Fail', 'in' => 'formData', - 'schema' => [ - 'description' => 'SQL执行错误码,您可以调用[GetAsyncErrorRequestStatByCode](~~409804~~)获取错误码。', - 'type' => 'string', - 'required' => false, - 'example' => '1064', - ], + 'schema' => ['description' => 'SQL执行错误码,您可以调用[GetAsyncErrorRequestStatByCode](~~409804~~)获取错误码。', 'type' => 'string', 'required' => false, 'example' => '1064'], ], ], 'responses' => [ @@ -11639,30 +10206,14 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID,阿里云为该请求生成的标识符。', - 'type' => 'string', - 'example' => '0A74B755-98B7-59DB-8724-1321B394****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID,阿里云为该请求生成的标识符。', 'type' => 'string', 'example' => '0A74B755-98B7-59DB-8724-1321B394****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], 'Data' => [ 'title' => 'ListResult<Map<String, Object>>', 'description' => '返回数据。', @@ -11675,163 +10226,52 @@ 'description' => '返回SQL洞察和审计数据。', 'type' => 'object', 'properties' => [ - 'Latancy' => [ - 'description' => '执行耗时,单位微秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10000', - ], - 'Ext' => [ - 'description' => '扩展信息字段,备用参数。', - 'type' => 'string', - 'example' => 'None', - ], - 'ExecuteTime' => [ - 'description' => '执行时间,格式为UTC时间:`yyyy-MM-ddTHH:mm:ssZ`。', - 'type' => 'string', - 'example' => '2023-05-23 T12:11:20Z', - ], - 'OriginTime' => [ - 'description' => '执行时间,格式为UTC时间:`yyyy-MM-ddTHH:mm:ss.SSSZ`。', - 'type' => 'string', - 'example' => '2023-05-23 T12:11:20.999Z', - ], - 'HostAddress' => [ - 'description' => '客户端IP地址。', - 'type' => 'string', - 'example' => '47.100.XX.XX', - ], - 'UpdateRows' => [ - 'description' => '更新行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '30', - ], - 'LogicRead' => [ - 'description' => '逻辑读。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '12', - ], - 'SQLText' => [ - 'description' => 'SQL语句详情。', - 'type' => 'string', - 'example' => 'select 1', - ], - 'LockTime' => [ - 'description' => '锁等待时间,单位微秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'ScanRows' => [ - 'description' => '扫描行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '29', - ], - 'ThreadID' => [ - 'description' => '线程ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '657', - ], - 'State' => [ - 'description' => '状态。返回**0**时表示执行成功,否则返回错误码。', - 'type' => 'string', - 'example' => '0', - ], - 'DBName' => [ - 'description' => '数据库名称。', - 'type' => 'string', - 'example' => 'testDB', - ], - 'SqlType' => [ - 'description' => 'SQL的类型。取值:'."\n" - .'- **select**'."\n" - .'- **update**'."\n" - .'- **delete**', - 'type' => 'string', - 'example' => 'select', - ], - 'AccountName' => [ - 'description' => '数据库账号。', - 'type' => 'string', - 'example' => 'testuser', - ], - 'PhysicSyncRead' => [ - 'description' => '物理同步读。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'PhysicAsyncRead' => [ - 'description' => '物理异步读。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'TransactionId' => [ - 'description' => '开启的事务ID。', - 'type' => 'string', - 'example' => '0', - ], - 'ReturnRows' => [ - 'description' => '返回行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'NodeId' => [ - 'type' => 'string', - ], + 'Latancy' => ['description' => '执行耗时,单位微秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '10000'], + 'Ext' => ['description' => '扩展信息字段,备用参数。', 'type' => 'string', 'example' => 'None'], + 'ExecuteTime' => ['description' => '执行时间,格式为UTC时间:`yyyy-MM-ddTHH:mm:ssZ`。', 'type' => 'string', 'example' => '2023-05-23 T12:11:20Z'], + 'OriginTime' => ['description' => '执行时间,格式为UTC时间:`yyyy-MM-ddTHH:mm:ss.SSSZ`。', 'type' => 'string', 'example' => '2023-05-23 T12:11:20.999Z'], + 'HostAddress' => ['description' => '客户端IP地址。', 'type' => 'string', 'example' => '47.100.XX.XX'], + 'UpdateRows' => ['description' => '更新行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '30'], + 'LogicRead' => ['description' => '逻辑读。', 'type' => 'integer', 'format' => 'int64', 'example' => '12'], + 'SQLText' => ['description' => 'SQL语句详情。', 'type' => 'string', 'example' => 'select 1'], + 'LockTime' => ['description' => '锁等待时间,单位微秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'ScanRows' => ['description' => '扫描行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '29'], + 'ThreadID' => ['description' => '线程ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '657'], + 'State' => ['description' => '状态。返回**0**时表示执行成功,否则返回错误码。', 'type' => 'string', 'example' => '0'], + 'DBName' => ['description' => '数据库名称。', 'type' => 'string', 'example' => 'testDB'], + 'SqlType' => ['description' => 'SQL的类型。取值:'."\n" + .'- **select**'."\n" + .'- **update**'."\n" + .'- **delete**', 'type' => 'string', 'example' => 'select'], + 'AccountName' => ['description' => '数据库账号。', 'type' => 'string', 'example' => 'testuser'], + 'PhysicSyncRead' => ['description' => '物理同步读。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'PhysicAsyncRead' => ['description' => '物理异步读。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'TransactionId' => ['description' => '开启的事务ID。', 'type' => 'string', 'example' => '0'], + 'ReturnRows' => ['description' => '返回行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'NodeId' => ['description' => '节点ID。', 'type' => 'string', 'example' => 'pi-bp120roy76f3qbd84'], ], ], ], - 'Total' => [ - 'description' => '返回总记录数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], - 'PageNo' => [ - 'description' => '分页页码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'PageSize' => [ - 'description' => '每页数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'Extra' => [ - 'description' => '备用参数。', - 'type' => 'any', - 'example' => 'None', - ], + 'Total' => ['description' => '返回总记录数。', 'type' => 'integer', 'format' => 'int64', 'example' => '20'], + 'PageNo' => ['description' => '分页页码。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'PageSize' => ['description' => '每页数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'Extra' => ['description' => '备用参数。', 'type' => 'any', 'example' => 'None'], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"0A74B755-98B7-59DB-8724-1321B394****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"List\\": [\\n {\\n \\"Latancy\\": 10000,\\n \\"Ext\\": \\"None\\",\\n \\"ExecuteTime\\": \\"2023-05-23 T12:11:20Z\\",\\n \\"OriginTime\\": \\"2023-05-23 T12:11:20.999Z\\",\\n \\"HostAddress\\": \\"47.100.XX.XX\\",\\n \\"UpdateRows\\": 30,\\n \\"LogicRead\\": 12,\\n \\"SQLText\\": \\"select 1\\",\\n \\"LockTime\\": 1,\\n \\"ScanRows\\": 29,\\n \\"ThreadID\\": 657,\\n \\"State\\": \\"0\\",\\n \\"DBName\\": \\"testDB\\",\\n \\"SqlType\\": \\"select\\",\\n \\"AccountName\\": \\"testuser\\",\\n \\"PhysicSyncRead\\": 0,\\n \\"PhysicAsyncRead\\": 0,\\n \\"TransactionId\\": \\"0\\",\\n \\"ReturnRows\\": 1,\\n \\"NodeId\\": \\"\\"\\n }\\n ],\\n \\"Total\\": 20,\\n \\"PageNo\\": 2,\\n \\"PageSize\\": 10,\\n \\"Extra\\": \\"None\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<GetDasSQLLogHotDataResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>0A74B755-98B7-59DB-8724-1321B394****</RequestId>\\n <Success>true</Success>\\n <Data>\\n <List>\\n <Latancy>10000</Latancy>\\n <Ext>None</Ext>\\n <ExecuteTime>2023-05-23 T12:11:20Z</ExecuteTime>\\n <OriginTime>2023-05-23 T12:11:20.999Z</OriginTime>\\n <HostAddress>47.100.XX.XX</HostAddress>\\n <UpdateRows>30</UpdateRows>\\n <LogicRead>12</LogicRead>\\n <SQLText>select 1</SQLText>\\n <LockTime>1</LockTime>\\n <ScanRows>29</ScanRows>\\n <ThreadID>657</ThreadID>\\n <State>0</State>\\n <DBName>testDB</DBName>\\n <SqlType>SELECT</SqlType>\\n <AccountName>testuser</AccountName>\\n <PhysicSyncRead>0</PhysicSyncRead>\\n <PhysicAsyncRead>0</PhysicAsyncRead>\\n <TransactionId>0</TransactionId>\\n <ReturnRows>1</ReturnRows>\\n </List>\\n <Total>20</Total>\\n <PageNo>2</PageNo>\\n <PageSize>10</PageSize>\\n <Extra>None</Extra>\\n </Data>\\n</GetDasSQLLogHotDataResponse>","errorExample":""}]', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"0A74B755-98B7-59DB-8724-1321B394****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"List\\": [\\n {\\n \\"Latancy\\": 10000,\\n \\"Ext\\": \\"None\\",\\n \\"ExecuteTime\\": \\"2023-05-23 T12:11:20Z\\",\\n \\"OriginTime\\": \\"2023-05-23 T12:11:20.999Z\\",\\n \\"HostAddress\\": \\"47.100.XX.XX\\",\\n \\"UpdateRows\\": 30,\\n \\"LogicRead\\": 12,\\n \\"SQLText\\": \\"select 1\\",\\n \\"LockTime\\": 1,\\n \\"ScanRows\\": 29,\\n \\"ThreadID\\": 657,\\n \\"State\\": \\"0\\",\\n \\"DBName\\": \\"testDB\\",\\n \\"SqlType\\": \\"select\\",\\n \\"AccountName\\": \\"testuser\\",\\n \\"PhysicSyncRead\\": 0,\\n \\"PhysicAsyncRead\\": 0,\\n \\"TransactionId\\": \\"0\\",\\n \\"ReturnRows\\": 1,\\n \\"NodeId\\": \\"pi-bp120roy76f3qbd84\\"\\n }\\n ],\\n \\"Total\\": 20,\\n \\"PageNo\\": 2,\\n \\"PageSize\\": 10,\\n \\"Extra\\": \\"None\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<GetDasSQLLogHotDataResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>0A74B755-98B7-59DB-8724-1321B394****</RequestId>\\n <Success>true</Success>\\n <Data>\\n <List>\\n <Latancy>10000</Latancy>\\n <Ext>None</Ext>\\n <ExecuteTime>2023-05-23 T12:11:20Z</ExecuteTime>\\n <OriginTime>2023-05-23 T12:11:20.999Z</OriginTime>\\n <HostAddress>47.100.XX.XX</HostAddress>\\n <UpdateRows>30</UpdateRows>\\n <LogicRead>12</LogicRead>\\n <SQLText>select 1</SQLText>\\n <LockTime>1</LockTime>\\n <ScanRows>29</ScanRows>\\n <ThreadID>657</ThreadID>\\n <State>0</State>\\n <DBName>testDB</DBName>\\n <SqlType>SELECT</SqlType>\\n <AccountName>testuser</AccountName>\\n <PhysicSyncRead>0</PhysicSyncRead>\\n <PhysicAsyncRead>0</PhysicAsyncRead>\\n <TransactionId>0</TransactionId>\\n <ReturnRows>1</ReturnRows>\\n </List>\\n <Total>20</Total>\\n <PageNo>2</PageNo>\\n <PageSize>10</PageSize>\\n <Extra>None</Extra>\\n </Data>\\n</GetDasSQLLogHotDataResponse>","errorExample":""}]', 'title' => '查询DAS企业版热存储数据明细', 'description' => '使用该接口需满足以下前提条件:'."\n" ."\n" @@ -11841,146 +10281,210 @@ .'- 实例已开启日志索引。'."\n" ."\n" .'> 查询开始时间不能早于7天以前,查询开始时间和查询结束时间的间隔不能超过1天,并且该API返回的条数最多为1W条。', - ], - 'CreateSqlLogTask' => [ - 'summary' => '创建明细数据异步任务。', - 'methods' => [ - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDasSQLLogHotData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetDasSQLLogHotData', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetDeadLockDetail' => [ + 'summary' => '查询单个死锁详情。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '199695', - 'abilityTreeNodes' => [ - 'FEATUREhdmFT57I0', - ], + 'abilityTreeNodes' => ['FEATUREhdm7GLEEO'], ], 'parameters' => [ [ 'name' => 'InstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'pc-2ze8g2am97624****', - ], + 'in' => 'query', + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'pc-bp1u5mas9exx7****'], ], [ 'name' => 'NodeId', - 'in' => 'formData', - 'schema' => [ - 'description' => '节点ID。'."\n" - .'>该参数仅适用于集群版实例,可以选择查询指定节点离线任务。若不传该参数,默认返回主节点离线任务。', - 'type' => 'string', - 'required' => false, - 'example' => 'pi-uf6k5f6g3912i****', - ], + 'in' => 'query', + 'schema' => ['description' => '节点ID。'."\n" + ."\n" + .'> 对于PolarDB MySQL版实例,需要提供节点ID。', 'type' => 'string', 'required' => false, 'example' => 'pi-bp16v3824rt73****'], ], [ - 'name' => 'Type', - 'in' => 'formData', - 'schema' => [ - 'description' => '任务类型'."\n" - ."\n" - .'- **Export**:导出任务。'."\n" - .'> **Export**支持的过滤参数及其取值请参考**请求参数补充说明**。'."\n" - .'- **Query**:查询任务。', - 'type' => 'string', - 'required' => false, - 'example' => 'Export', - ], + 'name' => 'TextId', + 'in' => 'query', + 'schema' => ['description' => '查询死锁历史任务列表GetDeadLockHistory中返回的死锁TextId。', 'type' => 'string', 'required' => true, 'example' => 'a0e390cd5aca9ae964448f040153****'], ], [ - 'name' => 'Name', - 'in' => 'formData', + 'name' => 'Source', + 'in' => 'query', + 'schema' => ['description' => '任务来源:'."\n" + .'- **MANUAL**或**不传入**:查询最近死锁分析任务。'."\n" + .'- **AUTO**:查询全量死锁分析任务。', 'type' => 'string', 'required' => false, 'example' => 'AUTO'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '任务名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'SQL审计导出1'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '9CB97BC4-6479-55D0-B9D0-EA925AFE****'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'Synchro' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], + 'Data' => ['description' => '返回的JSON格式数据:'."\n" + ."\n" + .'- accountId:用户ID。'."\n" + .'- textId:死锁文本ID。'."\n" + .'- gmtModified:诊断生成时间。'."\n" + .'- originText:LATEST DETECTED DEADLOCK的原始死锁文本或错误日志中的原始死锁文本。'."\n" + .'- deadlock:死锁详情:'."\n" + .' - occurTime:死锁发生时间。'."\n" + .' - originTextId:死锁文本ID。'."\n" + .' - rollbackTrxId:回滚的事务编号。'."\n" + .' - transactions:'."\n" + .' - deadlockIdInDB:DB中的死锁编号。'."\n" + .' - ip:访问IP。'."\n" + .' - queryId:请求ID。'."\n" + .' - queryType:请求类型。'."\n" + .' - relatedTables:相关表。'."\n" + .' - tableNamesString:相关表。'."\n" + .' - sqlText:SQL文本。'."\n" + .' - threadId:线程ID。'."\n" + .' - transactionId:事务ID。'."\n" + .' - trxIdInLock:死锁中的事务编号。'."\n" + .' - userName:数据库用户名。'."\n" + .' - waitLockIndexName:等待锁索引名。'."\n" + .' - waitLockMode:等待锁类型。'."\n" + .' - lockWait:等待锁。'."\n" + .' - holdLockIndexName:持有锁索引名。'."\n" + .' - holdLockMode:持有锁类型。'."\n" + .' - lockHold:持有锁。'."\n" + .' - trxNum:事务数量。'."\n" + .'- gmtCreate:诊断创建时间。'."\n" + .'- nodeId:节点ID。'."\n" + .'- uuid:实例ID。', 'type' => 'string', 'example' => '{'."\n" + .' "accountId": "108************",'."\n" + .' "textId": "35303d12d52d29ba73bb************",'."\n" + .' "gmtModified": 1732712680000,'."\n" + .' "originText": "LATEST DETECTED DEADLOCK****",'."\n" + .' "deadlock": "{\\"id\\":0,\\"occurTime\\":1732687047000,\\"originTextId\\":\\"35303d12d52d29ba73bb************\\",\\"rollbackTrxId\\":\\"2\\",\\"transactions\\":[{\\"deadlockIdInDB\\":0,\\"ip\\":\\"100.***.***.***\\",\\"lockWait\\":\\"index PRIMARY of table `das`.`students` trx id 15989454 lock_mode X locks rec but not gap waiting\\",\\"queryId\\":\\"386737457\\",\\"queryType\\":\\"updating\\",\\"relatedTables\\":[\\"`das`.`students`\\"],\\"sqlText\\":\\"update students set name=UUID() where id = 2 \\",\\"tableNamesString\\":\\"`das`.`students`\\",\\"threadId\\":\\"9194526\\",\\"transactionId\\":\\"15989454\\",\\"trxIdInLock\\":1,\\"userName\\":\\"das\\",\\"waitLockIndexName\\":\\"PRIMARY \\",\\"waitLockMode\\":\\"X locks rec but not gap waiting\\"},{\\"deadlockIdInDB\\":0,\\"holdLockIndexName\\":\\"PRIMARY \\",\\"holdLockMode\\":\\"X locks rec but not gap\\",\\"ip\\":\\"100.***.***.***\\",\\"lockHold\\":\\"index PRIMARY of table `das`.`students` trx id 15989451 lock_mode X locks rec but not gap\\",\\"lockWait\\":\\"index PRIMARY of table `das`.`students` trx id 15989451 lock_mode X locks rec but not gap waiting\\",\\"queryId\\":\\"386737566\\",\\"queryType\\":\\"updating\\",\\"relatedTables\\":[\\"`das`.`students`\\"],\\"sqlText\\":\\"update students set name=UUID() where id = 3 \\",\\"tableNamesString\\":\\"`das`.`students`\\",\\"threadId\\":\\"9194501\\",\\"transactionId\\":\\"15989451\\",\\"trxIdInLock\\":2,\\"userName\\":\\"das\\",\\"waitLockIndexName\\":\\"PRIMARY \\",\\"waitLockMode\\":\\"X locks rec but not gap waiting\\"}],\\"trxNum\\":2}",'."\n" + .' "gmtCreate": 1732712680000,'."\n" + .' "nodeId": "pi-8****************",'."\n" + .' "uuid": "pc-8v***************"'."\n" + .'}'], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询单个死锁详情', + 'description' => '本接口用于获取最近死锁分析、全量死锁分析的单个死锁详情。详情请参见[死锁分析](~~2858236~~)。'."\n" + ."\n" + .'使用该接口需满足以下前提条件:'."\n" + ."\n" + .'- 查询最近死锁分析详情的目标数据库引擎为:RDS MySQL、自建MySQL、PolarDB MySQL版、PolarDB-X 2.0。'."\n" + .'- 查询全量死锁分析详情的目标数据库引擎为:RDS MySQL、PolarDB MySQL版,且已开通[DAS运维服务(原经济版)](~~2666482~~)。'."\n" + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDeadLockDetail'], + ], + ], + 'ramActions' => [ [ - 'name' => 'Filters', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '筛选条件列表。', - 'type' => 'array', - 'items' => [ - 'description' => '筛选条件。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => '过滤参数', - 'description' => '过滤参数的名称。'."\n" - ."\n" - .'> 支持的过滤参数及其取值请参考**请求参数补充说明**。', - 'type' => 'string', - 'required' => false, - 'example' => 'KeyWords', - ], - 'Value' => [ - 'description' => '过滤参数的数值。', - 'type' => 'string', - 'required' => false, - 'example' => 'select', - ], - ], - 'required' => false, + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:GetDeadLockDetail', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], - 'required' => false, - 'maxItems' => 100, ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9CB97BC4-6479-55D0-B9D0-EA925AFE****\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Synchro\\": \\"None\\",\\n \\"Data\\": \\"{\\\\n \\\\\\"accountId\\\\\\": \\\\\\"108************\\\\\\",\\\\n \\\\\\"textId\\\\\\": \\\\\\"35303d12d52d29ba73bb************\\\\\\",\\\\n \\\\\\"gmtModified\\\\\\": 1732712680000,\\\\n \\\\\\"originText\\\\\\": \\\\\\"LATEST DETECTED DEADLOCK****\\\\\\",\\\\n \\\\\\"deadlock\\\\\\": \\\\\\"{\\\\\\\\\\\\\\"id\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"occurTime\\\\\\\\\\\\\\":1732687047000,\\\\\\\\\\\\\\"originTextId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"35303d12d52d29ba73bb************\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"rollbackTrxId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"2\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"transactions\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"deadlockIdInDB\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"ip\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"100.***.***.***\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"lockWait\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"index PRIMARY of table `das`.`students` trx id 15989454 lock_mode X locks rec but not gap waiting\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"queryId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"386737457\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"queryType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"updating\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"relatedTables\\\\\\\\\\\\\\":[\\\\\\\\\\\\\\"`das`.`students`\\\\\\\\\\\\\\"],\\\\\\\\\\\\\\"sqlText\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"update students set name=UUID() where id = 2 \\\\\\\\\\\\\\",\\\\\\\\\\\\\\"tableNamesString\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"`das`.`students`\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"threadId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"9194526\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"transactionId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"15989454\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"trxIdInLock\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"userName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"das\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"waitLockIndexName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"PRIMARY \\\\\\\\\\\\\\",\\\\\\\\\\\\\\"waitLockMode\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"X locks rec but not gap waiting\\\\\\\\\\\\\\"},{\\\\\\\\\\\\\\"deadlockIdInDB\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"holdLockIndexName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"PRIMARY \\\\\\\\\\\\\\",\\\\\\\\\\\\\\"holdLockMode\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"X locks rec but not gap\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"ip\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"100.***.***.***\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"lockHold\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"index PRIMARY of table `das`.`students` trx id 15989451 lock_mode X locks rec but not gap\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"lockWait\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"index PRIMARY of table `das`.`students` trx id 15989451 lock_mode X locks rec but not gap waiting\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"queryId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"386737566\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"queryType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"updating\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"relatedTables\\\\\\\\\\\\\\":[\\\\\\\\\\\\\\"`das`.`students`\\\\\\\\\\\\\\"],\\\\\\\\\\\\\\"sqlText\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"update students set name=UUID() where id = 3 \\\\\\\\\\\\\\",\\\\\\\\\\\\\\"tableNamesString\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"`das`.`students`\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"threadId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"9194501\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"transactionId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"15989451\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"trxIdInLock\\\\\\\\\\\\\\":2,\\\\\\\\\\\\\\"userName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"das\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"waitLockIndexName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"PRIMARY \\\\\\\\\\\\\\",\\\\\\\\\\\\\\"waitLockMode\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"X locks rec but not gap waiting\\\\\\\\\\\\\\"}],\\\\\\\\\\\\\\"trxNum\\\\\\\\\\\\\\":2}\\\\\\",\\\\n \\\\\\"gmtCreate\\\\\\": 1732712680000,\\\\n \\\\\\"nodeId\\\\\\": \\\\\\"pi-8****************\\\\\\",\\\\n \\\\\\"uuid\\\\\\": \\\\\\"pc-8v***************\\\\\\"\\\\n}\\",\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', + ], + 'GetDeadLockDetailList' => [ + 'summary' => '调用GetDeadLockDetailList接口,查询RDS SQL Server实例的死锁详情列表。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => ['operationType' => 'list'], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '数据库实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze2016723b32****'], + ], [ 'name' => 'StartTime', - 'in' => 'formData', - 'schema' => [ - 'description' => '任务的开始时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1596177993000'."\n", - ], + 'in' => 'query', + 'schema' => ['description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'string', 'required' => true, 'example' => '1701755730292'], ], [ 'name' => 'EndTime', - 'in' => 'formData', - 'schema' => [ - 'description' => '任务结束时间,格式为unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1608888296000'."\n", - ], + 'in' => 'query', + 'schema' => ['description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'string', 'required' => true, 'example' => '1702360530292'], ], [ - 'name' => 'Role', + 'name' => 'PageNo', 'in' => 'query', - 'schema' => [ - 'description' => 'PolarDB-X 2.0数据库实例节点信息。'."\n" - ."\n" - .'- **polarx_cn**:计算节点。'."\n" - ."\n" - .'- **polarx_dn**:数据节点。', - 'type' => 'string', - 'required' => false, - 'example' => 'polarx_cn', - ], + 'schema' => ['description' => '页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', 'type' => 'string', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每页最大记录数,默认值为10。', 'type' => 'string', 'required' => false, 'example' => '5'], + ], + [ + 'name' => 'DbNameList', + 'in' => 'query', + 'schema' => ['description' => '数据库名。传入多个数据库时,各个数据库名称间使用英文逗号(,)进行分隔。', 'type' => 'string', 'required' => false, 'example' => 'testdb1,testdb2'."\n"], ], ], 'responses' => [ @@ -11988,170 +10492,281 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '83D9D59B-057A-54A9-BFF9-CF2B42F05645', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ - 'title' => 'SqlLogTask', - 'description' => '返回数据。', + 'description' => '返回的数据。', 'type' => 'object', 'properties' => [ - 'TaskId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => '54f8041743ca3a9ac5cb9342d050527c', - ], - 'InstanceId' => [ - 'title' => '实例标识', - 'description' => '数据库实例ID。', - 'type' => 'string', - 'example' => 'pc-2ze8g2am97624****', - ], - 'Name' => [ - 'title' => '任务别名', - 'description' => '任务名称。', - 'type' => 'string', - 'example' => 'Export_test', - ], - 'Start' => [ - 'title' => '查询开始时间', - 'description' => '开始时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1596177993000', - ], - 'End' => [ - 'title' => '查询结束时间', - 'description' => '结束时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1608888296000'."\n", - ], - 'Status' => [ - 'title' => '任务状态', - 'description' => '任务状态。'."\n" - .'- **INIT**:待调度。'."\n" - .'- **RUNNING**:运行中。'."\n" - .'- **FAILED**:失败。'."\n" - .'- **CANCELED**:已取消。'."\n" - .'- **COMPLETED**:完成。'."\n" - ."\n" - .'> 当任务处于**COMPLETED**时,可以查看任务的结果。', - 'type' => 'string', - 'example' => 'COMPLETED', - ], - 'CreateTime' => [ - 'title' => '任务创建时间', - 'description' => '任务创建时间,格式为unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1681363254423'."\n", + 'List' => [ + 'description' => '详细信息列表。', + 'type' => 'array', + 'items' => [ + 'description' => '返回信息列表。', + 'type' => 'object', + 'properties' => [ + 'BatchId' => ['description' => '采集的时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1702301170701'], + 'BlockProcessList' => [ + 'description' => '阻塞列表。即主动造成锁定的会话信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ClientApp' => ['description' => '当前事务所使用的客户端名称。', 'type' => 'string', 'example' => 'Microsoft SQL Server Management Studio - Query'], + 'HostName' => ['description' => '主机名。', 'type' => 'string', 'example' => 'sd7402****'], + 'LastTranStarted' => ['description' => '事务开启的时间。格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1702301152000'], + 'LockMode' => ['description' => '锁模式。更多信息,请参见[锁模式](~~2362804~~)。', 'type' => 'string', 'example' => 'U'], + 'LogUsed' => ['description' => '会话已经生成的日志大小。单位:字节(Byte)。', 'type' => 'integer', 'format' => 'int64', 'example' => '352'], + 'LoginName' => ['description' => '用户登录名。', 'type' => 'string', 'example' => 'sd7402****\\\\Administrator'], + 'ObjectOwned' => ['description' => '已经被锁住的对象。', 'type' => 'string', 'example' => 'testdb1.dbo.test2'], + 'ObjectRequested' => ['description' => '当前事务请求加锁的对象。', 'type' => 'string', 'example' => 'testdb1.dbo.test1'], + 'OwnMode' => ['description' => '会话当前持有的锁模式。更多信息,请参见[锁模式](~~2362804~~)。', 'type' => 'string', 'example' => 'X'], + 'Spid' => ['description' => '开启事务的会话ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '61'], + 'SqlText' => ['description' => 'SQL语句详情。', 'type' => 'string', 'example' => 'update test1 set col1 =9'], + 'Status' => ['description' => '当前事务的状态。', 'type' => 'string', 'example' => 'suspended'], + 'Victim' => ['description' => '是否是死锁的受害者:'."\n" + ."\n" + .'- **0**:不是。'."\n" + .'- **1**:是。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'WaitMode' => ['description' => '会话当前正在等待的锁模式。更多信息,请参见[锁模式](~~2362804~~)。', 'type' => 'string', 'example' => 'U'], + 'WaitResource' => ['description' => '当前事务等待中的资源。', 'type' => 'string', 'example' => 'RID: 5:1:312:0'], + 'WaitResourceDescription' => ['description' => '当前事务等待中的资源详情。', 'type' => 'string', 'example' => 'RID:school:school.mdf:312:0'], + 'DatabaseName' => ['description' => '数据库名称。', 'type' => 'string', 'example' => 'testdb1'], + ], + 'description' => '', + ], + ], + 'ClientApp' => ['description' => '客户端名称。', 'type' => 'string', 'example' => 'Microsoft SQL Server Management Studio - Query'], + 'HostName' => ['description' => '主机名。', 'type' => 'string', 'example' => 'sd7402****'], + 'LastTranStarted' => ['description' => '事务开启的时间。格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1702301141000'], + 'LockMode' => ['description' => '锁模式。更多信息,请参见[锁模式](~~2362804~~)。', 'type' => 'string', 'example' => 'U'], + 'LogUsed' => ['description' => '会话已经生成的日志大小。单位:字节(Byte)。', 'type' => 'integer', 'format' => 'int64', 'example' => '352'], + 'LoginName' => ['description' => '用户登录名。', 'type' => 'string', 'example' => 'sd7402****\\\\Administrator'], + 'ObjectRequested' => ['description' => '当前事务请求加锁的对象。', 'type' => 'string', 'example' => 'testdb1.dbo.test2'], + 'ObjectOwned' => ['description' => '已经被锁住的对象。', 'type' => 'string', 'example' => 'testdb1.dbo.test1'], + 'OwnMode' => ['description' => '会话当前持有的锁模式。更多信息,请参见[锁模式](~~2362804~~)。', 'type' => 'string', 'example' => 'X'], + 'Spid' => ['description' => '开启事务的会话ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '56'], + 'SqlText' => ['description' => 'SQL语句详情。', 'type' => 'string', 'example' => 'update test2 set col1 =88'], + 'Status' => ['description' => '当前事务的状态。', 'type' => 'string', 'example' => 'suspended'], + 'Victim' => ['description' => '是否是死锁的受害者:'."\n" + ."\n" + .'- **0**:不是。'."\n" + .'- **1**:是。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'."\n"], + 'WaitMode' => ['description' => '会话当前正在等待的锁模式。更多信息,请参见[锁模式](~~2362804~~)。', 'type' => 'string', 'example' => 'U'], + 'WaitResource' => ['description' => '当前事务等待中的资源。', 'type' => 'string', 'example' => 'RID: 5:1:376:0'], + 'WaitResourceDescription' => ['description' => '当前事务等待中的资源详情。', 'type' => 'string', 'example' => 'RID:school:school.mdf:376:0'], + 'DatabaseName' => ['description' => '数据库的名称。', 'type' => 'string', 'example' => 'testdb1'], + ], + ], ], + 'PageNo' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'PageSize' => ['description' => '每页记录数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'Total' => ['description' => '返回总记录数。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], ], ], + 'RequestId' => ['description' => '请求ID。'."\n" + ."\n", 'type' => 'string', 'example' => '840F51F7-9C01-538D-94F6-AE712905****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询RDS SQL Server实例的死锁列表', + 'description' => '* 本接口仅适用于RDS SQL Server版实例。'."\n" + .'* 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'* 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDeadLockDetailList'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'hdm:GetDeadLockDetailList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"83D9D59B-057A-54A9-BFF9-CF2B42F05645\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"TaskId\\": \\"54f8041743ca3a9ac5cb9342d050527c\\",\\n \\"InstanceId\\": \\"pc-2ze8g2am97624****\\",\\n \\"Name\\": \\"Export_test\\",\\n \\"Start\\": 1596177993000,\\n \\"End\\": 1608888296000,\\n \\"Status\\": \\"COMPLETED\\",\\n \\"CreateTime\\": 1681363254423\\n }\\n}","type":"json"}]', - 'title' => '创建DAS企业版离线任务', - 'description' => '前提条件:'."\n" - ."\n" - .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 仅开通了DAS企业版的数据库实例支持创建离线任务。DAS企业版各个版本支持的数据库和地域请参见[DAS产品系列及支持的功能](~~156204~~)。'."\n" + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"List\\": [\\n {\\n \\"BatchId\\": 1702301170701,\\n \\"BlockProcessList\\": [\\n {\\n \\"ClientApp\\": \\"Microsoft SQL Server Management Studio - Query\\",\\n \\"HostName\\": \\"sd7402****\\",\\n \\"LastTranStarted\\": 1702301152000,\\n \\"LockMode\\": \\"U\\",\\n \\"LogUsed\\": 352,\\n \\"LoginName\\": \\"sd7402****\\\\\\\\\\\\\\\\Administrator\\",\\n \\"ObjectOwned\\": \\"testdb1.dbo.test2\\",\\n \\"ObjectRequested\\": \\"testdb1.dbo.test1\\",\\n \\"OwnMode\\": \\"X\\",\\n \\"Spid\\": 61,\\n \\"SqlText\\": \\"update test1 set col1 =9\\",\\n \\"Status\\": \\"suspended\\",\\n \\"Victim\\": 0,\\n \\"WaitMode\\": \\"U\\",\\n \\"WaitResource\\": \\"RID: 5:1:312:0\\",\\n \\"WaitResourceDescription\\": \\"RID:school:school.mdf:312:0\\",\\n \\"DatabaseName\\": \\"testdb1\\"\\n }\\n ],\\n \\"ClientApp\\": \\"Microsoft SQL Server Management Studio - Query\\",\\n \\"HostName\\": \\"sd7402****\\",\\n \\"LastTranStarted\\": 1702301141000,\\n \\"LockMode\\": \\"U\\",\\n \\"LogUsed\\": 352,\\n \\"LoginName\\": \\"sd7402****\\\\\\\\\\\\\\\\Administrator\\",\\n \\"ObjectRequested\\": \\"testdb1.dbo.test2\\",\\n \\"ObjectOwned\\": \\"testdb1.dbo.test1\\",\\n \\"OwnMode\\": \\"X\\",\\n \\"Spid\\": 56,\\n \\"SqlText\\": \\"update test2 set col1 =88\\",\\n \\"Status\\": \\"suspended\\",\\n \\"Victim\\": 1,\\n \\"WaitMode\\": \\"U\\",\\n \\"WaitResource\\": \\"RID: 5:1:376:0\\",\\n \\"WaitResourceDescription\\": \\"RID:school:school.mdf:376:0\\",\\n \\"DatabaseName\\": \\"testdb1\\"\\n }\\n ],\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10,\\n \\"Total\\": 2\\n },\\n \\"RequestId\\": \\"840F51F7-9C01-538D-94F6-AE712905****\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', + ], + 'GetDeadLockHistory' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhdm7GLEEO'], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'pc-bp1u5mas9exx7****'."\n"], + ], + [ + 'name' => 'NodeId', + 'in' => 'query', + 'schema' => ['description' => '节点ID。'."\n" + ."\n" + .'> 对于PolarDB MySQL版实例,需要提供节点ID。', 'type' => 'string', 'required' => false, 'example' => 'pi-bp16v3824rt73****'], + ], + [ + 'name' => 'PageNo', + 'in' => 'query', + 'schema' => ['description' => '页码。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每页大小,最大值为**100**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。'."\n" + .'><notice>该字段类型为Long,在序列化/反序列化的过程中可能导致精度丢失,请注意数值不得大于9007199254740991。></notice>', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1731983066000'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。'."\n" + .'><notice>该字段类型为Long,在序列化/反序列化的过程中可能导致精度丢失,请注意数值不得大于9007199254740991。></notice>', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1732069466000'], + ], + [ + 'name' => 'Source', + 'in' => 'query', + 'schema' => ['description' => '任务来源:'."\n" + .'- **MANUAL**或**不传入**:查询最近死锁分析任务。'."\n" + .'- **AUTO**:查询全量死锁分析任务。'."\n" + .'><notice>传入AUTO查询全量死锁分析任务时,查询开始时间最大不能早于结束时间7天。></notice>', 'type' => 'string', 'required' => false, 'example' => 'AUTO'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'Synchro' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], + 'Data' => ['description' => '返回的JSON格式数据。'."\n" + ."\n" + .'- total: 死锁总数。'."\n" + .'- list: 死锁列表:'."\n" + .' - accountId: 用户ID。'."\n" + .' - textId: 死锁的文本ID。'."\n" + .' - gmtModified: 诊断生成时间。'."\n" + .' - lockTime: 死锁发生时间。'."\n" + .' - gmtCreate: 诊断创建时间。'."\n" + .' - nodeId: 节点ID。'."\n" + .' - uuid: 实例ID。', 'type' => 'string', 'example' => '{'."\n" + .' "total": 2,'."\n" + .' "list": ['."\n" + .' {'."\n" + .' "accountId": "108************",'."\n" + .' "textId": "35303d12d52d29ba73bb85fa2d5b****",'."\n" + .' "gmtModified": 1732712680000,'."\n" + .' "lockTime": 1732687047000,'."\n" + .' "gmtCreate": 1732712680000,'."\n" + .' "nodeId": "pi-8****************",'."\n" + .' "uuid": "pc-8v**************"'."\n" + .' },'."\n" + .' {'."\n" + .' "accountId": "108************",'."\n" + .' "textId": "50a24bdcc5fe7e03f92a55ae7574****",'."\n" + .' "gmtModified": 1732626448000,'."\n" + .' "lockTime": 1722500305000,'."\n" + .' "gmtCreate": 1732626448000,'."\n" + .' "nodeId": "pi-8****************",'."\n" + .' "uuid": "pc-8v**************"'."\n" + .' }'."\n" + .' ]'."\n" + .'}'], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '获取死锁分析的任务列表', + 'summary' => '获取最近死锁分析、全量死锁分析的历史分析任务列表。', + 'description' => '本接口用于获取最近死锁分析、全量死锁分析的历史分析记录。详情请参见[死锁分析](~~2858236~~)。'."\n" ."\n" - .'接口限制:'."\n" + .'使用该接口需满足以下前提条件:'."\n" ."\n" - .'最大同时执行数量为10。', - 'requestParamsDescription' => '**Key**支持的参数和取值:'."\n" - .'- **KeyWords**:关键字,多个关键字间使用空格隔开。'."\n" - .'- **LogicalOperator**:关键字间的逻辑操作,取值为and或or。'."\n" - .'- **AccountName**:用户名,可以传递多个的,用逗号分开,上限为5。'."\n" - .'- **DbName**:数据库名称,可以传递多个的,用逗号分开,上限为5。'."\n" - .'- **HostAddress**:客户端IP地址,可以传递多个的,用逗号分开,上限为5。'."\n" - .'- **MaxConsume**:最大耗时,单位us。'."\n" - .'- **MinConsume**:最小耗时,单位us。'."\n" - .'- **MaxScanRows**:最大扫描行。'."\n" - .'- **MinScanRows**:最小扫描行。'."\n" - .'- **SqlType**:SQL类型,取值select、update、insert或delete。'."\n" - .'- **State**:执行结果,取值0(成功)或1(失败)。'."\n" - .'- **ThreadId**:线程ID。'."\n" - .'- **SortKey**:排序列名称,取值ScanRows(扫描行数)、UpdateRows(更新行数)、Consume(耗时)、ExecuteTime(执行时间)、ReturnRows(返回行数)、LockTime(锁等待时间)、Frows(PolarDB-X 2.0计算节点的拉取行数)、Scnt(PolarDB-X 2.0计算节点的DN请求数)、CpuTime(CPU执行时间)、PhysicalRead(物理读)。'."\n" - .'- **SortMethod**:排序方式,取值DESC(降序)、ASC(升序)。默认为DESC。'."\n" - .'- **TraceId**:PolarDB-X 2.0实例的跟踪ID。'."\n" - .'- **MinRows**:最小更新行数。'."\n" - .'- **MaxRows**:最大更新行数。'."\n" - .'- **MinScnt**:PolarDB-X 2.0计算节点(CN)的DN最小请求数。'."\n" - .'- **MaxScnt**:PolarDB-X 2.0计算节点(CN)的DN最大请求数。'."\n" - .'- **TrxId**:事务ID。'."\n" - .'- **Fail**:错误码。'."\n" - .'- **SqlId**:SQL ID。'."\n" - .'- **JobId**:通过异步任务ID进一步查询返回结果。'."\n" - .'- **Delimiter**:分隔符,支持的`|` `,` `$` `#` 四种。'."\n" - .'- **Columns**:**Type** = **Export**,任务类型为导出任务时,传入选择的导出列,导出列用空格隔开,可选的有'."\n" - .' - **columnDBName**:数据库'."\n" - .' - **columnThreadId**:线程ID'."\n" - .' - **columnAccountName**:用户'."\n" - .' - **columnHostAddress**:客户端IP'."\n" - .' - **columnSqlType**:sql类型'."\n" - .' - **columnState**:状态'."\n" - .' - **columnConsume**:耗时us'."\n" - .' - **columnUpdateRows**:更新行数'."\n" - .' - **columnScanRows**:扫描行数'."\n" - .' - **columnReturnRows**:返回行数'."\n" - .' - **columnLockTime**:锁等待时间'."\n" - .' - **columnLogicRead**:逻辑读'."\n" - .' - **columnPhysicSyncRead**:物理同步读'."\n" - .' - **columnPhysicASyncRead**:物理异步读'."\n" - .' - **columnOriginTime**:执行时间(us)'."\n" - .' - **columnExecuteTime**:执行时间(类似于 2024-07-30 11:00:00)', - ], - 'DescribeSqlLogTask' => [ - 'summary' => '调用DescribeSqlLogTask接口,查询DAS企业版离线任务详情。', - 'methods' => [ - 'post', - 'get', + .'- 查询最近死锁分析历史分析记录的目标数据库引擎为:RDS MySQL、自建MySQL、PolarDB MySQL版、PolarDB-X 2.0。'."\n" + .'- 查询全量死锁分析历史分析记录的目标数据库引擎为:RDS MySQL、PolarDB MySQL版,且已开通[DAS运维服务(原经济版)](~~2666482~~)。'."\n" + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDeadLockHistory'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:GetDeadLockHistory', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Synchro\\": \\"None\\",\\n \\"Data\\": \\"{\\\\n \\\\\\"total\\\\\\": 2,\\\\n \\\\\\"list\\\\\\": [\\\\n {\\\\n \\\\\\"accountId\\\\\\": \\\\\\"108************\\\\\\",\\\\n \\\\\\"textId\\\\\\": \\\\\\"35303d12d52d29ba73bb85fa2d5b****\\\\\\",\\\\n \\\\\\"gmtModified\\\\\\": 1732712680000,\\\\n \\\\\\"lockTime\\\\\\": 1732687047000,\\\\n \\\\\\"gmtCreate\\\\\\": 1732712680000,\\\\n \\\\\\"nodeId\\\\\\": \\\\\\"pi-8****************\\\\\\",\\\\n \\\\\\"uuid\\\\\\": \\\\\\"pc-8v**************\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\"accountId\\\\\\": \\\\\\"108************\\\\\\",\\\\n \\\\\\"textId\\\\\\": \\\\\\"50a24bdcc5fe7e03f92a55ae7574****\\\\\\",\\\\n \\\\\\"gmtModified\\\\\\": 1732626448000,\\\\n \\\\\\"lockTime\\\\\\": 1722500305000,\\\\n \\\\\\"gmtCreate\\\\\\": 1732626448000,\\\\n \\\\\\"nodeId\\\\\\": \\\\\\"pi-8****************\\\\\\",\\\\n \\\\\\"uuid\\\\\\": \\\\\\"pc-8v**************\\\\\\"\\\\n }\\\\n ]\\\\n}\\",\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', + ], + 'GetDeadlockHistogram' => [ + 'summary' => '查询时间范围内基于错误日志全量死锁分析的死锁数量趋势。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -12160,872 +10775,608 @@ 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '213185', - 'abilityTreeNodes' => [ - 'FEATUREhdmFT57I0', - ], + 'abilityTreeCode' => '208479', + 'abilityTreeNodes' => ['FEATUREhdm7GLEEO'], ], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'r-bp1nti25tc7bq5****'."\n", - ], + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'pc-bp1u5mas9exx7****'], ], [ - 'name' => 'TaskId', + 'name' => 'NodeId', 'in' => 'formData', - 'schema' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'a4f5c4494dbd6713185d87a97aa53e8'."\n", - ], + 'schema' => ['description' => '节点ID。'."\n" + ."\n" + .'> 对于PolarDB MySQL版实例,需要提供节点ID。', 'type' => 'string', 'required' => false, 'example' => 'pi-bp16v3824rt73****'], ], [ - 'name' => 'PageNo', + 'name' => 'StartTime', 'in' => 'formData', - 'schema' => [ - 'description' => '分页查询的页码,从1开始,默认为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '查询开始时间,格式为 Unix 时间戳,单位为毫秒。'."\n" + ."\n" + .'>查询开始时间最大不能早于结束时间 7 天。'."\n" + ."\n" + .'><notice>该字段类型为 Long,在序列化/反序列化的过程中可能导致精度丢失,请注意数值不得大于 9007199254740991。></notice>', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1731983066000'], ], [ - 'name' => 'PageSize', + 'name' => 'EndTime', 'in' => 'formData', - 'schema' => [ - 'description' => '分页查询每页最大记录数,最大支持100,默认为10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => '查询结束时间,格式为 Unix 时间戳,单位为毫秒。'."\n" + .'><notice>该字段类型为 Long,在序列化/反序列化的过程中可能导致精度丢失,请注意数值不得大于 9007199254740991。></notice>', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1732069466000'], + ], + [ + 'name' => 'Status', + 'in' => 'formData', + 'schema' => ['description' => '任务的分析状态。', 'type' => 'string', 'required' => false, 'example' => 'SUCCESS'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => '根节点或根目录', - 'description' => '根节点或根目录', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。'."\n" - ."\n", - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0A74B755-98B7-59DB-8724-1321B394****'], 'Success' => [ 'description' => '请求是否执行成功:'."\n" ."\n" .'- **true**:执行成功。'."\n" .'- **false**:执行失败。', - 'type' => 'string', + 'type' => 'boolean', + 'enumValueTitles' => ['执行成功' => 'true', '执行失败' => 'false'], 'example' => 'true', ], 'Data' => [ - 'title' => 'SqlLogTaskDetail', + 'title' => 'List<DeadlockTrendItem>', 'description' => '返回数据。', - 'type' => 'object', - 'properties' => [ - 'Name' => [ - 'title' => '任务名', - 'description' => '任务名称。', - 'type' => 'string', - 'example' => 'SQL审计导出1'."\n", - ], - 'TaskId' => [ - 'title' => '任务ID', - 'description' => '任务ID。', - 'type' => 'string', - 'example' => '9a4f5c4494dbd6713185d87a97aa53e8'."\n", - ], - 'TaskType' => [ - 'title' => '任务类型', - 'description' => '任务类型。'."\n" - ."\n" - .'- **Export**:导出任务。'."\n" - .'- **Query**:查询任务。', - 'type' => 'string', - 'example' => 'Query', - ], - 'CreateTime' => [ - 'title' => '任务创建时间', - 'description' => '任务创建时间,格式为unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1681363254423'."\n", - ], - 'Status' => [ - 'title' => '任务状态', - 'description' => '任务状态。'."\n" - .'- **INIT**:待调度 。'."\n" - .'- **RUNNING**:运行中。'."\n" - .'- **FAILED**:失败。'."\n" - .'- **CANCELED**:已取消。'."\n" - .'- **COMPLETED**:完成。'."\n" - .'> 当任务处于**COMPLETED**时,可以查看离线任务的结果。', - 'type' => 'string', - 'example' => 'COMPLETED', - ], - 'Expire' => [ - 'description' => '任务是否过期。'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'false'."\n", - ], - 'Start' => [ - 'title' => '查询开始时间', - 'description' => '查询开始时间,格式为unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1596177993000'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '返回信息列表。'."\n", + 'type' => 'object', + 'properties' => [ + 'UserId' => ['title' => '用户ID', 'description' => '用户ID。', 'type' => 'string', 'example' => '108************'], + 'InstanceId' => ['title' => '实例ID', 'description' => '实例ID。', 'type' => 'string', 'example' => 'pc-bp1u5mas9exx7****'], + 'NodeId' => ['title' => '子实例名称,对polar集群使用', 'description' => '节点ID,对PolarDB MySQL集群使用。', 'type' => 'string', 'example' => 'pi-bp16v3824rt73****'], + 'TaskId' => ['title' => '死锁任务ID', 'description' => '全量死锁分析任务ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-1321B394****'], + 'StartTime' => ['title' => '诊断范围开始时间', 'description' => '分析任务范围的开始时间。', 'type' => 'string', 'example' => '1729994400000'], + 'EndTime' => ['title' => '诊断范围结束时间', 'description' => '分析任务范围的结束时间。', 'type' => 'string', 'example' => '1729998000000'], + 'LockNumber' => ['title' => '死锁数量', 'description' => '死锁数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'Status' => ['title' => '任务状态 (SUCCESS: 诊断完成, FAILED: 诊断异常/失败)', 'description' => '任务状态:'."\n" + .'- **SUCCESS**: 分析成功。'."\n" + .'- **FAILED**: 分析异常或失败。', 'type' => 'string', 'example' => 'SUCCESS'], ], - 'End' => [ - 'title' => '查询结束时间', - 'description' => '查询结束时间,格式为unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1608888296000'."\n", + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + ], + 'title' => '查询时间范围内全量死锁分析的数量趋势', + 'description' => '本接口用于查询时间范围内全量死锁分析的死锁数量。DAS定时对错误日志进行分析,解析其中的死锁信息,并统计死锁的数量趋势。详情请参见[全量死锁分析](~~2858236~~)。'."\n" + ."\n" + .'使用该接口需满足以下前提条件:'."\n" + ."\n" + .'- 目标数据库引擎为:RDS MySQL、PolarDB MySQL版,且已开通[DAS运维服务(原经济版)](~~2666482~~)。'."\n" + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDeadlockHistogram'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:GetDeadlockHistogram', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"0A74B755-98B7-59DB-8724-1321B394****\\",\\n \\"Success\\": true,\\n \\"Data\\": [\\n {\\n \\"UserId\\": \\"108************\\",\\n \\"InstanceId\\": \\"pc-bp1u5mas9exx7****\\",\\n \\"NodeId\\": \\"pi-bp16v3824rt73****\\",\\n \\"TaskId\\": \\"B6D17591-B48B-4D31-9CD6-1321B394****\\",\\n \\"StartTime\\": \\"1729994400000\\",\\n \\"EndTime\\": \\"1729998000000\\",\\n \\"LockNumber\\": 2,\\n \\"Status\\": \\"SUCCESS\\"\\n }\\n ]\\n}","type":"json"}]', + ], + 'GetErrorRequestSample' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'], + ], + [ + 'name' => 'NodeId', + 'in' => 'query', + 'schema' => ['description' => '节点ID。'."\n" + .'> 对于PolarDB MySQL版实例,需要提供节点ID。', 'type' => 'string', 'required' => false, 'example' => 'pi-bp179lg03445l****'], + ], + [ + 'name' => 'SqlId', + 'in' => 'query', + 'schema' => ['description' => 'SQL ID,您可以调用[GetAsyncErrorRequestListByCode](~~410746~~)接口查询实例中产生MySQL错误码的SQL ID。', 'type' => 'string', 'required' => false, 'example' => '2cd4432556c3dab9d825ba363637****'], + ], + [ + 'name' => 'Start', + 'in' => 'query', + 'schema' => ['description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。'."\n" + ."\n" + .'> 查询开始时间需在数据库实例SQL洞察存储时长范围内,最大不能早于当前时间90天。'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1642556990714'], + ], + [ + 'name' => 'End', + 'in' => 'query', + 'schema' => ['description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。'."\n" + ."\n" + .'> 查询结束时间需晚于查询开始时间,且查询开始时间和查询结束时间的间隔不能超过1天。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1642566830000'], + ], + [ + 'name' => 'DbName', + 'in' => 'query', + 'schema' => ['description' => '数据库名称。', 'type' => 'string', 'required' => false, 'example' => 'testdb01'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'Data' => [ + 'description' => '返回的数据。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'sqlId' => ['description' => 'SQL ID。', 'type' => 'string', 'example' => '2cd4432556c3dab9d825ba363637****'], + 'database' => ['description' => '数据库名。', 'type' => 'string', 'example' => 'dbgateway'], + 'originHost' => ['description' => '执行SQL的客户端IP地址。', 'type' => 'string', 'example' => '172.16.1****'], + 'tables' => [ + 'description' => '表数据。', + 'type' => 'array', + 'items' => ['description' => '表名。', 'type' => 'string', 'example' => 'meter_****'], + ], + 'instanceId' => ['description' => '实例ID。', 'type' => 'string', 'example' => 'rm-2ze8g2am97624****'], + 'errorCode' => ['description' => '错误码。', 'type' => 'string', 'example' => '1062'], + 'user' => ['description' => '数据库用户名。', 'type' => 'string', 'example' => 'dbgat****'], + 'sql' => ['description' => 'SQL语句。', 'type' => 'string', 'example' => 'insert into meter_****'], + 'timestamp' => ['description' => '执行时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1644476100435'], ], - 'Filters' => [ - 'title' => '过滤条件', - 'description' => '过滤条件。', + ], + 'example' => '[ { "sqlId": "2cd4432556c3dab9d825ba363637****", "database": "dbgateway", "originHost": "172.16.1****", "tables": [ "meter_****" ], "instanceId": "rm-2ze8g2am97624****", "errorCode": "1062", "user": "dbgat****", "sql": "insert into meter_****\\n ( \\n ****\\n )\\n values (now(), now(), \'bbbc8624-5e19-455a-9714-8466f688****\', \'2022-02-10 14:00:00\', \'{\\"endTime\\":\\"2022-02-10 14:00:00\\",\\"endTimestamp\\":1644472800,\\"startTime\\":\\"2022-02-10 13:00:00\\",\\"startTimestamp\\":1644469200}\', null, null)", "timestamp": 1644476100435 }]', + ], + 'RequestId' => ['description' => '请求的ID。', 'type' => 'string', 'example' => '7172BECE-588A-5961-8126-C216E16B****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + ."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": [\\n {\\n \\"sqlId\\": \\"2cd4432556c3dab9d825ba363637****\\",\\n \\"database\\": \\"dbgateway\\",\\n \\"originHost\\": \\"172.16.1****\\",\\n \\"tables\\": [\\n \\"meter_****\\"\\n ],\\n \\"instanceId\\": \\"rm-2ze8g2am97624****\\",\\n \\"errorCode\\": \\"1062\\",\\n \\"user\\": \\"dbgat****\\",\\n \\"sql\\": \\"insert into meter_****\\",\\n \\"timestamp\\": 1644476100435\\n }\\n ],\\n \\"RequestId\\": \\"7172BECE-588A-5961-8126-C216E16B****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetErrorRequestSampleResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <sqlId>2cd4432556c3dab9d825ba363637****</sqlId>\\n <database>dbgateway</database>\\n <originHost>172.16.1****</originHost>\\n <tables>meter_****</tables>\\n <instanceId>rm-2ze8g2am97624****</instanceId>\\n <errorCode>1062</errorCode>\\n <user>dbgat****</user>\\n <sql>insert into meter_****</sql>\\n <timestamp>1644476100435</timestamp>\\n </Data>\\n <RequestId>7172BECE-588A-5961-8126-C216E16B****</RequestId>\\n <Success>true</Success>\\n</GetErrorRequestSampleResponse>","errorExample":""}]', + 'title' => '查询执行错误的SQL样本数据', + 'summary' => '调用GetErrorRequestSample接口,异步查询数据库实例SQL洞察结果中执行错误的SQL样本数据,最多返回指定时间范围内20条数据。', + 'description' => '> 异步调用后不会立即返回完整结果,当返回数据中**isFinish**取值为**false**时,请等待1s后重新发起调用,直到**isFinish**取值为**true**时,返回完整结果。'."\n" + ."\n\n" + .'- 目前仅支持RDS MySQL和PolarDB MySQL版实例,请确保在使用该接口前,该实例已经开启DAS企业版,具体请参见[购买DAS企业版](~~163298~~)。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetErrorRequestSample'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetErrorRequestSample', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + ], + 'GetEventSubscription' => [ + 'summary' => '调用GetEventSubscription接口,获取数据库实例的事件订阅设置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['title' => '实例ID。', 'description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'."\n"], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'Data' => [ + 'description' => '详细信息列表。', + 'type' => 'object', + 'properties' => [ + 'userId' => ['title' => '用户ID。', 'description' => '用户ID。', 'type' => 'string', 'example' => '1088760496****'], + 'instanceId' => ['title' => '实例ID。', 'description' => '实例ID。', 'type' => 'string', 'example' => 'rm-2ze8g2am97624****'], + 'eventContext' => ['title' => '事件场景。', 'description' => '支持的事件场景,当前仅支持**AllContext**,表示支持所有场景。', 'type' => 'string', 'example' => 'AllContext'], + 'lang' => ['title' => '语言', 'description' => '事件通知的语言,当前仅支持**zh-CN**,表示事件通知为中文。', 'type' => 'string', 'example' => 'zh_CN'], + 'active' => ['title' => '是否开启。', 'description' => '是否启用事件订阅:'."\n" + ."\n" + .'- **0**:关闭。'."\n" + .'- **1**:开启。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'minInterval' => ['title' => '通知最小间隔。', 'description' => '通知最小间隔时间,单位秒(s)。', 'type' => 'string', 'example' => '60'], + 'contactName' => ['title' => '告警订阅人。', 'description' => '告警事件订阅人名称,多个名称间以英文逗号分隔。', 'type' => 'string', 'example' => 'Default contact'], + 'contactGroupName' => ['title' => '告警订阅组', 'description' => '告警事件订阅组名称,多个名称间以英文逗号分隔。', 'type' => 'string', 'example' => 'Default contact group'], + 'channelType' => ['title' => '通知方式。', 'description' => '通知方式:'."\n" + ."\n" + .'- **hdm\\_alarm\\_sms**:手机短信。'."\n" + .'- **dingtalk**:钉钉机器人。'."\n" + .'- **hdm\\_alarm\\_sms\\_and\\_email**:手机短信+邮件。'."\n" + .'- **hdm\\_alarm\\_sms,dingtalk**:手机短信+钉钉机器人。', 'type' => 'string', 'example' => 'hdm_alarm_sms,dingtalk'], + 'level' => ['title' => '事件风险级别。', 'description' => '事件风险级别,即触发哪种级别的事件后需要通知您:'."\n" + ."\n" + .'- **Notice**:通知。'."\n" + .'- **Optimization**:优化。'."\n" + .'- **Warn**:警告。'."\n" + .'- **Critical**:严重。', 'type' => 'string', 'example' => 'Optimization'], + 'contacts' => [ + 'title' => '告警联系人信息。', + 'description' => '告警联系人列表。', 'type' => 'array', 'items' => [ - 'description' => '查询筛选条件。', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'title' => '过滤参数', - 'description' => '过滤参数的名称。'."\n" - .'>支持的过滤参数及其取值请参考**返回参数补充说明**。', - 'type' => 'string', - 'example' => 'keyWords'."\n", - ], - 'Value' => [ - 'title' => '过滤值', - 'description' => '过滤参数的值。', - 'type' => 'any', - 'example' => 'select', + 'name' => ['title' => '告警联系人名称。', 'description' => '告警联系人名称。', 'type' => 'string', 'example' => 'Mr. Zhang'], + 'phone' => ['title' => '告警联系人电话', 'description' => '告警联系人电话。', 'type' => 'string', 'example' => '1390000****'], + 'email' => ['title' => '告警联系人邮箱。', 'description' => '告警联系人邮箱。', 'type' => 'string', 'example' => 'a***@example.net'], + 'dingtalkHook' => ['title' => '告警联系人钉钉机器人webhook。', 'description' => '钉钉机器人的Webhook地址。', 'type' => 'string', 'example' => 'https://oapi.dingtalk.com/robot/send?access_token=68fa29a9eaf3ba9994f54fxxxc1aa9879700308f90e9c23ebfb3663642c9****'], + 'groups' => [ + 'title' => '告警联系人所属联系组列表。', + 'description' => '告警联系人所属的联系组列表。', + 'type' => 'array', + 'items' => ['description' => '告警联系人名称。', 'type' => 'string', 'example' => '张先生'], + 'example' => 'Mr. Zhang', ], + 'isCmsReduplicated' => ['title' => '是否和云监控上的联系人重名。', 'description' => '是否和云监控上的联系人姓名相同。'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'userId' => ['title' => '用户ID。', 'description' => '用户ID。', 'type' => 'string', 'example' => '1088760496****'], ], + 'description' => '', ], ], - 'Total' => [ - 'title' => '总条数', - 'description' => '任务总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'Queries' => [ - 'title' => '明细列表', - 'description' => '离线查询任务结果。'."\n" - .'当TaskType == Query 时才会返回该值。', + 'contactGroups' => [ + 'description' => '告警联系组列表。', 'type' => 'array', 'items' => [ - 'description' => '离线查询任务结果。', 'type' => 'object', 'properties' => [ - 'Vip' => [ - 'description' => '查询链接的endpoint解析地址。', - 'type' => 'string', - 'example' => '10.146.XX.XX', - ], - 'NodeId' => [ - 'description' => '子节点ID。', - 'type' => 'string', - 'example' => 'pi-bp1o58x3ib7e6****'."\n", - ], - 'SqlText' => [ - 'description' => 'SQL语句详情。', - 'type' => 'string', - 'example' => 'SELECT @@session.transaction_read_only', - ], - 'SqlType' => [ - 'description' => '选择SQL的类型。取值:'."\n" - .'- **SELECT**'."\n" - .'- **UPDATE**'."\n" - .'- **DELETE**', - 'type' => 'string', - 'example' => 'SELECT', - ], - 'State' => [ - 'description' => '执行结果。'."\n" - ."\n" - .'- **0**:执行成功。'."\n" - .'- **1**:执行失败。', - 'type' => 'string', - 'example' => '0', - ], - 'DBName' => [ - 'description' => '数据库名称。', - 'type' => 'string', - 'example' => 'testdb01', - ], - 'SqlId' => [ - 'description' => 'SQL ID。', - 'type' => 'string', - 'example' => 'a4111670e80596c5bf42cf5154438a91', - ], - 'ExecuteTime' => [ - 'title' => 'yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'', - 'description' => '执行时间,格式为UTC时间:`yyyy-MM-ddTHH:mm:ssZ`。', - 'type' => 'string', - 'example' => '2023-12-07T02:15:32Z', - ], - 'OriginTime' => [ - 'title' => 'ts unix', - 'description' => '执行时间戳,格式为Unix时间,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1701886532000'."\n", - ], - 'AccountName' => [ - 'description' => '数据库账号。', - 'type' => 'string', - 'example' => 'testname'."\n", - ], - 'HostAddress' => [ - 'description' => '客户端IP地址。', - 'type' => 'string', - 'example' => '11.197.XX.XX'."\n", - ], - 'Consume' => [ - 'description' => '执行耗时,单位毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '58', - ], - 'LockTime' => [ - 'description' => '锁等待时间,单位毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'UpdateRows' => [ - 'description' => '更新行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'ScanRows' => [ - 'description' => '扫描行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'ReturnRows' => [ - 'description' => '返回行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'LogicRead' => [ - 'description' => '逻辑读。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'PhysicSyncRead' => [ - 'description' => '物理同步读。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'PhysicAsyncRead' => [ - 'description' => '物理异步读。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'ThreadId' => [ - 'description' => '线程ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => 'None', - ], - 'TrxId' => [ - 'description' => '事务ID。', - 'type' => 'string', - 'example' => '200000'."\n", - ], - 'Ext' => [ - 'description' => '扩展信息字段,备用参数。', - 'type' => 'string', - 'example' => 'None', - ], - 'Scnt' => [ - 'title' => 'polarx cn节点,dn请求总数', - 'description' => 'PolarDB-X 2.0计算节点(CN)的DN请求数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10'."\n", - ], - 'Rows' => [ - 'title' => 'polarx cn节点,总更新/返回行数', - 'description' => 'PolarDB-X 2.0数据库实例计算节点总更新或返回的行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'Frows' => [ - 'title' => 'polarx cn节点,拉取行数', - 'description' => 'PolarDB-X 2.0计算节点(CN)的拉取行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'TraceId' => [ - 'description' => 'PolarDB-X 2.0的跟踪ID,即SQL在数据节点的执行ID。', - 'type' => 'string', - 'example' => '14c93b7c7bf00000 ', - ], - 'UseImciEngine' => [ - 'description' => 'PolarDB MySQL版实例是否使用列存索引。'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'string', - 'example' => 'true'."\n", - ], - 'ParallelDegree' => [ - 'description' => 'PolarDB MySQL版实例的并行排队时间,单位为毫秒。', - 'type' => 'string', - 'example' => '10'."\n", - ], - 'ParallelQueueTime' => [ - 'description' => 'PolarDB MySQL版实例的并行度。', - 'type' => 'string', - 'example' => '2', - ], - 'PhysicRead' => [ - 'description' => '物理读。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'CpuTime' => [ - 'description' => 'CPU执行时间,单位为微秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100'."\n", - ], - 'Writes' => [ - 'description' => 'RDS SQL Server引擎的写入数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'Collection' => [ - 'description' => '预留参数', - 'type' => 'string', - 'example' => 'None', - ], - 'SqlCommand' => [ - 'title' => '查询中的SQL命令', - 'description' => '查询中的SQL命令', - 'type' => 'integer', - 'format' => 'int64', - 'example' => 'sql', - ], - 'ConnectionId' => [ - 'title' => '查询中使用的连接ID', - 'description' => '查询中使用的连接ID', - 'type' => 'string', - 'example' => 'ld-******', - ], - 'Protected' => [ - 'title' => '查询项是否受保护', - 'description' => '查询项是否受保护', - 'type' => 'string', - 'example' => 'MySQL', - ], - 'Params' => [ - 'title' => '查询参数列表', - 'description' => '查询参数列表', - 'type' => 'string', - 'example' => '[1, "das"]', - ], - 'ClientIp' => [ - 'title' => '查询中的客户端IP地址', - 'description' => '查询中的客户端IP地址', - 'type' => 'string', - 'example' => '10.0.0.1xx', - ], - 'ClientPort' => [ - 'title' => '查询中客户端端口号', - 'description' => '查询中客户端端口号', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '3306', - ], - 'RowKey' => [ - 'title' => '查询中的行键', - 'description' => '查询中的行键', - 'type' => 'string', - 'example' => '23', - ], - 'AffectColumns' => [ - 'title' => '影响的列', - 'description' => '影响的列', - 'type' => 'string', - 'example' => '["col1"]', - ], - 'TableName' => [ - 'title' => '查询中使用的表名', - 'description' => '查询中使用的表名', - 'type' => 'string', - 'example' => 'das', - ], + 'name' => ['title' => '告警联系人组姓名。', 'description' => '告警联系组名称。', 'type' => 'string', 'example' => '张先生'], + 'description' => ['title' => '告警联系人组描述。', 'description' => '告警联系组描述。', 'type' => 'string', 'example' => 'Default contact'], + 'contacts' => ['title' => '告警联系人组内成员。', 'description' => '告警联系组成员列表。', 'type' => 'string', 'example' => '"[\\"Mr. Zhang\\",\\"Mr. Wang\\",\\"Mr. Li\\"]"'], + 'userId' => ['title' => '用户ID。', 'description' => '用户ID。', 'type' => 'string', 'example' => '1088760496****'], ], + 'description' => '', ], ], - 'Export' => [ - 'title' => '导出地址', - 'description' => '导出任务的下载地址。当TaskType == Export 时才会返回该值。', - 'type' => 'string', - 'example' => '"https://das-sqllog-download-cn-hongkong.oss-cn-hongkong.aliyuncs.com/****"', + 'eventSendGroup' => [ + 'title' => '对应事件订阅的场景。', + 'description' => '支持发送的事件场景列表。', + 'type' => 'array', + 'items' => ['description' => '支持发送的事件场景,当前仅支持**AllContext**,表示支持所有场景。', 'type' => 'string', 'example' => 'AllContext'], ], + 'id' => ['title' => '订阅关系序号。', 'description' => '数据库主键ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'gmtCreate' => ['title' => '创建时间。', 'description' => '开启事件订阅的时间,格式为Unix时间戳,单位为毫秒(ms)。', 'type' => 'integer', 'format' => 'int64', 'example' => '1633071840000'], + 'gmtModified' => ['title' => '最后修改时间。', 'description' => '最后修改事件订阅设置的时间,格式为Unix时间戳,单位为毫秒(ms)。', 'type' => 'integer', 'format' => 'int64', 'example' => '1633071850000'], ], ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"Name\\": \\"SQL审计导出1\\\\n\\",\\n \\"TaskId\\": \\"9a4f5c4494dbd6713185d87a97aa53e8\\\\n\\",\\n \\"TaskType\\": \\"Query\\",\\n \\"CreateTime\\": 1681363254423,\\n \\"Status\\": \\"COMPLETED\\",\\n \\"Expire\\": true,\\n \\"Start\\": 1596177993000,\\n \\"End\\": 1608888296000,\\n \\"Filters\\": [\\n {\\n \\"Key\\": \\"keyWords\\\\n\\",\\n \\"Value\\": \\"select\\"\\n }\\n ],\\n \\"Total\\": 1,\\n \\"Queries\\": [\\n {\\n \\"Vip\\": \\"10.146.XX.XX\\",\\n \\"NodeId\\": \\"pi-bp1o58x3ib7e6****\\\\n\\",\\n \\"SqlText\\": \\"SELECT @@session.transaction_read_only\\",\\n \\"SqlType\\": \\"SELECT\\",\\n \\"State\\": \\"0\\",\\n \\"DBName\\": \\"testdb01\\",\\n \\"SqlId\\": \\"a4111670e80596c5bf42cf5154438a91\\",\\n \\"ExecuteTime\\": \\"2023-12-07T02:15:32Z\\",\\n \\"OriginTime\\": 1701886532000,\\n \\"AccountName\\": \\"testname\\\\n\\",\\n \\"HostAddress\\": \\"11.197.XX.XX\\\\n\\",\\n \\"Consume\\": 58,\\n \\"LockTime\\": 0,\\n \\"UpdateRows\\": 0,\\n \\"ScanRows\\": 0,\\n \\"ReturnRows\\": 0,\\n \\"LogicRead\\": 0,\\n \\"PhysicSyncRead\\": 0,\\n \\"PhysicAsyncRead\\": 0,\\n \\"ThreadId\\": 0,\\n \\"TrxId\\": \\"200000\\\\n\\",\\n \\"Ext\\": \\"None\\",\\n \\"Scnt\\": 10,\\n \\"Rows\\": 10,\\n \\"Frows\\": 10,\\n \\"TraceId\\": \\"14c93b7c7bf00000 \\",\\n \\"UseImciEngine\\": \\"true\\\\n\\",\\n \\"ParallelDegree\\": \\"10\\\\n\\",\\n \\"ParallelQueueTime\\": \\"2\\",\\n \\"PhysicRead\\": 0,\\n \\"CpuTime\\": 100,\\n \\"Writes\\": 10,\\n \\"Collection\\": \\"None\\",\\n \\"SqlCommand\\": 0,\\n \\"ConnectionId\\": \\"ld-******\\",\\n \\"Protected\\": \\"MySQL\\",\\n \\"Params\\": \\"[1, \\\\\\"das\\\\\\"]\\",\\n \\"ClientIp\\": \\"10.0.0.1xx\\",\\n \\"ClientPort\\": 3306,\\n \\"RowKey\\": \\"23\\",\\n \\"AffectColumns\\": \\"[\\\\\\"col1\\\\\\"]\\",\\n \\"TableName\\": \\"das\\"\\n }\\n ],\\n \\"Export\\": \\"\\\\\\"https://das-sqllog-download-cn-hongkong.oss-cn-hongkong.aliyuncs.com/****\\\\\\"\\"\\n }\\n}","type":"json"}]', - 'title' => '查询DAS企业版离线任务详情', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"userId\\": \\"1088760496****\\",\\n \\"instanceId\\": \\"rm-2ze8g2am97624****\\",\\n \\"eventContext\\": \\"AllContext\\",\\n \\"lang\\": \\"zh_CN\\",\\n \\"active\\": 1,\\n \\"minInterval\\": \\"60\\",\\n \\"contactName\\": \\"Default contact\\",\\n \\"contactGroupName\\": \\"Default contact group\\",\\n \\"channelType\\": \\"hdm_alarm_sms,dingtalk\\",\\n \\"level\\": \\"Optimization\\",\\n \\"contacts\\": [\\n {\\n \\"name\\": \\"Mr. Zhang\\",\\n \\"phone\\": \\"1390000****\\",\\n \\"email\\": \\"a***@example.net\\",\\n \\"dingtalkHook\\": \\"https://oapi.dingtalk.com/robot/send?access_token=68fa29a9eaf3ba9994f54fxxxc1aa9879700308f90e9c23ebfb3663642c9****\\",\\n \\"groups\\": [\\n \\"张先生\\"\\n ],\\n \\"isCmsReduplicated\\": true,\\n \\"userId\\": \\"1088760496****\\"\\n }\\n ],\\n \\"contactGroups\\": [\\n {\\n \\"name\\": \\"张先生\\",\\n \\"description\\": \\"Default contact\\",\\n \\"contacts\\": \\"\\\\\\"[\\\\\\\\\\\\\\"Mr. Zhang\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Mr. Wang\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Mr. Li\\\\\\\\\\\\\\"]\\\\\\"\\",\\n \\"userId\\": \\"1088760496****\\"\\n }\\n ],\\n \\"eventSendGroup\\": [\\n \\"AllContext\\"\\n ],\\n \\"id\\": 1,\\n \\"gmtCreate\\": 1633071840000,\\n \\"gmtModified\\": 1633071850000\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetEventSubscriptionResponse>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Message>Successful</Message>\\n <Data>\\n <userId>1088760496****</userId>\\n <instanceId>rm-2ze8g2am97624****</instanceId>\\n <eventContext>AllContext</eventContext>\\n <lang>zh_CN</lang>\\n <active>1</active>\\n <minInterval>60</minInterval>\\n <contactName>默认联系人</contactName>\\n <contactGroupName>默认联系组</contactGroupName>\\n <channelType>hdm_alarm_sms,dingtalk</channelType>\\n <level>Optimization</level>\\n <contacts>\\n <name>张先生</name>\\n <phone>1390000****</phone>\\n <email>a***@example.net</email>\\n <dingtalkHook>https://oapi.dingtalk.com/robot/send?access_token=68fa29a9eaf3ba9994f54fxxxc1aa9879700308f90e9c23ebfb3663642c9****</dingtalkHook>\\n <groups>张先生</groups>\\n <isCmsReduplicated>true</isCmsReduplicated>\\n <userId>1088760496****</userId>\\n </contacts>\\n <contactGroups>\\n <name>张先生</name>\\n <description>默认联系人</description>\\n <contacts>\\"[\\\\\\"张先生\\\\\\",\\\\\\"王女士\\\\\\",\\\\\\"李先生\\\\\\"]\\"</contacts>\\n <userId>1088760496****</userId>\\n </contactGroups>\\n <eventSendGroup>AllContext</eventSendGroup>\\n <id>1</id>\\n <gmtCreate>1633071840000</gmtCreate>\\n <gmtModified>1633071850000</gmtModified>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetEventSubscriptionResponse>","errorExample":""}]', + 'title' => '获取事件订阅设置', 'description' => '使用该接口需满足以下前提条件:'."\n" ."\n" .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - 'responseParamsDescription' => '**Key**支持的参数和取值:'."\n" - ."\n" - .'- **KeyWords**:关键字,多个关键字间使用空格隔开。'."\n" - .'- **LogicalOperator**:关键字间的逻辑操作,取值为and或or。'."\n" - .'- **AccountName**:用户名,可以传递多个的,用逗号分开,上限为5。'."\n" - .'- **dbName**:数据库名称,可以传递多个的,用逗号分开,上限为5。'."\n" - .'- **HostAddress**:客户端IP地址,可以传递多个的,用逗号分开,上限为5。'."\n" - .'- **MaxConsume**:最大耗时,单位us。'."\n" - .'- **MinConsume**:最小耗时,单位us。'."\n" - .'- **MaxScanRows**:最大扫描行。'."\n" - .'- **MinScanRows**:最小扫描行。'."\n" - .'- **SqlType**:SQL类型,取值select、update、insert或delete。'."\n" - .'- **State**:执行结果,取值0(成功)或1(失败)。'."\n" - .'- **ThreadId**:线程ID。'."\n" - .'- **SortKey**:排序列名称,取值ScanRows(扫描行数)、UpdateRows(更新行数)、Consume(耗时)、ExecuteTime(执行时间)、ReturnRows(返回行数)、LockTime(锁等待时间)、Frows(PolarDB-X 2.0计算节点的拉取行数)、Scnt(PolarDB-X 2.0计算节点的DN请求数)、CpuTime(CPU执行时间)、PhysicalRead(物理读)。'."\n" - .'- **SortMethod**:排序方式,取值DESC(降序)、ASC(升序)。默认为DESC。'."\n" - .'- **TraceId**:PolarDB-X 2.0实例的跟踪ID。'."\n" - .'- **MinRows**:最小更新行数。'."\n" - .'- **MaxRows**:最大更新行数。'."\n" - .'- **MinScnt**:PolarDB-X 2.0计算节点(CN)的DN最小请求数。'."\n" - .'- **MaxScnt**:PolarDB-X 2.0计算节点(CN)的DN最大请求数。'."\n" - .'- **TrxId**:事务ID。'."\n" - .'- **Fail**:错误码。'."\n" - .'- **SqlId**:SQL ID。', - ], - 'DescribeSqlLogTasks' => [ - 'summary' => '查询实例的审计日志任务列表。', - 'methods' => [ - 'post', + .'- 使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 数据库实例已接入DAS。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetEventSubscription'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetEventSubscription', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetFullRequestOriginStatByInstanceId' => [ + 'methods' => ['post'], + 'schemes' => ['https', 'http'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '199696', - 'abilityTreeNodes' => [ - 'FEATUREhdmFT57I0', - ], - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => ['description' => '用户ID,即创建数据库实例的阿里云主账号ID。'."\n" + ."\n" + .'> 非必填,输入目标数据库实例ID后,在调用API接口时,系统会自动获取用户ID。', 'type' => 'string', 'required' => false, 'example' => '196278346919****'], + ], + [ 'name' => 'InstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'r-bp1nti25tc7bq5****', - ], + 'in' => 'query', + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'], ], [ 'name' => 'NodeId', - 'in' => 'formData', - 'schema' => [ - 'description' => '节点ID。'."\n" - .'>该参数仅适用于集群版实例,可以选择查询指定节点离线任务。若不传该参数,默认返回主节点离线任务。', - 'type' => 'string', - 'required' => false, - 'example' => 'pi-bp1o58x3ib7e6****', - ], + 'in' => 'query', + 'schema' => ['description' => '节点ID。'."\n" + ."\n" + .'> 对于PolarDB MySQL版实例,需要提供节点ID。', 'type' => 'string', 'required' => false, 'example' => 'pi-bp12v7243x012****'], ], [ - 'name' => 'Filters', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '查询筛选条件列表。', - 'type' => 'array', - 'items' => [ - 'description' => '查询筛选条件。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => '过滤参数', - 'description' => '过滤参数。'."\n" - ."\n" - .'> 支持的过滤参数及其取值请参考**请求参数补充说明**。', - 'type' => 'string', - 'required' => false, - 'example' => 'keyWords', - ], - 'Value' => [ - 'description' => '过滤参数的值。', - 'type' => 'string', - 'required' => false, - 'example' => 'select'."\n", - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 100, - ], + 'name' => 'Start', + 'in' => 'query', + 'schema' => ['description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。'."\n" + ."\n" + .'> 查询开始时间需在数据库实例SQL洞察存储时长范围内,最大不能早于当前时间90天。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1644716649000'], ], [ - 'name' => 'StartTime', - 'in' => 'formData', - 'schema' => [ - 'description' => '查询开始时间,格式为unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1596177993000', - ], + 'name' => 'End', + 'in' => 'query', + 'schema' => ['description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。'."\n" + .' '."\n" + .'> 查询结束时间需晚于查询开始时间,且查询开始时间和查询结束时间的间隔不能超过1天。'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1644803409000'], ], [ - 'name' => 'EndTime', - 'in' => 'formData', - 'schema' => [ - 'description' => '查询结束时间,格式为unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1608888296000', - ], + 'name' => 'OrderBy', + 'in' => 'query', + 'schema' => ['description' => '排序字段,默认为**count**。'."\n" + ."\n" + .'- **count**:执行次数。'."\n" + ."\n" + .'- **avgRt**:平均执行时间。'."\n" + ."\n" + .'- **rtRate**:耗时比例。'."\n" + ."\n" + .'- **rowsExamined**:总扫描行数。'."\n" + ."\n" + .'- **avgRowsExamined**:平均扫描行数。'."\n" + ."\n" + .'- **avgRowsReturned**:平均返回行数。', 'type' => 'string', 'required' => false, 'example' => 'count'], + ], + [ + 'name' => 'Asc', + 'in' => 'query', + 'schema' => ['description' => '升序排序开关,默认关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'False'], ], [ 'name' => 'PageNo', - 'in' => 'formData', - 'schema' => [ - 'description' => '分页查询的页码,从1开始,默认为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'in' => 'query', + 'schema' => ['description' => '分页查询的页码,从1开始,默认为1。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], [ 'name' => 'PageSize', - 'in' => 'formData', - 'schema' => [ - 'description' => '每页最大记录数,最大支持100,默认值为10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'in' => 'query', + 'schema' => ['description' => '分页查询每页最大记录数,默认为20。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '20'], + ], + [ + 'name' => 'SqlType', + 'in' => 'query', + 'schema' => ['description' => 'SQL语句的类型,取值包括:**SELECT**、**INSERT**、**UPDATE**、**DELETE**、**MERGE**、**ALTER**、**CREATEINDEX**、**DROPINDEX**、**CREATE**、**DROP**、**SET**、**DESC**、**REPLACE**、**CALL**、**BEGIN**、**DESCRIBE**、**ROLLBACK**、**FLUSH**、**USE**、**SHOW**、**START**、**COMMIT**和**RENAME**。'."\n" + ."\n" + .'> 当数据库实例为RDS MySQL、PolarDB MySQL版、PolarDB-X 2.0时,可以通过SQL语句类型进行统计。', 'type' => 'string', 'required' => false, 'example' => 'SELECT'], + ], + [ + 'name' => 'Role', + 'in' => 'query', + 'schema' => ['description' => 'PolarDB-X 2.0数据库实例节点(角色)信息。'."\n" + ."\n" + .'- **polarx_cn**:计算节点。'."\n" + ."\n" + .'- **polarx_en**:数据节点。'."\n", 'type' => 'string', 'required' => false, 'example' => 'polarx_cn'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '返回信息的详细列表。', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '7172BECE-588A-5961-8126-C216E16B****'], 'Data' => [ - 'title' => 'ListResult<SqlLogTask>', 'description' => '返回数据。', 'type' => 'object', 'properties' => [ 'List' => [ - 'description' => '返回信息列表。', + 'description' => '全量请求数据列表。', 'type' => 'array', 'items' => [ - 'description' => '返回信息列表。', + 'description' => '全量请求数据列表。', 'type' => 'object', 'properties' => [ - 'TaskId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => '9a4f5c4494dbd6713185d87a97aa53e8', - ], - 'InstanceId' => [ - 'title' => '实例标识', - 'description' => '数据库实例ID。', - 'type' => 'string', - 'example' => 'r-bp1nti25tc7bq5****'."\n", - ], - 'Name' => [ - 'title' => '任务别名', - 'description' => '任务名称。', - 'type' => 'string', - 'example' => 'SQL审计导出1', - ], - 'Start' => [ - 'title' => '查询开始时间', - 'description' => '任务开始时间,格式为unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1683859555482', - ], - 'End' => [ - 'title' => '查询结束时间', - 'description' => '任务结束时间,格式为unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1705975320000', - ], - 'Status' => [ - 'title' => '任务状态', - 'description' => '任务状态。'."\n" - ."\n" - .'- **INIT**:待调度 。'."\n" - .'- **RUNNING**:运行中。'."\n" - .'- **FAILED**:失败。'."\n" - .'- **CANCELED**:已取消。'."\n" - .'- **COMPLETED**:完成。'."\n" - ."\n" - .'> 当任务处于**COMPLETED**时,可以查看离线任务的结果。', - 'type' => 'string', - 'example' => 'RUNNING', - ], - 'LogCount' => [ - 'title' => '日志总数', - 'description' => '日志总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '99999', - ], - 'Progress' => [ - 'title' => '任务进度', - 'description' => '任务进度。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'ScanFileSize' => [ - 'title' => '扫描的文件量', - 'description' => '扫描的文件数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '3000', - ], - 'Expire' => [ - 'title' => '任务是否过期', - 'description' => '任务是否过期。'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'CreateTime' => [ - 'title' => '任务创建时间', - 'description' => '任务创建时间,格式为unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1681363254423', - ], - 'AnalysisTaskFinishTime' => [ - 'title' => '分析任务完成时间', - 'description' => '分析任务完成时间,格式为unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1712751923000', - ], - 'AnalysisTaskStatus' => [ - 'description' => '分析任务状态。'."\n" - ."\n" - .'> 系统内部参数,用户无需关注。', - 'type' => 'string', - 'example' => 'SCAN_ANALYZE_COMPLETED', - ], - 'Result' => [ - 'title' => 'oss链接或其他信息', - 'description' => '任务类型为**Export**时的链接地址。', - 'type' => 'string', - 'example' => 'https://das-sqllog-download-cn-shanghai.oss-cn-shanghai.aliyuncs.com/la', - ], - 'TaskType' => [ - 'description' => '任务类型。'."\n" - ."\n" - .'- **Export**:导出任务。'."\n" - .'- **Query**:查询任务。', - 'type' => 'string', - 'example' => 'Export', - ], - 'Filters' => [ - 'description' => '查询筛选条件列表。', - 'type' => 'array', - 'items' => [ - 'description' => '查询筛选条件。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '过滤参数。'."\n" - ."\n" - .'> 支持的过滤参数及其取值请参考**请求参数补充说明**。', - 'type' => 'string', - 'example' => 'keyWords'."\n", - ], - 'Value' => [ - 'description' => '过滤参数的值。', - 'type' => 'string', - 'example' => 'select'."\n", - ], - ], - ], - ], - 'InnerResult' => [ - 'type' => 'string', - ], + 'Key' => ['description' => '执行SQL的客户端IP地址。', 'type' => 'string', 'example' => '172.26.6****'], + 'AvgFetchRows' => ['description' => 'PolarDB-X 2.0数据库实例计算节点平均拉取数据节点的行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'AvgLockWaitTime' => ['description' => '平均锁等待时长,单位为秒。', 'type' => 'number', 'format' => 'double', 'example' => '0.00009589874265269765'], + 'AvgLogicalRead' => ['description' => '平均逻辑读。', 'type' => 'number', 'format' => 'double', 'example' => '654.4470327860251'], + 'AvgPhysicalAsyncRead' => ['description' => '平均物理异步读取。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'AvgPhysicalSyncRead' => ['description' => '平均物理同步读取。', 'type' => 'number', 'format' => 'double', 'example' => '0'], + 'AvgRows' => ['description' => '平均行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'AvgExaminedRows' => ['description' => '平均扫描行数。'."\n" + ."\n" + .'> 目前支持该字段的数据库:RDS MySQL、RDS PostgreSQL、PolarDB MySQL版。', 'type' => 'number', 'format' => 'double', 'example' => '10000'], + 'AvgReturnedRows' => ['description' => '平均返回行数。', 'type' => 'number', 'format' => 'double', 'example' => '10000'], + 'AvgUpdatedRows' => ['description' => '平均修改行数。'."\n" + ."\n" + .'> 目前支持该字段的数据库:RDS MySQL、PolarDB-X 2.0。', 'type' => 'number', 'format' => 'double', 'example' => '10000'], + 'AvgRt' => ['description' => '平均执行耗时。', 'type' => 'number', 'format' => 'double', 'example' => '2.499'], + 'AvgSqlCount' => ['description' => '平均SQL数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '10000'], + 'Count' => ['description' => '总执行次数。', 'type' => 'integer', 'format' => 'int64', 'example' => '100000'], + 'CountRate' => ['description' => '执行次数比例。', 'type' => 'number', 'format' => 'double', 'example' => '0.0586'], + 'Database' => ['description' => '数据库名。', 'type' => 'string', 'example' => 'dbtest01'], + 'ErrorCount' => ['description' => '执行错误次数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'FetchRows' => ['description' => 'PolarDB-X 2.0数据库实例计算节点拉取数据节点的行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Ip' => ['description' => '实例的网络地址。', 'type' => 'string', 'example' => 'rm-uf6dyi58dm6****.mysql.rds.aliy****.com'], + 'LockWaitTime' => ['description' => '锁等待时长,单位为秒。', 'type' => 'number', 'format' => 'double', 'example' => '1089.4177720290281'], + 'LogicalRead' => ['description' => '逻辑读。', 'type' => 'integer', 'format' => 'int64', 'example' => '7.434573266E9'], + 'OriginHost' => ['description' => '执行SQL的客户端IP地址。', 'type' => 'string', 'example' => '172.26.6****'], + 'PhysicalAsyncRead' => ['description' => '物理异步读取。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'PhysicalSyncRead' => ['description' => '物理同步读取。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'Port' => ['description' => '端口号。', 'type' => 'integer', 'format' => 'int64', 'example' => '3306'], + 'Rows' => ['description' => 'PolarDB-X 2.0数据库实例计算节点总更新或返回的行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'ExaminedRows' => ['description' => '总扫描行数。'."\n" + ."\n" + .'> 目前支持该字段的数据库:RDS MySQL、RDS PostgreSQL、PolarDB MySQL版。', 'type' => 'integer', 'format' => 'int64', 'example' => '10000'], + 'RtGreaterThanOneSecondCount' => ['description' => '执行时长大于1秒的SQL数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'RtRate' => ['description' => '耗时比例。', 'type' => 'number', 'format' => 'double', 'example' => '0.1384'], + 'SqlCount' => ['description' => 'SQL的数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'SumUpdatedRows' => ['description' => '总变更行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Version' => ['description' => '版本。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'VpcId' => ['description' => 'VPC ID。', 'type' => 'string', 'example' => 'vpc-2zentqj1sk4qmolci****'], ], ], ], - 'Total' => [ - 'description' => '任务数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '40', - ], - 'PageNo' => [ - 'description' => '页码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '每页数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], + 'Total' => ['description' => '总数据量。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], ], ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"List\\": [\\n {\\n \\"TaskId\\": \\"9a4f5c4494dbd6713185d87a97aa53e8\\",\\n \\"InstanceId\\": \\"r-bp1nti25tc7bq5****\\\\n\\",\\n \\"Name\\": \\"SQL审计导出1\\",\\n \\"Start\\": 1683859555482,\\n \\"End\\": 1705975320000,\\n \\"Status\\": \\"RUNNING\\",\\n \\"LogCount\\": 99999,\\n \\"Progress\\": 100,\\n \\"ScanFileSize\\": 3000,\\n \\"Expire\\": false,\\n \\"CreateTime\\": 1681363254423,\\n \\"AnalysisTaskFinishTime\\": 1712751923000,\\n \\"AnalysisTaskStatus\\": \\"SCAN_ANALYZE_COMPLETED\\",\\n \\"Result\\": \\"https://das-sqllog-download-cn-shanghai.oss-cn-shanghai.aliyuncs.com/la\\",\\n \\"TaskType\\": \\"Export\\",\\n \\"Filters\\": [\\n {\\n \\"Key\\": \\"keyWords\\\\n\\",\\n \\"Value\\": \\"select\\\\n\\"\\n }\\n ],\\n \\"InnerResult\\": \\"\\"\\n }\\n ],\\n \\"Total\\": 40,\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10\\n }\\n}","type":"json"}]', - 'title' => '查询DAS企业版离线任务列表', - 'description' => '使用该接口需满足以下前提条件:'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"7172BECE-588A-5961-8126-C216E16B****\\",\\n \\"Data\\": {\\n \\"List\\": [\\n {\\n \\"Key\\": \\"172.26.6****\\",\\n \\"AvgFetchRows\\": 0,\\n \\"AvgLockWaitTime\\": 0.00009589874265269765,\\n \\"AvgLogicalRead\\": 654.4470327860251,\\n \\"AvgPhysicalAsyncRead\\": 0,\\n \\"AvgPhysicalSyncRead\\": 0,\\n \\"AvgRows\\": 0,\\n \\"AvgExaminedRows\\": 10000,\\n \\"AvgReturnedRows\\": 10000,\\n \\"AvgUpdatedRows\\": 10000,\\n \\"AvgRt\\": 2.499,\\n \\"AvgSqlCount\\": 10000,\\n \\"Count\\": 100000,\\n \\"CountRate\\": 0.0586,\\n \\"Database\\": \\"dbtest01\\",\\n \\"ErrorCount\\": 1,\\n \\"FetchRows\\": 200,\\n \\"Ip\\": \\"rm-uf6dyi58dm6****.mysql.rds.aliy****.com\\",\\n \\"LockWaitTime\\": 1089.4177720290281,\\n \\"LogicalRead\\": 7434573266,\\n \\"OriginHost\\": \\"172.26.6****\\",\\n \\"PhysicalAsyncRead\\": 0,\\n \\"PhysicalSyncRead\\": 0,\\n \\"Port\\": 3306,\\n \\"Rows\\": 0,\\n \\"ExaminedRows\\": 10000,\\n \\"RtGreaterThanOneSecondCount\\": 2,\\n \\"RtRate\\": 0.1384,\\n \\"SqlCount\\": 200,\\n \\"SumUpdatedRows\\": 200,\\n \\"Version\\": 1,\\n \\"VpcId\\": \\"vpc-2zentqj1sk4qmolci****\\"\\n }\\n ],\\n \\"Total\\": 1\\n },\\n \\"Code\\": 200,\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetFullRequestOriginStatByInstanceIdResponse>\\n <Message>Successful</Message>\\n <RequestId>7172BECE-588A-5961-8126-C216E16B****</RequestId>\\n <Data>\\n <List>\\n <Key>172.26.6****</Key>\\n <AvgFetchRows>0</AvgFetchRows>\\n <AvgLockWaitTime>0.00009589874265269765</AvgLockWaitTime>\\n <AvgLogicalRead>654.4470327860251</AvgLogicalRead>\\n <AvgPhysicalAsyncRead>0</AvgPhysicalAsyncRead>\\n <AvgPhysicalSyncRead>0</AvgPhysicalSyncRead>\\n <AvgRows>0</AvgRows>\\n <AvgExaminedRows>10000</AvgExaminedRows>\\n <AvgReturnedRows>10000</AvgReturnedRows>\\n <AvgUpdatedRows>10000</AvgUpdatedRows>\\n <AvgRt>2.499</AvgRt>\\n <AvgSqlCount>10000</AvgSqlCount>\\n <Count>100000</Count>\\n <CountRate>0.0586</CountRate>\\n <Database>dbtest01</Database>\\n <ErrorCount>1</ErrorCount>\\n <FetchRows>200</FetchRows>\\n <Ip>rm-uf6dyi58dm6****.mysql.rds.aliy****.com</Ip>\\n <LockWaitTime>1089.4177720290281</LockWaitTime>\\n <OriginHost>172.26.6****</OriginHost>\\n <PhysicalAsyncRead>0</PhysicalAsyncRead>\\n <PhysicalSyncRead>0</PhysicalSyncRead>\\n <Port>3306</Port>\\n <Rows>0</Rows>\\n <ExaminedRows>10000</ExaminedRows>\\n <RtGreaterThanOneSecondCount>2</RtGreaterThanOneSecondCount>\\n <RtRate>0.1384</RtRate>\\n <SqlCount>200</SqlCount>\\n <SumUpdatedRows>200</SumUpdatedRows>\\n <Version>1</Version>\\n <VpcId>vpc-2zentqj1sk4qmolci****</VpcId>\\n </List>\\n <Total>1</Total>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetFullRequestOriginStatByInstanceIdResponse>","errorExample":""}]', + 'title' => '按照访问来源统计全量请求数据', + 'summary' => '调用GetFullRequestOriginStatByInstanceId接口,按照访问来源统计数据库实例SQL洞察结果中的全量请求数据。', + 'description' => 'SQL洞察功能可对SQL进行健康情况诊断、性能问题排查,详情请参见[SQL洞察](~~204096~~)。'."\n" ."\n" - .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 目前支持的数据库实例请参见[DAS企业版使用说明](~~190912~~)。'."\n" .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - 'requestParamsDescription' => '**Key**支持的参数和取值:'."\n" - ."\n" - .'- **taskId**:任务ID。'."\n" - .'- **keyWords**:任务名。'."\n" - .'- **status**:状态筛选,取值INIT(待调度)、RUNNING(运行中)、FAILED(失败)、CANCELED(已取消)、COMPLETED(完成)。', - ], - 'GetRedisAllSession' => [ - 'summary' => '调用GetRedisAllSession接口,获取Redis实例当前会话数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetFullRequestOriginStatByInstanceId'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetFullRequestOriginStatByInstanceId', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetFullRequestSampleByInstanceId' => [ + 'summary' => '调用GetFullRequestSampleByInstanceId接口,按照SQL ID查询数据库实例SQL洞察结果中的SQL样本数据,最大返回20条样本数据。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -13037,298 +11388,522 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '154787', - 'abilityTreeNodes' => [ - 'FEATUREhdmMEY212', - ], + 'abilityTreeNodes' => ['FEATUREhdmFT57I0'], ], 'parameters' => [ [ - 'name' => 'ConsoleContext', + 'name' => 'UserId', + 'in' => 'formData', + 'schema' => ['description' => '用户ID,即创建数据库实例的阿里云主账号ID。'."\n" + ."\n" + .'> 非必填,输入目标数据库实例ID后,在调用API接口时,系统会自动获取用户ID。', 'type' => 'string', 'required' => false, 'example' => '196278346919****'], + ], + [ + 'name' => 'InstanceId', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。'."\n" + ."\n", 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'], + ], + [ + 'name' => 'SqlId', + 'in' => 'formData', + 'schema' => ['description' => 'SQL ID。', 'type' => 'string', 'required' => true, 'example' => '651b56fe9418d48edb8fdf0980ec****'], + ], + [ + 'name' => 'Start', + 'in' => 'formData', + 'schema' => ['description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。'."\n" + ."\n" + .'> 查询开始时间需要在数据库实例SQL洞察存储时长范围内,最大不能早于当前时间90天。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1660097421000'], + ], + [ + 'name' => 'End', + 'in' => 'formData', + 'schema' => ['description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。'."\n" + ."\n" + .'> 查询结束时间需晚于查询开始时间,且查询开始时间和查询结束时间的间隔不能小于1小时。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1660104621000'], + ], + [ + 'name' => 'Role', 'in' => 'query', + 'schema' => ['description' => 'PolarDB-X 2.0数据库实例节点信息。'."\n" + ."\n" + .'- **polarx_cn**:计算节点。'."\n" + .'- **polarx_en**:数据节点。', 'type' => 'string', 'required' => false, 'example' => 'polarx_cn'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', + 'type' => 'object', + 'properties' => [ + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。'."\n" + ."\n", 'type' => 'string', 'example' => '0A74B755-98B7-59DB-8724-1321B394****'], + 'Data' => [ + 'description' => '返回数据', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Timestamp' => ['description' => '执行SQL的时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1660100753556'], + 'SqlId' => ['description' => 'SQL ID。', 'type' => 'string', 'example' => '651b56fe9418d48edb8fdf0980ec****'], + 'Sql' => ['description' => 'SQL样本。', 'type' => 'string', 'example' => 'select * from testdb01 where ****'], + 'Database' => ['description' => '数据库名。', 'type' => 'string', 'example' => 'dbtest'], + 'Rt' => ['description' => '执行耗时,单位为秒。', 'type' => 'number', 'format' => 'double', 'example' => '0.409789'], + 'User' => ['description' => '执行SQL的用户名称。', 'type' => 'string', 'example' => 'testuser'], + 'LockWaitTime' => ['description' => '锁等待时长,单位为秒。', 'type' => 'number', 'format' => 'double', 'example' => '0.0137'], + 'LogicalRead' => ['description' => '逻辑读。', 'type' => 'number', 'format' => 'double', 'example' => '165848'], + 'PhysicalSyncRead' => ['description' => '物理同步读取。', 'type' => 'number', 'format' => 'double', 'example' => '0'], + 'PhysicalAsyncRead' => ['description' => '物理异步读取。', 'type' => 'number', 'format' => 'double', 'example' => '0'], + 'RowsExamined' => ['title' => '扫描行数', 'description' => '总扫描行数。'."\n" + .'> 目前支持该字段的数据库:RDS MySQL、RDS PostgreSQL、PolarDB MySQL版。', 'type' => 'integer', 'format' => 'int64', 'example' => '2048576'], + 'RowsReturned' => ['description' => '返回行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '14'], + 'OriginHost' => ['description' => '访问来源。', 'type' => 'string', 'example' => '172.17.XX.XX'], + 'ScanRows' => ['title' => '扫描行数, RDS MySQL DescribeTemplateSqlDetail', 'description' => '扫描行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'UpdateRows' => ['title' => '更新行数, RDS MySQL DescribeTemplateSqlDetail', 'description' => '更新行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'SqlType' => ['description' => 'SQL语句的类型,取值包括:**SELECT**、**INSERT**、**UPDATE**、**DELETE**、**LOGIN**、**LOGOUT**、**MERGE**、**ALTER**、**CREATEINDEX**、**DROPINDEX**、**CREATE**、**DROP**、**SET**、**DESC**、**REPLACE**、**CALL**、**BEGIN**、**DESCRIBE**、**ROLLBACK**、**FLUSH**、**USE**、**SHOW**、**START**、**COMMIT**和**RENAME**。', 'type' => 'string', 'example' => 'SELECT'], + 'Scnt' => ['title' => 'polarx cn节点,dn请求总数', 'description' => 'PolarDB-X 2.0计算节点(CN)的DN请求数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'Rows' => ['title' => 'polarx cn节点,总更新/返回行数', 'description' => 'PolarDB-X 2.0计算节点(CN)的更新/返回行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'Frows' => ['title' => 'polarx cn节点,拉取行数', 'description' => 'PolarDB-X 2.0计算节点(CN)的拉取行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + ], + 'description' => '', + ], + ], + 'Code' => ['description' => '返回的状态码。'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + ], + 'title' => '按照SQL ID查询SQL样本数据', + 'description' => 'SQL洞察功能可对SQL进行健康情况诊断、性能问题排查,详情请参见[SQL洞察](~~204096~~)。'."\n" + ."\n" + .'- 支持的数据库引擎请参见[SQL洞察](~~204096~~)。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetFullRequestSampleByInstanceId'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetFullRequestSampleByInstanceId', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"0A74B755-98B7-59DB-8724-1321B394****\\",\\n \\"Data\\": [\\n {\\n \\"Timestamp\\": 1660100753556,\\n \\"SqlId\\": \\"651b56fe9418d48edb8fdf0980ec****\\",\\n \\"Sql\\": \\"select * from testdb01 where ****\\",\\n \\"Database\\": \\"dbtest\\",\\n \\"Rt\\": 0.409789,\\n \\"User\\": \\"testuser\\",\\n \\"LockWaitTime\\": 0.0137,\\n \\"LogicalRead\\": 165848,\\n \\"PhysicalSyncRead\\": 0,\\n \\"PhysicalAsyncRead\\": 0,\\n \\"RowsExamined\\": 2048576,\\n \\"RowsReturned\\": 14,\\n \\"OriginHost\\": \\"172.17.XX.XX\\",\\n \\"ScanRows\\": 0,\\n \\"UpdateRows\\": 0,\\n \\"SqlType\\": \\"SELECT\\",\\n \\"Scnt\\": 0,\\n \\"Rows\\": 0,\\n \\"Frows\\": 0\\n }\\n ],\\n \\"Code\\": 200,\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetFullRequestSampleByInstanceIdResponse>\\n <Message>Successful</Message>\\n <RequestId>0A74B755-98B7-59DB-8724-1321B394****</RequestId>\\n <Data>\\n <Timestamp>1660100753556</Timestamp>\\n <SqlId>651b56fe9418d48edb8fdf0980ec****</SqlId>\\n <Sql>select * from testdb01 where ****</Sql>\\n <Database>dbtest</Database>\\n <Rt>0.409789</Rt>\\n <User>testuser</User>\\n <LockWaitTime>0.0137</LockWaitTime>\\n <LogicalRead>165848</LogicalRead>\\n <PhysicalSyncRead>0</PhysicalSyncRead>\\n <PhysicalAsyncRead>0</PhysicalAsyncRead>\\n <RowsExamined>2048576</RowsExamined>\\n <RowsReturned>14</RowsReturned>\\n <OriginHost>172.17.XX.XX</OriginHost>\\n <ScanRows>0</ScanRows>\\n <UpdateRows>0</UpdateRows>\\n <SqlType>SELECT</SqlType>\\n <Scnt>0</Scnt>\\n <Rows>0</Rows>\\n <Frows>0</Frows>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetFullRequestSampleByInstanceIdResponse>","errorExample":""}]', + ], + 'GetFullRequestStatResultByInstanceId' => [ + 'methods' => ['post'], + 'schemes' => ['https', 'http'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => ['description' => '用户ID,即创建数据库实例的阿里云主账号ID。'."\n" + ."\n" + .'> 非必填,输入目标数据库实例ID后,在调用API接口时,系统会自动获取用户ID。', 'type' => 'string', 'required' => false, 'example' => '196278346919****'], + ], [ 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '数据库实例ID。'."\n" - ."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'r-2zemyfd1sh1u2i****', - ], + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'], + ], + [ + 'name' => 'NodeId', + 'in' => 'query', + 'schema' => ['description' => '节点ID。'."\n" + ."\n" + .'> 对于PolarDB MySQL版实例,需要提供节点ID。', 'type' => 'string', 'required' => false, 'example' => 'pi-bp12v7243x012****'], + ], + [ + 'name' => 'SqlId', + 'in' => 'query', + 'schema' => ['description' => 'SQL ID。'."\n" + ."\n" + .'> 填写SQL ID时,统计目标SQL ID的全量请求数据;为空时,统计整个数据库实例的全量请求数据。', 'type' => 'string', 'required' => false, 'example' => 'd71f82be1eef72bd105128204d2e****'], + ], + [ + 'name' => 'OriginHost', + 'in' => 'query', + 'schema' => ['description' => '执行SQL的客户端IP地址。'."\n" + ."\n" + .'> 非必填,输入目标客户端IP地址后,统计目标客户端IP地址的全量请求数据;为空时,统计整个数据库实例的全量请求数据。', 'type' => 'string', 'required' => false, 'example' => '172.26.XX.XXX'], + ], + [ + 'name' => 'Keyword', + 'in' => 'query', + 'schema' => ['description' => '查询关键词。', 'type' => 'string', 'required' => false, 'example' => 'dbtest01'], + ], + [ + 'name' => 'Start', + 'in' => 'query', + 'schema' => ['description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。'."\n" + ."\n" + .'> 查询开始时间需要在数据库实例SQL洞察存储时长范围内,最大不能早于当前时间90天。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1645581813000'], + ], + [ + 'name' => 'End', + 'in' => 'query', + 'schema' => ['description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。'."\n" + ."\n" + .'> 查询结束时间需晚于查询开始时间,且查询开始时间和查询结束时间的间隔不能超过1天。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1645668213000'], + ], + [ + 'name' => 'OrderBy', + 'in' => 'query', + 'schema' => ['description' => '排序字段,默认为**count**。'."\n" + ."\n" + .'- **count**:执行次数。'."\n" + ."\n" + .'- **avgRt**:平均执行时间。'."\n" + ."\n" + .'- **rtRate**:耗时比例。'."\n" + ."\n" + .'- **rowsExamined**:总扫描行数。'."\n" + ."\n" + .'- **avgRowsExamined**:平均扫描行数。'."\n" + ."\n" + .'- **avgRowsReturned**:平均返回行数。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => 'count'], + ], + [ + 'name' => 'Asc', + 'in' => 'query', + 'schema' => ['description' => '升序排序开关,默认关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'False'], + ], + [ + 'name' => 'PageNo', + 'in' => 'query', + 'schema' => ['description' => '分页查询的页码,从1开始,默认为1。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '分页查询每页数据量,默认为20。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '20'], + ], + [ + 'name' => 'SqlType', + 'in' => 'query', + 'schema' => ['description' => 'SQL语句的类型,取值包括:**SELECT**、**INSERT**、**UPDATE**、**DELETE**、**LOGIN**、**LOGOUT**、**MERGE**、**ALTER**、**CREATEINDEX**、**DROPINDEX**、**CREATE**、**DROP**、**SET**、**DESC**、**REPLACE**、**CALL**、**BEGIN**、**DESCRIBE**、**ROLLBACK**、**FLUSH**、**USE**、**SHOW**、**START**、**COMMIT**和**RENAME**。'."\n" + ."\n" + .'> 当数据库实例为RDS MySQL、PolarDB MySQL版、PolarDB-X 2.0时,可以通过SQL语句类型进行统计。', 'type' => 'string', 'required' => false, 'example' => 'SELECT'], + ], + [ + 'name' => 'DbName', + 'in' => 'query', + 'schema' => ['description' => '数据库名。', 'type' => 'string', 'required' => false, 'example' => 'dbtest01'], + ], + [ + 'name' => 'Role', + 'in' => 'query', + 'schema' => ['description' => 'PolarDB-X 2.0数据库实例节点信息。'."\n" + ."\n" + .'- **polarx_cn**:计算节点。'."\n" + ."\n" + .'- **polarx_dn**:数据节点。', 'type' => 'string', 'required' => false, 'example' => 'polarx_cn'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '返回信息的详细列表。', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回的消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '7172BECE-588A-5961-8126-C216E16B****'], 'Data' => [ - 'description' => '会话数据。', + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'Timestamp' => [ - 'description' => '获取数据库会话数据的时间,格式为Unix时间戳,单位为毫秒(ms)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1660100753556', - ], - 'Total' => [ - 'description' => '会话总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'Sessions' => [ - 'description' => '会话信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Sub' => [ - 'description' => '频道订阅数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'Psub' => [ - 'description' => '模式匹配的订阅数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'Idle' => [ - 'description' => '空闲时长,单位为秒(s)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '8', - ], - 'Flags' => [ - 'description' => '客户端标志,取值如下:'."\n" - ."\n" - .'- **A**:尽快关闭连接。'."\n" - .'- **b**:客户端正在等待阻塞事件。'."\n" - .'- **c**:写入全部回复后将关闭连接。'."\n" - .'- **d**:受监视的键已被修改,`EXEC`命令将失败。'."\n" - .'- **i**:客户端正在等待虚拟机I/O操作(已废弃)。'."\n" - .'- **M**:客户端是主节点。'."\n" - .'- **N**:未设置特点标志。'."\n" - .'- **O**:处于监视模式的客户端。'."\n" - .'- **r**:客户端是只读模式的集群节点。'."\n" - .'- **S**:客户端是一般模式下的从节点。'."\n" - .'- **u**:客户端未被阻塞。'."\n" - .'- **U**:通过Unix域套接字连接的客户端。'."\n" - .'- **x**:客户端正在执行事务。'."\n" - ."\n\n" - ."\n\n" - ."\n\n" - ."\n\n", - 'type' => 'string', - 'example' => 'N', - ], - 'Oll' => [ - 'description' => '输出列表包含的对象数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'QbufFree' => [ - 'description' => '输入缓冲区剩余大小,单位为字节(Byte)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'Multi' => [ - 'description' => '`MULTI`/`EXEC`上下文中的命令数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '-1', - ], - 'Omem' => [ - 'description' => '输出缓冲区大小,单位为字节(Byte)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'Qbuf' => [ - 'description' => '输入缓冲区大小,单位为字节(Byte)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'Name' => [ - 'description' => '客户端名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'Obl' => [ - 'description' => '输出固定缓冲区大小,单位为字节(Byte)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'Client' => [ - 'description' => '客户端的地址。', - 'type' => 'string', - 'example' => '172.16.XX.XX', - ], - 'Cmd' => [ - 'description' => '最近一次执行的命令。', - 'type' => 'string', - 'example' => 'PING', - ], - 'Id' => [ - 'description' => '客户端ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '9080586', - ], - 'Addr' => [ - 'description' => '客户端的地址和端口。', - 'type' => 'string', - 'example' => '172.16.XX.XX:53458', - ], - 'NodeId' => [ - 'description' => '节点ID。', - 'type' => 'string', - 'example' => 'r-2zemyfd1sh1u2i****-proxy-14#1679****', - ], - 'Age' => [ - 'description' => '已连接时长,单位为秒(s)。', - 'type' => 'string', - 'example' => '12', - ], - 'Db' => [ - 'description' => '该客户端正在使用的数据库ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'Events' => [ - 'description' => '文件描述符事件,取值为:'."\n" - ."\n" - .'- **r**:客户端套接字在事件Loop中可读。'."\n" - .'- **w**:客户端套接字在事件Loop中可写。', - 'type' => 'string', - 'example' => 'r', - ], - 'Fd' => [ - 'description' => '套接字所使用的文件描述符。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '73', - ], - 'ClientDesc' => [ - 'description' => '客户端别名。', - 'type' => 'string', - 'example' => 'prod ip', + 'Result' => [ + 'description' => '返回的全量请求数据。', + 'type' => 'object', + 'properties' => [ + 'List' => [ + 'description' => '全量请求数据列表。', + 'type' => 'array', + 'items' => [ + 'description' => '全量请求数据列表。', + 'type' => 'object', + 'properties' => [ + 'SqlId' => ['description' => 'SQL ID。', 'type' => 'string', 'example' => 'd71f82be1eef72bd105128204d2e****'], + 'AvgFetchRows' => ['description' => 'PolarDB-X 2.0数据库实例计算节点平均拉取数据节点的行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'AvgLockWaitTime' => ['description' => '平均锁等待时长,单位为秒。', 'type' => 'number', 'format' => 'double', 'example' => '0.00009589874265269765'], + 'AvgLogicalRead' => ['description' => '平均逻辑读。', 'type' => 'number', 'format' => 'double', 'example' => '654.4470327860251'], + 'AvgPhysicalAsyncRead' => ['description' => '平均物理异步读取。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'AvgPhysicalSyncRead' => ['description' => '平均物理同步读取。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'AvgExaminedRows' => ['description' => '平均扫描行数。'."\n" + ."\n" + .'> 目前支持该字段的数据库:RDS MySQL、RDS PostgreSQL、PolarDB MySQL版。', 'type' => 'number', 'format' => 'double', 'example' => '10000'], + 'AvgReturnedRows' => ['description' => '平均返回行数。', 'type' => 'number', 'format' => 'double', 'example' => '10000'], + 'AvgUpdatedRows' => ['description' => '平均修改行数。'."\n" + ."\n" + .'> 目前支持该字段的数据库:RDS MySQL、PolarDB-X 2.0。', 'type' => 'integer', 'format' => 'int64', 'example' => '10000'], + 'AvgRt' => ['description' => '平均执行耗时。', 'type' => 'number', 'format' => 'double', 'example' => '2.499'], + 'AvgSqlCount' => ['description' => '平均SQL计数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10000'], + 'Count' => ['description' => '总执行次数。', 'type' => 'integer', 'format' => 'int64', 'example' => '100000'], + 'CountRate' => ['description' => '执行次数比例。', 'type' => 'number', 'format' => 'double', 'example' => '0.0586'], + 'Database' => ['description' => '数据库名。', 'type' => 'string', 'example' => 'dbtest01'], + 'ErrorCount' => ['description' => '执行错误次数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'FetchRows' => ['description' => 'PolarDB-X 2.0数据库实例计算节点拉取数据节点的行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'Ip' => ['description' => '实例的网络地址。', 'type' => 'string', 'example' => 'rm-uf6dyi58dm6****.mysql.rds.aliy****.com'], + 'LockWaitTime' => ['description' => '锁等待时长,单位为秒。', 'type' => 'number', 'format' => 'double', 'example' => '1089.4177720290281'], + 'LogicalRead' => ['description' => '逻辑读。', 'type' => 'integer', 'format' => 'int64', 'example' => '7.434573266E9'], + 'PhysicalAsyncRead' => ['description' => '物理异步读取。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'PhysicalSyncRead' => ['description' => '物理同步读取。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'Port' => ['description' => '端口号。', 'type' => 'integer', 'format' => 'int64', 'example' => '3306'], + 'Psql' => ['description' => 'SQL模板。', 'type' => 'string', 'example' => 'select * from dbtest01 where ****'], + 'Rows' => ['description' => 'PolarDB-X 2.0数据库实例计算节点总更新或返回的行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'ExaminedRows' => ['description' => '总扫描行数。'."\n" + ."\n" + .'> 目前支持该字段的数据库:RDS MySQL、RDS PostgreSQL、PolarDB MySQL版。', 'type' => 'integer', 'format' => 'int64', 'example' => '10000'], + 'RtGreaterThanOneSecondCount' => ['description' => '执行时长大于1秒的SQL数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '20'], + 'RtRate' => ['description' => '耗时比例。', 'type' => 'number', 'format' => 'double', 'example' => '2.499'], + 'SqlCount' => ['description' => 'SQL的数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'SumUpdatedRows' => ['description' => '总变更行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'Tables' => [ + 'description' => '数据库表名。', + 'type' => 'array', + 'items' => ['description' => '数据库表名。'."\n", 'type' => 'string', 'example' => 'tabletest01,tabletest02'], + ], + 'Version' => ['description' => '版本。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'VpcId' => ['description' => 'VPC ID。', 'type' => 'string', 'example' => 'vpc-2zentqj1sk4qmolci****'], + ], ], ], + 'Total' => ['description' => '总数据量。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], ], ], - 'SourceStats' => [ - 'description' => '访问来源统计数据。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '访问来源。', - 'type' => 'string', - 'example' => '172.16.XX.XX', - ], - 'Count' => [ - 'description' => '该访问来源的会话总数。', - 'type' => 'string', - 'example' => '1', - ], - 'Ids' => [ - 'description' => '客户端ID数据。', - 'type' => 'array', - 'items' => [ - 'description' => '客户端ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '9080586', + 'Fail' => ['description' => '请求是否失败。'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'false'], + 'IsFinish' => ['description' => '异步请求是否执行完成。'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'ResultId' => ['description' => '请求的ID。', 'type' => 'string', 'example' => '9CB97BC4-6479-55D0-B9D0-EA925AFE****'], + 'State' => ['description' => '异步请求的执行状态。'."\n" + ."\n" + .'- **RUNNING**:正在运行。'."\n" + ."\n" + .'- **SUCCESS**:成功。'."\n" + ."\n" + .'- **FAIL**:失败。', 'type' => 'string', 'example' => 'SUCCESS'], + 'Timestamp' => ['description' => '执行时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1645668213000'], + ], + ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"7172BECE-588A-5961-8126-C216E16B****\\",\\n \\"Data\\": {\\n \\"Result\\": {\\n \\"List\\": [\\n {\\n \\"SqlId\\": \\"d71f82be1eef72bd105128204d2e****\\",\\n \\"AvgFetchRows\\": 0,\\n \\"AvgLockWaitTime\\": 0.00009589874265269765,\\n \\"AvgLogicalRead\\": 654.4470327860251,\\n \\"AvgPhysicalAsyncRead\\": 0,\\n \\"AvgPhysicalSyncRead\\": 0,\\n \\"AvgExaminedRows\\": 10000,\\n \\"AvgReturnedRows\\": 10000,\\n \\"AvgUpdatedRows\\": 10000,\\n \\"AvgRt\\": 2.499,\\n \\"AvgSqlCount\\": 10000,\\n \\"Count\\": 100000,\\n \\"CountRate\\": 0.0586,\\n \\"Database\\": \\"dbtest01\\",\\n \\"ErrorCount\\": 1,\\n \\"FetchRows\\": 0,\\n \\"Ip\\": \\"rm-uf6dyi58dm6****.mysql.rds.aliy****.com\\",\\n \\"LockWaitTime\\": 1089.4177720290281,\\n \\"LogicalRead\\": 7434573266,\\n \\"PhysicalAsyncRead\\": 0,\\n \\"PhysicalSyncRead\\": 0,\\n \\"Port\\": 3306,\\n \\"Psql\\": \\"select * from dbtest01 where ****\\",\\n \\"Rows\\": 0,\\n \\"ExaminedRows\\": 10000,\\n \\"RtGreaterThanOneSecondCount\\": 20,\\n \\"RtRate\\": 2.499,\\n \\"SqlCount\\": 200,\\n \\"SumUpdatedRows\\": 100,\\n \\"Tables\\": [\\n \\"tabletest01,tabletest02\\"\\n ],\\n \\"Version\\": 1,\\n \\"VpcId\\": \\"vpc-2zentqj1sk4qmolci****\\"\\n }\\n ],\\n \\"Total\\": 1\\n },\\n \\"Fail\\": false,\\n \\"IsFinish\\": true,\\n \\"ResultId\\": \\"9CB97BC4-6479-55D0-B9D0-EA925AFE****\\",\\n \\"State\\": \\"SUCCESS\\",\\n \\"Timestamp\\": 1645668213000\\n },\\n \\"Code\\": 200,\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetFullRequestStatResultByInstanceIdResponse>\\n <Message>Successful</Message>\\n <RequestId>7172BECE-588A-5961-8126-C216E16B****</RequestId>\\n <Data>\\n <Result>\\n <List>\\n <SqlId>d71f82be1eef72bd105128204d2e****</SqlId>\\n <AvgFetchRows>0</AvgFetchRows>\\n <AvgLockWaitTime>0.00009589874265269765</AvgLockWaitTime>\\n <AvgLogicalRead>654.4470327860251</AvgLogicalRead>\\n <AvgPhysicalAsyncRead>0</AvgPhysicalAsyncRead>\\n <AvgPhysicalSyncRead>0</AvgPhysicalSyncRead>\\n <AvgExaminedRows>10000</AvgExaminedRows>\\n <AvgReturnedRows>10000</AvgReturnedRows>\\n <AvgUpdatedRows>10000</AvgUpdatedRows>\\n <AvgRt>2.499</AvgRt>\\n <AvgSqlCount>10000</AvgSqlCount>\\n <Count>100000</Count>\\n <CountRate>0.0586</CountRate>\\n <Database>dbtest01</Database>\\n <ErrorCount>1</ErrorCount>\\n <FetchRows>0</FetchRows>\\n <Ip>rm-uf6dyi58dm6****.mysql.rds.aliy****.com</Ip>\\n <LockWaitTime>1089.4177720290281</LockWaitTime>\\n <PhysicalAsyncRead>0</PhysicalAsyncRead>\\n <PhysicalSyncRead>0</PhysicalSyncRead>\\n <Port>3306</Port>\\n <Psql>select * from dbtest01 where ****</Psql>\\n <Rows>0</Rows>\\n <ExaminedRows>10000</ExaminedRows>\\n <RtGreaterThanOneSecondCount>20</RtGreaterThanOneSecondCount>\\n <RtRate>2.499</RtRate>\\n <SqlCount>200</SqlCount>\\n <SumUpdatedRows>100</SumUpdatedRows>\\n <Tables>tabletest01,tabletest02</Tables>\\n <Version>1</Version>\\n <VpcId>vpc-2zentqj1sk4qmolci****</VpcId>\\n </List>\\n <Total>1</Total>\\n </Result>\\n <Fail>false</Fail>\\n <IsFinish>true</IsFinish>\\n <ResultId>9CB97BC4-6479-55D0-B9D0-EA925AFE****</ResultId>\\n <State>SUCCESS</State>\\n <Timestamp>1645668213000</Timestamp>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetFullRequestStatResultByInstanceIdResponse>","errorExample":""}]', + 'title' => '按照SQL ID异步统计全量请求数据', + 'summary' => '调用GetFullRequestStatResultByInstanceId接口,按照SQL ID异步统计数据库实例SQL洞察结果中的全量请求数据。', + 'description' => '> 异步调用后不会立即返回完整结果,当返回数据中isFinish取值为**false**时,请等待1s后重新发起调用,直到isFinish取值为**true**时,返回完整结果。'."\n" + ."\n" + .'SQL洞察功能可对SQL进行健康情况诊断、性能问题排查,详情请参见[SQL洞察](~~204096~~)。'."\n" + ."\n" + .'- 目前支持的数据库实例请参见[DAS企业版使用说明](~~190912~~)。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 2024年09月01日起,由于SQL的模板化算法优化,调用本接口时,SqlId 字段的值将发生变更。详情请参见[【通知】SQL模板化算法优化](~~2845725~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetFullRequestStatResultByInstanceId'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetFullRequestStatResultByInstanceId', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + ], + 'GetHDMAliyunResourceSyncResult' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ + [ + 'name' => 'Uid', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false, 'description' => ''], + ], + [ + 'name' => 'accessKey', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false, 'description' => ''], + ], + [ + 'name' => 'signature', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false, 'description' => ''], + ], + [ + 'name' => 'timestamp', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false, 'description' => ''], + ], + [ + 'name' => '__context', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false, 'description' => ''], + ], + [ + 'name' => 'skipAuth', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false, 'default' => 'true', 'description' => ''], + ], + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false, 'description' => ''], + ], + [ + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false, 'description' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Message' => ['type' => 'string', 'description' => ''], + 'RequestId' => ['type' => 'string', 'description' => ''], + 'Synchro' => ['type' => 'string', 'description' => ''], + 'Data' => [ + 'type' => 'object', + 'properties' => [ + 'SyncStatus' => ['type' => 'string', 'description' => ''], + 'ErrorMsg' => ['type' => 'string', 'description' => ''], + 'SubResults' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ResourceSyncSubResult' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'SyncCount' => ['type' => 'integer', 'format' => 'int32', 'description' => ''], + 'ResourceType' => ['type' => 'string', 'description' => ''], + 'Success' => ['type' => 'boolean', 'description' => ''], + 'ErrMsg' => ['type' => 'string', 'description' => ''], ], + 'description' => '', ], + 'description' => '', ], ], + 'description' => '', ], + 'Results' => ['type' => 'string', 'description' => ''], ], + 'description' => '', ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '40C6E9AF-6C23-5614-AA83-34344CC6****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['type' => 'string', 'description' => ''], + 'Success' => ['type' => 'string', 'description' => ''], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Timestamp\\": 1660100753556,\\n \\"Total\\": 2,\\n \\"Sessions\\": [\\n {\\n \\"Sub\\": 0,\\n \\"Psub\\": 0,\\n \\"Idle\\": 8,\\n \\"Flags\\": \\"N\\",\\n \\"Oll\\": 0,\\n \\"QbufFree\\": 0,\\n \\"Multi\\": -1,\\n \\"Omem\\": 0,\\n \\"Qbuf\\": 0,\\n \\"Name\\": \\"test\\",\\n \\"Obl\\": 0,\\n \\"Client\\": \\"172.16.XX.XX\\",\\n \\"Cmd\\": \\"PING\\",\\n \\"Id\\": 9080586,\\n \\"Addr\\": \\"172.16.XX.XX:53458\\",\\n \\"NodeId\\": \\"r-2zemyfd1sh1u2i****-proxy-14#1679****\\",\\n \\"Age\\": \\"12\\",\\n \\"Db\\": 0,\\n \\"Events\\": \\"r\\",\\n \\"Fd\\": 73,\\n \\"ClientDesc\\": \\"prod ip\\"\\n }\\n ],\\n \\"SourceStats\\": [\\n {\\n \\"Key\\": \\"172.16.XX.XX\\",\\n \\"Count\\": \\"1\\",\\n \\"Ids\\": [\\n 9080586\\n ]\\n }\\n ]\\n },\\n \\"RequestId\\": \\"40C6E9AF-6C23-5614-AA83-34344CC6****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetRedisAllSessionResponse>\\n <Message>Successful</Message>\\n <RequestId>40C6E9AF-6C23-5614-AA83-34344CC6****</RequestId>\\n <Data>\\n <SourceStats>\\n <Ids>5</Ids>\\n <Count>1</Count>\\n <Key>11.200.XX.XX</Key>\\n </SourceStats>\\n <SourceStats>\\n <Ids>106909499</Ids>\\n <Count>1</Count>\\n <Key>127.0.XX.XX</Key>\\n </SourceStats>\\n <Total>2</Total>\\n <Sessions>\\n <Sub>0</Sub>\\n <Omem>0</Omem>\\n <Qbuf>0</Qbuf>\\n <Multi>-1</Multi>\\n <Flags>N</Flags>\\n <Oll>0</Oll>\\n <Addr>127.0.XX.XX:44019</Addr>\\n <Name/>\\n <Events>r</Events>\\n <Psub>0</Psub>\\n <Idle>1</Idle>\\n <Obl>0</Obl>\\n <Cmd>config</Cmd>\\n <Id>106909499</Id>\\n <Client>127.0.XX.XX</Client>\\n <Age>6101538</Age>\\n <Db>0</Db>\\n <Fd>6</Fd>\\n </Sessions>\\n <Sessions>\\n <Sub>0</Sub>\\n <Omem>0</Omem>\\n <Qbuf>0</Qbuf>\\n <Multi>-1</Multi>\\n <Flags>S</Flags>\\n <Oll>0</Oll>\\n <Addr>127.0.XX.XX:44019</Addr>\\n <Name/>\\n <Events>r</Events>\\n <Psub>0</Psub>\\n <Idle>1</Idle>\\n <Obl>0</Obl>\\n <Cmd>replconf</Cmd>\\n <Id>5</Id>\\n <Client>11.200.XX.XX</Client>\\n <Age>67387263</Age>\\n <Db>0</Db>\\n <Fd>10</Fd>\\n </Sessions>\\n <Timestamp>1663912392217</Timestamp>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetRedisAllSessionResponse>","errorExample":""}]', - 'title' => '获取Redis实例当前会话', - 'description' => "\n" - .'- 本接口只适用于Redis引擎。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - ."\n" - .'> 对于Redis集群版数据库实例,无法获取使用直连模式产生的会话。', - ], - 'GetMongoDBCurrentOp' => [ - 'summary' => '调用GetMongoDBCurrentOp接口,获取MongoDB实例当前会话。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetHDMAliyunResourceSyncResult'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetHDMAliyunResourceSyncResult', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Synchro\\": \\"\\",\\n \\"Data\\": {\\n \\"SyncStatus\\": \\"\\",\\n \\"ErrorMsg\\": \\"\\",\\n \\"SubResults\\": {\\n \\"ResourceSyncSubResult\\": [\\n {\\n \\"SyncCount\\": 0,\\n \\"ResourceType\\": \\"\\",\\n \\"Success\\": true,\\n \\"ErrMsg\\": \\"\\"\\n }\\n ]\\n },\\n \\"Results\\": \\"\\"\\n },\\n \\"Code\\": \\"\\",\\n \\"Success\\": \\"\\"\\n}","type":"json"}]', + ], + 'GetInstanceGroupInspectReportDetail' => [ + 'path' => '', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -13337,350 +11912,532 @@ 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhdmJC65CS'], + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'InstanceId', + 'name' => 'ReportId', + 'in' => 'formData', + 'schema' => ['title' => '报告ID', 'description' => '运维报告ID', 'type' => 'string', 'required' => true, 'example' => '13f52040-5a6e-42c3-bb84-051f5d6d****'], + ], + [ + 'name' => 'AgentId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'dds-uf6079bda570****', - ], + 'schema' => ['description' => '用户购买的智能体ID。', 'type' => 'string', 'required' => false, 'example' => 'ag-472T0DxtmjIxxxxx'], ], [ - 'name' => 'NodeId', + 'name' => 'ReportType', 'in' => 'query', + 'schema' => ['type' => 'string'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '节点ID。'."\n" - ."\n" - .'> 不提供节点ID时,默认获取Primary节点会话。', - 'type' => 'string', - 'required' => false, - 'example' => '23302531', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回的消息。'."\n" + ."\n" + .'> 请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + .'* true:执行成功'."\n" + .'* false:执行失败'."\n", 'type' => 'string', 'example' => 'true'], + 'Data' => [ + 'title' => 'ReportDetail', + 'description' => 'ReportDetail', + 'type' => 'object', + 'properties' => [ + 'ReportId' => ['description' => '报告ID', 'type' => 'string', 'example' => '13f52040-5a6e-42c3-bb84-051f5d6d****'."\n"], + 'ReportDetail' => ['description' => '运维报告的内容,主要包括报告日期、纳管实例的诊断详情。', 'type' => 'string', 'example' => '"### 概要\\n\\n报告日期:2025-12-10 \\n对比周期:[昨日日期] → 2025-12-10 以下省略"'], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询DAS Agent运维报告明细', + 'summary' => '获取DAS Agent运维报告详情。', + 'description' => '开启DAS Agent的运维报告功能可让系统对目标实例进行定期巡检并给出报告。当前仅支持生成日报。该接口用于查询报告明细。'."\n" + ."\n" + .'使用该接口需满足以下前提条件:'."\n" + ."\n" + .'- 用户开通DAS Agent并且该Agent仍在有效期。'."\n" + .'- 用户在DAS Agent的配置页面,开启日报功能。'."\n" + .'- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于4.3.3,建议使用最新版本。'."\n" + .'- 使用DAS的SDK的版本为1.0.3或以上。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetInstanceGroupInspectReportDetail', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"ReportId\\": \\"13f52040-5a6e-42c3-bb84-051f5d6d****\\\\n\\",\\n \\"ReportDetail\\": \\"\\\\\\"### 概要\\\\\\\\n\\\\\\\\n报告日期:2025-12-10 \\\\\\\\n对比周期:[昨日日期] → 2025-12-10 以下省略\\\\\\"\\"\\n }\\n}","type":"json"}]', + ], + 'GetInstanceGroupInspectReportList' => [ + 'path' => '', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], + 'security' => [ [ - 'name' => 'Role', + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhdmJC65CS'], + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'GroupId', 'in' => 'query', - 'schema' => [ - 'description' => '预留参数,可不传递。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], + 'schema' => ['description' => '保留参数', 'type' => 'string', 'required' => false, 'example' => 'null'], ], [ - 'name' => 'FilterDoc', + 'name' => 'AgentId', 'in' => 'query', + 'schema' => ['description' => '可选,默认使用默认Agent进行服务,或者传入开启DASAgent服务后生成的或者主动创建的Agent', 'type' => 'string', 'required' => false, 'example' => 'ag-472T0DxtmjIxxxxx'], + ], + [ + 'name' => 'StartTime', + 'in' => 'formData', + 'schema' => ['title' => '开始时间戳', 'description' => '开始时间戳', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1596177993000'], + ], + [ + 'name' => 'EndTime', + 'in' => 'formData', + 'schema' => ['title' => '结束时间戳', 'description' => '结束时间戳', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1655427625000'], + ], + [ + 'name' => 'ReportType', + 'in' => 'query', + 'schema' => ['type' => 'string'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '采用`db.currentOp()`命令在获取会话时进行过滤,命令详情请参考MongoDB的[db.currentOp()](https://docs.mongodb.com/manual/reference/method/db.currentOp/)命令。', - 'type' => 'string', - 'required' => false, - 'example' => '{ "active" : true }', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。'."\n" + ."\n", 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + .'* **true**:执行成功。'."\n" + .'* **false**:执行失败。', 'type' => 'string', 'example' => 'true'], + 'Data' => [ + 'title' => 'List<ReportStatus>', + 'description' => 'List<ReportStatus>', + 'type' => 'array', + 'items' => [ + 'description' => '详细信息列表,报告ID、任务日期、任务状态。', + 'type' => 'object', + 'properties' => [ + 'ReportId' => ['description' => '报告ID', 'type' => 'string', 'example' => '13f52040-5a6e-42c3-bb84-051f5d6d****'], + 'Status' => ['title' => '任务状态 WAITING_UNREADY = 0 WAITING_READY = 1 PROCESSING = 2 FINISHED = 3 ERROR = 4 STOPPED = -1', 'description' => '任务状态 WAITING_UNREADY = 0 WAITING_READY = 1 PROCESSING = 2 FINISHED = 3 ERROR = 4 STOPPED = -1', 'type' => 'string', 'example' => '3'], + 'ReportDate' => ['title' => '诊断的日期', 'description' => '诊断的日期', 'type' => 'string', 'example' => '2025-12-10'], + 'CreateTime' => ['description' => '任务创建时间。', 'type' => 'string', 'example' => '2025-12-11 00:39:00'], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询DAS Agent运维报告列表', + 'summary' => '用于查询DAS Agent生成的运维报告列表。', + 'description' => '开启DAS Agent的运维报告功能可让系统对目标实例进行定期巡检并给出报告。当前仅支持生成日报。'."\n" + ."\n" + .'使用该接口需满足以下前提条件:'."\n" + .'- 用户开通DAS Agent并且该Agent仍在有效期。'."\n" + .'- 用户在DAS Agent的配置页面,开启日报功能。'."\n" + .'- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于4.3.3,建议使用最新版本。'."\n" + .'- 使用DAS的SDK的版本为1.0.3或以上。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetInstanceGroupInspectReportList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": [\\n {\\n \\"ReportId\\": \\"13f52040-5a6e-42c3-bb84-051f5d6d****\\",\\n \\"Status\\": \\"3\\",\\n \\"ReportDate\\": \\"2025-12-10\\",\\n \\"CreateTime\\": \\"2025-12-11 00:39:00\\"\\n }\\n ]\\n}","type":"json"}]', + ], + 'GetInstanceInspections' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '24190', + 'abilityTreeNodes' => ['FEATUREhdmB8MM4L'], + ], + 'parameters' => [ + [ + 'name' => 'Engine', + 'in' => 'query', + 'schema' => ['description' => '数据库引擎,取值:'."\n" + ."\n" + .'- **MySQL**'."\n" + .'- **Redis**'."\n" + .'- **PolarDB MySQL**', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'MySQL'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '任务开始时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1655416825000'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '任务结束时间,格式为Unix时间戳,单位为毫秒。'."\n" + .'>任务结束时间需晚于任务开始时间。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1655427625000'], + ], + [ + 'name' => 'PageNo', + 'in' => 'query', + 'schema' => ['description' => '页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每页最大记录数,默认值为10。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '10'], + ], + [ + 'name' => 'InstanceArea', + 'in' => 'query', + 'schema' => ['description' => '实例所属的数据库产品,取值:'."\n" + ."\n" + .'* **RDS**:云实例。'."\n" + .'* **ECS**:ECS自建实例。'."\n" + .'* **IDC**:非公有云自建实例。'."\n" + ."\n" + .'> IDC为用户数据中心。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'RDS'], + ], + [ + 'name' => 'SearchMap', + 'in' => 'query', + 'schema' => ['description' => '过滤条件,可以按照如下条件进行过滤:'."\n" + ."\n" + .'- 以单个实例ID为过滤条件时,输入格式为:{"InstanceId":"实例ID"}。'."\n" + .'- 以多个实例ID为过滤条件时,输入格式为:{"InstanceIds":\\["实例ID1","实例ID2"\\]},其中实例ID间以英文逗号(,)分隔。'."\n" + .'- 以实例所在地域为过滤条件时,输入格式为:{"region":"实例所在地域"}。', 'type' => 'string', 'required' => false, 'example' => '{"InstanceId":"rm-bp10usoc1erj7****"}'], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => '资源组ID。', 'type' => 'string', 'required' => false, 'example' => 'rg-aek2eil6npi****'], + ], + ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], 'Data' => [ 'description' => '详细信息。', 'type' => 'object', 'properties' => [ - 'Timestamp' => [ - 'description' => '获取数据库会话数据的时间,格式为Unix时间戳,单位为毫秒(ms)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1692029584428', - ], - 'SessionList' => [ - 'description' => '会话列表。', + 'List' => [ + 'description' => '详细信息列表。', 'type' => 'array', 'items' => [ - 'description' => '会话。', 'type' => 'object', 'properties' => [ - 'OpId' => [ - 'description' => '操作ID。', - 'type' => 'string', - 'example' => '14508', - ], - 'Active' => [ - 'description' => '是否是活跃的操作:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Command' => [ - 'description' => '包含与此操作关联的完整命令对象的文档。', - 'type' => 'string', - 'example' => '"command" : {'."\n" - .' "find" : "items",'."\n" - .' "filter" : {'."\n" - .' "sku" : 1403978'."\n" - .' },'."\n" - .' ...'."\n" - .' "$db" : "test"'."\n" - .'}', - ], - 'Op' => [ - 'description' => '操作类型。', - 'type' => 'string', - 'example' => 'update', - ], - 'SecsRunning' => [ - 'description' => '操作持续时间,单位为秒(s)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '5', - ], - 'PlanSummary' => [ - 'description' => '执行计划描述。', - 'type' => 'string', - 'example' => 'None', - ], - 'Host' => [ - 'description' => '主机。', - 'type' => 'string', - 'example' => 'a79****.cloud.et15:3328', - ], - 'Client' => [ - 'description' => '客户端的地址。', - 'type' => 'string', - 'example' => '219.143.XX.XX:52324', - ], - 'Desc' => [ - 'description' => '连接描述。', - 'type' => 'string', - 'example' => 'conn1013858', - ], - 'Ns' => [ - 'description' => '命名空间。', - 'type' => 'string', - 'example' => 'admin.cmd', - ], - 'ConnectionId' => [ - 'description' => '连接ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '66378736', - ], - 'Driver' => [ - 'description' => 'MongoDB驱动。', - 'type' => 'string', - 'example' => 'mongo-java-driver|legacy@3.11.2', - ], - 'OsType' => [ - 'description' => '系统类型。', - 'type' => 'string', - 'example' => 'Linux', - ], - 'OsName' => [ - 'description' => '系统名。', - 'type' => 'string', - 'example' => 'Linux', - ], - 'OsArch' => [ - 'description' => '系统架构。', - 'type' => 'string', - 'example' => 'AMD64', - ], - 'Platform' => [ - 'description' => '平台。', - 'type' => 'string', - 'example' => 'Java/Alibaba/1.8.0_152-b5', - ], - 'KillPending' => [ - 'description' => '该操作是否被标记为终止:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Shard' => [ - 'description' => '分片节点ID。'."\n" - ."\n" - .'> 分片集群实例时返回该参数。', - 'type' => 'string', - 'example' => 'd-bp1689995b78****', - ], - ], - ], - ], - 'SessionStat' => [ - 'description' => '会话统计数据。', - 'type' => 'object', - 'properties' => [ - 'ActiveCount' => [ - 'description' => '活跃会话数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'TotalCount' => [ - 'description' => '会话总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '11', - ], - 'LongestSecsRunning' => [ - 'description' => '会话执行最长耗时,单位为秒(s)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'ClientStats' => [ - 'description' => '客户端地址的统计数据。', - 'type' => 'object', - 'additionalProperties' => [ + 'EndTime' => ['description' => '任务结束时间,格式为Unix时间戳,单位为毫秒。'."\n" + .'>任务结束时间需晚于任务开始时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1608888296001'], + 'StartTime' => ['description' => '任务开始时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1608888296000'], + 'Data' => ['description' => '返回的数据。', 'type' => 'object', 'example' => '"data": { "hasDeadLock": false, "exceptionTableMap": {}, "bigTransactionCount": 0, "cpu": 4, "isRds": true, "rdsEnable": true, "enable": false, "activeSessions": [], "bigTransactionList": [], "bigSessionList": [ { "blockDuration": 0, "active": false, "Time": 0, "db": "" },'], + 'Instance' => [ + 'description' => '实例信息。', 'type' => 'object', 'properties' => [ - 'ActiveCount' => [ - 'type' => 'integer', - 'format' => 'int64', - 'description' => '活跃数。', - 'example' => '0', - ], - 'TotalCount' => [ - 'type' => 'integer', - 'format' => 'int64', - 'description' => '总数。', - 'example' => '11', - ], + 'VpcId' => ['description' => '实例的VPC ID。', 'type' => 'string', 'example' => 'vpc-bp1knt7m55z9exoo7****'], + 'Uuid' => ['description' => '实例的唯一标识符号。', 'type' => 'string', 'example' => 'hdm_3063db6792965c080a4bcb6e6304****'], + 'InstanceArea' => ['description' => '实例所属的数据库产品,取值:'."\n" + ."\n" + .'- **RDS**:云实例。'."\n" + .'- **ECS**:ECS自建实例。'."\n" + .'- **IDC**:非公有云自建实例。'."\n" + .'> IDC为用户数据中心。', 'type' => 'string', 'example' => 'RDS'], + 'InstanceClass' => ['description' => '实例的规格。', 'type' => 'string', 'example' => 'rds.mysql.s2.xlarge'], + 'Region' => ['description' => '实例所属的地域ID。', 'type' => 'string', 'example' => 'cn-hangzhou'], + 'AccountId' => ['description' => '账号ID,您可在阿里云**账号管理**的**安全设置**页面获取登录账号的ID。', 'type' => 'string', 'example' => '108398049688****'], + 'NetworkType' => ['description' => '实例的网络类型。', 'type' => 'string', 'example' => 'VPC'], + 'Engine' => ['description' => '数据库引擎,取值:'."\n" + ."\n" + .'- **MySQL**'."\n" + .'- **Redis**'."\n" + .'- **PolarDBMySQL**', 'type' => 'string', 'example' => 'MySQL'], + 'InstanceId' => ['description' => '实例ID。', 'type' => 'string', 'example' => 'rm-bp10usoc1erj7****'], + 'NodeId' => ['description' => '实例的节点ID。', 'type' => 'string', 'example' => 'rm-bp10usoc1erj7****'], + 'EngineVersion' => ['description' => '数据库引擎的版本号。', 'type' => 'string', 'example' => '8.0'], + 'InstanceAlias' => ['description' => '实例名称', 'type' => 'string', 'example' => 'test-01'], + 'Cpu' => ['description' => 'CPU规格,例如返回8时代表CPU规格为8核。', 'type' => 'string', 'example' => '8'], + 'Memory' => ['description' => '数据库内存,单位为MB。', 'type' => 'integer', 'format' => 'int32', 'example' => '32768'], + 'Storage' => ['description' => '存储空间,单位为GB。', 'type' => 'integer', 'format' => 'int32', 'example' => '150'], + 'Category' => ['description' => '实例的访问模式,取值:'."\n" + .'- **standard**:标准访问模式。'."\n" + .'- **safe**:数据库代理模式。', 'type' => 'string', 'example' => 'standard'], ], - 'description' => '客户端地址维度。', ], - ], - 'DbStats' => [ - 'description' => '命名空间统计数据。', - 'type' => 'object', - 'additionalProperties' => [ + 'ScoreMap' => ['description' => '扣分详情。', 'type' => 'object'], + 'GmtCreate' => ['description' => '任务的创建时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1603247192000'], + 'Score' => ['description' => '巡检得分。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'AutoFunction' => [ + 'description' => '自治功能开启情况。', 'type' => 'object', 'properties' => [ - 'ActiveCount' => [ - 'type' => 'integer', - 'format' => 'int64', - 'description' => '活跃数。', - 'example' => '0', - ], - 'TotalCount' => [ - 'type' => 'integer', - 'format' => 'int64', - 'example' => '11', - 'description' => '总数。', - ], + 'EventSubscription' => ['description' => '事件订阅:'."\n" + ."\n" + .'- **0**:关闭。'."\n" + .'- **1**:开启。'."\n" + .'- **2**:不支持。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'AutoIndex' => ['description' => '自动索引创建和删除:'."\n" + ."\n" + .'- **0**:关闭。'."\n" + .'- **1**:开启。'."\n" + .'- **2**:不支持。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'AutoLimitedSql' => ['description' => '自动限流:'."\n" + ."\n" + .'- **0**:关闭。'."\n" + .'- **1**:开启。'."\n" + .'- **2**:不支持。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'AutoResourceOptimize' => ['description' => '空间碎片自动回收:'."\n" + ."\n" + .'- **0**:关闭。'."\n" + .'- **1**:开启。'."\n" + .'- **2**:不支持。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'AutoScale' => ['description' => '自动弹性伸缩:'."\n" + ."\n" + .'- **0**:关闭。'."\n" + .'- **1**:开启。'."\n" + .'- **2**:不支持。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], ], - 'description' => '命名空间维度。', ], + 'EnableDasPro' => ['description' => 'DAS企业版:'."\n" + ."\n" + .'- **0**:关闭。'."\n" + .'- **1**:开启。'."\n" + .'- **2**:不支持。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'State' => ['description' => '巡检任务状态:'."\n" + ."\n" + .'- **0**:等待执行。'."\n" + .'- **1**:正在执行。'."\n" + .'- **2**:巡检完成。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'TaskType' => ['description' => '巡检任务发起类型:'."\n" + ."\n" + .'- **0**:自动。'."\n" + .'- **1**:手动。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], ], + 'description' => '', ], ], + 'PageNo' => ['description' => '页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'PageSize' => ['description' => '每页最大记录数,默认值为10。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'Total' => ['description' => '总记录数。', 'type' => 'integer', 'format' => 'int64', 'example' => '4'], ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'FC6C0929-29E1-59FD-8DFE-70D9D41E****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Timestamp\\": 1692029584428,\\n \\"SessionList\\": [\\n {\\n \\"OpId\\": \\"14508\\",\\n \\"Active\\": true,\\n \\"Command\\": \\"\\\\\\"command\\\\\\" : {\\\\n \\\\\\"find\\\\\\" : \\\\\\"items\\\\\\",\\\\n \\\\\\"filter\\\\\\" : {\\\\n \\\\\\"sku\\\\\\" : 1403978\\\\n },\\\\n ...\\\\n \\\\\\"$db\\\\\\" : \\\\\\"test\\\\\\"\\\\n}\\",\\n \\"Op\\": \\"update\\",\\n \\"SecsRunning\\": 5,\\n \\"PlanSummary\\": \\"None\\",\\n \\"Host\\": \\"a79****.cloud.et15:3328\\",\\n \\"Client\\": \\"219.143.XX.XX:52324\\",\\n \\"Desc\\": \\"conn1013858\\",\\n \\"Ns\\": \\"admin.cmd\\",\\n \\"ConnectionId\\": 66378736,\\n \\"Driver\\": \\"mongo-java-driver|legacy@3.11.2\\",\\n \\"OsType\\": \\"Linux\\",\\n \\"OsName\\": \\"Linux\\",\\n \\"OsArch\\": \\"AMD64\\",\\n \\"Platform\\": \\"Java/Alibaba/1.8.0_152-b5\\",\\n \\"KillPending\\": true,\\n \\"Shard\\": \\"d-bp1689995b78****\\"\\n }\\n ],\\n \\"SessionStat\\": {\\n \\"ActiveCount\\": 0,\\n \\"TotalCount\\": 11,\\n \\"LongestSecsRunning\\": 0,\\n \\"ClientStats\\": {\\n \\"key\\": {\\n \\"ActiveCount\\": 0,\\n \\"TotalCount\\": 11\\n }\\n },\\n \\"DbStats\\": {\\n \\"key\\": {\\n \\"ActiveCount\\": 0,\\n \\"TotalCount\\": 11\\n }\\n }\\n }\\n },\\n \\"RequestId\\": \\"FC6C0929-29E1-59FD-8DFE-70D9D41E****\\",\\n \\"Success\\": true\\n}","type":"json"}]', - 'title' => '获取MongoDB实例当前会话', - 'description' => '- 本接口只适用于MongoDB实例。'."\n" - .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '获取数据库实例巡检评分结果', + 'summary' => '调用GetInstanceInspections接口,获取数据库实例巡检评分的结果。', + 'description' => 'DAS支持巡检评分功能,可以对目标实例进行定期巡检并给出健康评分,帮助您清楚地了解数据库运行情况,更多信息,请参见[巡检评分](~~205659~~)。'."\n" + ."\n" + .'使用该接口需满足以下前提条件:'."\n" + ."\n" + .'- 本接口只适用于RDS MySQL、ECS上的MySQL自建库、IDC MySQL自建库、云数据库 Tair(兼容 Redis)、PolarDB MySQL版。'."\n" + .'- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于4.3.3,建议使用最新版本。'."\n" + .'- 使用DAS的SDK的版本为1.0.3或以上。'."\n" .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - 'responseParamsDescription' => '可参考MongoDB命令currentOp返回数据。', - ], - 'KillInstanceAllSession' => [ - 'summary' => '调用KillInstanceAllSession接口,结束指定实例上的全部会话。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetInstanceInspections'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetInstanceInspections', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Data\\": {\\n \\"List\\": [\\n {\\n \\"EndTime\\": 1608888296001,\\n \\"StartTime\\": 1608888296000,\\n \\"Data\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"Instance\\": {\\n \\"VpcId\\": \\"vpc-bp1knt7m55z9exoo7****\\",\\n \\"Uuid\\": \\"hdm_3063db6792965c080a4bcb6e6304****\\",\\n \\"InstanceArea\\": \\"RDS\\",\\n \\"InstanceClass\\": \\"rds.mysql.s2.xlarge\\",\\n \\"Region\\": \\"cn-hangzhou\\",\\n \\"AccountId\\": \\"108398049688****\\",\\n \\"NetworkType\\": \\"VPC\\",\\n \\"Engine\\": \\"MySQL\\",\\n \\"InstanceId\\": \\"rm-bp10usoc1erj7****\\",\\n \\"NodeId\\": \\"rm-bp10usoc1erj7****\\",\\n \\"EngineVersion\\": \\"8.0\\",\\n \\"InstanceAlias\\": \\"test-01\\",\\n \\"Cpu\\": \\"8\\",\\n \\"Memory\\": 32768,\\n \\"Storage\\": 150,\\n \\"Category\\": \\"standard\\"\\n },\\n \\"ScoreMap\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"GmtCreate\\": 1603247192000,\\n \\"Score\\": 100,\\n \\"AutoFunction\\": {\\n \\"EventSubscription\\": 0,\\n \\"AutoIndex\\": 2,\\n \\"AutoLimitedSql\\": 2,\\n \\"AutoResourceOptimize\\": 0,\\n \\"AutoScale\\": 0\\n },\\n \\"EnableDasPro\\": 0,\\n \\"State\\": 2,\\n \\"TaskType\\": 0\\n }\\n ],\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10,\\n \\"Total\\": 4\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetInstanceInspectionsResponse>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Data>\\n <List>\\n <EndTime>1608888296001</EndTime>\\n <StartTime>1608888296000</StartTime>\\n <Instance>\\n <VpcId>vpc-bp1knt7m55z9exoo7****</VpcId>\\n <Uuid>hdm_3063db6792965c080a4bcb6e6304****</Uuid>\\n <InstanceArea>RDS</InstanceArea>\\n <InstanceClass>rds.mysql.s2.xlarge</InstanceClass>\\n <Region>cn-hangzhou</Region>\\n <AccountId>108398049688****</AccountId>\\n <NetworkType>VPC</NetworkType>\\n <Engine>MySQL</Engine>\\n <InstanceId>rm-bp10usoc1erj7****</InstanceId>\\n <NodeId>rm-bp10usoc1erj7****</NodeId>\\n <EngineVersion>8.0</EngineVersion>\\n <InstanceAlias>test-01</InstanceAlias>\\n <Cpu>8</Cpu>\\n <Memory>32768</Memory>\\n <Storage>150</Storage>\\n <Category>standard</Category>\\n </Instance>\\n <GmtCreate>1603247192000</GmtCreate>\\n <Score>100</Score>\\n <AutoFunction>\\n <EventSubscription>0</EventSubscription>\\n <AutoIndex>2</AutoIndex>\\n <AutoLimitedSql>2</AutoLimitedSql>\\n <AutoResourceOptimize>0</AutoResourceOptimize>\\n <AutoScale>0</AutoScale>\\n </AutoFunction>\\n <EnableDasPro>0</EnableDasPro>\\n <State>2</State>\\n <TaskType>0</TaskType>\\n </List>\\n <PageNo>1</PageNo>\\n <PageSize>10</PageSize>\\n <Total>4</Total>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetInstanceInspectionsResponse>","errorExample":""}]', + ], + 'GetInstanceMissingIndexList' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'update', - ], + 'operationType' => 'read', + 'systemTags' => ['operationType' => 'list'], 'parameters' => [ [ - 'name' => 'ConsoleContext', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], + 'schema' => ['description' => '数据库实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-t4nfalp2ap421****'], ], [ - 'name' => 'InstanceId', + 'name' => 'PageNo', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'r-8vbcyr4sw0c4yc****', - ], + 'schema' => ['description' => '分页查询的页码,从1开始,默认为1。', 'type' => 'string', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每页最大记录数,默认值为10。', 'type' => 'string', 'required' => false, 'example' => '10'], + ], + [ + 'name' => 'ObjectName', + 'in' => 'query', + 'schema' => ['description' => '对象名。', 'type' => 'string', 'required' => false, 'example' => 'bas_customer'], + ], + [ + 'name' => 'ReservedSize', + 'in' => 'query', + 'schema' => ['description' => '表总空间筛选条件。单位为MB。输入格式为`运算符+分割服“|”+表总空间大小`,例如筛选条件设置为查询总空间大于等于100M的表时,输入:`>=|100`。', 'type' => 'string', 'required' => false, 'example' => '>=|100'], + ], + [ + 'name' => 'RowCount', + 'in' => 'query', + 'schema' => ['description' => '表记录数筛选条件。输入格式为`运算符+分割服“|”+表记录数`,例如`>=|100`。', 'type' => 'string', 'required' => false, 'example' => '>=|100000'], + ], + [ + 'name' => 'ReservedPages', + 'in' => 'query', + 'schema' => ['description' => '总页数筛选条件。输入格式为`运算符+分割服“|”+总页数`,例如`>=|100`。', 'type' => 'string', 'required' => false, 'example' => '>=|100'], + ], + [ + 'name' => 'IndexCount', + 'in' => 'query', + 'schema' => ['description' => '索引个数(索引缺失表目前所拥有的索引个数)筛选条件。输入格式为`运算符+分割服“|”+索引个数`,例如`>=|100`。', 'type' => 'string', 'required' => false, 'example' => '>=|8'], + ], + [ + 'name' => 'UniqueCompiles', + 'in' => 'query', + 'schema' => ['description' => '编译次数筛选条件。输入格式为`运算符+分割服“|”+编译次数`,例如`>=|100`。', 'type' => 'string', 'required' => false, 'example' => '>=|10000'], + ], + [ + 'name' => 'UserSeeks', + 'in' => 'query', + 'schema' => ['description' => '查找次数筛选条件。输入格式为`运算符+分割服“|”+查找次数`,例如`>=|100`。', 'type' => 'string', 'required' => false, 'example' => '>=|1000'], + ], + [ + 'name' => 'UserScans', + 'in' => 'query', + 'schema' => ['description' => '扫描次数筛选条件。输入格式为`运算符+分割服“|”+扫描次数`,例如`>=|100`。', 'type' => 'string', 'required' => false, 'example' => '>=|10000'], + ], + [ + 'name' => 'AvgTotalUserCost', + 'in' => 'query', + 'schema' => ['description' => '平均开销节约百分比(预测建立了缺失索引后,用户的平均CPU开销节约百分比。)筛选条件。输入格式为`运算符+分割服“|”+平均开销节约百分比`,例如筛选条件设置为查询平均开销节约百分比小于等于10%时,输入:`<=|10`。', 'type' => 'string', 'required' => false, 'example' => '<=|8'], + ], + [ + 'name' => 'AvgUserImpact', + 'in' => 'query', + 'schema' => ['description' => '性能提升百分比(预测建立了缺失索引后,用户的平均查询性能提升百分比。)筛选条件。输入格式为`运算符+分割服“|”+性能提升百分比`,例如筛选条件设置为查询性能提升百分比大于等于100%时,输入:`>=|100`。', 'type' => 'string', 'required' => false, 'example' => '>|10000'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '索引最后查找时间的开始时间。格式为Unix时间戳,单位为毫秒。', 'type' => 'string', 'required' => false, 'example' => '1679414400000'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '索引最后查找时间的结束时间。格式为Unix时间戳,单位为毫秒。', 'type' => 'string', 'required' => false, 'example' => '1681869544000'], ], ], 'responses' => [ @@ -13688,283 +12445,260 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', + 'description' => '详细信息列表。', + 'type' => 'object', + 'properties' => [ + 'List' => [ + 'description' => '返回信息列表。', + 'type' => 'array', + 'items' => [ + 'description' => '记录详情。', + 'type' => 'object', + 'properties' => [ + 'AvgTotalUserCost' => ['description' => '预测建立了缺失索引后,用户的平均CPU开销节约百分比。', 'type' => 'number', 'format' => 'double', 'example' => '4.67'], + 'AvgUserImpact' => ['description' => '预测建立了缺失索引后,用户的平均查询性能提升百分比。', 'type' => 'number', 'format' => 'double', 'example' => '98.3'."\n"], + 'DatabaseName' => ['description' => '数据库名称。', 'type' => 'string', 'example' => 'testdb'], + 'EqualityColumns' => ['description' => '相等列。缺失索引被使用来做等于查询的列。', 'type' => 'string', 'example' => 'col1,col2,col3'], + 'IncludedColumns' => ['description' => '包含列。缺失索引包含列。', 'type' => 'string', 'example' => 'col3,col4'], + 'IndexCount' => ['description' => '索引个数。索引缺失表目前所拥有的索引个数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'LastUserSeek' => ['description' => '用户最后查找时间。缺失索引用户最后的查找时间点。', 'type' => 'integer', 'format' => 'int64', 'example' => '1702023327000'], + 'ObjectName' => ['description' => '对象名。', 'type' => 'string', 'example' => 'stu'], + 'ReservedPages' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int64', 'example' => '5025'], + 'ReservedSize' => ['description' => '总空间大小。', 'type' => 'number', 'format' => 'double', 'example' => '39.26'], + 'RowCount' => ['description' => '记录数。', 'type' => 'integer', 'format' => 'int64', 'example' => '226945'], + 'SchemaName' => ['description' => '架构名。', 'type' => 'string', 'example' => 'dbo'], + 'SystemScans' => ['description' => '扫描次数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'SystemSeeks' => ['description' => '查找次数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'UniqueCompiles' => ['description' => '编译次数。', 'type' => 'integer', 'format' => 'int64', 'example' => '2392'], + 'UserScans' => ['description' => '用户扫描次数。索引缺失表被扫描的次数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'UserSeeks' => ['description' => '用户查找次数。索引缺失被查找的次数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1081'], + 'InequalityColumns' => ['description' => '不等列。缺失索引被使用来做不等于查询的列。', 'type' => 'string', 'example' => '2392'], + 'CreateIndex' => ['description' => '索引创建语句。您可以使用这个语句来创建缺失索引。', 'type' => 'string', 'example' => 'CREATE INDEX [IX_CLOUDDBA_school_dbo_stu@col1_@col2] ON [school].[dbo].[stu]([col1],[col2],[col3]) INCLUDE ([col4],[col5]) WITH (FILLFACTOR = 90, ONLINE = OFF);'], + ], + ], + ], + 'PageNo' => ['description' => '页码。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'PageSize' => ['description' => '每页数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'Total' => ['description' => '总记录数。', 'type' => 'integer', 'format' => 'int64', 'example' => '16'], + ], ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0A74B755-98B7-59DB-8724-1321B394****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": \\"None\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<KillInstanceAllSessionResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</KillInstanceAllSessionResponse>","errorExample":""}]', - 'title' => '结束全部会话', - 'description' => '- 本接口只适用于Redis引擎。'."\n" - .'- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于4.3.3,建议使用最新版本。'."\n" - .'- 使用DAS的SDK的版本为1.0.2或以上。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - ], - 'CreateKillInstanceSessionTask' => [ - 'summary' => '调用CreateKillInstanceSessionTask接口,创建结束会话的任务。', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询RDS SQL Server实例索引缺失情况', + 'summary' => '调用GetInstanceMissingIndexList接口,查询RDS SQL Server实例所有缺失索引的详细信息。', + 'description' => '* 本接口仅适用于RDS SQL Server版实例。'."\n" + .'* 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'* 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetInstanceMissingIndexList'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'hdm:GetInstanceMissingIndexList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"List\\": [\\n {\\n \\"AvgTotalUserCost\\": 4.67,\\n \\"AvgUserImpact\\": 98.3,\\n \\"DatabaseName\\": \\"testdb\\",\\n \\"EqualityColumns\\": \\"col1,col2,col3\\",\\n \\"IncludedColumns\\": \\"col3,col4\\",\\n \\"IndexCount\\": 1,\\n \\"LastUserSeek\\": 1702023327000,\\n \\"ObjectName\\": \\"stu\\",\\n \\"ReservedPages\\": 5025,\\n \\"ReservedSize\\": 39.26,\\n \\"RowCount\\": 226945,\\n \\"SchemaName\\": \\"dbo\\",\\n \\"SystemScans\\": 0,\\n \\"SystemSeeks\\": 0,\\n \\"UniqueCompiles\\": 2392,\\n \\"UserScans\\": 0,\\n \\"UserSeeks\\": 1081,\\n \\"InequalityColumns\\": \\"2392\\",\\n \\"CreateIndex\\": \\"CREATE INDEX [IX_CLOUDDBA_school_dbo_stu@col1_@col2] ON [school].[dbo].[stu]([col1],[col2],[col3]) INCLUDE ([col4],[col5]) WITH (FILLFACTOR = 90, ONLINE = OFF);\\"\\n }\\n ],\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10,\\n \\"Total\\": 16\\n },\\n \\"RequestId\\": \\"0A74B755-98B7-59DB-8724-1321B394****\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', + ], + 'GetInstanceSqlOptimizeStatistic' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'create', - ], + 'operationType' => 'read', + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****', - ], + 'schema' => ['title' => '实例ID', 'description' => '数据库实例ID。'."\n" + ."\n" + .'> 仅支持RDS MySQL、PolarDB MySQL版数据库实例。', 'type' => 'string', 'required' => true, 'example' => 'pc-wz90h9560rvdz****'], ], [ - 'name' => 'NodeId', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '节点ID。'."\n" - ."\n" - .'> 对于PolarDB MySQL版实例,需要提供节点ID。如果没有提供节点ID,并且请求参数**KillAllSessions**配置为**true**(即结束全部会话),将会遍历PolarDB MySQL版实例所有节点,并结束每个节点上正在进行的会话。', - 'type' => 'string', - 'required' => false, - 'example' => 'pi-bp1v203xzzh0a****', - ], + 'schema' => ['title' => '开始时间', 'description' => '查询开始时间,格式为Unix时间戳(UTC时间),单位为毫秒。', 'type' => 'string', 'required' => true, 'example' => '1661308902060'], ], [ - 'name' => 'DbUser', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '具有结束会话权限的数据库账号。', - 'type' => 'string', - 'required' => true, - 'example' => 'testUser', - ], + 'schema' => ['title' => '结束时间', 'description' => '查询结束时间,格式为Unix时间戳(UTC时间),单位为毫秒。', 'type' => 'string', 'required' => true, 'example' => '1662518540764'], ], [ - 'name' => 'DbUserPassword', + 'name' => 'NodeId', 'in' => 'query', - 'schema' => [ - 'description' => '数据库账号密码。', - 'type' => 'string', - 'required' => true, - 'example' => 'testPassword', - ], + 'schema' => ['title' => '子节点ID', 'description' => '节点ID。'."\n" + ."\n" + .'> 对于RDS MySQL集群系列数据库实例或PolarDB MySQL版数据库实例,需要提供节点ID。', 'type' => 'string', 'required' => false, 'example' => 'pi-bp12v7243x012****'], ], [ - 'name' => 'IgnoredUsers', + 'name' => 'Threshold', 'in' => 'query', - 'schema' => [ - 'description' => '忽略账号列表,该列表中账号的会话不会被结束。'."\n" - ."\n" - .'> 数据格式为JSONArray字符串,例如\\[\'数据库账号1\',\'数据库账号2\'\\],数据库账号间用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => false, - 'example' => '[\'db_user1\',\'db_user2\']', - ], + 'schema' => ['title' => '阈值', 'description' => '自动SQL优化事件的持续时间阈值。'."\n" + .'设置此参数后,只会统计持续时间不超过阈值的自动SQL优化事件。'."\n" + ."\n" + .'> 此参数为备用参数,当前暂不生效。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ - 'name' => 'KillAllSessions', + 'name' => 'FilterEnable', 'in' => 'query', 'schema' => [ - 'description' => '是否结束全部会话。'."\n" - ."\n" + 'title' => '是否过滤专业版', + 'description' => '是否过滤开启了DAS企业版的数据库实例:'."\n" .'- **true**:是。'."\n" - ."\n" .'- **false**:否。'."\n" ."\n" - .'> 该参数取值为**true**时,请求参数**IgnoredUsers**中账号的会话、阿里云内部运维账号的会话和**Binlog Dump**会话都不会被结束。', - 'type' => 'boolean', - 'required' => true, - 'example' => 'true', + .'> 取值为**true**时,只统计未开启DAS企业版的数据库实例;取值为**false**时,统计所有数据库实例。', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [], + 'example' => 'false', ], ], [ - 'name' => 'SessionIds', + 'name' => 'UseMerging', 'in' => 'query', 'schema' => [ - 'description' => '需要被结束的会话ID列表。'."\n" + 'title' => '是否合并事件', + 'description' => '是否合并事件:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" ."\n" - .'> 数据格式为JSONArray,例如\\[会话ID1,会话ID2\\],会话ID间用英文逗号(,)分隔。如果请求参数**KillAllSessions**取值为**true**(即结束全部会话),该列表会被忽略。', + .'> 此参数为备用参数,当前暂不生效。', 'type' => 'string', 'required' => false, - 'example' => '[10805639,10805623,10805645,10805553,10805566,10805616]', + 'enumValueTitles' => [], + 'example' => 'true', ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '返回信息列表。', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ - 'description' => '结束会话的任务ID。'."\n" - ."\n" - .'> PolarDB MySQL版实例调用该API接口,请求参数**NodeId**为空(即未指定节点ID),并且请求参数**KillAllSessions**配置为**true**(即结束全部会话)时,会按照节点数量返回任务ID列表,例如\\["f77d535b45405bd462b21caa3ee8\\*\\*\\*\\*", "e93ab549abb081eb5dcd5396a29b\\*\\*\\*\\*"\\]', - 'type' => 'string', - 'example' => 'f77d535b45405bd462b21caa3ee8****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', + 'description' => '详细信息列表。', + 'type' => 'object', + 'properties' => [ + 'count' => ['title' => 'SQL自动优化事件总数', 'description' => '自动SQL优化事件总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '16'], + 'improvement' => ['title' => '收益倍数', 'description' => '返回的自动SQL优化事件中,SQL优化后的最大收益倍数。', 'type' => 'number', 'format' => 'double', 'example' => '1003'], + ], ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": \\"f77d535b45405bd462b21caa3ee8****\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<CreateKillInstanceSessionTaskResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>f77d535b45405bd462b21caa3ee8****</Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</CreateKillInstanceSessionTaskResponse>","errorExample":""}]', - 'title' => '创建结束会话的任务', - 'description' => '- 本接口只适用于RDS MySQL和PolarDB MySQL版实例。'."\n" + 'title' => ' 获取自动SQL优化事件的统计数据', + 'summary' => '调用GetInstanceSqlOptimizeStatistic接口,获取指定时间段内自动SQL优化任务的统计数据,包括任务总数和最大收益等。', + 'description' => '使用该接口需满足以下前提条件:'."\n" ."\n" .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - ."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - ], - 'GetKillInstanceSessionTaskResult' => [ - 'summary' => '调用GetKillInstanceSessionTaskResult接口,获取结束会话任务的结果。', - 'methods' => [ - 'get', - 'post', + .'- 使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 数据库引擎为RDS MySQL或PolarDB MySQL版。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetInstanceSqlOptimizeStatistic'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetInstanceSqlOptimizeStatistic', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"count\\": 16,\\n \\"improvement\\": 1003\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetInstanceSqlOptimizeStatisticResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <count>16</count>\\n <improvement>1003</improvement>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetInstanceSqlOptimizeStatisticResponse>","errorExample":""}]', + ], + 'GetKillInstanceSessionTaskResult' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze1jdv45i7l6****', - ], + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze1jdv45i7l6****'], ], [ 'name' => 'NodeId', 'in' => 'query', - 'schema' => [ - 'description' => '节点ID。'."\n" - ."\n" - .'> 对于PolarDB MySQL版实例,需要提供节点ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'pi-8vbkfj5a756um****', - ], + 'schema' => ['description' => '节点ID。'."\n" + ."\n" + .'> 对于PolarDB MySQL版实例,需要提供节点ID。', 'type' => 'string', 'required' => false, 'example' => 'pi-8vbkfj5a756um****'], ], [ 'name' => 'TaskId', 'in' => 'query', - 'schema' => [ - 'description' => '<props="china">任务ID,调用[CreateKillInstanceSessionTask](~~609246~~)接口时返回的任务ID。</props>'."\n" - ."\n" - .'<props="intl">任务ID,调用[CreateKillInstanceSessionTask](~~609246~~)接口时返回的任务ID。</props>'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'f77d535b45405bd462b21caa3ee8****', - ], + 'schema' => ['description' => '<props="china">任务ID,调用[CreateKillInstanceSessionTask](~~609246~~)接口时返回的任务ID。</props>'."\n" + ."\n" + .'<props="intl">任务ID,调用[CreateKillInstanceSessionTask](~~609246~~)接口时返回的任务ID。</props>'."\n", 'type' => 'string', 'required' => true, 'example' => 'f77d535b45405bd462b21caa3ee8****'], ], ], 'responses' => [ @@ -13972,94 +12706,45 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ 'description' => '返回的数据。', 'type' => 'object', 'properties' => [ - 'TaskId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => 'f77d535b45405bd462b21caa3ee8****', - ], - 'UserId' => [ - 'description' => '阿里云主账号ID。', - 'type' => 'string', - 'example' => '164882191396****', - ], - 'InstanceId' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze1jdv45i7l6****', - ], - 'NodeId' => [ - 'description' => '节点ID。'."\n" - ."\n" - .'> PolarDB MySQL版实例的结束会话任务才会返回该数据。', - 'type' => 'string', - 'example' => 'pi-bp1h12rv501cv****', - ], - 'TaskState' => [ - 'description' => '结束会话任务的状态:'."\n" - ."\n" - .'- **RUNNING**:正在运行。'."\n" - .'- **SUCCESS**:成功。'."\n" - .'- **FAILURE**:失败。'."\n" - .'- **ERROR**:其他错误。', - 'type' => 'string', - 'example' => 'SUCCESS', - ], + 'TaskId' => ['description' => '任务ID。', 'type' => 'string', 'example' => 'f77d535b45405bd462b21caa3ee8****'], + 'UserId' => ['description' => '阿里云主账号ID。', 'type' => 'string', 'example' => '164882191396****'], + 'InstanceId' => ['description' => '实例ID。', 'type' => 'string', 'example' => 'rm-2ze1jdv45i7l6****'], + 'NodeId' => ['description' => '节点ID。'."\n" + ."\n" + .'> PolarDB MySQL版实例的结束会话任务才会返回该数据。', 'type' => 'string', 'example' => 'pi-bp1h12rv501cv****'], + 'TaskState' => ['description' => '结束会话任务的状态:'."\n" + ."\n" + .'- **RUNNING**:正在运行。'."\n" + .'- **SUCCESS**:成功。'."\n" + .'- **FAILURE**:失败。'."\n" + .'- **ERROR**:其他错误。', 'type' => 'string', 'example' => 'SUCCESS'], 'Sessions' => [ 'description' => '需要结束的会话ID列表。'."\n" ."\n" .'> 结束全部会话时,实例或节点上的所有会话ID列表。', 'type' => 'array', - 'items' => [ - 'description' => '会话ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '['."\n" - .'152,'."\n" - .'112,'."\n" - .'106,'."\n" - .'146,'."\n" - .'8357323,'."\n" - .'5697053,'."\n" - .'8357518,'."\n" - .'8357519,'."\n" - .'14964383'."\n" - .']', - ], - ], - 'KillSuccessCount' => [ - 'description' => '结束成功的会话数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'KillFailCount' => [ - 'description' => '结束失败的会话数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'IgnoredUserSessionCount' => [ - 'description' => '指定的不会被结束的会话数量,包含忽略列表中账号的会话、阿里云内部运维账号的会话和**Binlog Dump**会话。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '9', - ], + 'items' => ['description' => '会话ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '['."\n" + .'152,'."\n" + .'112,'."\n" + .'106,'."\n" + .'146,'."\n" + .'8357323,'."\n" + .'5697053,'."\n" + .'8357518,'."\n" + .'8357519,'."\n" + .'14964383'."\n" + .']'], + ], + 'KillSuccessCount' => ['description' => '结束成功的会话数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'KillFailCount' => ['description' => '结束失败的会话数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'IgnoredUserSessionCount' => ['description' => '指定的不会被结束的会话数量,包含忽略列表中账号的会话、阿里云内部运维账号的会话和**Binlog Dump**会话。', 'type' => 'integer', 'format' => 'int64', 'example' => '9'], 'Result' => [ 'description' => '结束会话的详情列表。', 'type' => 'array', @@ -14067,130 +12752,83 @@ 'description' => '结束会话的详情。', 'type' => 'object', 'properties' => [ - 'Id' => [ - 'description' => '会话ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '8357518', - ], - 'User' => [ - 'description' => '数据库账号。', - 'type' => 'string', - 'example' => 'testUser', - ], - 'Host' => [ - 'description' => '发起该会话主机的IP地址和端口。', - 'type' => 'string', - 'example' => '100.104.XX.XX:23428', - ], - 'Db' => [ - 'description' => '数据库名。', - 'type' => 'string', - 'example' => 'dbTest', - ], - 'Command' => [ - 'description' => '会话执行的命令类型。', - 'type' => 'string', - 'example' => 'Sleep', - ], - 'Time' => [ - 'description' => '执行时间,单位为秒(s)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'State' => [ - 'description' => '会话状态。', - 'type' => 'string', - 'example' => 'Sending data', - ], - 'Info' => [ - 'description' => '会话执行的SQL语句。', - 'type' => 'string', - 'example' => 'SELECT sleep(60)', - ], - 'Active' => [ - 'description' => '是否是活跃会话。'."\n" - ."\n" - .'> 活跃会话判断逻辑: 命令是Query或者Execute,以及未结束事务中的会话。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'TaskId' => [ - 'description' => '结束该会话的子任务ID。', - 'type' => 'string', - 'example' => 'task_d9e94107-6116-4ac3-b874-81466aff****', - ], - 'Reason' => [ - 'description' => '结束该会话时的结果描述。'."\n" - .'- **SESSION_KILLED**:结束会话成功。'."\n" - .'- **SESSION_EXPIRED**:会话已过期。'."\n" - .'- **SESSION\\_NO\\_PERMISSION**:用于结束会话的账号权限不足。'."\n" - .'- **SESSION\\_ACCOUNT\\_ERROR**:用于结束会话的账号或密码错误。'."\n" - .'- **SESSION\\_IGNORED\\_USER**:不需要结束的账号的会话。'."\n" - .'- **SESSION\\_INTERNAL\\_USER\\_OR\\_COMMAND**:阿里云运维账号的会话或者命令。'."\n" - .'- **SESSION\\_KILL\\_TASK\\_TIMEOUT**:结束会话超时。'."\n" - .'- **SESSION\\_OTHER\\_ERROR**:其他错误。', - 'type' => 'string', - 'example' => 'SESSION_KILLED', - ], + 'Id' => ['description' => '会话ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '8357518'], + 'User' => ['description' => '数据库账号。', 'type' => 'string', 'example' => 'testUser'], + 'Host' => ['description' => '发起该会话主机的IP地址和端口。', 'type' => 'string', 'example' => '100.104.XX.XX:23428'], + 'Db' => ['description' => '数据库名。', 'type' => 'string', 'example' => 'dbTest'], + 'Command' => ['description' => '会话执行的命令类型。', 'type' => 'string', 'example' => 'Sleep'], + 'Time' => ['description' => '执行时间,单位为秒(s)。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'State' => ['description' => '会话状态。', 'type' => 'string', 'example' => 'Sending data'], + 'Info' => ['description' => '会话执行的SQL语句。', 'type' => 'string', 'example' => 'SELECT sleep(60)'], + 'Active' => ['description' => '是否是活跃会话。'."\n" + ."\n" + .'> 活跃会话判断逻辑: 命令是Query或者Execute,以及未结束事务中的会话。', 'type' => 'boolean', 'example' => 'true'], + 'TaskId' => ['description' => '结束该会话的子任务ID。', 'type' => 'string', 'example' => 'task_d9e94107-6116-4ac3-b874-81466aff****'], + 'Reason' => ['description' => '结束该会话时的结果描述。'."\n" + .'- **SESSION_KILLED**:结束会话成功。'."\n" + .'- **SESSION_EXPIRED**:会话已过期。'."\n" + .'- **SESSION\\_NO\\_PERMISSION**:用于结束会话的账号权限不足。'."\n" + .'- **SESSION\\_ACCOUNT\\_ERROR**:用于结束会话的账号或密码错误。'."\n" + .'- **SESSION\\_IGNORED\\_USER**:不需要结束的账号的会话。'."\n" + .'- **SESSION\\_INTERNAL\\_USER\\_OR\\_COMMAND**:阿里云运维账号的会话或者命令。'."\n" + .'- **SESSION\\_KILL\\_TASK\\_TIMEOUT**:结束会话超时。'."\n" + .'- **SESSION\\_OTHER\\_ERROR**:其他错误。', 'type' => 'string', 'example' => 'SESSION_KILLED'], ], ], ], ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"TaskId\\": \\"f77d535b45405bd462b21caa3ee8****\\",\\n \\"UserId\\": \\"164882191396****\\",\\n \\"InstanceId\\": \\"rm-2ze1jdv45i7l6****\\",\\n \\"NodeId\\": \\"pi-bp1h12rv501cv****\\",\\n \\"TaskState\\": \\"SUCCESS\\",\\n \\"Sessions\\": [\\n 0\\n ],\\n \\"KillSuccessCount\\": 100,\\n \\"KillFailCount\\": 0,\\n \\"IgnoredUserSessionCount\\": 9,\\n \\"Result\\": [\\n {\\n \\"Id\\": 8357518,\\n \\"User\\": \\"testUser\\",\\n \\"Host\\": \\"100.104.XX.XX:23428\\",\\n \\"Db\\": \\"dbTest\\",\\n \\"Command\\": \\"Sleep\\",\\n \\"Time\\": 1,\\n \\"State\\": \\"Sending data\\",\\n \\"Info\\": \\"SELECT sleep(60)\\",\\n \\"Active\\": true,\\n \\"TaskId\\": \\"task_d9e94107-6116-4ac3-b874-81466aff****\\",\\n \\"Reason\\": \\"SESSION_KILLED\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetKillInstanceSessionTaskResultResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <TaskId>f77d535b45405bd462b21caa3ee8****</TaskId>\\n <UserId>164882191396****</UserId>\\n <InstanceId>rm-2ze1jdv45i7l6****</InstanceId>\\n <TaskState>SUCCESS</TaskState>\\n <KillSuccessCount>100</KillSuccessCount>\\n <KillFailCount>0</KillFailCount>\\n <IgnoredUserSessionCount>9</IgnoredUserSessionCount>\\n <Result>\\n <Id>8357518</Id>\\n <User>testUser</User>\\n <Host>100.104.XX.XX:23428</Host>\\n <Db>dbTest</Db>\\n <Command>Sleep</Command>\\n <Time>1</Time>\\n <State>Sending data</State>\\n <Info>SELECT sleep(60)</Info>\\n <Active>true</Active>\\n <TaskId>task_d9e94107-6116-4ac3-b874-81466aff****</TaskId>\\n <Reason>SESSION_KILLED</Reason>\\n </Result>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetKillInstanceSessionTaskResultResponse>","errorExample":""}]', + 'staticInfo' => ['returnType' => 'synchronous'], 'title' => '获取结束会话任务的结果', + 'summary' => '调用GetKillInstanceSessionTaskResult接口,获取结束会话任务的结果。', 'description' => '- 本接口只适用于RDS MySQL和PolarDB MySQL版实例。'."\n" ."\n" .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" ."\n" .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - ], - 'GetMySQLAllSessionAsync' => [ - 'summary' => '调用GetMySQLAllSessionAsync接口,采用异步方式获取实例当前会话数据,并按照不同维度统计会话信息。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetKillInstanceSessionTaskResult'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetKillInstanceSessionTaskResult', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"TaskId\\": \\"f77d535b45405bd462b21caa3ee8****\\",\\n \\"UserId\\": \\"164882191396****\\",\\n \\"InstanceId\\": \\"rm-2ze1jdv45i7l6****\\",\\n \\"NodeId\\": \\"pi-bp1h12rv501cv****\\",\\n \\"TaskState\\": \\"SUCCESS\\",\\n \\"Sessions\\": [\\n 0\\n ],\\n \\"KillSuccessCount\\": 100,\\n \\"KillFailCount\\": 0,\\n \\"IgnoredUserSessionCount\\": 9,\\n \\"Result\\": [\\n {\\n \\"Id\\": 8357518,\\n \\"User\\": \\"testUser\\",\\n \\"Host\\": \\"100.104.XX.XX:23428\\",\\n \\"Db\\": \\"dbTest\\",\\n \\"Command\\": \\"Sleep\\",\\n \\"Time\\": 1,\\n \\"State\\": \\"Sending data\\",\\n \\"Info\\": \\"SELECT sleep(60)\\",\\n \\"Active\\": true,\\n \\"TaskId\\": \\"task_d9e94107-6116-4ac3-b874-81466aff****\\",\\n \\"Reason\\": \\"SESSION_KILLED\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetKillInstanceSessionTaskResultResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <TaskId>f77d535b45405bd462b21caa3ee8****</TaskId>\\n <UserId>164882191396****</UserId>\\n <InstanceId>rm-2ze1jdv45i7l6****</InstanceId>\\n <TaskState>SUCCESS</TaskState>\\n <KillSuccessCount>100</KillSuccessCount>\\n <KillFailCount>0</KillFailCount>\\n <IgnoredUserSessionCount>9</IgnoredUserSessionCount>\\n <Result>\\n <Id>8357518</Id>\\n <User>testUser</User>\\n <Host>100.104.XX.XX:23428</Host>\\n <Db>dbTest</Db>\\n <Command>Sleep</Command>\\n <Time>1</Time>\\n <State>Sending data</State>\\n <Info>SELECT sleep(60)</Info>\\n <Active>true</Active>\\n <TaskId>task_d9e94107-6116-4ac3-b874-81466aff****</TaskId>\\n <Reason>SESSION_KILLED</Reason>\\n </Result>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetKillInstanceSessionTaskResultResponse>","errorExample":""}]', + ], + 'GetMongoDBCurrentOp' => [ + 'summary' => '调用GetMongoDBCurrentOp接口,获取MongoDB实例当前会话。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -14198,43 +12836,201 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - .'>仅支持RDS MySQL、PolarDB MySQL版和PolarDB-X 2.0实例。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****'."\n", - ], + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'dds-uf6079bda570****'], ], [ 'name' => 'NodeId', 'in' => 'query', + 'schema' => ['description' => '节点ID。'."\n" + ."\n" + .'> 不提供节点ID时,默认获取Primary节点会话。', 'type' => 'string', 'required' => false, 'example' => '23302531'], + ], + [ + 'name' => 'Role', + 'in' => 'query', + 'schema' => ['description' => '预留参数,可不传递。', 'type' => 'string', 'required' => false, 'example' => 'None'], + ], + [ + 'name' => 'FilterDoc', + 'in' => 'query', + 'schema' => ['description' => '采用`db.currentOp()`命令在获取会话时进行过滤,命令详情请参考MongoDB的[db.currentOp()](https://docs.mongodb.com/manual/reference/method/db.currentOp/)命令。', 'type' => 'string', 'required' => false, 'example' => '{ "active" : true }'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '节点ID。'."\n" - ."\n" - .'> 对于PolarDB MySQL版实例,需要提供节点ID。不指定节点ID时,默认返回主节点的会话数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'pi-wz954ryd8f893****', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'Data' => [ + 'description' => '详细信息。', + 'type' => 'object', + 'properties' => [ + 'Timestamp' => ['description' => '获取数据库会话数据的时间,格式为Unix时间戳,单位为毫秒(ms)。', 'type' => 'integer', 'format' => 'int64', 'example' => '1692029584428'], + 'SessionList' => [ + 'description' => '会话列表。', + 'type' => 'array', + 'items' => [ + 'description' => '会话。', + 'type' => 'object', + 'properties' => [ + 'OpId' => ['description' => '操作ID。', 'type' => 'string', 'example' => '14508'], + 'Active' => ['description' => '是否是活跃的操作:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'Command' => ['description' => '包含与此操作关联的完整命令对象的文档。', 'type' => 'string', 'example' => '"command" : {'."\n" + .' "find" : "items",'."\n" + .' "filter" : {'."\n" + .' "sku" : 1403978'."\n" + .' },'."\n" + .' ...'."\n" + .' "$db" : "test"'."\n" + .'}'], + 'Op' => ['description' => '操作类型。', 'type' => 'string', 'example' => 'update'], + 'SecsRunning' => ['description' => '操作持续时间,单位为秒(s)。', 'type' => 'integer', 'format' => 'int64', 'example' => '5'], + 'PlanSummary' => ['description' => '执行计划描述。', 'type' => 'string', 'example' => 'None'], + 'Host' => ['description' => '主机。', 'type' => 'string', 'example' => 'a79****.cloud.et15:3328'], + 'Client' => ['description' => '客户端的地址。', 'type' => 'string', 'example' => '219.143.XX.XX:52324'], + 'Desc' => ['description' => '连接描述。', 'type' => 'string', 'example' => 'conn1013858'], + 'Ns' => ['description' => '命名空间。', 'type' => 'string', 'example' => 'admin.cmd'], + 'ConnectionId' => ['description' => '连接ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '66378736'], + 'Driver' => ['description' => 'MongoDB驱动。', 'type' => 'string', 'example' => 'mongo-java-driver|legacy@3.11.2'], + 'OsType' => ['description' => '系统类型。', 'type' => 'string', 'example' => 'Linux'], + 'OsName' => ['description' => '系统名。', 'type' => 'string', 'example' => 'Linux'], + 'OsArch' => ['description' => '系统架构。', 'type' => 'string', 'example' => 'AMD64'], + 'Platform' => ['description' => '平台。', 'type' => 'string', 'example' => 'Java/Alibaba/1.8.0_152-b5'], + 'KillPending' => ['description' => '该操作是否被标记为终止:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'Shard' => ['description' => '分片节点ID。'."\n" + ."\n" + .'> 分片集群实例时返回该参数。', 'type' => 'string', 'example' => 'd-bp1689995b78****'], + ], + ], + ], + 'SessionStat' => [ + 'description' => '会话统计数据。', + 'type' => 'object', + 'properties' => [ + 'ActiveCount' => ['description' => '活跃会话数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'TotalCount' => ['description' => '会话总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '11'], + 'LongestSecsRunning' => ['description' => '会话执行最长耗时,单位为秒(s)。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'ClientStats' => [ + 'description' => '客户端地址的统计数据。', + 'type' => 'object', + 'additionalProperties' => [ + 'type' => 'object', + 'properties' => [ + 'ActiveCount' => ['type' => 'integer', 'format' => 'int64', 'description' => '活跃数。', 'example' => '0'], + 'TotalCount' => ['type' => 'integer', 'format' => 'int64', 'description' => '总数。', 'example' => '11'], + ], + 'description' => '客户端地址维度。', + ], + ], + 'DbStats' => [ + 'description' => '命名空间统计数据。', + 'type' => 'object', + 'additionalProperties' => [ + 'type' => 'object', + 'properties' => [ + 'ActiveCount' => ['type' => 'integer', 'format' => 'int64', 'description' => '活跃数。', 'example' => '0'], + 'TotalCount' => ['type' => 'integer', 'format' => 'int64', 'example' => '11', 'description' => '总数。'], + ], + 'description' => '命名空间维度。', + ], + ], + ], + ], + ], + ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'FC6C0929-29E1-59FD-8DFE-70D9D41E****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '获取MongoDB实例当前会话', + 'description' => '- 本接口只适用于MongoDB实例。'."\n" + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'responseParamsDescription' => '可参考MongoDB命令currentOp返回数据。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetMongoDBCurrentOp'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'hdm:GetMongoDBCurrentOp', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Timestamp\\": 1692029584428,\\n \\"SessionList\\": [\\n {\\n \\"OpId\\": \\"14508\\",\\n \\"Active\\": true,\\n \\"Command\\": \\"\\\\\\"command\\\\\\" : {\\\\n \\\\\\"find\\\\\\" : \\\\\\"items\\\\\\",\\\\n \\\\\\"filter\\\\\\" : {\\\\n \\\\\\"sku\\\\\\" : 1403978\\\\n },\\\\n ...\\\\n \\\\\\"$db\\\\\\" : \\\\\\"test\\\\\\"\\\\n}\\",\\n \\"Op\\": \\"update\\",\\n \\"SecsRunning\\": 5,\\n \\"PlanSummary\\": \\"None\\",\\n \\"Host\\": \\"a79****.cloud.et15:3328\\",\\n \\"Client\\": \\"219.143.XX.XX:52324\\",\\n \\"Desc\\": \\"conn1013858\\",\\n \\"Ns\\": \\"admin.cmd\\",\\n \\"ConnectionId\\": 66378736,\\n \\"Driver\\": \\"mongo-java-driver|legacy@3.11.2\\",\\n \\"OsType\\": \\"Linux\\",\\n \\"OsName\\": \\"Linux\\",\\n \\"OsArch\\": \\"AMD64\\",\\n \\"Platform\\": \\"Java/Alibaba/1.8.0_152-b5\\",\\n \\"KillPending\\": true,\\n \\"Shard\\": \\"d-bp1689995b78****\\"\\n }\\n ],\\n \\"SessionStat\\": {\\n \\"ActiveCount\\": 0,\\n \\"TotalCount\\": 11,\\n \\"LongestSecsRunning\\": 0,\\n \\"ClientStats\\": {\\n \\"key\\": {\\n \\"ActiveCount\\": 0,\\n \\"TotalCount\\": 11\\n }\\n },\\n \\"DbStats\\": {\\n \\"key\\": {\\n \\"ActiveCount\\": 0,\\n \\"TotalCount\\": 11\\n }\\n }\\n }\\n },\\n \\"RequestId\\": \\"FC6C0929-29E1-59FD-8DFE-70D9D41E****\\",\\n \\"Success\\": true\\n}","type":"json"}]', + ], + 'GetMySQLAllSessionAsync' => [ + 'summary' => '调用GetMySQLAllSessionAsync接口,采用异步方式获取实例当前会话数据,并按照不同维度统计会话信息。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。'."\n" + .'>仅支持RDS MySQL、PolarDB MySQL版和PolarDB-X 2.0实例。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'."\n"], + ], + [ + 'name' => 'NodeId', + 'in' => 'query', + 'schema' => ['description' => '节点ID。'."\n" + ."\n" + .'> 对于PolarDB MySQL版实例,需要提供节点ID。不指定节点ID时,默认返回主节点的会话数据。', 'type' => 'string', 'required' => false, 'example' => 'pi-wz954ryd8f893****'], + ], [ 'name' => 'ResultId', 'in' => 'query', - 'schema' => [ - 'description' => '异步请求的ID。'."\n" - .'> 异步调用方式不会立即返回完整结果,首先需要调用该接口获取**ResultId**,然后使用返回数据的**ResultId**,重新发起调用,直到**isFinish**取值为**true**时,返回完整结果。即获取一次完整数据,至少需要调用该接口两次。', - 'type' => 'string', - 'required' => false, - 'example' => 'async__507044db6c4eadfa2dab9b084e80****', - ], + 'schema' => ['description' => '异步请求的ID。'."\n" + .'> 异步调用方式不会立即返回完整结果,首先需要调用该接口获取**ResultId**,然后使用返回数据的**ResultId**,重新发起调用,直到**isFinish**取值为**true**时,返回完整结果。即获取一次完整数据,至少需要调用该接口两次。', 'type' => 'string', 'required' => false, 'example' => 'async__507044db6c4eadfa2dab9b084e80****'], ], ], 'responses' => [ @@ -14242,54 +13038,26 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ 'description' => '返回的数据。', 'type' => 'object', 'properties' => [ - 'Fail' => [ - 'description' => '请求是否失败:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'false', - ], + 'Fail' => ['description' => '请求是否失败:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'false'], 'SessionData' => [ 'description' => '会话数据。', 'type' => 'object', 'properties' => [ - 'TotalSessionCount' => [ - 'description' => '会话总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '988', - ], - 'ActiveSessionCount' => [ - 'description' => '运行中会话总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'MaxActiveTime' => [ - 'description' => '运行中会话执行的最长时间,单位为秒(s)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '6', - ], + 'TotalSessionCount' => ['description' => '会话总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '988'], + 'ActiveSessionCount' => ['description' => '运行中会话总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'MaxActiveTime' => ['description' => '运行中会话执行的最长时间,单位为秒(s)。', 'type' => 'integer', 'format' => 'int64', 'example' => '6'], 'SessionList' => [ 'description' => '会话列表。', 'type' => 'array', @@ -14297,71 +13065,20 @@ 'description' => '会话。', 'type' => 'object', 'properties' => [ - 'SessionId' => [ - 'description' => '会话ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '14521783', - ], - 'User' => [ - 'description' => '数据库用户名。', - 'type' => 'string', - 'example' => 'testUser', - ], - 'Client' => [ - 'description' => '客户端IP地址。', - 'type' => 'string', - 'example' => '47.100.XX.XX', - ], - 'DbName' => [ - 'description' => '数据库名。', - 'type' => 'string', - 'example' => 'dbTest', - ], - 'Command' => [ - 'description' => '会话执行的命令类型。', - 'type' => 'string', - 'example' => 'Query', - ], - 'Time' => [ - 'description' => '会话执行时间,单位为秒(s)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '6', - ], - 'State' => [ - 'description' => '会话状态。', - 'type' => 'string', - 'example' => 'starting', - ], - 'SqlText' => [ - 'description' => '会话执行的SQL语句。', - 'type' => 'string', - 'example' => 'INSERT INTO ...', - ], - 'UserClientAlias' => [ - 'description' => '客户端IP别名。', - 'type' => 'string', - 'example' => 'master-shanghai', - ], - 'TrxId' => [ - 'description' => '会话所在事务ID。', - 'type' => 'string', - 'example' => '754300775132', - ], - 'TrxDuration' => [ - 'description' => '事务持续时间,单位为秒(s)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '6', - ], - 'SqlTemplateId' => [ - 'description' => 'SQL模板ID。'."\n" - ."\n" - .'> 仅PolarDB-X 2.0实例返回该字段。', - 'type' => 'string', - 'example' => 'a7cac1a9', - ], + 'SessionId' => ['description' => '会话ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '14521783'], + 'User' => ['description' => '数据库用户名。', 'type' => 'string', 'example' => 'testUser'], + 'Client' => ['description' => '客户端IP地址。', 'type' => 'string', 'example' => '47.100.XX.XX'], + 'DbName' => ['description' => '数据库名。', 'type' => 'string', 'example' => 'dbTest'], + 'Command' => ['description' => '会话执行的命令类型。', 'type' => 'string', 'example' => 'Query'], + 'Time' => ['description' => '会话执行时间,单位为秒(s)。', 'type' => 'integer', 'format' => 'int64', 'example' => '6'], + 'State' => ['description' => '会话状态。', 'type' => 'string', 'example' => 'starting'], + 'SqlText' => ['description' => '会话执行的SQL语句。', 'type' => 'string', 'example' => 'INSERT INTO ...'], + 'UserClientAlias' => ['description' => '客户端IP别名。', 'type' => 'string', 'example' => 'master-shanghai'], + 'TrxId' => ['description' => '会话所在事务ID。', 'type' => 'string', 'example' => '754300775132'], + 'TrxDuration' => ['description' => '事务持续时间,单位为秒(s)。', 'type' => 'integer', 'format' => 'int64', 'example' => '6'], + 'SqlTemplateId' => ['description' => 'SQL模板ID。'."\n" + ."\n" + .'> 仅PolarDB-X 2.0实例返回该字段。', 'type' => 'string', 'example' => 'a7cac1a9'], ], ], ], @@ -14371,45 +13088,23 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => '数据库账号名。', - 'type' => 'string', - 'example' => 'testUser', - ], - 'TotalCount' => [ - 'description' => '该账号会话总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'ActiveCount' => [ - 'description' => '该账号活跃会话数。'."\n" - ."\n" - .'> 活跃会话判断逻辑: 命令是Query或者Execute,以及未结束事务中的会话。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], + 'Key' => ['description' => '数据库账号名。', 'type' => 'string', 'example' => 'testUser'], + 'TotalCount' => ['description' => '该账号会话总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'ActiveCount' => ['description' => '该账号活跃会话数。'."\n" + ."\n" + .'> 活跃会话判断逻辑: 命令是Query或者Execute,以及未结束事务中的会话。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], 'ThreadIdList' => [ 'description' => '该账号对应的会话ID列表。', 'type' => 'array', - 'items' => [ - 'description' => '会话ID列表。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '[14525727,14526269]', - ], + 'items' => ['description' => '会话ID列表。', 'type' => 'integer', 'format' => 'int64', 'example' => '[14525727,14526269]'], ], 'UserList' => [ 'description' => '会话对应的账号列表。', 'type' => 'array', - 'items' => [ - 'description' => '数据库账号。', - 'type' => 'string', - 'example' => '[\'testUser\']', - ], + 'items' => ['description' => '数据库账号。', 'type' => 'string', 'example' => '[\'testUser\']'], ], ], + 'description' => '', ], ], 'ClientStats' => [ @@ -14418,45 +13113,23 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => '客户端IP地址。', - 'type' => 'string', - 'example' => '47.100.XX.XX', - ], - 'TotalCount' => [ - 'description' => '该客户端IP地址下的会话总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'ActiveCount' => [ - 'description' => '该客户端IP地址下的活跃会话数。'."\n" - ."\n" - .'> 活跃会话判断逻辑: 命令是Query或者Execute,以及未结束事务中的会话。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], + 'Key' => ['description' => '客户端IP地址。', 'type' => 'string', 'example' => '47.100.XX.XX'], + 'TotalCount' => ['description' => '该客户端IP地址下的会话总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'ActiveCount' => ['description' => '该客户端IP地址下的活跃会话数。'."\n" + ."\n" + .'> 活跃会话判断逻辑: 命令是Query或者Execute,以及未结束事务中的会话。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], 'ThreadIdList' => [ 'description' => '该客户端IP对应的会话ID列表。', 'type' => 'array', - 'items' => [ - 'description' => '会话ID列表。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '[14526018,14525956]', - ], + 'items' => ['description' => '会话ID列表。', 'type' => 'integer', 'format' => 'int64', 'example' => '[14526018,14525956]'], ], 'UserList' => [ 'description' => '会话对应的账号列表。', 'type' => 'array', - 'items' => [ - 'description' => '数据库账号。', - 'type' => 'string', - 'example' => '[\'testUser\']', - ], + 'items' => ['description' => '数据库账号。', 'type' => 'string', 'example' => '[\'testUser\']'], ], ], + 'description' => '', ], ], 'DbStats' => [ @@ -14465,132 +13138,68 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => '数据库名。', - 'type' => 'string', - 'example' => 'dbTest', - ], - 'TotalCount' => [ - 'description' => '该数据库会话总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'ActiveCount' => [ - 'description' => '该数据库活跃会话数。'."\n" - ."\n" - .'> 活跃会话判断逻辑: 命令是Query或者Execute,以及未结束事务中的会话。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], + 'Key' => ['description' => '数据库名。', 'type' => 'string', 'example' => 'dbTest'], + 'TotalCount' => ['description' => '该数据库会话总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'ActiveCount' => ['description' => '该数据库活跃会话数。'."\n" + ."\n" + .'> 活跃会话判断逻辑: 命令是Query或者Execute,以及未结束事务中的会话。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], 'ThreadIdList' => [ 'description' => '该数据库名对应的会话ID列表。', 'type' => 'array', - 'items' => [ - 'description' => '会话ID列表。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '[14525727,14526269]', - ], + 'items' => ['description' => '会话ID列表。', 'type' => 'integer', 'format' => 'int64', 'example' => '[14525727,14526269]'], ], 'UserList' => [ 'description' => '会话对应的账号列表。', 'type' => 'array', - 'items' => [ - 'description' => '数据库账号。', - 'type' => 'string', - 'example' => '[\'testUser\']', - ], + 'items' => ['description' => '数据库账号。', 'type' => 'string', 'example' => '[\'testUser\']'], ], ], + 'description' => '', ], ], - 'TimeStamp' => [ - 'description' => '获取会话的时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1659581514000020', - ], + 'TimeStamp' => ['description' => '获取会话的时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1659581514000020'], ], ], - 'ResultId' => [ - 'description' => '异步请求ID。', - 'type' => 'string', - 'example' => 'async__507044db6c4eadfa2dab9b084e80****', - ], - 'IsFinish' => [ - 'description' => '异步请求是否执行完成:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'State' => [ - 'description' => '异步请求的执行状态:'."\n" - ."\n" - .'- **RUNNING**:正在运行。'."\n" - ."\n" - .'- **SUCCESS**:成功。'."\n" - ."\n" - .'- **FAIL**:失败。', - 'type' => 'string', - 'example' => 'SUCCESS', - ], - 'Complete' => [ - 'description' => '异步请求是否执行完成:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Timestamp' => [ - 'description' => '执行时间,格式为Unix时间戳,单位为毫秒(ms)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1660100753556', - ], + 'ResultId' => ['description' => '异步请求ID。', 'type' => 'string', 'example' => 'async__507044db6c4eadfa2dab9b084e80****'], + 'IsFinish' => ['description' => '异步请求是否执行完成:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'State' => ['description' => '异步请求的执行状态:'."\n" + ."\n" + .'- **RUNNING**:正在运行。'."\n" + ."\n" + .'- **SUCCESS**:成功。'."\n" + ."\n" + .'- **FAIL**:失败。', 'type' => 'string', 'example' => 'SUCCESS'], + 'Complete' => ['description' => '异步请求是否执行完成:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'Timestamp' => ['description' => '执行时间,格式为Unix时间戳,单位为毫秒(ms)。', 'type' => 'integer', 'format' => 'int64', 'example' => '1660100753556'], ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Fail\\": false,\\n \\"SessionData\\": {\\n \\"TotalSessionCount\\": 988,\\n \\"ActiveSessionCount\\": 10,\\n \\"MaxActiveTime\\": 6,\\n \\"SessionList\\": [\\n {\\n \\"SessionId\\": 14521783,\\n \\"User\\": \\"testUser\\",\\n \\"Client\\": \\"47.100.XX.XX\\",\\n \\"DbName\\": \\"dbTest\\",\\n \\"Command\\": \\"Query\\",\\n \\"Time\\": 6,\\n \\"State\\": \\"starting\\",\\n \\"SqlText\\": \\"INSERT INTO ...\\",\\n \\"UserClientAlias\\": \\"master-shanghai\\",\\n \\"TrxId\\": \\"754300775132\\",\\n \\"TrxDuration\\": 6,\\n \\"SqlTemplateId\\": \\"a7cac1a9\\"\\n }\\n ],\\n \\"UserStats\\": [\\n {\\n \\"Key\\": \\"testUser\\",\\n \\"TotalCount\\": 2,\\n \\"ActiveCount\\": 1,\\n \\"ThreadIdList\\": [\\n 0\\n ],\\n \\"UserList\\": [\\n \\"[\'testUser\']\\"\\n ]\\n }\\n ],\\n \\"ClientStats\\": [\\n {\\n \\"Key\\": \\"47.100.XX.XX\\",\\n \\"TotalCount\\": 2,\\n \\"ActiveCount\\": 1,\\n \\"ThreadIdList\\": [\\n 0\\n ],\\n \\"UserList\\": [\\n \\"[\'testUser\']\\"\\n ]\\n }\\n ],\\n \\"DbStats\\": [\\n {\\n \\"Key\\": \\"dbTest\\",\\n \\"TotalCount\\": 2,\\n \\"ActiveCount\\": 1,\\n \\"ThreadIdList\\": [\\n 0\\n ],\\n \\"UserList\\": [\\n \\"[\'testUser\']\\"\\n ]\\n }\\n ],\\n \\"TimeStamp\\": 1659581514000020\\n },\\n \\"ResultId\\": \\"async__507044db6c4eadfa2dab9b084e80****\\",\\n \\"IsFinish\\": true,\\n \\"State\\": \\"SUCCESS\\",\\n \\"Complete\\": true,\\n \\"Timestamp\\": 1660100753556\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetMySQLAllSessionAsyncResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Fail>false</Fail>\\n <SessionData>\\n <TotalSessionCount>988</TotalSessionCount>\\n <ActiveSessionCount>10</ActiveSessionCount>\\n <MaxActiveTime>6</MaxActiveTime>\\n <SessionList>\\n <SessionId>14521783</SessionId>\\n <User>testUser</User>\\n <Client>47.100.XX.XX</Client>\\n <DbName>dbTest</DbName>\\n <Command>Query</Command>\\n <Time>6</Time>\\n <State>starting</State>\\n <SqlText>INSERT INTO ...</SqlText>\\n <UserClientAlias>master-shanghai</UserClientAlias>\\n <TrxId>754300775132</TrxId>\\n <TrxDuration>6</TrxDuration>\\n </SessionList>\\n <UserStats>\\n <Key>testUser</Key>\\n <TotalCount>984</TotalCount>\\n <ActiveCount>11</ActiveCount>\\n <UserList>[\'testUser\']</UserList>\\n </UserStats>\\n <ClientStats>\\n <Key>47.100.XX.XX</Key>\\n <TotalCount>50</TotalCount>\\n <ActiveCount>3</ActiveCount>\\n <UserList>[\'testUser\']</UserList>\\n </ClientStats>\\n <DbStats>\\n <Key>dbTest</Key>\\n <TotalCount>60</TotalCount>\\n <ActiveCount>5</ActiveCount>\\n <UserList>[\'testUser\']</UserList>\\n </DbStats>\\n <TimeStamp>1659581514000020</TimeStamp>\\n </SessionData>\\n <ResultId>async__507044db6c4eadfa2dab9b084e80****</ResultId>\\n <IsFinish>true</IsFinish>\\n <State>SUCCESS</State>\\n <Complete>true</Complete>\\n <Timestamp>1660100753556</Timestamp>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetMySQLAllSessionAsyncResponse>","errorExample":""}]', + 'staticInfo' => ['returnType' => 'synchronous'], 'title' => '获取实例当前会话', 'description' => '> - 异步调用方式不会立即返回完整结果,首先需要调用该接口获取ResultId,然后使用返回数据的ResultId,重新发起调用,直到**isFinish**取值为**true**时,返回完整结果。即获取一次完整数据,至少需要调用该接口两次。'."\n" .'> - 对于RDS MySQL 8.0实例,小版本小于20230610时,并发执行COM_STATISTICS、COM_CHANGE_USER等命令和SHOW PROCESSLIST语句时,可能导致死锁(表现为实例无法连接),建议[升级](~~96059~~)到最新小版本。'."\n" @@ -14600,169 +13209,166 @@ .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" ."\n" .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - ], - 'CreateStorageAnalysisTask' => [ - 'summary' => '调用CreateStorageAnalysisTask接口,创建空间分析任务,获取数据库及表的空间使用数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetMySQLAllSessionAsync'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetMySQLAllSessionAsync', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Fail\\": false,\\n \\"SessionData\\": {\\n \\"TotalSessionCount\\": 988,\\n \\"ActiveSessionCount\\": 10,\\n \\"MaxActiveTime\\": 6,\\n \\"SessionList\\": [\\n {\\n \\"SessionId\\": 14521783,\\n \\"User\\": \\"testUser\\",\\n \\"Client\\": \\"47.100.XX.XX\\",\\n \\"DbName\\": \\"dbTest\\",\\n \\"Command\\": \\"Query\\",\\n \\"Time\\": 6,\\n \\"State\\": \\"starting\\",\\n \\"SqlText\\": \\"INSERT INTO ...\\",\\n \\"UserClientAlias\\": \\"master-shanghai\\",\\n \\"TrxId\\": \\"754300775132\\",\\n \\"TrxDuration\\": 6,\\n \\"SqlTemplateId\\": \\"a7cac1a9\\"\\n }\\n ],\\n \\"UserStats\\": [\\n {\\n \\"Key\\": \\"testUser\\",\\n \\"TotalCount\\": 2,\\n \\"ActiveCount\\": 1,\\n \\"ThreadIdList\\": [\\n 0\\n ],\\n \\"UserList\\": [\\n \\"[\'testUser\']\\"\\n ]\\n }\\n ],\\n \\"ClientStats\\": [\\n {\\n \\"Key\\": \\"47.100.XX.XX\\",\\n \\"TotalCount\\": 2,\\n \\"ActiveCount\\": 1,\\n \\"ThreadIdList\\": [\\n 0\\n ],\\n \\"UserList\\": [\\n \\"[\'testUser\']\\"\\n ]\\n }\\n ],\\n \\"DbStats\\": [\\n {\\n \\"Key\\": \\"dbTest\\",\\n \\"TotalCount\\": 2,\\n \\"ActiveCount\\": 1,\\n \\"ThreadIdList\\": [\\n 0\\n ],\\n \\"UserList\\": [\\n \\"[\'testUser\']\\"\\n ]\\n }\\n ],\\n \\"TimeStamp\\": 1659581514000020\\n },\\n \\"ResultId\\": \\"async__507044db6c4eadfa2dab9b084e80****\\",\\n \\"IsFinish\\": true,\\n \\"State\\": \\"SUCCESS\\",\\n \\"Complete\\": true,\\n \\"Timestamp\\": 1660100753556\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetMySQLAllSessionAsyncResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Fail>false</Fail>\\n <SessionData>\\n <TotalSessionCount>988</TotalSessionCount>\\n <ActiveSessionCount>10</ActiveSessionCount>\\n <MaxActiveTime>6</MaxActiveTime>\\n <SessionList>\\n <SessionId>14521783</SessionId>\\n <User>testUser</User>\\n <Client>47.100.XX.XX</Client>\\n <DbName>dbTest</DbName>\\n <Command>Query</Command>\\n <Time>6</Time>\\n <State>starting</State>\\n <SqlText>INSERT INTO ...</SqlText>\\n <UserClientAlias>master-shanghai</UserClientAlias>\\n <TrxId>754300775132</TrxId>\\n <TrxDuration>6</TrxDuration>\\n </SessionList>\\n <UserStats>\\n <Key>testUser</Key>\\n <TotalCount>984</TotalCount>\\n <ActiveCount>11</ActiveCount>\\n <UserList>[\'testUser\']</UserList>\\n </UserStats>\\n <ClientStats>\\n <Key>47.100.XX.XX</Key>\\n <TotalCount>50</TotalCount>\\n <ActiveCount>3</ActiveCount>\\n <UserList>[\'testUser\']</UserList>\\n </ClientStats>\\n <DbStats>\\n <Key>dbTest</Key>\\n <TotalCount>60</TotalCount>\\n <ActiveCount>5</ActiveCount>\\n <UserList>[\'testUser\']</UserList>\\n </DbStats>\\n <TimeStamp>1659581514000020</TimeStamp>\\n </SessionData>\\n <ResultId>async__507044db6c4eadfa2dab9b084e80****</ResultId>\\n <IsFinish>true</IsFinish>\\n <State>SUCCESS</State>\\n <Complete>true</Complete>\\n <Timestamp>1660100753556</Timestamp>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetMySQLAllSessionAsyncResponse>","errorExample":""}]', + ], + 'GetPartitionsHeatmap' => [ + 'summary' => '调用GetPartitionsHeatmap接口,查看PolarDB-X 2.0分区访问热度和数据热点。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'read', + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'InstanceId', + 'name' => 'ConsoleContext', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze1jdv45i7l6****', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ - 'name' => 'NodeId', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '节点ID。'."\n" - .'对于MongoDB实例,通过该参数指定节点进行空间分析。调用[DescribeRoleZoneInfo](~~123802~~)接口,可以查询MongoDB实例各个节点的详细信息。'."\n" - ."\n" - .'- 当传入目标节点的**InsName**(节点ID)时,例如`d-bp1872fa24d5****`,调用该接口分析其对应的Hidden节点。'."\n" - .'- 当传入目标节点的`InsName#RoleId`时,例如`d-bp1872fa24d5****#299****5`,调用该接口分析指定的节点。'."\n" - ."\n" - .'><notice>对于MongoDB副本集实例,不传入此参数时,调用该接口会默认分析唯一的Hidden节点。对于MongoDB分片集群实例,推荐传入此参数,指定目标节点。</notice>', - 'type' => 'string', - 'required' => false, - 'example' => 'd-bp1872fa24d5****', - ], + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => false, 'example' => 'pxc-hzrciqy62c****'], ], [ - 'name' => 'DbName', + 'name' => 'TimeRange', 'in' => 'query', - 'schema' => [ - 'description' => '数据库名。传入该参数时,分析指定数据库的空间使用情况。', - 'type' => 'string', - 'required' => false, - 'example' => 'testdb01', - ], + 'schema' => ['description' => '需要查询的时间范围:'."\n" + ."\n" + .'- **LAST\\_ONE\\_HOURS**:过去一小时。'."\n" + .'- **LAST\\_SIX\\_HOURS**:过去六小时。'."\n" + .'- **LAST\\_ONE\\_DAYS**:过去一天。'."\n" + .'- **LAST\\_THREE\\_DAYS**:过去三天。'."\n" + .'- **LAST\\_SEVEN\\_DAYS**:过去七天。', 'type' => 'string', 'required' => false, 'example' => 'LAST_SIX_HOURS'], ], [ - 'name' => 'TableName', + 'name' => 'Type', 'in' => 'query', - 'schema' => [ - 'description' => '表名。传入该参数时,分析指定数据库中指定表的空间使用情况。传入该参数时,必须同时传入**DbName**,指定该表所属的数据库。', - 'type' => 'string', - 'required' => false, - 'example' => 'test_table', - ], + 'schema' => ['description' => '需要查询的数据类型:'."\n" + .'- **READ_ROWS**:读行数。'."\n" + .'- **WRITTEN_ROWS**:写行数。'."\n" + .'- **READ\\_WRITTEN\\_ROWS**:读写行数。'."\n" + .'- **UPDATE_ROWS**:更新行数。'."\n" + .'- **INSERTED_ROWS**:插入行数。'."\n" + .'- **DELETED_ROWS**:删除行数。'."\n" + .'- **READ\\_ROWS\\_WITH\\_DN**:以DN视角返回的读行数。'."\n" + .'- **WRITTEN\\_ROWS\\_WITH\\_DN**:以DN视角返回的写行数。'."\n" + .'- **READ\\_WRITTEN\\_ROWS\\_WITH\\_DN**:以DN视角返回的读写行数。', 'type' => 'string', 'required' => false, 'example' => 'WRITTEN_ROWS_WITH_DN'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '返回信息列表。', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'Data' => [ - 'description' => '返回的数据。', - 'type' => 'object', - 'properties' => [ - 'TaskId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => '910f83f4b96df0524ddc5749f61539f8', - ], - 'CreateTaskSuccess' => [ - 'description' => '创建任务是否成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'ErrorMessage' => [ - 'description' => '创建任务失败时的错误提示。', - 'type' => 'string', - 'example' => 'unknown error', - ], - ], - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'Data' => ['description' => '分布式数据库的数据热点数据。返回JSON格式的文本。', 'type' => 'string', 'example' => '{'."\n" + .' "boundAxis": ['."\n" + .' {'."\n" + .' "bound": "A,B,C,D",'."\n" + .' "labels": ['."\n" + .' "L1",'."\n" + .' "L2",'."\n" + .' "L3",'."\n" + .' "L4"'."\n" + .' ],'."\n" + .' "rows": 3171'."\n" + .' },'."\n" + .' {'."\n" + .' "bound": "A,B,C,D",'."\n" + .' "labels": ['."\n" + .' "L1",'."\n" + .' "L2",'."\n" + .' "L3",'."\n" + .' "L4"'."\n" + .' ],'."\n" + .' "rows": 277128'."\n" + .' }'."\n" + .' ],'."\n" + .' "dataMap": {'."\n" + .' "READ_WRITTEN_ROWS": ['."\n" + .' ['."\n" + .' 0,'."\n" + .' 0,'."\n" + .' 0'."\n" + .' ],'."\n" + .' ['."\n" + .' 0,'."\n" + .' 0,'."\n" + .' 0'."\n" + .' ]'."\n" + .' ]'."\n" + .' },'."\n" + .' "timeAxis": ['."\n" + .' 1671701056070,'."\n" + .' 1671701116551,'."\n" + .' 1671701177020'."\n" + .' ]'."\n" + .'}'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'D00DB161-FEF6-5428-B37A-8D29A4C2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": \\"{\\\\n \\\\\\"boundAxis\\\\\\": [\\\\n {\\\\n \\\\\\"bound\\\\\\": \\\\\\"A,B,C,D\\\\\\",\\\\n \\\\\\"labels\\\\\\": [\\\\n \\\\\\"L1\\\\\\",\\\\n \\\\\\"L2\\\\\\",\\\\n \\\\\\"L3\\\\\\",\\\\n \\\\\\"L4\\\\\\"\\\\n ],\\\\n \\\\\\"rows\\\\\\": 3171\\\\n },\\\\n {\\\\n \\\\\\"bound\\\\\\": \\\\\\"A,B,C,D\\\\\\",\\\\n \\\\\\"labels\\\\\\": [\\\\n \\\\\\"L1\\\\\\",\\\\n \\\\\\"L2\\\\\\",\\\\n \\\\\\"L3\\\\\\",\\\\n \\\\\\"L4\\\\\\"\\\\n ],\\\\n \\\\\\"rows\\\\\\": 277128\\\\n }\\\\n ],\\\\n \\\\\\"dataMap\\\\\\": {\\\\n \\\\\\"READ_WRITTEN_ROWS\\\\\\": [\\\\n [\\\\n 0,\\\\n 0,\\\\n 0\\\\n ],\\\\n [\\\\n 0,\\\\n 0,\\\\n 0\\\\n ]\\\\n ]\\\\n },\\\\n \\\\\\"timeAxis\\\\\\": [\\\\n 1671701056070,\\\\n 1671701116551,\\\\n 1671701177020\\\\n ]\\\\n}\\",\\n \\"RequestId\\": \\"D00DB161-FEF6-5428-B37A-8D29A4C2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetPartitionsHeatmapResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>{\\n \\"boundAxis\\": [\\n {\\n \\"bound\\": \\"A,B,C,D\\",\\n \\"labels\\": [\\n \\"L1\\",\\n \\"L2\\",\\n \\"L3\\",\\n \\"L4\\"\\n ],\\n \\"rows\\": 3171\\n },\\n {\\n \\"bound\\": \\"A,B,C,D\\",\\n \\"labels\\": [\\n \\"L1\\",\\n \\"L2\\",\\n \\"L3\\",\\n \\"L4\\"\\n ],\\n \\"rows\\": 277128\\n }\\n ],\\n \\"dataMap\\": {\\n \\"READ_WRITTEN_ROWS\\": [\\n [\\n 0,\\n 0,\\n 0\\n ],\\n [\\n 0,\\n 0,\\n 0\\n ]\\n ]\\n },\\n \\"timeAxis\\": [\\n 1671701056070,\\n 1671701116551,\\n 1671701177020\\n ]\\n}</Data>\\n <RequestId>D00DB161-FEF6-5428-B37A-8D29A4C2****</RequestId>\\n <Success>true</Success>\\n</GetPartitionsHeatmapResponse>","errorExample":""}]', + 'title' => '获取分区热度信息', + 'description' => '该接口不建议用户自行调用,因为返回的数据格式比较特殊,自行解析会非常复杂,建议使用阿里云DAS的[分区热力图](~~470302~~)功能查看该数据。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetPartitionsHeatmap', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"TaskId\\": \\"910f83f4b96df0524ddc5749f61539f8\\",\\n \\"CreateTaskSuccess\\": false,\\n \\"ErrorMessage\\": \\"unknown error\\"\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": true\\n}","type":"json"}]', - 'title' => '创建空间分析任务', - 'description' => '- 本接口仅适用于RDS MySQL、PolarDB MySQL版和MongoDB实例。'."\n" - .'- 对于RDS MySQL和PolarDB MySQL版实例,本接口对应于旧版空间分析功能,该接口生成的任务无法在DAS控制台新版空间分析页面查看。如有需要查看任务及结果,请调用接口获取数据后自行保存。'."\n" - .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', ], - 'GetStorageAnalysisResult' => [ - 'summary' => '调用GetStorageAnalysisResult接口,查询空间分析任务状态和分析结果。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetPfsMetricTrends' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -14771,46 +13377,44 @@ 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '204031', - 'abilityTreeNodes' => [ - 'FEATUREhdm3TU4OK', - ], + 'abilityTreeNodes' => ['FEATUREhdmF0MV2I'], ], 'parameters' => [ [ 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze1jdv45i7l6****', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => false, 'example' => 'rm-m5ea73876ukci****'], ], [ 'name' => 'NodeId', - 'in' => 'query', - 'schema' => [ - 'description' => '节点ID。'."\n" - ."\n" - .'> 预留参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], + 'in' => 'formData', + 'schema' => ['description' => '节点ID。'."\n" + ."\n" + .'> 对于RDS MySQL集群系列或PolarDB MySQL版数据库实例,需要提供节点ID。', 'type' => 'string', 'required' => false, 'example' => 'r-x****-db-0'], ], [ - 'name' => 'TaskId', - 'in' => 'query', - 'schema' => [ - 'description' => '任务ID,调用[CreateStorageAnalysisTask](~~2639140~~)接口返回的任务ID。', - 'type' => 'string', - 'required' => true, - 'example' => '910f83f4b96df0524ddc5749f615****', - ], + 'name' => 'Metric', + 'in' => 'formData', + 'schema' => ['description' => '需要查询趋势的指标:'."\n" + ."\n" + .'- **count**:执行次数。'."\n" + .'- **avgRt**:平均执行时间。'."\n" + .'- **rtRate**:耗时比例。'."\n" + .'- **rowsExamined**:总扫描行数。', 'type' => 'string', 'required' => false, 'example' => 'Count'], + ], + [ + 'name' => 'StartTime', + 'in' => 'formData', + 'schema' => ['description' => '查询开始时间,格式为unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1677461663092'], + ], + [ + 'name' => 'EndTime', + 'in' => 'formData', + 'schema' => ['description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。'."\n" + .'> 查询结束时间需晚于查询开始时间,最多可查看最近一个月内任意七天的数据。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1678432430967'], ], ], 'responses' => [ @@ -14818,344 +13422,77 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], 'Data' => [ - 'description' => '返回的数据。', + 'description' => '返回数据。', 'type' => 'object', - 'properties' => [ - 'TaskId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => '910f83f4b96df0524ddc5749f615****', - ], - 'TaskFinish' => [ - 'description' => '任务是否结束:'."\n" - ."\n" - .'- **true**:任务结束。'."\n" - .'- **false**:任务未结束。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'TaskSuccess' => [ - 'description' => '任务是否成功:'."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。'."\n" - ."\n" - .'> 当任务结束时才返回该字段。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'TaskState' => [ - 'description' => '空间分析任务的状态:'."\n" - ."\n" - .'- **INIT**:初始化。'."\n" - .'- **PENDING**:等待执行。'."\n" - .'- **RECEIVED**:任务已选择。'."\n" - .'- **RUNNING**:任务执行中。'."\n" - .'- **RETRY**:重试任务。'."\n" - .'- **SUCCESS**:任务成功。'."\n" - .'- **FAILURE**:任务失败。', - 'type' => 'string', - 'example' => 'SUCCESS', - ], - 'TaskProgress' => [ - 'description' => '任务进度,取值为0~100的整数。'."\n" - ."\n" - .'> 例如取值为100时,表示任务进度100%。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'TotalDbCount' => [ - 'description' => '空间分析任务需要分析的数据库数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '32', - ], - 'AnalyzedDbCount' => [ - 'description' => '已分析结束的数据库数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'StorageAnalysisResult' => [ - 'description' => '空间分析详情。', + 'additionalProperties' => [ + 'type' => 'array', + 'items' => [ 'type' => 'object', 'properties' => [ - 'TotalStorageSize' => [ - 'description' => '实例总空间大小,单位为Byte。'."\n" - ."\n" - .'> 当前仅支持RDS MySQL。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '214748364800', - ], - 'TotalUsedStorageSize' => [ - 'description' => '已使用的空间,单位为Byte。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '68345135104', - ], - 'TotalFreeStorageSize' => [ - 'description' => '剩余可用空间,单位为Byte。'."\n" - ."\n" - .'> 当前仅支持RDS MySQL。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '146403229696', - ], - 'DailyIncrement' => [ - 'description' => '近一周空间日均增长量估算值,单位为Byte。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'EstimateAvailableDays' => [ - 'description' => '剩余空间可使用天数估算值。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '99', - ], - 'AnalysisSuccess' => [ - 'description' => '数据库和表空间分析是否成功。'."\n" - ."\n" - .'- **true**:成功。'."\n" - .'- **false**:失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'AnalysisErrorType' => [ - 'description' => '数据库和表空间分析任务失败类型:'."\n" - .'- **DB_OR_TABLE_NOT_EXIST**:指定的数据库或表不存在。'."\n" - .'- **DB_NOT_EXIST**:指定的数据库不存在。', - 'type' => 'string', - 'example' => 'DB_NOT_EXIST', - ], - 'NeedOptimizeItemList' => [ - 'description' => '根据DAS默认规则生成的待优化项列表。用户也可根据自身业务情况忽略该列表中的内容,然后根据接口返回的其他基础数据自定义规则生成待优化项列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'DbName' => [ - 'description' => '数据库名。', - 'type' => 'string', - 'example' => 'testdb01', - ], - 'TableName' => [ - 'description' => '表名。', - 'type' => 'string', - 'example' => 'test_table', - ], - 'OptimizeItemName' => [ - 'description' => '待优化项:'."\n" - .'- **NEED_ANALYZE_TABLE**:`information_schema.tables`中该表空间统计数据和物理文件大小差值超过50 GB。仅适用于RDS MySQL和PolarDB MySQL版。'."\n" - .'- **NEED_OPTIMIZE_TABLE**:表的碎片空间大于6 GB,并且碎片率大于30%。表的碎片率计算方式:'."\n" - .' - RDS MySQL和PolarDB MySQL版为:`DataFree/(DataSize+IndexSize+DataFree)`,本接口中即`DataFree/PhyTotalSize`。'."\n" - .' - MongoDB为:`FragmentSize/PhyTotalSize`。'."\n" - .'- **TABLE_ENGINE**:表使用的存储引擎不是InnoDB或者XEngine。仅适用于RDS MySQL和PolarDB MySQL版。'."\n" - .'- **AUTO_INCREMENT_ID_BE_TO_RUN_OUT**:表自增ID使用率超过80%。仅适用于RDS MySQL和PolarDB MySQL版。'."\n" - .'- **DUPLICATE_INDEX**:索引冗余或者重复。仅适用于RDS MySQL和PolarDB MySQL版。'."\n" - .'- **TABLE_SIZE**:单表空间大于50 GB。仅适用于RDS MySQL和PolarDB MySQL版。'."\n" - .'- **TABLE_ROWS_AND_AVG_ROW_LENGTH**:单表行数大于500万,且平均行长大于10 KB。仅适用于RDS MySQL和PolarDB MySQL版。'."\n" - .'- **TOTAL_DATA_FREE**:实例可回收空间大于60 GB,且总碎片率大于5%。'."\n" - .'- **STORAGE_USED_PERCENT**:实例空间使用率大于90%。', - 'type' => 'string', - 'example' => 'NEED_OPTIMIZE_TABLE', - ], - 'OptimizeAdvice' => [ - 'description' => '优化建议:'."\n" - .'- **NEED_ANALYZE_TABLE**:如有需要可在业务低峰时期对相关的表执行`ANALYZE TABLE`。仅适用于RDS MySQL和PolarDB MySQL版。'."\n" - .'- **NEED_OPTIMIZE_TABLE**:如有需要可在业务低峰时期进行表空间碎片回收。'."\n" - .'- **CHANGE_TABLE_ENGINE_IF_NECESSARY**:如果有需要可以在评估风险后更改表的存储引擎类型。仅适用于RDS MySQL和PolarDB MySQL版。'."\n" - .'- **AUTO_INCREMENT_ID_BE_TO_RUN_OUT**:注意自增ID使用情况。仅适用于RDS MySQL和PolarDB MySQL版。'."\n" - .'- **DUPLICATE_INDEX**:建议优化精简表上的索引。仅适用于RDS MySQL和PolarDB MySQL版。'."\n" - .'- **TABLE_SIZE**:注意表大小。仅适用于RDS MySQL和PolarDB MySQL版。'."\n" - .'- **TABLE_ROWS_AND_AVG_ROW_LENGTH**:注意表行数以及平均行长。仅适用于RDS MySQL和PolarDB MySQL版。'."\n" - .'- **STORAGE_USED_PERCENT**:注意空间使用情况,避免实例写满后锁定。', - 'type' => 'string', - 'example' => 'NEED_OPTIMIZE_TABLE', - ], - 'AssociatedData' => [ - 'description' => '待优化项关联数据,以JSON格式返回。', - 'type' => 'string', - 'example' => '{'."\n" - .' "autoIncrementCurrentValue": 2147483647,'."\n" - .' "autoIncrementRatio": 1,'."\n" - .' "dbName": "testdb01",'."\n" - .' "maximumValue": 2147483647,'."\n" - .' "columnName": "id",'."\n" - .' "tableName": "test_table"'."\n" - .'}', - ], - ], - ], - ], - 'TableStats' => [ - 'description' => '表空间数据列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'DbName' => [ - 'description' => '数据库名。', - 'type' => 'string', - 'example' => 'testdb01', - ], - 'TableName' => [ - 'description' => '表名。', - 'type' => 'string', - 'example' => 'test_table', - ], - 'TableType' => [ - 'description' => '表类型。'."\n" - ."\n" - .'> 该参数适用于RDS MySQL和PolarDB MySQL版。', - 'type' => 'string', - 'example' => 'BASE TABLE', - ], - 'Engine' => [ - 'description' => '表使用的存储引擎类型。'."\n" - ."\n" - .'> 该参数适用于RDS MySQL和PolarDB MySQL版。', - 'type' => 'string', - 'example' => 'InnoDB', - ], - 'PhysicalFileSize' => [ - 'description' => '表物理文件大小,单位为Byte。'."\n" - .'> 该参数适用于RDS MySQL和PolarDB MySQL版。部分实例因部署形态的原因不支持获取该数据。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '3057655808', - ], - 'PhyTotalSize' => [ - 'description' => '表空间大小,单位为Byte。'."\n" - .'> 对于RDS MySQL和PolarDB MySQL版,取值为**DataSize**、**IndexSize**、**DataFree**之和;对于MongoDB,取值为**DataSize**、**IndexSize**之和。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '3012493312', - ], - 'TotalSize' => [ - 'description' => '- 对于RDS MySQL和PolarDB MySQL版,该参数是表数据和索引占用空间大小,单位为Byte。取值为**DataSize**、**IndexSize**之和。'."\n" - ."\n" - .'- 对于MongoDB,该参数是Block Manager实际分配的空间大小,单位为Byte。MongoDB实例压缩率计算方式为:`TotalSize/DataSize`。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '3005153280', - ], - 'IndexSize' => [ - 'description' => '索引占用的空间大小,单位为Byte。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1022296064', - ], - 'DataSize' => [ - 'description' => '- 对于RDS MySQL和PolarDB MySQL版,该参数是数据占用的空间大小,单位为Byte。'."\n" - .'- 对于MongoDB,该参数是未压缩数据的大小,即数据量,单位为Byte。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1982857216', - ], - 'DataFree' => [ - 'description' => '碎片空间大小,单位为Byte。'."\n" - ."\n" - .'> 该参数适用于RDS MySQL和PolarDB MySQL版。表碎片率计算方式一般为:`DataFree/(DataSize+IndexSize+DataFree)`,本接口中即`DataFree/PhyTotalSize`。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '7340032', - ], - 'TableRows' => [ - 'description' => '表行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '12794732', - ], - 'AvgRowLength' => [ - 'description' => '平均行长,单位为Byte。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '154', - ], - 'FragmentSize' => [ - 'description' => '可回收空间大小(碎片空间大小),单位为Byte。'."\n" - ."\n" - .'> 该参数仅适用于MongoDB实例。表碎片率计算方式为:`FragmentSize/PhyTotalSize`。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '362221568', - ], - ], - ], - ], + 'Timestamp' => ['type' => 'string', 'example' => '1681975870000', 'description' => '时间戳,格式为unix时间戳,单位为毫秒。'], + 'Value' => ['type' => 'any', 'description' => '指标值。', 'example' => '478.28'], ], + 'description' => '返回指标趋势结果。', ], + 'description' => '返回数据列表。', ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'F4C27966-284E-51C4-9407-DB50CAB8****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"TaskId\\": \\"910f83f4b96df0524ddc5749f615****\\",\\n \\"TaskFinish\\": true,\\n \\"TaskSuccess\\": true,\\n \\"TaskState\\": \\"SUCCESS\\",\\n \\"TaskProgress\\": 100,\\n \\"TotalDbCount\\": 32,\\n \\"AnalyzedDbCount\\": 2,\\n \\"StorageAnalysisResult\\": {\\n \\"TotalStorageSize\\": 214748364800,\\n \\"TotalUsedStorageSize\\": 68345135104,\\n \\"TotalFreeStorageSize\\": 146403229696,\\n \\"DailyIncrement\\": 0,\\n \\"EstimateAvailableDays\\": 99,\\n \\"AnalysisSuccess\\": true,\\n \\"AnalysisErrorType\\": \\"DB_NOT_EXIST\\",\\n \\"NeedOptimizeItemList\\": [\\n {\\n \\"DbName\\": \\"testdb01\\",\\n \\"TableName\\": \\"test_table\\",\\n \\"OptimizeItemName\\": \\"NEED_OPTIMIZE_TABLE\\",\\n \\"OptimizeAdvice\\": \\"NEED_OPTIMIZE_TABLE\\",\\n \\"AssociatedData\\": \\"{\\\\n \\\\\\"autoIncrementCurrentValue\\\\\\": 2147483647,\\\\n \\\\\\"autoIncrementRatio\\\\\\": 1,\\\\n \\\\\\"dbName\\\\\\": \\\\\\"testdb01\\\\\\",\\\\n \\\\\\"maximumValue\\\\\\": 2147483647,\\\\n \\\\\\"columnName\\\\\\": \\\\\\"id\\\\\\",\\\\n \\\\\\"tableName\\\\\\": \\\\\\"test_table\\\\\\"\\\\n}\\"\\n }\\n ],\\n \\"TableStats\\": [\\n {\\n \\"DbName\\": \\"testdb01\\",\\n \\"TableName\\": \\"test_table\\",\\n \\"TableType\\": \\"BASE TABLE\\",\\n \\"Engine\\": \\"InnoDB\\",\\n \\"PhysicalFileSize\\": 3057655808,\\n \\"PhyTotalSize\\": 3012493312,\\n \\"TotalSize\\": 3005153280,\\n \\"IndexSize\\": 1022296064,\\n \\"DataSize\\": 1982857216,\\n \\"DataFree\\": 7340032,\\n \\"TableRows\\": 12794732,\\n \\"AvgRowLength\\": 154,\\n \\"FragmentSize\\": 362221568\\n }\\n ]\\n }\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": true\\n}","type":"json"}]', - 'title' => '获取空间分析任务的结果', - 'description' => '> 物理文件大小获取的是文件真实大小(需实例部署形态支持);表级别其他数据基于`information_schema.tables`。由于MySQL中统计信息不是实时更新,所以可能和物理文件大小存在差异,如有需要获取最新数据,可在业务低峰时期对相关的表执行`ANALYZE TABLE`。'."\n" + 'title' => '查询指定指标趋势', + 'summary' => '调用GetPfsMetricTrends接口,查询数据库实例性能洞察(新版)指定指标的趋势。', + 'description' => '使用该接口需满足以下前提条件:'."\n" ."\n" - .'- 本接口只适用于RDS MySQL、PolarDB MySQL版和MongoDB实例。'."\n" - .'- 对于RDS MySQL和PolarDB MySQL版实例,本接口对应于旧版空间分析功能,该接口生成的任务无法在DAS控制台新版空间分析页面查看。如有需要查看任务及结果,请调用接口后自行保存数据。'."\n" .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - ], - 'GetAutoIncrementUsageStatistic' => [ - 'summary' => '调用GetAutoIncrementUsageStatistic接口,获取表自增ID的使用数据。', - 'methods' => [ - 'get', - 'post', + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 目标数据库实例为RDS MySQL或PolarDB MySQL版。'."\n" + .'- 目标数据库实例已开启性能洞察(新版),详情请参见[性能洞察(新版)](~~469117~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPfsMetricTrends'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetPfsMetricTrends', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Data\\": {\\n \\"key\\": [\\n {\\n \\"Timestamp\\": \\"1681975870000\\",\\n \\"Value\\": \\"478.28\\"\\n }\\n ]\\n },\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"F4C27966-284E-51C4-9407-DB50CAB8****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetPfsMetricTrendsResponse>\\n <Message>Successful</Message>\\n <RequestId>F4C27966-284E-51C4-9407-DB50CAB8****</RequestId>\\n <Data>\\n <Timestamp>1681975870000</Timestamp>\\n <Value>478.28</Value>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetPfsMetricTrendsResponse>","errorExample":""}]', + ], + 'GetPfsSqlSample' => [ + 'summary' => '调用GetPfsSqlSample接口,获取性能洞察(新版)功能的SQL样本数据。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -15164,292 +13501,255 @@ 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeCode' => '152860', + 'abilityTreeNodes' => ['FEATUREhdmFT57I0'], ], 'parameters' => [ [ 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。'."\n" + .'>仅支持RDS MySQL和PolarDB MySQL版数据库实例。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze1jdv45i7l6****'], ], [ - 'name' => 'DbNames', - 'in' => 'query', - 'schema' => [ - 'description' => '数据库名。传入此参数时,查询指定数据库中表自增ID使用情况,不传入时查询实例上所有数据库的表自增ID使用情况。'."\n" - .'>数据格式为JSONArray,例如[\'db1\',\'db2\'],数据库名间用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => false, - 'example' => '[\'db1\',\'db2\']', - ], + 'name' => 'NodeId', + 'in' => 'formData', + 'schema' => ['description' => '节点ID。'."\n" + ."\n" + .'> 对于RDS MySQL集群系列或PolarDB MySQL版数据库实例,需要提供节点ID。', 'type' => 'string', 'required' => false, 'example' => 'r-x****-db-0'], ], [ - 'name' => 'RatioFilter', - 'in' => 'query', - 'schema' => [ - 'description' => '自增ID使用比例过滤值,只返回超过该比例的自增ID使用数据。取值为0~1的小数。', - 'type' => 'number', - 'format' => 'double', - 'required' => true, - 'example' => '0.9', - ], + 'name' => 'SqlId', + 'in' => 'formData', + 'schema' => ['description' => 'SQL ID。', 'type' => 'string', 'required' => false, 'example' => '651b56fe9418d48edb8fdf0980ec****'], ], [ - 'name' => 'RealTime', - 'in' => 'query', - 'schema' => [ - 'description' => '是否获取实时数据:'."\n" - ."\n" - .'- **true**:实时查询实例上数据并计算。最小查询时间粒度为10分钟,即有10分钟内的数据时,即使传递**true**也不进行实时查询。'."\n" - .'- **false**:当有近两小时的数据时,返回该数据,否则查询实例上最新数据。', - 'type' => 'boolean', - 'required' => true, - 'example' => 'false', - ], + 'name' => 'StartTime', + 'in' => 'formData', + 'schema' => ['description' => '查询开始时间,格式为unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1676511134614'], + ], + [ + 'name' => 'EndTime', + 'in' => 'formData', + 'schema' => ['description' => '查询结束时间,格式为unix时间戳,单位为毫秒。'."\n" + ."\n" + .'> 查询结束时间需晚于查询开始时间,最多可查看最近一个月内任意七天的数据。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1678074351197'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '9CB97BC4-6479-55D0-B9D0-EA925AFE****'], + 'Code' => ['description' => '返回状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '返回的数据。', - 'type' => 'object', - 'properties' => [ - 'Finish' => [ - 'description' => '任务是否结束:'."\n" + 'description' => '返回的SQL样本数据。', + 'type' => 'array', + 'items' => [ + 'description' => '返回数据。', + 'type' => 'object', + 'properties' => [ + 'UserId' => ['description' => '用户ID。', 'type' => 'string', 'example' => '196278346919****'], + 'InstanceId' => ['description' => '实例ID。', 'type' => 'string', 'example' => 'rm-2ze1jdv45i7l6****'], + 'NodeId' => ['description' => '节点ID。'."\n" ."\n" - .'- **true**:任务结束。'."\n" - .'- **false**:任务未结束。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Timestamp' => [ - 'description' => '执行时间,格式为Unix时间戳,单位为毫秒(ms)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1697183353000', - ], - 'TaskStatus' => [ - 'description' => '任务状态:'."\n" - .'- **INIT**:初始化。'."\n" - .'- **RUNNING**:任务执行中。'."\n" - .'- **SUCCESS**:任务成功。'."\n" - .'- **FAIL**:任务失败。', - 'type' => 'string', - 'example' => 'INIT', - ], - 'ErrorInfo' => [ - 'description' => '任务失败时的错误信息。', - 'type' => 'string', - 'example' => 'the given database name list invalid, none of the database names in the list exist on the instance', - ], - 'AutoIncrementUsageList' => [ - 'description' => '自增ID使用数据列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'DbName' => [ - 'description' => '数据库名。', - 'type' => 'string', - 'example' => 'db01', - ], - 'TableName' => [ - 'description' => '表名。', - 'type' => 'string', - 'example' => 'test_table', - ], - 'ColumnName' => [ - 'description' => '列名。', - 'type' => 'string', - 'example' => 'id', - ], - 'AutoIncrementCurrentValue' => [ - 'description' => '自增ID当前值。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2147483647', - ], - 'MaximumValue' => [ - 'description' => '该数据类型的自增ID支持的最大值。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2147483647', - ], - 'AutoIncrementRatio' => [ - 'description' => '自增ID使用比例。', - 'type' => 'number', - 'format' => 'double', - 'example' => '1', - ], - ], - ], + .'> RDS MySQL集群系列或PolarDB MySQL版数据库实例才会返回该数据。', 'type' => 'string', 'example' => 'r-x****-db-0'], + 'LogicId' => ['description' => '逻辑库ID。', 'type' => 'string', 'example' => 'xxxxx'], + 'Timestamp' => ['description' => '执行SQL的时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1660100753556'], + 'SqlId' => ['description' => 'SQL ID。', 'type' => 'string', 'example' => '651b56fe9418d48edb8fdf0980ec****'], + 'Sql' => ['description' => 'SQL样本。', 'type' => 'string', 'example' => 'select * from xxxx where ****'], + 'ThreadId' => ['description' => '线程ID。', 'type' => 'integer', 'format' => 'int32', 'example' => '81751940'], + 'EventId' => ['description' => '事件ID。', 'type' => 'integer', 'format' => 'int32', 'example' => '63735293'], + 'EndEventId' => ['description' => '该参数在事件开始时默认为NULL,在事件结束时更新为线程当前事件编号。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'EventName' => ['description' => '事件名称。', 'type' => 'string', 'example' => 'statement/sql/select'], + 'Latency' => ['description' => '执行耗时,单位为毫秒。', 'type' => 'number', 'format' => 'double', 'example' => '0.199'], + 'LockLatency' => ['description' => '锁等待时间,单位为毫秒。', 'type' => 'number', 'format' => 'double', 'example' => '0.09'], + 'Errors' => ['description' => 'SQL语句错误数。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Warnings' => ['description' => 'SQL语句警告数。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'RowsAffected' => ['description' => '影响行数。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'RowsSent' => ['description' => '返回的SQL语句的当前行数。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'RowsExamined' => ['description' => '扫描行数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2048576'], + 'CreateTmpDiskTables' => ['description' => '执行语句时创建的磁盘上内部临时表的数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'CreateTmpTables' => ['description' => '执行语句时创建的内部临时表的数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'SelectFullJoin' => ['description' => '不使用索引而执行表扫描的连接数。'."\n" + .'><notice>该参数是用来统计联合查询过程中没有利用索引的情况,如果该参数值不为0,请仔细检查表的索引。'."\n" + .'></notice>', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'SelectFullRangeJoin' => ['description' => '在引用表上使用范围搜索的连接数。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'SelectRange' => ['description' => '在第一个表中使用范围的连接数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'SelectRangeCheck' => ['description' => '在每一行数据后对键值进行检查,统计不带键值的连接的数量。'."\n" + .'><notice>该参数是用来统计联合查询过程中没有利用索引的情况,如果该参数值不为0,请仔细检查表的索引。'."\n" + .'></notice>', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'SelectScan' => ['description' => '扫描数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'SortMergePasses' => ['description' => '排序算法必须执行的合并次数。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'SortRange' => ['description' => '使用范围进行排序的次数。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'SortRows' => ['description' => '排序行数。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'SortScan' => ['description' => '扫描排序次数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'NoIndexUsed' => ['description' => '语句在不使用索引的情况下是否执行了表扫描:'."\n" + ."\n" + .'- **1**:是。'."\n" + .'- **0**:否。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'NoGoodIndexUsed' => ['description' => '服务器是否查找不到可用于该语句的索引:'."\n" + ."\n" + .'- **1**:是。'."\n" + .'- **0**:否。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Db' => ['description' => '数据库名称。', 'type' => 'string', 'example' => 'testDB'], ], ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0A74B755-98B7-59DB-8724-1321B394****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', - ], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Finish\\": false,\\n \\"Timestamp\\": 1697183353000,\\n \\"TaskStatus\\": \\"INIT\\",\\n \\"ErrorInfo\\": \\"the given database name list invalid, none of the database names in the list exist on the instance\\",\\n \\"AutoIncrementUsageList\\": [\\n {\\n \\"DbName\\": \\"db01\\",\\n \\"TableName\\": \\"test_table\\",\\n \\"ColumnName\\": \\"id\\",\\n \\"AutoIncrementCurrentValue\\": 2147483647,\\n \\"MaximumValue\\": 2147483647,\\n \\"AutoIncrementRatio\\": 1\\n }\\n ]\\n },\\n \\"RequestId\\": \\"0A74B755-98B7-59DB-8724-1321B394****\\",\\n \\"Success\\": true\\n}","type":"json"}]', - 'title' => '获取表自增ID使用数据', - 'description' => '- 本接口只适用于RDS MySQL和PolarDB MySQL版实例。'."\n" + 'title' => '获取SQL样本数据', + 'description' => '使用该接口需满足以下前提条件:'."\n" + ."\n" .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - 'extraInfo' => '- 调用接口时,当返回数据中Finish不为true时,需要继续调用。当Finish为true且TaskStatus为SUCCESS时,可以查看具体的自增ID使用数据。', - ], - 'GetDeadLockDetailList' => [ - 'summary' => '调用GetDeadLockDetailList接口,查询RDS SQL Server实例的死锁详情列表。', - 'methods' => [ - 'get', - 'post', + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 目标数据库实例为RDS MySQL或PolarDB MySQL版。'."\n" + .'- 目标数据库实例已开启性能洞察(新版),详情请参见[性能洞察(新版)](~~469117~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPfsSqlSample'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetPfsSqlSample', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"9CB97BC4-6479-55D0-B9D0-EA925AFE****\\",\\n \\"Code\\": 200,\\n \\"Success\\": true,\\n \\"Data\\": [\\n {\\n \\"UserId\\": \\"196278346919****\\",\\n \\"InstanceId\\": \\"rm-2ze1jdv45i7l6****\\",\\n \\"NodeId\\": \\"r-x****-db-0\\",\\n \\"LogicId\\": \\"xxxxx\\",\\n \\"Timestamp\\": 1660100753556,\\n \\"SqlId\\": \\"651b56fe9418d48edb8fdf0980ec****\\",\\n \\"Sql\\": \\"select * from xxxx where ****\\",\\n \\"ThreadId\\": 81751940,\\n \\"EventId\\": 63735293,\\n \\"EndEventId\\": 0,\\n \\"EventName\\": \\"statement/sql/select\\",\\n \\"Latency\\": 0.199,\\n \\"LockLatency\\": 0.09,\\n \\"Errors\\": 0,\\n \\"Warnings\\": 0,\\n \\"RowsAffected\\": 0,\\n \\"RowsSent\\": 0,\\n \\"RowsExamined\\": 2048576,\\n \\"CreateTmpDiskTables\\": 0,\\n \\"CreateTmpTables\\": 0,\\n \\"SelectFullJoin\\": 0,\\n \\"SelectFullRangeJoin\\": 0,\\n \\"SelectRange\\": 0,\\n \\"SelectRangeCheck\\": 0,\\n \\"SelectScan\\": 0,\\n \\"SortMergePasses\\": 0,\\n \\"SortRange\\": 0,\\n \\"SortRows\\": 0,\\n \\"SortScan\\": 1,\\n \\"NoIndexUsed\\": 1,\\n \\"NoGoodIndexUsed\\": 1,\\n \\"Db\\": \\"testDB\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<GetPfsSqlSampleResponse>\\n <Message>Successful</Message>\\n <RequestId>9CB97BC4-6479-55D0-B9D0-EA925AFE****</RequestId>\\n <Code>200</Code>\\n <Success>true</Success>\\n <Data>\\n <UserId>196278346919****</UserId>\\n <InstanceId>rm-2ze1jdv45i7l6****</InstanceId>\\n <NodeId>r-x****-db-0</NodeId>\\n <LogicId>xxxxx</LogicId>\\n <Timestamp>1660100753556</Timestamp>\\n <SqlId>651b56fe9418d48edb8fdf0980ec****</SqlId>\\n <Sql>select * from xxxx where ****</Sql>\\n <ThreadId>81751940</ThreadId>\\n <EventId>63735293</EventId>\\n <EndEventId>0</EndEventId>\\n <EventName>statement/sql/select</EventName>\\n <Latency>0.199</Latency>\\n <LockLatency>0.09</LockLatency>\\n <Errors>0</Errors>\\n <Warnings>0</Warnings>\\n <RowsAffected>0</RowsAffected>\\n <RowsSent>0</RowsSent>\\n <RowsExamined>2048576</RowsExamined>\\n <CreateTmpDiskTables>0</CreateTmpDiskTables>\\n <CreateTmpTables>0</CreateTmpTables>\\n <SelectFullJoin>0</SelectFullJoin>\\n <SelectFullRangeJoin>0</SelectFullRangeJoin>\\n <SelectRange>0</SelectRange>\\n <SelectRangeCheck>0</SelectRangeCheck>\\n <SelectScan>0</SelectScan>\\n <SortMergePasses>0</SortMergePasses>\\n <SortRange>0</SortRange>\\n <SortRows>0</SortRows>\\n <SortScan>1</SortScan>\\n <NoIndexUsed>1</NoIndexUsed>\\n <NoGoodIndexUsed>1</NoGoodIndexUsed>\\n <Db>testDB</Db>\\n </Data>\\n</GetPfsSqlSampleResponse>","errorExample":""}]', + ], + 'GetPfsSqlSummaries' => [ + 'summary' => '调用GetPfsSqlSummaries接口,查询数据库实例性能洞察(新版)中按照SQL ID维度的全量请求数据。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhdmFT57I0'], ], 'parameters' => [ [ 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze2016723b32****', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => false, 'example' => 'rm-uf61swc4cru0b****'], + ], + [ + 'name' => 'NodeId', + 'in' => 'formData', + 'schema' => ['description' => '节点ID。'."\n" + ."\n" + .'> 对于RDS MySQL集群系列或PolarDB MySQL版数据库实例,需要提供节点ID。', 'type' => 'string', 'required' => false, 'example' => 'r-****-db-0'], + ], + [ + 'name' => 'SqlId', + 'in' => 'formData', + 'schema' => ['description' => 'SQL ID。'."\n" + ."\n" + .'> 传入SQL ID时,统计目标SQL ID的全量请求数据;为空时,统计整个数据库实例的全量请求数据。', 'type' => 'string', 'required' => false, 'example' => '651b56fe9418d48edb8fdf0980ec****'], + ], + [ + 'name' => 'Keywords', + 'in' => 'formData', + 'schema' => ['description' => 'SQL文本关键词,多个关键词以空格分隔。', 'type' => 'string', 'required' => false, 'example' => 'select update'], ], [ 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'string', - 'required' => true, - 'example' => '1701755730292', - ], + 'in' => 'formData', + 'schema' => ['description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1675833788056'], ], [ 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'string', - 'required' => true, - 'example' => '1702360530292', - ], + 'in' => 'formData', + 'schema' => ['description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。'."\n" + .'> 查询结束时间需晚于查询开始时间,最多可查看最近一个月内任意七天的数据。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1679297005999'], ], [ - 'name' => 'PageNo', - 'in' => 'query', - 'schema' => [ - 'description' => '页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], + 'name' => 'OrderBy', + 'in' => 'formData', + 'schema' => ['description' => '排序字段,默认为**count**。'."\n" + ."\n" + .'- **count**:执行次数。'."\n" + ."\n" + .'- **avgLatency**:平均执行时间。'."\n" + ."\n" + .'- **rowsExamined**:总扫描行数。'."\n" + ."\n" + .'- **rowsExaminedAvg**:平均扫描行数。'."\n" + ."\n" + .'- **rowsSentAvg**:平均返回行数。', 'type' => 'string', 'required' => false, 'example' => 'count'], ], [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '每页最大记录数,默认值为10。', - 'type' => 'string', - 'required' => false, - 'example' => '5', - ], + 'name' => 'Asc', + 'in' => 'formData', + 'schema' => ['description' => '是否升序排序,默认为**false**。'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'DbNameList', - 'in' => 'query', - 'schema' => [ - 'description' => '数据库名。传入多个数据库时,各个数据库名称间使用英文逗号(,)进行分隔。', - 'type' => 'string', - 'required' => false, - 'example' => 'testdb1,testdb2'."\n", - ], + 'name' => 'PageNo', + 'in' => 'formData', + 'schema' => ['description' => '分页查询的页码,从1开始,默认为1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'formData', + 'schema' => ['description' => '分页查询每页最大记录数,默认为10,最大为100。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'ListResult<PfsSqlSummary>', + 'description' => 'ListResult<PfsSqlSummary>', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '54F3DBAE-9420-511A-9C29-265E8C04****'], 'Data' => [ - 'description' => '返回的数据。', + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ + 'Total' => ['description' => '总数据量。', 'type' => 'integer', 'format' => 'int64', 'example' => '264'], 'List' => [ 'description' => '详细信息列表。', 'type' => 'array', @@ -15457,359 +13757,264 @@ 'description' => '返回信息列表。', 'type' => 'object', 'properties' => [ - 'BatchId' => [ - 'description' => '采集的时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1702301170701', - ], - 'BlockProcessList' => [ - 'description' => '阻塞列表。即主动造成锁定的会话信息。', + 'UserId' => ['description' => '用户ID。', 'type' => 'string', 'example' => '196278346919****'], + 'Psql' => ['description' => 'SQL模板。', 'type' => 'string', 'example' => 'select ?'], + 'InstanceId' => ['description' => '实例ID。', 'type' => 'string', 'example' => 'rm-2ze8g2am97624****'], + 'NodeId' => ['description' => '节点ID。'."\n" + .'> 对于RDS MySQL集群系列或PolarDB MySQL版数据库实例,返回此参数。', 'type' => 'string', 'example' => 'r-x****-db-0'], + 'SqlType' => ['description' => 'SQL的类型。取值:'."\n" + .'- **SELECT**'."\n" + .'- **UPDATE**'."\n" + .'- **DELETE**', 'type' => 'string', 'example' => 'SELECT'], + 'LogicId' => ['description' => '逻辑库ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '58275984'], + 'SqlId' => ['description' => 'SQL模板ID。', 'type' => 'string', 'example' => '2e8147b5ca2dfc640dfd5e43d96a****'], + 'Timestamp' => ['description' => '数据日期,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1643040000000'], + 'RtRate' => ['title' => '耗时占比', 'description' => '耗时占比。', 'type' => 'number', 'format' => 'double', 'example' => '0.1384'], + 'CountRate' => ['title' => '执行次数占比', 'description' => '执行次数占比。', 'type' => 'number', 'format' => 'double', 'example' => '0.0586'], + 'FullScan' => ['description' => '是否全表扫描。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'Count' => ['description' => '总执行次数。', 'type' => 'integer', 'format' => 'int64', 'example' => '100000'], + 'ErrCount' => ['description' => '错误次数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'WarnCount' => ['description' => '警告次数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'TotalLatency' => ['description' => '总执行耗时,单位毫秒。', 'type' => 'number', 'format' => 'double', 'example' => '60913.256'], + 'MaxLatency' => ['description' => '最大执行耗时,单位毫秒。', 'type' => 'number', 'format' => 'double', 'example' => '36.233'], + 'AvgLatency' => ['description' => 'SQL平均执行耗时,单位毫秒。', 'type' => 'number', 'format' => 'double', 'example' => '0.1717'], + 'RowsSent' => ['description' => '返回行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'RowsSendAvg' => ['description' => '平均发送行数。', 'type' => 'number', 'format' => 'double', 'example' => '0'], + 'RowsExamined' => ['description' => '总扫描行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'RowsExaminedAvg' => ['description' => '平均扫描行数。', 'type' => 'number', 'format' => 'double', 'example' => '0'], + 'RowsAffected' => ['description' => '影响行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'RowsAffectedAvg' => ['description' => '平均影响行数。', 'type' => 'number', 'format' => 'double', 'example' => '0'], + 'TmpTables' => ['description' => '临时表数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'TmpDiskTables' => ['description' => '临时磁盘表数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'RowsSorted' => ['description' => '排序行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'SortMergePasses' => ['description' => '排序算法必须执行的合并次数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'PhysicalReads' => ['description' => '物理节点数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'PhysicalAsyncReads' => ['description' => '物理异步节点数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'SemisyncDelayTime' => ['description' => '半同步延迟时间,单位毫秒。', 'type' => 'number', 'format' => 'double', 'example' => '0.12'], + 'RowsSentAvg' => ['description' => '返回SQL句的平均行数。', 'type' => 'number', 'format' => 'double', 'example' => '0.52'], + 'LogicReads' => ['description' => '逻辑节点数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'RedoWrites' => ['description' => '重做节点数。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'DataWriteTime' => ['description' => '数据写入时间,单位毫秒。', 'type' => 'number', 'format' => 'double', 'example' => '0'], + 'DataWrites' => ['description' => '可写数据节点数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'DataReadTime' => ['description' => '可读数据时间,单位毫秒。', 'type' => 'number', 'format' => 'double', 'example' => '0'], + 'DataReads' => ['description' => '可读数据节点数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'RwlockOsWaits' => ['description' => '是否开启了读写分离。取值:'."\n" + ."\n" + .'- **0**:未开启。'."\n" + .'- **1**:开启。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'RwlockSpinRounds' => ['description' => '读写分离参数。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'RwlockSpinWaits' => ['description' => '是否开启多重索引扫描。取值:'."\n" + ."\n" + .'- **0**:未开启。'."\n" + .'- **1**:开启。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'MutexWaits' => ['description' => '互斥等待次数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'MutexSpins' => ['description' => '互斥旋转次数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'TransactionLockTime' => ['description' => '存储事务锁定时间,单位毫秒。', 'type' => 'number', 'format' => 'double', 'example' => '0'], + 'ServerLockTime' => ['description' => '服务器锁定时间,单位毫秒。', 'type' => 'number', 'format' => 'double', 'example' => '0'], + 'CpuTime' => ['description' => 'CPU运行时间,单位为毫秒。', 'type' => 'number', 'format' => 'double', 'example' => '0'], + 'ElapsedTime' => ['description' => '实际运行时间,单位毫秒。', 'type' => 'number', 'format' => 'double', 'example' => '0'], + 'Id' => ['title' => '主键', 'description' => '主键ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '26186357'], + 'SelectScanAvg' => ['description' => '平均扫描数。', 'type' => 'number', 'format' => 'double', 'example' => '0'], + 'SelectRangeAvg' => ['description' => '平均选取范围。', 'type' => 'number', 'format' => 'double', 'example' => '0'], + 'SelectFullJoinAvg' => ['description' => '不使用索引而执行表扫描的平均连接数。'."\n" + .'><notice>如果该参数值不为0,则应仔细检查表的索引。'."\n" + .'></notice>', 'type' => 'number', 'format' => 'double', 'example' => '0'], + 'SelectFullRangeJoinAvg' => ['description' => '平均范围连接数。', 'type' => 'number', 'format' => 'double', 'example' => '0'], + 'SortScanAvg' => ['description' => '平均扫描排序数。', 'type' => 'number', 'format' => 'double', 'example' => '0'], + 'SortRowsAvg' => ['description' => '平均排序行数。', 'type' => 'number', 'format' => 'double', 'example' => '0'], + 'TmpTablesAvg' => ['description' => '临时表平均数。', 'type' => 'number', 'format' => 'double', 'example' => '0'], + 'TmpDiskTablesAvg' => ['description' => '临时磁盘表平均数。', 'type' => 'number', 'format' => 'double', 'example' => '0'], + 'FirstTime' => ['description' => '首次执行时间,格式为unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1659308149000'], + 'LastTime' => ['description' => '最后变更时间,格式为unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1661306520000'], + 'LockLatencyAvg' => ['description' => '平均锁等待时间,单位毫秒。', 'type' => 'number', 'format' => 'double', 'example' => '0'], + 'TimerWaitAvg' => ['description' => '备用参数。', 'type' => 'number', 'format' => 'double', 'example' => 'None'], + 'SortRangeAvg' => ['description' => '使用范围排序平均次数。', 'type' => 'number', 'format' => 'double', 'example' => '0'], + 'CpuRate' => ['description' => 'CPU执行时间与SQL总执行时间的比值。', 'type' => 'number', 'format' => 'double', 'example' => '0'], + 'Db' => ['description' => '数据库名称。', 'type' => 'string', 'example' => 'testDB'], + 'Tables' => [ + 'description' => '数据库表名。'."\n", 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ClientApp' => [ - 'description' => '当前事务所使用的客户端名称。', - 'type' => 'string', - 'example' => 'Microsoft SQL Server Management Studio - Query', - ], - 'HostName' => [ - 'description' => '主机名。', - 'type' => 'string', - 'example' => 'sd7402****', - ], - 'LastTranStarted' => [ - 'description' => '事务开启的时间。格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1702301152000', - ], - 'LockMode' => [ - 'description' => '锁模式。更多信息,请参见[锁模式](~~2362804~~)。', - 'type' => 'string', - 'example' => 'U', - ], - 'LogUsed' => [ - 'description' => '会话已经生成的日志大小。单位:字节(Byte)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '352', - ], - 'LoginName' => [ - 'description' => '用户登录名。', - 'type' => 'string', - 'example' => 'sd7402****\\\\Administrator', - ], - 'ObjectOwned' => [ - 'description' => '已经被锁住的对象。', - 'type' => 'string', - 'example' => 'testdb1.dbo.test2', - ], - 'ObjectRequested' => [ - 'description' => '当前事务请求加锁的对象。', - 'type' => 'string', - 'example' => 'testdb1.dbo.test1', - ], - 'OwnMode' => [ - 'description' => '会话当前持有的锁模式。更多信息,请参见[锁模式](~~2362804~~)。', - 'type' => 'string', - 'example' => 'X', - ], - 'Spid' => [ - 'description' => '开启事务的会话ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '61', - ], - 'SqlText' => [ - 'description' => 'SQL语句详情。', - 'type' => 'string', - 'example' => 'update test1 set col1 =9', - ], - 'Status' => [ - 'description' => '当前事务的状态。', - 'type' => 'string', - 'example' => 'suspended', - ], - 'Victim' => [ - 'description' => '是否是死锁的受害者:'."\n" - ."\n" - .'- **0**:不是。'."\n" - .'- **1**:是。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'WaitMode' => [ - 'description' => '会话当前正在等待的锁模式。更多信息,请参见[锁模式](~~2362804~~)。', - 'type' => 'string', - 'example' => 'U', - ], - 'WaitResource' => [ - 'description' => '当前事务等待中的资源。', - 'type' => 'string', - 'example' => 'RID: 5:1:312:0', - ], - 'WaitResourceDescription' => [ - 'description' => '当前事务等待中的资源详情。', - 'type' => 'string', - 'example' => 'RID:school:school.mdf:312:0', - ], - 'DatabaseName' => [ - 'description' => '数据库名称。', - 'type' => 'string', - 'example' => 'testdb1', - ], - ], - ], - ], - 'ClientApp' => [ - 'description' => '客户端名称。', - 'type' => 'string', - 'example' => 'Microsoft SQL Server Management Studio - Query', - ], - 'HostName' => [ - 'description' => '主机名。', - 'type' => 'string', - 'example' => 'sd7402****', - ], - 'LastTranStarted' => [ - 'description' => '事务开启的时间。格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1702301141000', - ], - 'LockMode' => [ - 'description' => '锁模式。更多信息,请参见[锁模式](~~2362804~~)。', - 'type' => 'string', - 'example' => 'U', - ], - 'LogUsed' => [ - 'description' => '会话已经生成的日志大小。单位:字节(Byte)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '352', - ], - 'LoginName' => [ - 'description' => '用户登录名。', - 'type' => 'string', - 'example' => 'sd7402****\\\\Administrator', - ], - 'ObjectRequested' => [ - 'description' => '当前事务请求加锁的对象。', - 'type' => 'string', - 'example' => 'testdb1.dbo.test2', - ], - 'ObjectOwned' => [ - 'description' => '已经被锁住的对象。', - 'type' => 'string', - 'example' => 'testdb1.dbo.test1', - ], - 'OwnMode' => [ - 'description' => '会话当前持有的锁模式。更多信息,请参见[锁模式](~~2362804~~)。', - 'type' => 'string', - 'example' => 'X', - ], - 'Spid' => [ - 'description' => '开启事务的会话ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '56', - ], - 'SqlText' => [ - 'description' => 'SQL语句详情。', - 'type' => 'string', - 'example' => 'update test2 set col1 =88', - ], - 'Status' => [ - 'description' => '当前事务的状态。', - 'type' => 'string', - 'example' => 'suspended', - ], - 'Victim' => [ - 'description' => '是否是死锁的受害者:'."\n" - ."\n" - .'- **0**:不是。'."\n" - .'- **1**:是。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1'."\n", - ], - 'WaitMode' => [ - 'description' => '会话当前正在等待的锁模式。更多信息,请参见[锁模式](~~2362804~~)。', - 'type' => 'string', - 'example' => 'U', - ], - 'WaitResource' => [ - 'description' => '当前事务等待中的资源。', - 'type' => 'string', - 'example' => 'RID: 5:1:376:0', - ], - 'WaitResourceDescription' => [ - 'description' => '当前事务等待中的资源详情。', - 'type' => 'string', - 'example' => 'RID:school:school.mdf:376:0', - ], - 'DatabaseName' => [ - 'description' => '数据库的名称。', - 'type' => 'string', - 'example' => 'testdb1', + 'items' => ['description' => '数据库表名。'."\n", 'type' => 'string', 'example' => 'test_table'], ], ], ], ], - 'PageNo' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '每页记录数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'Total' => [ - 'description' => '返回总记录数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], + 'PageNo' => ['description' => '页码。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'PageSize' => ['description' => '每页最大记录数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'Extra' => ['description' => '备用参数。', 'type' => 'any', 'example' => 'None'], ], ], - 'RequestId' => [ - 'description' => '请求ID。'."\n" - ."\n", - 'type' => 'string', - 'example' => '840F51F7-9C01-538D-94F6-AE712905****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'Code' => ['description' => '返回状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"List\\": [\\n {\\n \\"BatchId\\": 1702301170701,\\n \\"BlockProcessList\\": [\\n {\\n \\"ClientApp\\": \\"Microsoft SQL Server Management Studio - Query\\",\\n \\"HostName\\": \\"sd7402****\\",\\n \\"LastTranStarted\\": 1702301152000,\\n \\"LockMode\\": \\"U\\",\\n \\"LogUsed\\": 352,\\n \\"LoginName\\": \\"sd7402****\\\\\\\\\\\\\\\\Administrator\\",\\n \\"ObjectOwned\\": \\"testdb1.dbo.test2\\",\\n \\"ObjectRequested\\": \\"testdb1.dbo.test1\\",\\n \\"OwnMode\\": \\"X\\",\\n \\"Spid\\": 61,\\n \\"SqlText\\": \\"update test1 set col1 =9\\",\\n \\"Status\\": \\"suspended\\",\\n \\"Victim\\": 0,\\n \\"WaitMode\\": \\"U\\",\\n \\"WaitResource\\": \\"RID: 5:1:312:0\\",\\n \\"WaitResourceDescription\\": \\"RID:school:school.mdf:312:0\\",\\n \\"DatabaseName\\": \\"testdb1\\"\\n }\\n ],\\n \\"ClientApp\\": \\"Microsoft SQL Server Management Studio - Query\\",\\n \\"HostName\\": \\"sd7402****\\",\\n \\"LastTranStarted\\": 1702301141000,\\n \\"LockMode\\": \\"U\\",\\n \\"LogUsed\\": 352,\\n \\"LoginName\\": \\"sd7402****\\\\\\\\\\\\\\\\Administrator\\",\\n \\"ObjectRequested\\": \\"testdb1.dbo.test2\\",\\n \\"ObjectOwned\\": \\"testdb1.dbo.test1\\",\\n \\"OwnMode\\": \\"X\\",\\n \\"Spid\\": 56,\\n \\"SqlText\\": \\"update test2 set col1 =88\\",\\n \\"Status\\": \\"suspended\\",\\n \\"Victim\\": 1,\\n \\"WaitMode\\": \\"U\\",\\n \\"WaitResource\\": \\"RID: 5:1:376:0\\",\\n \\"WaitResourceDescription\\": \\"RID:school:school.mdf:376:0\\",\\n \\"DatabaseName\\": \\"testdb1\\"\\n }\\n ],\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10,\\n \\"Total\\": 2\\n },\\n \\"RequestId\\": \\"840F51F7-9C01-538D-94F6-AE712905****\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', - 'title' => '查询RDS SQL Server实例的死锁列表', - 'description' => '* 本接口仅适用于RDS SQL Server版实例。'."\n" - .'* 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'* 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - ], - 'GetBlockingDetailList' => [ - 'summary' => '调用GetBlockingDetailList接口,查询RDS SQL Server实例的锁阻塞列表。', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"54F3DBAE-9420-511A-9C29-265E8C04****\\",\\n \\"Data\\": {\\n \\"Total\\": 264,\\n \\"List\\": [\\n {\\n \\"UserId\\": \\"196278346919****\\",\\n \\"Psql\\": \\"select ?\\",\\n \\"InstanceId\\": \\"rm-2ze8g2am97624****\\",\\n \\"NodeId\\": \\"r-x****-db-0\\",\\n \\"SqlType\\": \\"SELECT\\",\\n \\"LogicId\\": 58275984,\\n \\"SqlId\\": \\"2e8147b5ca2dfc640dfd5e43d96a****\\",\\n \\"Timestamp\\": 1643040000000,\\n \\"RtRate\\": 0.1384,\\n \\"CountRate\\": 0.0586,\\n \\"FullScan\\": true,\\n \\"Count\\": 100000,\\n \\"ErrCount\\": 0,\\n \\"WarnCount\\": 0,\\n \\"TotalLatency\\": 60913.256,\\n \\"MaxLatency\\": 36.233,\\n \\"AvgLatency\\": 0.1717,\\n \\"RowsSent\\": 0,\\n \\"RowsSendAvg\\": 0,\\n \\"RowsExamined\\": 100,\\n \\"RowsExaminedAvg\\": 0,\\n \\"RowsAffected\\": 0,\\n \\"RowsAffectedAvg\\": 0,\\n \\"TmpTables\\": 0,\\n \\"TmpDiskTables\\": 0,\\n \\"RowsSorted\\": 0,\\n \\"SortMergePasses\\": 0,\\n \\"PhysicalReads\\": 0,\\n \\"PhysicalAsyncReads\\": 0,\\n \\"SemisyncDelayTime\\": 0.12,\\n \\"RowsSentAvg\\": 0.52,\\n \\"LogicReads\\": 0,\\n \\"RedoWrites\\": 0,\\n \\"DataWriteTime\\": 0,\\n \\"DataWrites\\": 0,\\n \\"DataReadTime\\": 0,\\n \\"DataReads\\": 0,\\n \\"RwlockOsWaits\\": 0,\\n \\"RwlockSpinRounds\\": 0,\\n \\"RwlockSpinWaits\\": 0,\\n \\"MutexWaits\\": 1,\\n \\"MutexSpins\\": 1,\\n \\"TransactionLockTime\\": 0,\\n \\"ServerLockTime\\": 0,\\n \\"CpuTime\\": 0,\\n \\"ElapsedTime\\": 0,\\n \\"Id\\": 26186357,\\n \\"SelectScanAvg\\": 0,\\n \\"SelectRangeAvg\\": 0,\\n \\"SelectFullJoinAvg\\": 0,\\n \\"SelectFullRangeJoinAvg\\": 0,\\n \\"SortScanAvg\\": 0,\\n \\"SortRowsAvg\\": 0,\\n \\"TmpTablesAvg\\": 0,\\n \\"TmpDiskTablesAvg\\": 0,\\n \\"FirstTime\\": 1659308149000,\\n \\"LastTime\\": 1661306520000,\\n \\"LockLatencyAvg\\": 0,\\n \\"TimerWaitAvg\\": 0,\\n \\"SortRangeAvg\\": 0,\\n \\"CpuRate\\": 0,\\n \\"Db\\": \\"testDB\\",\\n \\"Tables\\": [\\n \\"test_table\\"\\n ]\\n }\\n ],\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10,\\n \\"Extra\\": \\"None\\"\\n },\\n \\"Code\\": 200,\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetPfsSqlSummariesResponse>\\n <Message>Successful</Message>\\n <RequestId>54F3DBAE-9420-511A-9C29-265E8C04****</RequestId>\\n <Data>\\n <Total>264</Total>\\n <List>\\n <UserId>196278346919****</UserId>\\n <Psql>select ?</Psql>\\n <SqlFeature>None</SqlFeature>\\n <InstanceId>rm-2ze8g2am97624****</InstanceId>\\n <NodeId>r-x****-db-0</NodeId>\\n <SqlType>SELECT</SqlType>\\n <LogicId>58275984</LogicId>\\n <SqlId>2e8147b5ca2dfc640dfd5e43d96a****</SqlId>\\n <Timestamp>1643040000000</Timestamp>\\n <RtRate>0.1384</RtRate>\\n <CountRate>0.0586</CountRate>\\n <FullScan>true</FullScan>\\n <Count>100000</Count>\\n <ErrCount>0</ErrCount>\\n <WarnCount>0</WarnCount>\\n <TotalLatency>60913.256</TotalLatency>\\n <MaxLatency>36.233</MaxLatency>\\n <AvgLatency>0.1717</AvgLatency>\\n <RowsSent>0</RowsSent>\\n <RowsSendAvg>0</RowsSendAvg>\\n <RowsExamined>100</RowsExamined>\\n <RowsExaminedAvg>0</RowsExaminedAvg>\\n <RowsAffected>0</RowsAffected>\\n <RowsAffectedAvg>0</RowsAffectedAvg>\\n <TmpTables>0</TmpTables>\\n <TmpDiskTables>0</TmpDiskTables>\\n <RowsSorted>0</RowsSorted>\\n <SortMergePasses>0</SortMergePasses>\\n <PhysicalReads>0</PhysicalReads>\\n <PhysicalAsyncReads>0</PhysicalAsyncReads>\\n <SemisyncDelayTime>0.12</SemisyncDelayTime>\\n <RowsSentAvg>0.52</RowsSentAvg>\\n <LogicReads>0</LogicReads>\\n <RedoWrites>0</RedoWrites>\\n <DataWriteTime>0</DataWriteTime>\\n <DataWrites>0</DataWrites>\\n <DataReadTime>0</DataReadTime>\\n <DataReads>0</DataReads>\\n <RwlockOsWaits>0</RwlockOsWaits>\\n <RwlockSpinRounds>0</RwlockSpinRounds>\\n <RwlockSpinWaits>0</RwlockSpinWaits>\\n <MutexWaits>1</MutexWaits>\\n <MutexSpins>1</MutexSpins>\\n <TransactionLockTime>0</TransactionLockTime>\\n <ServerLockTime>0</ServerLockTime>\\n <CpuTime>0</CpuTime>\\n <ElapsedTime>0</ElapsedTime>\\n <Id>26186357</Id>\\n <SelectScanAvg>0</SelectScanAvg>\\n <SelectRangeAvg>0</SelectRangeAvg>\\n <SelectFullJoinAvg>0</SelectFullJoinAvg>\\n <SelectFullRangeJoinAvg>0</SelectFullRangeJoinAvg>\\n <SortScanAvg>0</SortScanAvg>\\n <SortRowsAvg>0</SortRowsAvg>\\n <TmpTablesAvg>0</TmpTablesAvg>\\n <TmpDiskTablesAvg>0</TmpDiskTablesAvg>\\n <FirstTime>1659308149000</FirstTime>\\n <LastTime>1661306520000</LastTime>\\n <LockLatencyAvg>0</LockLatencyAvg>\\n <SortRangeAvg>0</SortRangeAvg>\\n <CpuRate>0</CpuRate>\\n <Db>testDB</Db>\\n <Tables>test_table</Tables>\\n </List>\\n <PageNo>1</PageNo>\\n <PageSize>10</PageSize>\\n <Extra>None</Extra>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetPfsSqlSummariesResponse>","errorExample":""}]', + 'title' => '查询按照SQL ID维度统计的全量请求数据', + 'description' => '使用该接口需满足以下前提条件:'."\n" + ."\n" + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 目标数据库实例为RDS MySQL或PolarDB MySQL版。'."\n" + .'- 目标数据库实例已开启性能洞察(新版),详情请参见[性能洞察(新版)](~~469117~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPfsSqlSummaries'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetPfsSqlSummaries', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetQueryOptimizeDataStats' => [ + 'summary' => '调用GetQueryOptimizeDataStats接口,获取查询治理模板数据。', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'list', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'InstanceId', + 'name' => 'Engine', 'in' => 'query', - 'schema' => [ - 'description' => '数据库实例ID。'."\n" - ."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'rm-t4nfalp2ap421****', - ], + 'schema' => ['description' => '数据库引擎,取值:'."\n" + ."\n" + .'- **MySQL**'."\n" + .'- **PolarDBMySQL**'."\n" + .'- **PostgreSQL**', 'type' => 'string', 'required' => true, 'example' => 'MySQL'], ], [ - 'name' => 'StartTime', + 'name' => 'InstanceIds', 'in' => 'query', - 'schema' => [ - 'description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'string', - 'required' => true, - 'example' => '1679429913757', - ], + 'schema' => ['description' => '实例ID,多个实例ID用逗号分隔。', 'type' => 'string', 'required' => false, 'example' => 'rm-2ze8g2am97624****'], ], [ - 'name' => 'EndTime', + 'name' => 'TagNames', 'in' => 'query', - 'schema' => [ - 'description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'string', - 'required' => true, - 'example' => '1682490480548', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ - 'name' => 'PageNo', + 'name' => 'Keywords', 'in' => 'query', - 'schema' => [ - 'description' => '页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => 'SQL文本关键词,多个关键词以空格分隔。', 'type' => 'string', 'required' => false, 'example' => 'select update'], + ], + [ + 'name' => 'LogicalOperator', + 'in' => 'query', + 'schema' => ['description' => '多个SQL文本关键词的逻辑关系。'."\n" + ."\n" + .'- **or**:或。'."\n" + .'- **and**:与。', 'type' => 'string', 'required' => false, 'example' => 'or'], + ], + [ + 'name' => 'Rules', + 'in' => 'query', + 'schema' => ['description' => '需要过滤的规则,多个规则以逗号分隔。具体信息请参见[查询治理](~~290038~~)。', 'type' => 'string', 'required' => false, 'example' => 'DAS_NOT_IMPORTANT'], + ], + [ + 'name' => 'DbNames', + 'in' => 'query', + 'schema' => ['description' => '需要查询的数据库名。', 'type' => 'string', 'required' => false, 'example' => 'testdb01'], + ], + [ + 'name' => 'Time', + 'in' => 'query', + 'schema' => ['description' => '查询数据的日期,格式为Unix时间戳,单位为毫秒。', 'type' => 'string', 'required' => true, 'example' => '1642953600000'], ], [ 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '每页最大记录数,取值大于0且不超过Integer数据类型的最大值,默认值为10。', - 'type' => 'string', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => '分页查询每页最大记录数,默认为10。', 'type' => 'string', 'required' => false, 'example' => '10'], ], [ - 'name' => 'QueryHash', + 'name' => 'PageNo', 'in' => 'query', - 'schema' => [ - 'description' => 'SQL哈希值。将SQL语句进行Hash之后得出的值,同一种SQL对应同一个QueryHash。', - 'type' => 'string', - 'required' => false, - 'example' => 'DC08B955CAD25E7B', - ], + 'schema' => ['description' => '分页查询的页码,从1开始,默认为1。', 'type' => 'string', 'required' => false, 'example' => '1'], ], [ - 'name' => 'DbNameList', + 'name' => 'OrderBy', 'in' => 'query', - 'schema' => [ - 'description' => '数据库名。传入多个数据库时,各个数据库名称间使用英文逗号(,)进行分隔。', - 'type' => 'string', - 'required' => false, - 'example' => 'testdb1,testdb2', - ], + 'schema' => ['description' => '排序字段,默认为**count**。'."\n" + ."\n" + .'- **count**:执行次数。'."\n" + .'- **maxQueryTime**:最大执行时间。'."\n" + .'- **avgQueryTime**:平均执行时间。'."\n" + .'- **maxLockTime**:最大锁等待时间。'."\n" + .'- **avgLockTime**:平均锁等待时间。'."\n" + .'- **maxRowsExamined**:最大扫描行数。'."\n" + .'- **avgRowsExamined**:平均扫描行数。'."\n" + .'- **maxRowsSent**:最大返回行数。'."\n" + .'- **avgRowsSent**:平均返回行数。', 'type' => 'string', 'required' => false, 'example' => 'count'], + ], + [ + 'name' => 'Asc', + 'in' => 'query', + 'schema' => ['description' => '是否升序排序,默认为**true**。'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'string', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'OnlyOptimizedSql', + 'in' => 'query', + 'schema' => ['description' => '是否只查询待优化的SQL,默认为**false**。'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'string', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'SqlIds', + 'in' => 'query', + 'schema' => ['description' => 'SQL模板ID,您可调用[GetQueryOptimizeExecErrorStats](~~405235~~)接口查询SQL模板ID。', 'type' => 'string', 'required' => false, 'example' => '2e8147b5ca2dfc640dfd5e43d96a****'], + ], + [ + 'name' => 'Region', + 'in' => 'query', + 'schema' => ['description' => '实例所属地域,取值:'."\n" + ."\n" + .'- **cn-china**:中国内地。'."\n" + .'- **cn-hongkong**:中国香港。'."\n" + .'- **ap-southeast-1**:新加坡。'."\n" + ."\n" + .'此参数只有在请求参数**InstanceIds**为空时有效。如果请求参数**InstanceIds**为空时,按照**Region**参数设置的地域获取数据,系统默认实例所属地域为**cn-china**;如果请求参数**InstanceIds**不为空时,即使设置了**Region**参数,也以**InstanceIds**所传入的第一个实例所在地域为准获取数据。'."\n" + ."\n" + .'> 在中国内地各地域创建的实例,传入此参数时,都为**cn-china**。', 'type' => 'string', 'required' => false, 'example' => 'cn-china'], + ], + [ + 'name' => 'User', + 'in' => 'query', + 'schema' => ['description' => '需要查询的数据库账号。', 'type' => 'string', 'required' => false, 'example' => 'testUser'], ], ], 'responses' => [ @@ -15817,383 +14022,168 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ - 'description' => '返回的数据。', + 'description' => '详细信息列表。', 'type' => 'object', 'properties' => [ + 'Total' => ['description' => '总数据量。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'PageNo' => ['description' => '备用参数。', 'type' => 'integer', 'format' => 'int32', 'example' => 'None'], + 'PageSize' => ['description' => '备用参数。', 'type' => 'integer', 'format' => 'int32', 'example' => 'None'], + 'Extra' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], 'List' => [ - 'description' => '返回信息列表。', + 'description' => '模板数据列表。', 'type' => 'array', 'items' => [ - 'description' => '数据详情。', + 'description' => '模板数据列表。', 'type' => 'object', 'properties' => [ - 'BatchId' => [ - 'description' => '采集批次。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1683530096156', - ], - 'ClientAppName' => [ - 'description' => '客户端名称。', - 'type' => 'string', - 'example' => '.Net SqlClient Data Provider', - ], - 'DataBase' => [ - 'description' => '数据库名称。', - 'type' => 'string', - 'example' => 'testdb1', - ], - 'HostName' => [ - 'description' => '客户端主机名称。', - 'type' => 'string', - 'example' => 'ALLBNMGTAPPRD01', - ], - 'LoginId' => [ - 'description' => '登录用户名。', - 'type' => 'string', - 'example' => 'Testuser', - ], - 'QueryHash' => [ - 'description' => 'SQL HASH值。', - 'type' => 'string', - 'example' => 'DC08B955CAD25E7B', - ], - 'Spid' => [ - 'description' => '会话ID。', - 'type' => 'string', - 'example' => '1717', - ], - 'SqlText' => [ - 'description' => 'SQL语句。', - 'type' => 'string', - 'example' => 'select * from test1', - ], - 'StartTime' => [ - 'description' => '开始执行的时间。格式为Unix时间戳,单位为毫秒。', - 'type' => 'string', - 'example' => '1608888296000', - ], - 'WaitTimeMs' => [ - 'description' => '阻塞时长,单位毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '30000', - ], - 'WaitType' => [ - 'description' => '等待类型。更多等待类型及说明,请参见[等待类型](https://learn.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-os-wait-stats-transact-sql?view=sql-server-ver15)。', - 'type' => 'string', - 'example' => 'MISCELLANEOUS', - ], - 'CurrentCollectionTime' => [ - 'description' => '阻塞的采集时间。格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1700065800000', + 'InstanceId' => ['description' => '实例ID。', 'type' => 'string', 'example' => 'rm-2ze8g2am97624****'], + 'Dbname' => ['description' => 'SQL所属数据库名。', 'type' => 'string', 'example' => 'testdb01'], + 'SqlId' => ['description' => 'SQL模板ID。', 'type' => 'string', 'example' => '2e8147b5ca2dfc640dfd5e43d96a****'], + 'SqlType' => ['description' => 'SQL类别。', 'type' => 'string', 'example' => 'INSERT'], + 'Psql' => ['description' => 'SQL模板。', 'type' => 'string', 'example' => 'select 1'], + 'SqlSample' => ['description' => 'SQL模板下执行最慢的SQL样本。', 'type' => 'string', 'example' => 'select 2'], + 'Count' => ['description' => 'SQL执行次数。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'MaxQueryTime' => ['description' => '最大查询时间,单位为秒。', 'type' => 'number', 'format' => 'double', 'example' => '1.1'], + 'AvgQueryTime' => ['description' => '平均查询时间,单位为秒。', 'type' => 'number', 'format' => 'double', 'example' => '1.1'], + 'MaxLockTime' => ['description' => '最大锁等待时间,单位为秒。', 'type' => 'number', 'format' => 'double', 'example' => '0.1'], + 'AvgLockTime' => ['description' => '平均锁等待时间,单位为秒。', 'type' => 'number', 'format' => 'double', 'example' => '0.1'], + 'MaxRowsExamined' => ['description' => '最大扫描行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '100000'], + 'AvgRowsExamined' => ['description' => '平均扫描行数。', 'type' => 'number', 'format' => 'double', 'example' => '100.1'], + 'MaxRowsSent' => ['description' => '最大返回行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10000'], + 'AvgRowsSent' => ['description' => '平均返回行数。', 'type' => 'number', 'format' => 'double', 'example' => '100.1'], + 'MaxRowsAffected' => ['description' => '最大影响行数。'."\n" + ."\n" + .'> 取值为-1说明暂未采集到该字段。', 'type' => 'integer', 'format' => 'int64', 'example' => '10000'], + 'AvgRowsAffected' => ['description' => '平均影响行数。'."\n" + ."\n" + .'> 取值为-1说明暂未采集到该字段。', 'type' => 'number', 'format' => 'double', 'example' => '100.1'], + 'RuleList' => [ + 'description' => '规则列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Name' => ['description' => '规则名,具体信息请参见[查询治理](~~290038~~)。', 'type' => 'string', 'example' => 'DAS_NOT_IMPORTANT'], + 'Type' => ['description' => '规则类别:'."\n" + ."\n" + .'- **Predefined**:系统预定义。'."\n" + .'- **UserDefined**:用户自定义。', 'type' => 'string', 'example' => 'Predefined'], + ], + 'description' => '', + ], ], + 'User' => ['description' => '数据库账号。', 'type' => 'string', 'example' => 'testUser'], ], ], ], - 'PageNo' => [ - 'description' => '页码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '分页大小。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'Total' => [ - 'description' => '总记录数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '19', - ], ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"List\\": [\\n {\\n \\"BatchId\\": 1683530096156,\\n \\"ClientAppName\\": \\".Net SqlClient Data Provider\\",\\n \\"DataBase\\": \\"testdb1\\",\\n \\"HostName\\": \\"ALLBNMGTAPPRD01\\",\\n \\"LoginId\\": \\"Testuser\\",\\n \\"QueryHash\\": \\"DC08B955CAD25E7B\\",\\n \\"Spid\\": \\"1717\\",\\n \\"SqlText\\": \\"select * from test1\\",\\n \\"StartTime\\": \\"1608888296000\\",\\n \\"WaitTimeMs\\": 30000,\\n \\"WaitType\\": \\"MISCELLANEOUS\\",\\n \\"CurrentCollectionTime\\": 1700065800000\\n }\\n ],\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10,\\n \\"Total\\": 19\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', - 'title' => '查询RDS SQL Server实例的锁阻塞列表', - 'description' => '* 本接口仅适用于RDS SQL Server版实例。'."\n" - .'* 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'* 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - ], - 'CreateLatestDeadLockAnalysis' => [ - 'summary' => '创建最近死锁分析任务。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'https', - ], - 'security' => [ - [ - 'AK' => [], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhdm7GLEEO', + 'title' => '获取查询治理模板数据', + 'description' => '- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于2.1.8,建议使用最新版本。'."\n" + .'- 使用DAS的SDK的版本为2.1.8或以上。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 本接口适用的数据库引擎为:'."\n" + .' - RDS MySQL'."\n" + .' - PolarDB MySQL版'."\n" + .' - RDS PostgreSQL', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetQueryOptimizeDataStats'], ], ], - 'parameters' => [ - [ - 'name' => 'InstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'pc-bp1u5mas9exx7****', - ], - ], + 'ramActions' => [ [ - 'name' => 'NodeId', - 'in' => 'formData', - 'schema' => [ - 'description' => '节点ID。'."\n" - ."\n" - .'> 对于PolarDB MySQL版实例,需要提供节点ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'pi-bp16v3824rt73****', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => 'OpenAPI请求的ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'enumValueTitles' => [ - '执行成功' => 'true', - '执行失败' => 'false', - ], - 'example' => 'true', - ], - 'Data' => [ - 'description' => '创建任务是否成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'enumValueTitles' => [ - '执行成功' => 'true', - '执行失败' => 'false', - ], - 'example' => 'true', - ], + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetQueryOptimizeDataStats', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], - ], - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": true,\\n \\"Data\\": true\\n}","type":"json"}]', - 'title' => '创建最近死锁分析任务', - 'description' => '本接口用于创建最近死锁分析任务。DAS基于SHOW ENGINE INNODB STATUS返回的最近一次死锁日志进行分析。如果发生过多次死锁,DAS只会对最近一次死锁进行分析。详情请参见[最近死锁分析](~~2858236~~)。'."\n" - ."\n" - .'使用该接口需满足以下前提条件:'."\n" - ."\n" - .'- 目标数据库引擎为:RDS MySQL、自建MySQL、PolarDB MySQL版、PolarDB-X 2.0。'."\n" - .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Total\\": 10,\\n \\"PageNo\\": 0,\\n \\"PageSize\\": 0,\\n \\"Extra\\": \\"None\\",\\n \\"List\\": [\\n {\\n \\"InstanceId\\": \\"rm-2ze8g2am97624****\\",\\n \\"Dbname\\": \\"testdb01\\",\\n \\"SqlId\\": \\"2e8147b5ca2dfc640dfd5e43d96a****\\",\\n \\"SqlType\\": \\"INSERT\\",\\n \\"Psql\\": \\"select 1\\",\\n \\"SqlSample\\": \\"select 2\\",\\n \\"Count\\": 100,\\n \\"MaxQueryTime\\": 1.1,\\n \\"AvgQueryTime\\": 1.1,\\n \\"MaxLockTime\\": 0.1,\\n \\"AvgLockTime\\": 0.1,\\n \\"MaxRowsExamined\\": 100000,\\n \\"AvgRowsExamined\\": 100.1,\\n \\"MaxRowsSent\\": 10000,\\n \\"AvgRowsSent\\": 100.1,\\n \\"MaxRowsAffected\\": 10000,\\n \\"AvgRowsAffected\\": 100.1,\\n \\"RuleList\\": [\\n {\\n \\"Name\\": \\"DAS_NOT_IMPORTANT\\",\\n \\"Type\\": \\"Predefined\\"\\n }\\n ],\\n \\"User\\": \\"testUser\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetQueryOptimizeDataStatsResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Total>10</Total>\\n <Extra>None</Extra>\\n <List>\\n <InstanceId>rm-2ze8g2am97624****</InstanceId>\\n <Dbname>testdb01</Dbname>\\n <SqlId>2e8147b5ca2dfc640dfd5e43d96a****</SqlId>\\n <SqlType>INSERT</SqlType>\\n <Psql>select 1</Psql>\\n <SqlSample>select 2</SqlSample>\\n <Count>100</Count>\\n <MaxQueryTime>1.1</MaxQueryTime>\\n <AvgQueryTime>1.1</AvgQueryTime>\\n <MaxLockTime>0.1</MaxLockTime>\\n <AvgLockTime>0.1</AvgLockTime>\\n <MaxRowsExamined>100000</MaxRowsExamined>\\n <AvgRowsExamined>100.1</AvgRowsExamined>\\n <MaxRowsSent>10000</MaxRowsSent>\\n <AvgRowsSent>100.1</AvgRowsSent>\\n <MaxRowsAffected>10000</MaxRowsAffected>\\n <AvgRowsAffected>100.1</AvgRowsAffected>\\n <RuleList>\\n <Name>DAS_NOT_IMPORTANT</Name>\\n <Type>Predefined</Type>\\n </RuleList>\\n </List>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetQueryOptimizeDataStatsResponse>","errorExample":""}]', ], - 'GetDeadLockHistory' => [ - 'summary' => '获取最近死锁分析、全量死锁分析的历史分析任务列表。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetQueryOptimizeDataTop' => [ + 'summary' => '调用GetQueryOptimizeDataTop接口,获取查询治理实例红榜和实例黑榜的数据。', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhdm7GLEEO', - ], - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'InstanceId', + 'name' => 'Engine', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'pc-bp1u5mas9exx7****'."\n", - ], + 'schema' => ['description' => '数据库引擎,取值:'."\n" + ."\n" + .'- **MySQL**'."\n" + .'- **PolarDBMySQL**'."\n" + .'- **PostgreSQL**', 'type' => 'string', 'required' => true, 'example' => 'MySQL'], ], [ - 'name' => 'NodeId', + 'name' => 'InstanceIds', 'in' => 'query', - 'schema' => [ - 'description' => '节点ID。'."\n" - ."\n" - .'> 对于PolarDB MySQL版实例,需要提供节点ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'pi-bp16v3824rt73****', - ], + 'schema' => ['description' => '实例ID,多个实例ID用逗号分隔。', 'type' => 'string', 'required' => false, 'example' => 'rm-2ze8g2am97624****'], ], [ - 'name' => 'PageNo', + 'name' => 'TagNames', 'in' => 'query', - 'schema' => [ - 'description' => '页码。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '每页大小,最大值为**100**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], - ], - [ - 'name' => 'StartTime', + 'name' => 'Time', 'in' => 'query', - 'schema' => [ - 'description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。'."\n" - .'><notice>该字段类型为Long,在序列化/反序列化的过程中可能导致精度丢失,请注意数值不得大于9007199254740991。></notice>', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1731983066000', - ], + 'schema' => ['description' => '查询数据的日期,格式为Unix时间戳,单位为毫秒。', 'type' => 'string', 'required' => true, 'example' => '1642953600000'], ], [ - 'name' => 'EndTime', + 'name' => 'Type', 'in' => 'query', - 'schema' => [ - 'description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。'."\n" - .'><notice>该字段类型为Long,在序列化/反序列化的过程中可能导致精度丢失,请注意数值不得大于9007199254740991。></notice>', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1732069466000', - ], + 'schema' => ['description' => '需要查询的榜单类型:'."\n" + ."\n" + .'- **RED**:实例红榜。'."\n" + .'- **BLACK**:实例黑榜。', 'type' => 'string', 'required' => true, 'example' => 'RED'], ], [ - 'name' => 'Source', + 'name' => 'Region', 'in' => 'query', - 'schema' => [ - 'description' => '任务来源:'."\n" - .'- **MANUAL**或**不传入**:查询最近死锁分析任务。'."\n" - .'- **AUTO**:查询全量死锁分析任务。'."\n" - .'><notice>传入AUTO查询全量死锁分析任务时,查询开始时间最大不能早于结束时间7天。></notice>', - 'type' => 'string', - 'required' => false, - 'example' => 'AUTO', - ], + 'schema' => ['description' => '实例所属地域,取值:'."\n" + ."\n" + .'- **cn-china**:中国内地。'."\n" + .'- **cn-hongkong**:中国香港。'."\n" + .'- **ap-southeast-1**:新加坡。'."\n" + ."\n" + .'此参数只有在请求参数**InstanceIds**为空时有效。如果请求参数**InstanceIds**为空时,按照**Region**参数设置的地域获取数据,系统默认实例所属地域为**cn-china**;如果请求参数**InstanceIds**不为空时,即使设置了**Region**参数,也以**InstanceIds**所传入的第一个实例所在地域为准获取数据。'."\n" + ."\n" + .'> 在中国内地各地域创建的实例,传入此参数时,都为**cn-china**。', 'type' => 'string', 'required' => false, 'example' => 'cn-china'], ], ], 'responses' => [ @@ -16201,174 +14191,138 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'Synchro' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ - 'description' => '返回的JSON格式数据。'."\n" - ."\n" - .'- total: 死锁总数。'."\n" - .'- list: 死锁列表:'."\n" - .' - accountId: 用户ID。'."\n" - .' - textId: 死锁的文本ID。'."\n" - .' - gmtModified: 诊断生成时间。'."\n" - .' - lockTime: 死锁发生时间。'."\n" - .' - gmtCreate: 诊断创建时间。'."\n" - .' - nodeId: 节点ID。'."\n" - .' - uuid: 实例ID。', - 'type' => 'string', - 'example' => '{'."\n" - .' "total": 2,'."\n" - .' "list": ['."\n" - .' {'."\n" - .' "accountId": "108************",'."\n" - .' "textId": "35303d12d52d29ba73bb85fa2d5b****",'."\n" - .' "gmtModified": 1732712680000,'."\n" - .' "lockTime": 1732687047000,'."\n" - .' "gmtCreate": 1732712680000,'."\n" - .' "nodeId": "pi-8****************",'."\n" - .' "uuid": "pc-8v**************"'."\n" - .' },'."\n" - .' {'."\n" - .' "accountId": "108************",'."\n" - .' "textId": "50a24bdcc5fe7e03f92a55ae7574****",'."\n" - .' "gmtModified": 1732626448000,'."\n" - .' "lockTime": 1722500305000,'."\n" - .' "gmtCreate": 1732626448000,'."\n" - .' "nodeId": "pi-8****************",'."\n" - .' "uuid": "pc-8v**************"'."\n" - .' }'."\n" - .' ]'."\n" - .'}', - ], - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', + 'description' => '详细信息列表。', + 'type' => 'object', + 'properties' => [ + 'Total' => ['description' => '总数据量。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'PageNo' => ['description' => '备用参数。', 'type' => 'integer', 'format' => 'int32', 'example' => 'None'], + 'PageSize' => ['description' => '备用参数。', 'type' => 'integer', 'format' => 'int32', 'example' => 'None'], + 'Extra' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], + 'List' => [ + 'description' => '榜单信息列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'InstanceId' => ['description' => '实例ID。', 'type' => 'string', 'example' => 'rm-2ze8g2am97624****'], + 'Type' => ['description' => '指标名:'."\n" + ."\n" + .'- **sqlExecuteCount**:慢SQL执行次数。'."\n" + .'- **optimizedSqlExecuteCount**:推荐优化的慢SQL执行次数。', 'type' => 'string', 'example' => 'sqlExecuteCount'], + 'Value' => ['description' => '指标的数值。', 'type' => 'number', 'format' => 'double', 'example' => '100'], + ], + 'description' => '', + ], + ], + ], ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Synchro\\": \\"None\\",\\n \\"Data\\": \\"{\\\\n \\\\\\"total\\\\\\": 2,\\\\n \\\\\\"list\\\\\\": [\\\\n {\\\\n \\\\\\"accountId\\\\\\": \\\\\\"108************\\\\\\",\\\\n \\\\\\"textId\\\\\\": \\\\\\"35303d12d52d29ba73bb85fa2d5b****\\\\\\",\\\\n \\\\\\"gmtModified\\\\\\": 1732712680000,\\\\n \\\\\\"lockTime\\\\\\": 1732687047000,\\\\n \\\\\\"gmtCreate\\\\\\": 1732712680000,\\\\n \\\\\\"nodeId\\\\\\": \\\\\\"pi-8****************\\\\\\",\\\\n \\\\\\"uuid\\\\\\": \\\\\\"pc-8v**************\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\"accountId\\\\\\": \\\\\\"108************\\\\\\",\\\\n \\\\\\"textId\\\\\\": \\\\\\"50a24bdcc5fe7e03f92a55ae7574****\\\\\\",\\\\n \\\\\\"gmtModified\\\\\\": 1732626448000,\\\\n \\\\\\"lockTime\\\\\\": 1722500305000,\\\\n \\\\\\"gmtCreate\\\\\\": 1732626448000,\\\\n \\\\\\"nodeId\\\\\\": \\\\\\"pi-8****************\\\\\\",\\\\n \\\\\\"uuid\\\\\\": \\\\\\"pc-8v**************\\\\\\"\\\\n }\\\\n ]\\\\n}\\",\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', - 'title' => '获取死锁分析的任务列表', - 'description' => '本接口用于获取最近死锁分析、全量死锁分析的历史分析记录。详情请参见[死锁分析](~~2858236~~)。'."\n" - ."\n" - .'使用该接口需满足以下前提条件:'."\n" - ."\n" - .'- 查询最近死锁分析历史分析记录的目标数据库引擎为:RDS MySQL、自建MySQL、PolarDB MySQL版、PolarDB-X 2.0。'."\n" - .'- 查询全量死锁分析历史分析记录的目标数据库引擎为:RDS MySQL、PolarDB MySQL版,且已开通[DAS运维服务(原经济版)](~~2666482~~)。'."\n" - .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - ], - 'GetDeadLockDetail' => [ - 'summary' => '查询单个死锁详情。', - 'methods' => [ - 'post', - 'get', + 'title' => '获取查询治理实例红榜和实例黑榜的数据', + 'description' => '- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于2.1.8,建议使用最新版本。'."\n" + .'- 使用DAS的SDK的版本为2.1.8或以上。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 本接口适用的数据库引擎为:'."\n" + .' - RDS MySQL'."\n" + .' - PolarDB MySQL版'."\n" + .' - RDS PostgreSQL', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetQueryOptimizeDataTop'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetQueryOptimizeDataTop', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Total\\": 10,\\n \\"PageNo\\": 0,\\n \\"PageSize\\": 0,\\n \\"Extra\\": \\"None\\",\\n \\"List\\": [\\n {\\n \\"InstanceId\\": \\"rm-2ze8g2am97624****\\",\\n \\"Type\\": \\"sqlExecuteCount\\",\\n \\"Value\\": 100\\n }\\n ]\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetQueryOptimizeDataTopResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Total>10</Total>\\n <Extra>None</Extra>\\n <List>\\n <InstanceId>rm-2ze8g2am97624****</InstanceId>\\n <Type>sqlExecuteCount</Type>\\n <Value>100</Value>\\n </List>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetQueryOptimizeDataTopResponse>","errorExample":""}]', + ], + 'GetQueryOptimizeDataTrend' => [ + 'summary' => '调用GetQueryOptimizeDataTrend接口,获取查询治理趋势数据。', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhdm7GLEEO', - ], - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'InstanceId', + 'name' => 'Engine', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'pc-bp1u5mas9exx7****', - ], + 'schema' => ['description' => '数据库引擎,取值:'."\n" + ."\n" + .'- **MySQL**'."\n" + .'- **PolarDBMySQL**'."\n" + .'- **PostgreSQL**', 'type' => 'string', 'required' => true, 'example' => 'MySQL'], ], [ - 'name' => 'NodeId', + 'name' => 'InstanceIds', 'in' => 'query', - 'schema' => [ - 'description' => '节点ID。'."\n" - ."\n" - .'> 对于PolarDB MySQL版实例,需要提供节点ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'pi-bp16v3824rt73****', - ], + 'schema' => ['description' => '实例ID,多个实例ID用逗号分隔。', 'type' => 'string', 'required' => false, 'example' => 'rm-2ze8g2am97624****'], ], [ - 'name' => 'TextId', + 'name' => 'TagNames', 'in' => 'query', - 'schema' => [ - 'description' => '查询死锁历史任务列表GetDeadLockHistory中返回的死锁TextId。', - 'type' => 'string', - 'required' => true, - 'example' => 'a0e390cd5aca9ae964448f040153****', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ - 'name' => 'Source', + 'name' => 'Start', 'in' => 'query', - 'schema' => [ - 'description' => '任务来源:'."\n" - .'- **MANUAL**或**不传入**:查询最近死锁分析任务。'."\n" - .'- **AUTO**:查询全量死锁分析任务。', - 'type' => 'string', - 'required' => false, - 'example' => 'AUTO', - ], + 'schema' => ['description' => '查询数据的起始日期,格式为Unix时间戳,单位为毫秒。'."\n" + ."\n" + .'> 查询开始时间最大不能早于当前时间2个月。', 'type' => 'string', 'required' => true, 'example' => '1642435200000'], + ], + [ + 'name' => 'End', + 'in' => 'query', + 'schema' => ['description' => '查询数据的终止日期,格式为Unix时间戳,单位为毫秒。'."\n" + ."\n" + .'> 查询结束时间需晚于查询开始时间,最晚只能查询到当天凌晨0点的数据。', 'type' => 'string', 'required' => true, 'example' => '1643040000000'], + ], + [ + 'name' => 'Region', + 'in' => 'query', + 'schema' => ['description' => '实例所属地域,取值:'."\n" + ."\n" + .'- **cn-china**:中国内地。'."\n" + .'- **cn-hongkong**:中国香港。'."\n" + .'- **ap-southeast-1**:新加坡。'."\n" + ."\n" + .'此参数只有在请求参数**InstanceIds**为空时有效。如果请求参数**InstanceIds**为空时,按照**Region**参数设置的地域获取数据,系统默认实例所属地域为**cn-china**;如果请求参数**InstanceIds**不为空时,即使设置了**Region**参数,也以**InstanceIds**所传入的第一个实例所在地域为准获取数据。'."\n" + ."\n" + .'> 在中国内地各地域创建的实例,传入此参数时,都为**cn-china**。', 'type' => 'string', 'required' => false, 'example' => 'cn-china'], ], ], 'responses' => [ @@ -16376,198 +14330,121 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '9CB97BC4-6479-55D0-B9D0-EA925AFE****', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'Synchro' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ - 'description' => '返回的JSON格式数据:'."\n" - ."\n" - .'- accountId:用户ID。'."\n" - .'- textId:死锁文本ID。'."\n" - .'- gmtModified:诊断生成时间。'."\n" - .'- originText:LATEST DETECTED DEADLOCK的原始死锁文本或错误日志中的原始死锁文本。'."\n" - .'- deadlock:死锁详情:'."\n" - .' - occurTime:死锁发生时间。'."\n" - .' - originTextId:死锁文本ID。'."\n" - .' - rollbackTrxId:回滚的事务编号。'."\n" - .' - transactions:'."\n" - .' - deadlockIdInDB:DB中的死锁编号。'."\n" - .' - ip:访问IP。'."\n" - .' - queryId:请求ID。'."\n" - .' - queryType:请求类型。'."\n" - .' - relatedTables:相关表。'."\n" - .' - tableNamesString:相关表。'."\n" - .' - sqlText:SQL文本。'."\n" - .' - threadId:线程ID。'."\n" - .' - transactionId:事务ID。'."\n" - .' - trxIdInLock:死锁中的事务编号。'."\n" - .' - userName:数据库用户名。'."\n" - .' - waitLockIndexName:等待锁索引名。'."\n" - .' - waitLockMode:等待锁类型。'."\n" - .' - lockWait:等待锁。'."\n" - .' - holdLockIndexName:持有锁索引名。'."\n" - .' - holdLockMode:持有锁类型。'."\n" - .' - lockHold:持有锁。'."\n" - .' - trxNum:事务数量。'."\n" - .'- gmtCreate:诊断创建时间。'."\n" - .'- nodeId:节点ID。'."\n" - .'- uuid:实例ID。', - 'type' => 'string', - 'example' => '{'."\n" - .' "accountId": "108************",'."\n" - .' "textId": "35303d12d52d29ba73bb************",'."\n" - .' "gmtModified": 1732712680000,'."\n" - .' "originText": "LATEST DETECTED DEADLOCK****",'."\n" - .' "deadlock": "{\\"id\\":0,\\"occurTime\\":1732687047000,\\"originTextId\\":\\"35303d12d52d29ba73bb************\\",\\"rollbackTrxId\\":\\"2\\",\\"transactions\\":[{\\"deadlockIdInDB\\":0,\\"ip\\":\\"100.***.***.***\\",\\"lockWait\\":\\"index PRIMARY of table `das`.`students` trx id 15989454 lock_mode X locks rec but not gap waiting\\",\\"queryId\\":\\"386737457\\",\\"queryType\\":\\"updating\\",\\"relatedTables\\":[\\"`das`.`students`\\"],\\"sqlText\\":\\"update students set name=UUID() where id = 2 \\",\\"tableNamesString\\":\\"`das`.`students`\\",\\"threadId\\":\\"9194526\\",\\"transactionId\\":\\"15989454\\",\\"trxIdInLock\\":1,\\"userName\\":\\"das\\",\\"waitLockIndexName\\":\\"PRIMARY \\",\\"waitLockMode\\":\\"X locks rec but not gap waiting\\"},{\\"deadlockIdInDB\\":0,\\"holdLockIndexName\\":\\"PRIMARY \\",\\"holdLockMode\\":\\"X locks rec but not gap\\",\\"ip\\":\\"100.***.***.***\\",\\"lockHold\\":\\"index PRIMARY of table `das`.`students` trx id 15989451 lock_mode X locks rec but not gap\\",\\"lockWait\\":\\"index PRIMARY of table `das`.`students` trx id 15989451 lock_mode X locks rec but not gap waiting\\",\\"queryId\\":\\"386737566\\",\\"queryType\\":\\"updating\\",\\"relatedTables\\":[\\"`das`.`students`\\"],\\"sqlText\\":\\"update students set name=UUID() where id = 3 \\",\\"tableNamesString\\":\\"`das`.`students`\\",\\"threadId\\":\\"9194501\\",\\"transactionId\\":\\"15989451\\",\\"trxIdInLock\\":2,\\"userName\\":\\"das\\",\\"waitLockIndexName\\":\\"PRIMARY \\",\\"waitLockMode\\":\\"X locks rec but not gap waiting\\"}],\\"trxNum\\":2}",'."\n" - .' "gmtCreate": 1732712680000,'."\n" - .' "nodeId": "pi-8****************",'."\n" - .' "uuid": "pc-8v***************"'."\n" - .'}', - ], - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', + 'description' => '详细信息列表。', + 'type' => 'object', + 'properties' => [ + 'Total' => ['description' => '总数据量。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'PageNo' => ['description' => '备用参数。', 'type' => 'integer', 'format' => 'int32', 'example' => 'None'], + 'PageSize' => ['description' => '备用参数。', 'type' => 'integer', 'format' => 'int32', 'example' => 'None'], + 'Extra' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], + 'List' => [ + 'description' => '趋势数据列表。', + 'type' => 'array', + 'items' => [ + 'description' => '趋势数据列表。', + 'type' => 'object', + 'properties' => [ + 'Kpi' => ['description' => '指标名,指标名及其含义如下:'."\n" + ."\n" + .'- **sqlExecuteCount**:慢SQL执行次数。'."\n" + .'- **sqlExecuteCountDiff**:慢SQL执行次数相较于前一天的差值。'."\n" + .'- **sqlCount**:慢SQL模板数据。'."\n" + .'- **sqlCountDiff**:慢SQL模板数相较于前一天的差值。'."\n" + .'- **optimizedSqlExecuteCount**:推荐优化的慢SQL执行次。'."\n" + .'- **optimizedSqlExecuteCountDiff**:推荐优化的慢SQL执行次数相较于前一天的差值。'."\n" + .'- **optimizedSqlCount**:推荐优化的慢SQL数。'."\n" + .'- **optimizedSqlCountDiff**:推荐优化的慢SQL数相较于前一天的差值。', 'type' => 'string', 'example' => 'sqlExecuteCount'], + 'Timestamp' => ['description' => '数据日期,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1643040000000'], + 'Value' => ['description' => '指标数据的值。', 'type' => 'number', 'format' => 'double', 'example' => '1000'], + ], + ], + ], + ], ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Total\\": 10,\\n \\"PageNo\\": 0,\\n \\"PageSize\\": 0,\\n \\"Extra\\": \\"None\\",\\n \\"List\\": [\\n {\\n \\"Kpi\\": \\"sqlExecuteCount\\",\\n \\"Timestamp\\": 1643040000000,\\n \\"Value\\": 1000\\n }\\n ]\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetQueryOptimizeDataTrendResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Total>10</Total>\\n <Extra>None</Extra>\\n <List>\\n <Kpi>sqlExecuteCount</Kpi>\\n <Timestamp>1643040000000</Timestamp>\\n <Value>1000</Value>\\n </List>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetQueryOptimizeDataTrendResponse>","errorExample":""}]', + 'title' => '获取查询治理趋势数据', + 'description' => '- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于2.1.8,建议使用最新版本。'."\n" + .'- 使用DAS的SDK的版本为2.1.8或以上。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 本接口适用的数据库引擎为:'."\n" + .' - RDS MySQL'."\n" + .' - PolarDB MySQL版'."\n" + .' - RDS PostgreSQL', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetQueryOptimizeDataTrend', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9CB97BC4-6479-55D0-B9D0-EA925AFE****\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Synchro\\": \\"None\\",\\n \\"Data\\": \\"{\\\\n \\\\\\"accountId\\\\\\": \\\\\\"108************\\\\\\",\\\\n \\\\\\"textId\\\\\\": \\\\\\"35303d12d52d29ba73bb************\\\\\\",\\\\n \\\\\\"gmtModified\\\\\\": 1732712680000,\\\\n \\\\\\"originText\\\\\\": \\\\\\"LATEST DETECTED DEADLOCK****\\\\\\",\\\\n \\\\\\"deadlock\\\\\\": \\\\\\"{\\\\\\\\\\\\\\"id\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"occurTime\\\\\\\\\\\\\\":1732687047000,\\\\\\\\\\\\\\"originTextId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"35303d12d52d29ba73bb************\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"rollbackTrxId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"2\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"transactions\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"deadlockIdInDB\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"ip\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"100.***.***.***\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"lockWait\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"index PRIMARY of table `das`.`students` trx id 15989454 lock_mode X locks rec but not gap waiting\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"queryId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"386737457\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"queryType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"updating\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"relatedTables\\\\\\\\\\\\\\":[\\\\\\\\\\\\\\"`das`.`students`\\\\\\\\\\\\\\"],\\\\\\\\\\\\\\"sqlText\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"update students set name=UUID() where id = 2 \\\\\\\\\\\\\\",\\\\\\\\\\\\\\"tableNamesString\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"`das`.`students`\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"threadId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"9194526\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"transactionId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"15989454\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"trxIdInLock\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"userName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"das\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"waitLockIndexName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"PRIMARY \\\\\\\\\\\\\\",\\\\\\\\\\\\\\"waitLockMode\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"X locks rec but not gap waiting\\\\\\\\\\\\\\"},{\\\\\\\\\\\\\\"deadlockIdInDB\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"holdLockIndexName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"PRIMARY \\\\\\\\\\\\\\",\\\\\\\\\\\\\\"holdLockMode\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"X locks rec but not gap\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"ip\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"100.***.***.***\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"lockHold\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"index PRIMARY of table `das`.`students` trx id 15989451 lock_mode X locks rec but not gap\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"lockWait\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"index PRIMARY of table `das`.`students` trx id 15989451 lock_mode X locks rec but not gap waiting\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"queryId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"386737566\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"queryType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"updating\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"relatedTables\\\\\\\\\\\\\\":[\\\\\\\\\\\\\\"`das`.`students`\\\\\\\\\\\\\\"],\\\\\\\\\\\\\\"sqlText\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"update students set name=UUID() where id = 3 \\\\\\\\\\\\\\",\\\\\\\\\\\\\\"tableNamesString\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"`das`.`students`\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"threadId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"9194501\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"transactionId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"15989451\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"trxIdInLock\\\\\\\\\\\\\\":2,\\\\\\\\\\\\\\"userName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"das\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"waitLockIndexName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"PRIMARY \\\\\\\\\\\\\\",\\\\\\\\\\\\\\"waitLockMode\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"X locks rec but not gap waiting\\\\\\\\\\\\\\"}],\\\\\\\\\\\\\\"trxNum\\\\\\\\\\\\\\":2}\\\\\\",\\\\n \\\\\\"gmtCreate\\\\\\": 1732712680000,\\\\n \\\\\\"nodeId\\\\\\": \\\\\\"pi-8****************\\\\\\",\\\\n \\\\\\"uuid\\\\\\": \\\\\\"pc-8v***************\\\\\\"\\\\n}\\",\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', - 'title' => '查询单个死锁详情', - 'description' => '本接口用于获取最近死锁分析、全量死锁分析的单个死锁详情。详情请参见[死锁分析](~~2858236~~)。'."\n" - ."\n" - .'使用该接口需满足以下前提条件:'."\n" - ."\n" - .'- 查询最近死锁分析详情的目标数据库引擎为:RDS MySQL、自建MySQL、PolarDB MySQL版、PolarDB-X 2.0。'."\n" - .'- 查询全量死锁分析详情的目标数据库引擎为:RDS MySQL、PolarDB MySQL版,且已开通[DAS运维服务(原经济版)](~~2666482~~)。'."\n" - .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', ], - 'GetDeadlockHistogram' => [ - 'summary' => '查询时间范围内基于错误日志全量死锁分析的死锁数量趋势。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetQueryOptimizeExecErrorSample' => [ + 'summary' => '调用GetQueryOptimizeExecErrorSample接口,获取执行失败的样本数据。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '208479', - 'abilityTreeNodes' => [ - 'FEATUREhdm7GLEEO', - ], + 'abilityTreeNodes' => ['FEATUREhdmTQGIFY'], ], 'parameters' => [ [ - 'name' => 'InstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'pc-bp1u5mas9exx7****', - ], - ], - [ - 'name' => 'NodeId', - 'in' => 'formData', - 'schema' => [ - 'description' => '节点ID。'."\n" - ."\n" - .'> 对于PolarDB MySQL版实例,需要提供节点ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'pi-bp16v3824rt73****', - ], + 'name' => 'Engine', + 'in' => 'query', + 'schema' => ['description' => '数据库引擎,取值:'."\n" + ."\n" + .'- **MySQL**'."\n" + .'- **PolarDBMySQL**'."\n" + .'- **PostgreSQL**', 'type' => 'string', 'required' => true, 'example' => 'MySQL'], ], [ - 'name' => 'StartTime', - 'in' => 'formData', - 'schema' => [ - 'description' => '查询开始时间,格式为 Unix 时间戳,单位为毫秒。'."\n" - ."\n" - .'>查询开始时间最大不能早于结束时间 7 天。'."\n" - ."\n" - .'><notice>该字段类型为 Long,在序列化/反序列化的过程中可能导致精度丢失,请注意数值不得大于 9007199254740991。></notice>', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1731983066000', - ], + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'], ], [ - 'name' => 'EndTime', - 'in' => 'formData', - 'schema' => [ - 'description' => '查询结束时间,格式为 Unix 时间戳,单位为毫秒。'."\n" - .'><notice>该字段类型为 Long,在序列化/反序列化的过程中可能导致精度丢失,请注意数值不得大于 9007199254740991。></notice>', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1732069466000', - ], + 'name' => 'SqlId', + 'in' => 'query', + 'schema' => ['description' => 'SQL模板ID,您可调用[GetQueryOptimizeExecErrorStats](~~405235~~)接口查询SQL模板ID。', 'type' => 'string', 'required' => true, 'example' => '2e8147b5ca2dfc640dfd5e43d96a****'], ], [ - 'name' => 'Status', - 'in' => 'formData', - 'schema' => [ - 'description' => '任务的分析状态。', - 'type' => 'string', - 'required' => false, - 'example' => 'SUCCESS', - ], + 'name' => 'Time', + 'in' => 'query', + 'schema' => ['description' => '查询数据的日期,格式为Unix时间戳,单位为毫秒。', 'type' => 'string', 'required' => true, 'example' => '1642953600000'], ], ], 'responses' => [ @@ -16575,295 +14452,158 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0A74B755-98B7-59DB-8724-1321B394****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'enumValueTitles' => [ - '执行成功' => 'true', - '执行失败' => 'false', - ], - 'example' => 'true', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ - 'title' => 'List<DeadlockTrendItem>', - 'description' => '返回数据。', - 'type' => 'array', - 'items' => [ - 'description' => '返回信息列表。'."\n", - 'type' => 'object', - 'properties' => [ - 'UserId' => [ - 'title' => '用户ID', - 'description' => '用户ID。', - 'type' => 'string', - 'example' => '108************', - ], - 'InstanceId' => [ - 'title' => '实例ID', - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'pc-bp1u5mas9exx7****', - ], - 'NodeId' => [ - 'title' => '子实例名称,对polar集群使用', - 'description' => '节点ID,对PolarDB MySQL集群使用。', - 'type' => 'string', - 'example' => 'pi-bp16v3824rt73****', - ], - 'TaskId' => [ - 'title' => '死锁任务ID', - 'description' => '全量死锁分析任务ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-1321B394****', - ], - 'StartTime' => [ - 'title' => '诊断范围开始时间', - 'description' => '分析任务范围的开始时间。', - 'type' => 'string', - 'example' => '1729994400000', - ], - 'EndTime' => [ - 'title' => '诊断范围结束时间', - 'description' => '分析任务范围的结束时间。', - 'type' => 'string', - 'example' => '1729998000000', - ], - 'LockNumber' => [ - 'title' => '死锁数量', - 'description' => '死锁数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'Status' => [ - 'title' => '任务状态 (SUCCESS: 诊断完成, FAILED: 诊断异常/失败)', - 'description' => '任务状态:'."\n" - .'- **SUCCESS**: 分析成功。'."\n" - .'- **FAILED**: 分析异常或失败。', - 'type' => 'string', - 'example' => 'SUCCESS', + 'description' => '详细信息列表。', + 'type' => 'object', + 'properties' => [ + 'Total' => ['description' => '总数据量。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'PageNo' => ['description' => '备用参数。', 'type' => 'integer', 'format' => 'int32', 'example' => 'None'], + 'PageSize' => ['description' => '备用参数。', 'type' => 'integer', 'format' => 'int32', 'example' => 'None'], + 'Extra' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], + 'List' => [ + 'description' => '返回信息列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'OrigHost' => ['description' => '执行SQL的客户端IP地址。', 'type' => 'string', 'example' => '100.104.XX.XX'], + 'User' => ['description' => '执行SQL的客户端用户名。', 'type' => 'string', 'example' => 'test01'], + 'Dbname' => ['description' => '数据库名。', 'type' => 'string', 'example' => 'testdb01'], + 'SqlId' => ['description' => 'SQL模板ID。', 'type' => 'string', 'example' => '2e8147b5ca2dfc640dfd5e43d96a****'], + 'SqlText' => ['description' => '执行错误的SQL文本。', 'type' => 'string', 'example' => 'select * from test1'], + 'ErrorCode' => ['description' => '错误码。', 'type' => 'string', 'example' => '1146'], + 'Timestamp' => ['description' => '错误SQL执行的时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1643020306739'], + ], ], ], ], ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Total\\": 2,\\n \\"PageNo\\": 0,\\n \\"PageSize\\": 0,\\n \\"Extra\\": \\"None\\",\\n \\"List\\": [\\n {\\n \\"OrigHost\\": \\"100.104.XX.XX\\",\\n \\"User\\": \\"test01\\",\\n \\"Dbname\\": \\"testdb01\\",\\n \\"SqlId\\": \\"2e8147b5ca2dfc640dfd5e43d96a****\\",\\n \\"SqlText\\": \\"select * from test1\\",\\n \\"ErrorCode\\": \\"1146\\",\\n \\"Timestamp\\": 1643020306739\\n }\\n ]\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetQueryOptimizeExecErrorSampleResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Total>2</Total>\\n <Extra>None</Extra>\\n <List>\\n <OrigHost>100.104.XX.XX</OrigHost>\\n <User>test01</User>\\n <Dbname>testdb01</Dbname>\\n <SqlId>2e8147b5ca2dfc640dfd5e43d96a****</SqlId>\\n <SqlText>select * from test1</SqlText>\\n <ErrorCode>1146</ErrorCode>\\n <Timestamp>1643020306739</Timestamp>\\n </List>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetQueryOptimizeExecErrorSampleResponse>","errorExample":""}]', + 'title' => '获取执行失败的样本数据', + 'description' => '- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于2.1.8,建议使用最新版本。'."\n" + .'- 使用DAS的SDK的版本为2.1.8或以上。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 本接口适用的数据库引擎为:'."\n" + .' - RDS MySQL'."\n" + .' - PolarDB MySQL版'."\n" + .' - RDS PostgreSQL', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetQueryOptimizeExecErrorSample', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"0A74B755-98B7-59DB-8724-1321B394****\\",\\n \\"Success\\": true,\\n \\"Data\\": [\\n {\\n \\"UserId\\": \\"108************\\",\\n \\"InstanceId\\": \\"pc-bp1u5mas9exx7****\\",\\n \\"NodeId\\": \\"pi-bp16v3824rt73****\\",\\n \\"TaskId\\": \\"B6D17591-B48B-4D31-9CD6-1321B394****\\",\\n \\"StartTime\\": \\"1729994400000\\",\\n \\"EndTime\\": \\"1729998000000\\",\\n \\"LockNumber\\": 2,\\n \\"Status\\": \\"SUCCESS\\"\\n }\\n ]\\n}","type":"json"}]', - 'title' => '查询时间范围内全量死锁分析的数量趋势', - 'description' => '本接口用于查询时间范围内全量死锁分析的死锁数量。DAS定时对错误日志进行分析,解析其中的死锁信息,并统计死锁的数量趋势。详情请参见[全量死锁分析](~~2858236~~)。'."\n" - ."\n" - .'使用该接口需满足以下前提条件:'."\n" - ."\n" - .'- 目标数据库引擎为:RDS MySQL、PolarDB MySQL版,且已开通[DAS运维服务(原经济版)](~~2666482~~)。'."\n" - .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', ], - 'GetInstanceMissingIndexList' => [ - 'summary' => '调用GetInstanceMissingIndexList接口,查询RDS SQL Server实例所有缺失索引的详细信息。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetQueryOptimizeExecErrorStats' => [ + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'list', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-t4nfalp2ap421****', - ], - ], - [ - 'name' => 'PageNo', - 'in' => 'query', - 'schema' => [ - 'description' => '分页查询的页码,从1开始,默认为1。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '每页最大记录数,默认值为10。', - 'type' => 'string', - 'required' => false, - 'example' => '10', - ], - ], - [ - 'name' => 'ObjectName', - 'in' => 'query', - 'schema' => [ - 'description' => '对象名。', - 'type' => 'string', - 'required' => false, - 'example' => 'bas_customer', - ], - ], - [ - 'name' => 'ReservedSize', + 'name' => 'Engine', 'in' => 'query', - 'schema' => [ - 'description' => '表总空间筛选条件。单位为MB。输入格式为`运算符+分割服“|”+表总空间大小`,例如筛选条件设置为查询总空间大于等于100M的表时,输入:`>=|100`。', - 'type' => 'string', - 'required' => false, - 'example' => '>=|100', - ], + 'schema' => ['description' => '数据库引擎,取值:'."\n" + ."\n" + .'- **MySQL**'."\n" + .'- **PolarDBMySQL**'."\n" + .'- **PostgreSQL**', 'type' => 'string', 'required' => true, 'example' => 'MySQL'], ], [ - 'name' => 'RowCount', + 'name' => 'InstanceIds', 'in' => 'query', - 'schema' => [ - 'description' => '表记录数筛选条件。输入格式为`运算符+分割服“|”+表记录数`,例如`>=|100`。', - 'type' => 'string', - 'required' => false, - 'example' => '>=|100000', - ], + 'schema' => ['description' => '实例ID,多个实例ID间用逗号分隔。', 'type' => 'string', 'required' => false, 'example' => 'rm-2ze8g2am97624****'], ], [ - 'name' => 'ReservedPages', + 'name' => 'Keywords', 'in' => 'query', - 'schema' => [ - 'description' => '总页数筛选条件。输入格式为`运算符+分割服“|”+总页数`,例如`>=|100`。', - 'type' => 'string', - 'required' => false, - 'example' => '>=|100', - ], + 'schema' => ['description' => 'SQL文本关键词,多个关键词以空格分隔。', 'type' => 'string', 'required' => false, 'example' => 'select update'], ], [ - 'name' => 'IndexCount', + 'name' => 'LogicalOperator', 'in' => 'query', - 'schema' => [ - 'description' => '索引个数(索引缺失表目前所拥有的索引个数)筛选条件。输入格式为`运算符+分割服“|”+索引个数`,例如`>=|100`。', - 'type' => 'string', - 'required' => false, - 'example' => '>=|8', - ], + 'schema' => ['description' => '多个SQL文本关键词逻辑关系,当前支持:'."\n" + ."\n" + .'- **or**:或。'."\n" + .'- **and**:与。', 'type' => 'string', 'required' => false, 'example' => 'or'], ], [ - 'name' => 'UniqueCompiles', + 'name' => 'DbNames', 'in' => 'query', - 'schema' => [ - 'description' => '编译次数筛选条件。输入格式为`运算符+分割服“|”+编译次数`,例如`>=|100`。', - 'type' => 'string', - 'required' => false, - 'example' => '>=|10000', - ], + 'schema' => ['description' => '需要查询的数据库名。', 'type' => 'string', 'required' => false, 'example' => 'testdb01'], ], [ - 'name' => 'UserSeeks', + 'name' => 'Time', 'in' => 'query', - 'schema' => [ - 'description' => '查找次数筛选条件。输入格式为`运算符+分割服“|”+查找次数`,例如`>=|100`。', - 'type' => 'string', - 'required' => false, - 'example' => '>=|1000', - ], + 'schema' => ['description' => '查询数据的日期,格式为Unix时间戳,单位为毫秒。', 'type' => 'string', 'required' => true, 'example' => '1642953600000'], ], [ - 'name' => 'UserScans', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '扫描次数筛选条件。输入格式为`运算符+分割服“|”+扫描次数`,例如`>=|100`。', - 'type' => 'string', - 'required' => false, - 'example' => '>=|10000', - ], + 'schema' => ['description' => '分页查询每页数据量,默认为10。', 'type' => 'string', 'required' => true, 'example' => '10'], ], [ - 'name' => 'AvgTotalUserCost', + 'name' => 'PageNo', 'in' => 'query', - 'schema' => [ - 'description' => '平均开销节约百分比(预测建立了缺失索引后,用户的平均CPU开销节约百分比。)筛选条件。输入格式为`运算符+分割服“|”+平均开销节约百分比`,例如筛选条件设置为查询平均开销节约百分比小于等于10%时,输入:`<=|10`。', - 'type' => 'string', - 'required' => false, - 'example' => '<=|8', - ], + 'schema' => ['description' => '分页查询的页码,从1开始,默认为1。', 'type' => 'string', 'required' => true, 'example' => '1'], ], [ - 'name' => 'AvgUserImpact', + 'name' => 'OrderBy', 'in' => 'query', - 'schema' => [ - 'description' => '性能提升百分比(预测建立了缺失索引后,用户的平均查询性能提升百分比。)筛选条件。输入格式为`运算符+分割服“|”+性能提升百分比`,例如筛选条件设置为查询性能提升百分比大于等于100%时,输入:`>=|100`。', - 'type' => 'string', - 'required' => false, - 'example' => '>|10000', - ], + 'schema' => ['description' => '排序字段,当前仅支持error_count(SQL执行错误次数)。', 'type' => 'string', 'required' => false, 'example' => 'error_count'], ], [ - 'name' => 'StartTime', + 'name' => 'Asc', 'in' => 'query', - 'schema' => [ - 'description' => '索引最后查找时间的开始时间。格式为Unix时间戳,单位为毫秒。', - 'type' => 'string', - 'required' => false, - 'example' => '1679414400000', - ], + 'schema' => ['description' => '是否升序排序,默认为**true**。'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'string', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'EndTime', + 'name' => 'Region', 'in' => 'query', - 'schema' => [ - 'description' => '索引最后查找时间的结束时间。格式为Unix时间戳,单位为毫秒。', - 'type' => 'string', - 'required' => false, - 'example' => '1681869544000', - ], + 'schema' => ['description' => '实例所属地域,取值:'."\n" + ."\n" + .'- **cn-china**:中国内地。'."\n" + .'- **cn-hongkong**:中国香港。'."\n" + .'- **ap-southeast-1**:新加坡。'."\n" + ."\n" + .'此参数只有在请求参数**InstanceIds**为空时有效。如果请求参数**InstanceIds**为空时,按照**Region**参数设置的地域获取数据,系统默认实例所属地域为**cn-china**;如果请求参数**InstanceIds**不为空时,即使设置了**Region**参数,也以**InstanceIds**所传入的第一个实例所在地域为准获取数据。'."\n" + ."\n" + .'> 在中国内地各地域创建的实例,传入此参数时,都为**cn-china**。', 'type' => 'string', 'required' => false, 'example' => 'cn-china'], ], ], 'responses' => [ @@ -16871,307 +14611,125 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ - 'description' => '详细信息列表。', + 'description' => '详细信息列表,包括信息总数、错误码等。', 'type' => 'object', 'properties' => [ + 'Total' => ['description' => '总数据量。', 'type' => 'integer', 'format' => 'int64', 'example' => '19'], + 'PageNo' => ['description' => '页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '每页数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Extra' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], 'List' => [ - 'description' => '返回信息列表。', + 'description' => '执行失败的模板数据列表。', 'type' => 'array', 'items' => [ - 'description' => '记录详情。', + 'description' => '执行失败的模板数据列表。', 'type' => 'object', 'properties' => [ - 'AvgTotalUserCost' => [ - 'description' => '预测建立了缺失索引后,用户的平均CPU开销节约百分比。', - 'type' => 'number', - 'format' => 'double', - 'example' => '4.67', - ], - 'AvgUserImpact' => [ - 'description' => '预测建立了缺失索引后,用户的平均查询性能提升百分比。', - 'type' => 'number', - 'format' => 'double', - 'example' => '98.3'."\n", - ], - 'DatabaseName' => [ - 'description' => '数据库名称。', - 'type' => 'string', - 'example' => 'testdb', - ], - 'EqualityColumns' => [ - 'description' => '相等列。缺失索引被使用来做等于查询的列。', - 'type' => 'string', - 'example' => 'col1,col2,col3', - ], - 'IncludedColumns' => [ - 'description' => '包含列。缺失索引包含列。', - 'type' => 'string', - 'example' => 'col3,col4', - ], - 'IndexCount' => [ - 'description' => '索引个数。索引缺失表目前所拥有的索引个数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'LastUserSeek' => [ - 'description' => '用户最后查找时间。缺失索引用户最后的查找时间点。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1702023327000', - ], - 'ObjectName' => [ - 'description' => '对象名。', - 'type' => 'string', - 'example' => 'stu', - ], - 'ReservedPages' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '5025', - ], - 'ReservedSize' => [ - 'description' => '总空间大小。', - 'type' => 'number', - 'format' => 'double', - 'example' => '39.26', - ], - 'RowCount' => [ - 'description' => '记录数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '226945', - ], - 'SchemaName' => [ - 'description' => '架构名。', - 'type' => 'string', - 'example' => 'dbo', - ], - 'SystemScans' => [ - 'description' => '扫描次数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'SystemSeeks' => [ - 'description' => '查找次数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'UniqueCompiles' => [ - 'description' => '编译次数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2392', - ], - 'UserScans' => [ - 'description' => '用户扫描次数。索引缺失表被扫描的次数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'UserSeeks' => [ - 'description' => '用户查找次数。索引缺失被查找的次数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1081', - ], - 'InequalityColumns' => [ - 'description' => '不等列。缺失索引被使用来做不等于查询的列。', - 'type' => 'string', - 'example' => '2392', - ], - 'CreateIndex' => [ - 'description' => '索引创建语句。您可以使用这个语句来创建缺失索引。', - 'type' => 'string', - 'example' => 'CREATE INDEX [IX_CLOUDDBA_school_dbo_stu@col1_@col2] ON [school].[dbo].[stu]([col1],[col2],[col3]) INCLUDE ([col4],[col5]) WITH (FILLFACTOR = 90, ONLINE = OFF);', - ], + 'InstanceId' => ['description' => '实例ID。', 'type' => 'string', 'example' => 'rm-2ze8g2am97624****'], + 'InstanceName' => ['description' => '实例别名。', 'type' => 'string', 'example' => 'test01'], + 'Dbname' => ['description' => '数据库名。', 'type' => 'string', 'example' => 'testdb01'], + 'SqlId' => ['description' => 'SQL模板ID。', 'type' => 'string', 'example' => '2e8147b5ca2dfc640dfd5e43d96a****'], + 'SqlText' => ['description' => '执行错误的SQL文本。', 'type' => 'string', 'example' => 'select * from test1'], + 'ErrorCode' => ['description' => '错误码。', 'type' => 'string', 'example' => '1146'], + 'ErrorCount' => ['description' => '错误次数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], ], ], ], - 'PageNo' => [ - 'description' => '页码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '每页数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'Total' => [ - 'description' => '总记录数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '16', - ], ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0A74B755-98B7-59DB-8724-1321B394****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"List\\": [\\n {\\n \\"AvgTotalUserCost\\": 4.67,\\n \\"AvgUserImpact\\": 98.3,\\n \\"DatabaseName\\": \\"testdb\\",\\n \\"EqualityColumns\\": \\"col1,col2,col3\\",\\n \\"IncludedColumns\\": \\"col3,col4\\",\\n \\"IndexCount\\": 1,\\n \\"LastUserSeek\\": 1702023327000,\\n \\"ObjectName\\": \\"stu\\",\\n \\"ReservedPages\\": 5025,\\n \\"ReservedSize\\": 39.26,\\n \\"RowCount\\": 226945,\\n \\"SchemaName\\": \\"dbo\\",\\n \\"SystemScans\\": 0,\\n \\"SystemSeeks\\": 0,\\n \\"UniqueCompiles\\": 2392,\\n \\"UserScans\\": 0,\\n \\"UserSeeks\\": 1081,\\n \\"InequalityColumns\\": \\"2392\\",\\n \\"CreateIndex\\": \\"CREATE INDEX [IX_CLOUDDBA_school_dbo_stu@col1_@col2] ON [school].[dbo].[stu]([col1],[col2],[col3]) INCLUDE ([col4],[col5]) WITH (FILLFACTOR = 90, ONLINE = OFF);\\"\\n }\\n ],\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10,\\n \\"Total\\": 16\\n },\\n \\"RequestId\\": \\"0A74B755-98B7-59DB-8724-1321B394****\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', - 'title' => '查询RDS SQL Server实例索引缺失情况', - 'description' => '* 本接口仅适用于RDS SQL Server版实例。'."\n" - .'* 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'* 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - ], - 'DescribeSlowLogHistogramAsync' => [ - 'summary' => '异步获取实例慢日志趋势数据。', - 'methods' => [ - 'post', - 'get', + 'title' => '获取执行失败的模板数据', + 'summary' => '调用GetQueryOptimizeExecErrorStats接口,获取执行失败的模板数据。', + 'description' => '- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 本接口适用的数据库引擎为:'."\n" + .' - RDS MySQL'."\n" + .' - PolarDB MySQL版'."\n" + .' - RDS PostgreSQL', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetQueryOptimizeExecErrorStats'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetQueryOptimizeExecErrorStats', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Total\\": 19,\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10,\\n \\"Extra\\": \\"None\\",\\n \\"List\\": [\\n {\\n \\"InstanceId\\": \\"rm-2ze8g2am97624****\\",\\n \\"InstanceName\\": \\"test01\\",\\n \\"Dbname\\": \\"testdb01\\",\\n \\"SqlId\\": \\"2e8147b5ca2dfc640dfd5e43d96a****\\",\\n \\"SqlText\\": \\"select * from test1\\",\\n \\"ErrorCode\\": \\"1146\\",\\n \\"ErrorCount\\": 10\\n }\\n ]\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetQueryOptimizeExecErrorStatsResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Total>19</Total>\\n <PageNo>1</PageNo>\\n <PageSize>10</PageSize>\\n <Extra>None</Extra>\\n <List>\\n <InstanceId>rm-2ze8g2am97624****</InstanceId>\\n <InstanceName>test01</InstanceName>\\n <Dbname>testdb01</Dbname>\\n <SqlId>2e8147b5ca2dfc640dfd5e43d96a****</SqlId>\\n <SqlText>select * from test1</SqlText>\\n <ErrorCode>1146</ErrorCode>\\n <ErrorCount>10</ErrorCount>\\n </List>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetQueryOptimizeExecErrorStatsResponse>","errorExample":""}]', + ], + 'GetQueryOptimizeRuleList' => [ + 'summary' => '调用GetQueryOptimizeRuleList接口,获取规则列表。', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '236527', - 'abilityTreeNodes' => [ - 'FEATUREhdmR88NLD', - ], - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'InstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****'."\n", - ], - ], - [ - 'name' => 'NodeId', - 'in' => 'formData', - 'schema' => [ - 'description' => '节点ID。'."\n" - .'> 对于PolarDB MySQL版实例,需要提供节点ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'r-****-db-0', - ], + 'name' => 'Engine', + 'in' => 'query', + 'schema' => ['description' => '数据库引擎,取值:'."\n" + ."\n" + .'- **MySQL**'."\n" + .'- **PolarDBMySQL**'."\n" + .'- **PostgreSQL**', 'type' => 'string', 'required' => true, 'example' => 'MySQL'], ], [ - 'name' => 'StartTime', - 'in' => 'formData', - 'schema' => [ - 'description' => '查询任务开始时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1596177993000', - ], + 'name' => 'InstanceIds', + 'in' => 'query', + 'schema' => ['description' => '实例ID,多个实例ID用逗号分隔。', 'type' => 'string', 'required' => false, 'example' => 'rm-2ze8g2am97624****'], ], [ - 'name' => 'EndTime', - 'in' => 'formData', - 'schema' => [ - 'description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。'."\n" - .'> 查询结束时间需晚于任务开始时间。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1662518540764', - ], + 'name' => 'TagNames', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ - 'name' => 'Filters', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '查询筛选条件列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'Key支持的参数和取值:'."\n" - ."\n" - .'hostAddress:来源,多个逗号分隔。'."\n" - ."\n" - .'sqlId:sqlId,多个逗号分隔。'."\n" - ."\n" - .'user:用户,多个逗号分隔。'."\n" - ."\n" - .'dbName:数据库,多个逗号分隔。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => '过滤参数', - 'description' => '过滤参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], - 'Value' => [ - 'description' => '过滤参数的值。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 100, - ], + 'name' => 'Region', + 'in' => 'query', + 'schema' => ['description' => '实例所属地域,取值:'."\n" + ."\n" + .'- **cn-china**:中国内地。'."\n" + .'- **cn-hongkong**:中国香港。'."\n" + .'- **ap-southeast-1**:新加坡。'."\n" + ."\n" + .'此参数只有在请求参数**InstanceIds**为空时有效。如果请求参数**InstanceIds**为空时,按照**Region**参数设置的地域获取数据,系统默认实例所属地域为**cn-china**;如果请求参数**InstanceIds**不为空时,即使设置了**Region**参数,也以**InstanceIds**所传入的第一个实例所在地域为准获取数据。'."\n" + ."\n" + .'> 在中国内地各地域创建的实例,传入此参数时,都为**cn-china**。', 'type' => 'string', 'required' => false, 'example' => 'cn-china'], ], ], 'responses' => [ @@ -17179,1037 +14737,82 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ - 'title' => 'AsyncResult<Histogram>', - 'description' => 'AsyncResult<Histogram>。', + 'description' => '详细信息列表。', 'type' => 'object', 'properties' => [ - 'RequestKey' => [ - 'title' => '请求参数的Key', - 'description' => '请求参数的Key。', - 'type' => 'string', - 'example' => '无', - ], - 'ResultId' => [ - 'title' => '结果ID', - 'description' => '结果ID。', - 'type' => 'string', - 'example' => 'async__20ee808e72257f16a4fe024057ca****', - ], - 'State' => [ - 'title' => '当前状态 (RUNNING: 正在运行, SUCCESS: 成功, FAIL: 失败)', - 'description' => '当前状态:'."\n" - .'- **RUNNING**:正在运行。'."\n" - .'- **SUCCESS**:成功。'."\n" - .'- **FAIL**:失败。', - 'type' => 'string', - 'example' => 'SUCCESS', - ], - 'IsFinish' => [ - 'title' => '是否完成', - 'description' => '是否完成。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'title' => '数据', - 'description' => '数据。', - 'type' => 'object', - 'properties' => [ - 'Total' => [ - 'description' => '查询的总记录数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'Count' => [ - 'description' => '慢日志数量趋势。', - 'type' => 'array', - 'items' => [ - 'description' => '慢日志个数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - ], - 'Ts' => [ - 'title' => '关系型数据库只使用这个', - 'description' => '关系型数据库只使用这个。', - 'type' => 'array', - 'items' => [ - 'description' => '第一个事件发生的时间,使用UNIX时间戳表示,单位:毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '['."\n" - .' 1735098480000,'."\n" - .' 1735098540000,'."\n" - .' 1735098600000,'."\n" - .' 1735098660000,'."\n" - .' 1735098720000,'."\n" - .' 1735098780000'."\n" - .' ]', - ], - ], - 'TsEnd' => [ - 'description' => '无用,预留字段。', - 'type' => 'array', - 'items' => [ - 'description' => '查询结束时间戳。'."\n" - ."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '暂无', - ], - ], - 'Item' => [ - 'description' => '趋势指标。', - 'type' => 'array', - 'items' => [ - 'description' => '具体项目名称。', - 'type' => 'object', - 'properties' => [ - 'NodeId' => [ - 'description' => '节点ID。', - 'type' => 'string', - 'example' => 'r-bp1hi0wg57s3n0i3n8-db-0', - ], - 'Count' => [ - 'description' => '慢日志数量。', - 'type' => 'array', - 'items' => [ - 'description' => '慢日志数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - ], - 'InsItems' => [ - 'description' => '趋势指标。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '趋势指标。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'object', - 'properties' => [ - 'InsId' => [ - 'description' => '实例角色ID。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'string', - 'example' => '2492', - ], - 'InsRole' => [ - 'description' => '实例角色。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'string', - 'example' => 'userAdmin', - ], - 'Count' => [ - 'description' => '执行次数。', - 'type' => 'array', - 'items' => [ - 'description' => '执行次数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - ], - 'TotalCount' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - ], - ], - ], - 'TotalCount' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'InsRole' => [ - 'type' => 'string', - ], - ], - ], - ], - 'Rt' => [ - 'description' => '总执行耗时,单位为秒。', - 'type' => 'array', - 'items' => [ - 'description' => '总执行耗时,单位为秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '['."\n" - .' 2.306,'."\n" - .' 1.141,'."\n" - .' 0.0,'."\n" - .' 4.538,'."\n" - .' 1.247,'."\n" - .' 1.972'."\n" - .' ]', - ], - ], - 'AvgRt' => [ - 'description' => '平均执行耗时。', - 'type' => 'array', - 'items' => [ - 'description' => '平均执行耗时。', - 'type' => 'number', - 'format' => 'double', - 'example' => '['."\n" - .' 1.593,'."\n" - .' 2.306,'."\n" - .' 1.141,'."\n" - .' 0.0,'."\n" - .' 1.5127,'."\n" - .' 1.247'."\n" - .' ]', - ], - ], - 'MaxRt' => [ - 'description' => '最大执行耗时,单位秒。', - 'type' => 'array', - 'items' => [ - 'description' => '最大执行耗时,单位秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '['."\n" - .' 1.593,'."\n" - .' 2.306,'."\n" - .' 1.141,'."\n" - .' 14.115'."\n" - .' 0.0,'."\n" - .' 1.972'."\n" - .' ]', - ], - ], - 'LockTime' => [ - 'description' => '总锁等待时间,单位秒。', - 'type' => 'array', - 'items' => [ - 'description' => '总锁等待时间,单位秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '['."\n" - .' 1.051,'."\n" - .' 1.007,'."\n" - .' 0.0,'."\n" - .' 0.755,'."\n" - .' 0.096,'."\n" - .' 0.0'."\n" - .' ]', - ], - ], - 'AvgLockTime' => [ - 'description' => '平均锁等待时间,单位为秒。', - 'type' => 'array', - 'items' => [ - 'description' => '平均锁等待时间,单位为秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '['."\n" - .' 1.051,'."\n" - .' 0.0,'."\n" - .' 0.3357,'."\n" - .' 0.755,'."\n" - .' 0.324,'."\n" - .' 0.814'."\n" - .' ]', - ], - ], - 'MaxLockTime' => [ - 'description' => '最大锁等待时间,单位为秒。', - 'type' => 'array', - 'items' => [ - 'description' => '最大锁等待时间,单位为秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '['."\n" - .' 1.051,'."\n" - .' 1.007,'."\n" - .' 0.755,'."\n" - .' 0.0,'."\n" - .' 0.05,'."\n" - .' 0.656'."\n" - .' ]', - ], - ], - 'RowsExamined' => [ - 'description' => '总扫描行数。'."\n" - .'> 目前支持该字段的数据库:云数据库RDS MySQL版、云数据库RDS PostgreSQL版、云原生数据库PolarDB MySQL版。', - 'type' => 'array', - 'items' => [ - 'description' => '总扫描行数。'."\n" - .'> 目前支持该字段的数据库:云数据库RDS MySQL版、云数据库RDS PostgreSQL版、云原生数据库PolarDB MySQL版。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '['."\n" - .' 256,'."\n" - .' 1,'."\n" - .' 512,'."\n" - .' 0,'."\n" - .' 1476678,'."\n" - .' 24430'."\n" - .' ]', - ], - ], - 'AvgRowsExamined' => [ - 'description' => '平均扫描行数。', - 'type' => 'array', - 'items' => [ - 'description' => '平均扫描行数。', - 'type' => 'number', - 'format' => 'double', - 'example' => '['."\n" - .' 256.0,'."\n" - .' 256.3333,'."\n" - .' 512.0,'."\n" - .' 370860.1111,'."\n" - .' 0.0,'."\n" - .' 1.0'."\n" - .' ]', - ], - ], - 'MaxRowsExamined' => [ - 'description' => '最大扫描行数。', - 'type' => 'array', - 'items' => [ - 'description' => '最大扫描行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '['."\n" - .' 256,'."\n" - .' 1,'."\n" - .' 512,'."\n" - .' 0,'."\n" - .' 1476678,'."\n" - .' 24430'."\n" - .' ]', - ], - ], - 'RowsSent' => [ - 'description' => '返回行数。', - 'type' => 'array', - 'items' => [ - 'description' => '返回行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '['."\n" - .' 384,'."\n" - .' 256,'."\n" - .' 0,'."\n" - .' 207030,'."\n" - .' 4,'."\n" - .' 256'."\n" - .' ]', - ], - ], - 'AvgRowsSent' => [ - 'description' => '平均返回行数。', - 'type' => 'array', - 'items' => [ - 'description' => '平均返回行数。', - 'type' => 'number', - 'format' => 'double', - 'example' => '['."\n" - .' 128.0,'."\n" - .' 0.0,'."\n" - .' 256.0,'."\n" - .' 25878.75,'."\n" - .' 192.0,'."\n" - .' 72.7778'."\n" - .' ]', - ], - ], - 'MaxRowsSent' => [ - 'description' => '最大返回行数。', - 'type' => 'array', - 'items' => [ - 'description' => '最大返回行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '['."\n" - .' 256,'."\n" - .' 207023,'."\n" - .' 0,'."\n" - .' 128,'."\n" - .' 0,'."\n" - .' 0'."\n" - .' ]', - ], - ], - 'KeysExamined' => [ - 'description' => '索引扫描行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '索引扫描行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '['."\n" - .' 384,'."\n" - .' 256,'."\n" - .' 0,'."\n" - .' 207030,'."\n" - .' 4,'."\n" - .' 256'."\n" - .' ]', - ], - ], - 'AvgKeysExamined' => [ - 'description' => '平均索引扫描行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '平均索引扫描行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'number', - 'format' => 'double', - 'example' => '['."\n" - .' 128.0,'."\n" - .' 0.0,'."\n" - .' 256.0,'."\n" - .' 25878.75,'."\n" - .' 192.0,'."\n" - .' 72.7778'."\n" - .' ]', - ], - ], - 'MaxKeysExamined' => [ - 'description' => '最大索引扫描行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '最大索引扫描行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '['."\n" - .' 384,'."\n" - .' 256,'."\n" - .' 0,'."\n" - .' 207030,'."\n" - .' 4,'."\n" - .' 256'."\n" - .' ]', - ], - ], - 'DocExamined' => [ - 'description' => '扫描文档行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '扫描文档行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '['."\n" - .' 256,'."\n" - .' 207023,'."\n" - .' 0,'."\n" - .' 128,'."\n" - .' 0,'."\n" - .' 0'."\n" - .' ]', - ], - ], - 'AvgDocExamined' => [ - 'description' => '平均扫描文档行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '平均扫描文档行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'number', - 'format' => 'double', - 'example' => '['."\n" - .' 128.0,'."\n" - .' 0.0,'."\n" - .' 256.0,'."\n" - .' 25878.75,'."\n" - .' 192.0,'."\n" - .' 72.7778'."\n" - .' ]', - ], - ], - 'MaxDocExamined' => [ - 'description' => '最大扫描文档行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '最大扫描文档行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '['."\n" - .' 256,'."\n" - .' 207023,'."\n" - .' 0,'."\n" - .' 128,'."\n" - .' 0,'."\n" - .' 0'."\n" - .' ]', - ], - ], - 'ReturnNum' => [ - 'description' => '返回行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '返回行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '['."\n" - .' 256,'."\n" - .' 207023,'."\n" - .' 0,'."\n" - .' 128,'."\n" - .' 0,'."\n" - .' 0'."\n" - .' ]', - ], - ], - 'AvgReturnNum' => [ - 'description' => '平均返回行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '平均返回行数'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'number', - 'format' => 'double', - 'example' => '['."\n" - .' 128.0,'."\n" - .' 0.0,'."\n" - .' 256.0,'."\n" - .' 25878.75,'."\n" - .' 192.0,'."\n" - .' 72.7778'."\n" - .' ]', - ], - ], - 'MaxReturnNum' => [ - 'description' => '最大返回行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '最大返回行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '['."\n" - .' 256,'."\n" - .' 207023,'."\n" - .' 0,'."\n" - .' 128,'."\n" - .' 0,'."\n" - .' 0'."\n" - .' ]', - ], - ], - 'IOWrites' => [ - 'description' => 'I/O 写次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => 'I/O 写次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '['."\n" - .' 256,'."\n" - .' 207023,'."\n" - .' 0,'."\n" - .' 128,'."\n" - .' 0,'."\n" - .' 0'."\n" - .' ]', - ], - ], - 'AvgIOWrites' => [ - 'description' => '平均 I/O 写次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '平均 I/O 写次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'number', - 'format' => 'double', - 'example' => '['."\n" - .' 384,'."\n" - .' 256,'."\n" - .' 0,'."\n" - .' 207030,'."\n" - .' 4,'."\n" - .' 256'."\n" - .' ]', - ], - ], - 'MaxIOWrites' => [ - 'description' => '最大 I/O 写次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '最大 I/O 写次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '['."\n" - .' 256,'."\n" - .' 1,'."\n" - .' 512,'."\n" - .' 0,'."\n" - .' 1476678,'."\n" - .' 24430'."\n" - .' ]', - ], - ], - 'LastRowsCountAffected' => [ - 'description' => '最后一条语句的影响行数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '最后一条语句的影响行数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '['."\n" - .' 256,'."\n" - .' 207023,'."\n" - .' 0,'."\n" - .' 128,'."\n" - .' 0,'."\n" - .' 0'."\n" - .' ]', - ], - ], - 'AvgLastRowsCountAffected' => [ - 'description' => '平均最后一条语句的影响行数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '平均最后一条语句的影响行数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'number', - 'format' => 'double', - 'example' => '['."\n" - .' 1.593,'."\n" - .' 2.306,'."\n" - .' 1.141,'."\n" - .' 0.0,'."\n" - .' 1.5127,'."\n" - .' 1.247'."\n" - .' ]', - ], - ], - 'MaxLastRowsCountAffected' => [ - 'description' => '最大最后一条语句的影响行数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '平均最后一条语句的影响行数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '['."\n" - .' 1,'."\n" - .' 1,'."\n" - .' 3,'."\n" - .' 1,'."\n" - .' 2,'."\n" - .' 3'."\n" - .' ]', - ], - ], - 'LogicalIOReads' => [ - 'description' => '逻辑读次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '逻辑读次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '['."\n" - .' 384,'."\n" - .' 256,'."\n" - .' 0,'."\n" - .' 207030,'."\n" - .' 4,'."\n" - .' 256'."\n" - .' ]', - ], - ], - 'AvgLogicalIOReads' => [ - 'description' => '平均逻辑读次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '平均逻辑读次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'number', - 'format' => 'double', - 'example' => '['."\n" - .' 1.593,'."\n" - .' 2.306,'."\n" - .' 1.141,'."\n" - .' 0.0,'."\n" - .' 1.5127,'."\n" - .' 1.247'."\n" - .' ]', - ], - ], - 'MaxLogicalIOReads' => [ - 'description' => '最大逻辑读次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '最大逻辑读次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '['."\n" - .' 124,'."\n" - .' 2,'."\n" - .' 24,'."\n" - .' 251,'."\n" - .' 191,'."\n" - .' 721'."\n" - .' ]', - ], - ], - 'PhysicalIOReads' => [ - 'description' => '物理读次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '物理读次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '['."\n" - .' 324,'."\n" - .' 22,'."\n" - .' 254,'."\n" - .' 251,'."\n" - .' 191,'."\n" - .' 721'."\n" - .' ]', - ], - ], - 'AvgPhysicalIOReads' => [ - 'description' => '平均物理读次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '平均物理读次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'number', - 'format' => 'double', - 'example' => '['."\n" - .' 128.0,'."\n" - .' 0.0,'."\n" - .' 256.0,'."\n" - .' 25878.75,'."\n" - .' 192.0,'."\n" - .' 72.7778'."\n" - .' ]', - ], - ], - 'MaxPhysicalIOReads' => [ - 'description' => '最大物理读次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '最大物理读次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '['."\n" - .' 314,'."\n" - .' 242,'."\n" - .' 114,'."\n" - .' 351,'."\n" - .' 191,'."\n" - .' 721'."\n" - .' ]', - ], - ], - 'RowsCountAffected' => [ - 'description' => '影响的行数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '影响的行数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '['."\n" - .' 34,'."\n" - .' 42,'."\n" - .' 14,'."\n" - .' 51,'."\n" - .' 91,'."\n" - .' 71'."\n" - .' ]', - ], - ], - 'AvgRowsCountAffected' => [ - 'description' => '平均影响的行数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '平均影响的行数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'number', - 'format' => 'double', - 'example' => '['."\n" - .' 1.593,'."\n" - .' 2.306,'."\n" - .' 1.141,'."\n" - .' 14.115,'."\n" - .' 0.0,'."\n" - .' 1.783,'."\n" - .' 0.0,'."\n" - .' 1.972'."\n" - .' ]', - ], - ], - 'MaxRowsCountAffected' => [ - 'description' => '最大影响的行数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '最大影响的行数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '['."\n" - .' 714,'."\n" - .' 442,'."\n" - .' 314,'."\n" - .' 151,'."\n" - .' 291,'."\n" - .' 521'."\n" - .' ]', - ], - ], - 'CPUTime' => [ - 'description' => 'CPU处理时长。单位:秒(s)。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => 'CPU处理时长。单位:秒(s)。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'number', - 'format' => 'double', - 'example' => '['."\n" - .' 1.051,'."\n" - .' 1.007,'."\n" - .' 0.755,'."\n" - .' 0.0,'."\n" - .' 0.05,'."\n" - .' 0.656'."\n" - .' ]', - ], - ], - 'AvgCPUTime' => [ - 'description' => '平均CPU处理时长。单位:秒(s)。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '平均CPU处理时长。单位:秒(s)。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'number', - 'format' => 'double', - 'example' => '['."\n" - .' 2.306,'."\n" - .' 1.141,'."\n" - .' 0.0,'."\n" - .' 4.538,'."\n" - .' 1.247,'."\n" - .' 0.0'."\n" - .' ]', - ], - ], - 'MaxCPUTime' => [ - 'description' => '最大CPU处理时长。单位:秒(s)。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'array', - 'items' => [ - 'description' => '最大CPU处理时长。单位:秒(s)。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'number', - 'format' => 'double', - 'example' => '['."\n" - .' 2.306,'."\n" - .' 1.141,'."\n" - .' 0.0,'."\n" - .' 4.538,'."\n" - .' 1.247,'."\n" - .' 0.0'."\n" - .' ]', - ], - ], - 'Rows' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - ], - 'AvgRows' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'number', - 'format' => 'double', - ], - ], - 'MaxRows' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - ], - 'Frows' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - ], - 'AvgFrows' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'number', - 'format' => 'double', - ], - ], - 'MaxFrows' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - ], - 'Scnt' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - ], - 'AvgScnt' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'number', - 'format' => 'double', - ], - ], - 'MaxScnt' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - ], - 'TotalCount' => [ - 'type' => 'integer', - 'format' => 'int64', + 'Total' => ['description' => '总数据量。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'PageNo' => ['description' => '备用参数。', 'type' => 'integer', 'format' => 'int32', 'example' => 'None'], + 'PageSize' => ['description' => '备用参数。', 'type' => 'integer', 'format' => 'int32', 'example' => 'None'], + 'Extra' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], + 'List' => [ + 'description' => '规则数据列表。', + 'type' => 'array', + 'items' => [ + 'description' => '规则数据列表。', + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => '规则类型,当前只支持 **Predefined**(系统预定义)。', 'type' => 'string', 'example' => 'Predefined'], + 'Name' => ['description' => '规则名,具体信息请参见[查询治理](~~290038~~)。', 'type' => 'string', 'example' => 'LARGE_ROWS_EXAMINED'], + 'RuleId' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], ], ], ], - 'ErrorCode' => [ - 'title' => '错误码', - 'description' => '错误码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10910', - ], - 'Message' => [ - 'title' => '错误信息', - 'description' => '错误信息。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'Timestamp' => [ - 'title' => '请求时间', - 'description' => '请求时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1645668213000', - ], ], ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"RequestKey\\": \\"无\\",\\n \\"ResultId\\": \\"async__20ee808e72257f16a4fe024057ca****\\",\\n \\"State\\": \\"SUCCESS\\",\\n \\"IsFinish\\": true,\\n \\"Data\\": {\\n \\"Total\\": 1,\\n \\"Count\\": [\\n 100\\n ],\\n \\"Ts\\": [\\n 0\\n ],\\n \\"TsEnd\\": [\\n 0\\n ],\\n \\"Item\\": [\\n {\\n \\"NodeId\\": \\"r-bp1hi0wg57s3n0i3n8-db-0\\",\\n \\"Count\\": [\\n 100\\n ],\\n \\"InsItems\\": [\\n {\\n \\"InsId\\": \\"2492\\",\\n \\"InsRole\\": \\"userAdmin\\",\\n \\"Count\\": [\\n 1\\n ],\\n \\"TotalCount\\": 0\\n }\\n ],\\n \\"TotalCount\\": 0,\\n \\"InsRole\\": \\"\\"\\n }\\n ],\\n \\"Rt\\": [\\n 0\\n ],\\n \\"AvgRt\\": [\\n 0\\n ],\\n \\"MaxRt\\": [\\n 0\\n ],\\n \\"LockTime\\": [\\n 0\\n ],\\n \\"AvgLockTime\\": [\\n 0\\n ],\\n \\"MaxLockTime\\": [\\n 0\\n ],\\n \\"RowsExamined\\": [\\n 0\\n ],\\n \\"AvgRowsExamined\\": [\\n 0\\n ],\\n \\"MaxRowsExamined\\": [\\n 0\\n ],\\n \\"RowsSent\\": [\\n 0\\n ],\\n \\"AvgRowsSent\\": [\\n 0\\n ],\\n \\"MaxRowsSent\\": [\\n 0\\n ],\\n \\"KeysExamined\\": [\\n 0\\n ],\\n \\"AvgKeysExamined\\": [\\n 0\\n ],\\n \\"MaxKeysExamined\\": [\\n 0\\n ],\\n \\"DocExamined\\": [\\n 0\\n ],\\n \\"AvgDocExamined\\": [\\n 0\\n ],\\n \\"MaxDocExamined\\": [\\n 0\\n ],\\n \\"ReturnNum\\": [\\n 0\\n ],\\n \\"AvgReturnNum\\": [\\n 0\\n ],\\n \\"MaxReturnNum\\": [\\n 0\\n ],\\n \\"IOWrites\\": [\\n 0\\n ],\\n \\"AvgIOWrites\\": [\\n 0\\n ],\\n \\"MaxIOWrites\\": [\\n 0\\n ],\\n \\"LastRowsCountAffected\\": [\\n 0\\n ],\\n \\"AvgLastRowsCountAffected\\": [\\n 0\\n ],\\n \\"MaxLastRowsCountAffected\\": [\\n 0\\n ],\\n \\"LogicalIOReads\\": [\\n 0\\n ],\\n \\"AvgLogicalIOReads\\": [\\n 0\\n ],\\n \\"MaxLogicalIOReads\\": [\\n 0\\n ],\\n \\"PhysicalIOReads\\": [\\n 0\\n ],\\n \\"AvgPhysicalIOReads\\": [\\n 0\\n ],\\n \\"MaxPhysicalIOReads\\": [\\n 0\\n ],\\n \\"RowsCountAffected\\": [\\n 0\\n ],\\n \\"AvgRowsCountAffected\\": [\\n 0\\n ],\\n \\"MaxRowsCountAffected\\": [\\n 0\\n ],\\n \\"CPUTime\\": [\\n 0\\n ],\\n \\"AvgCPUTime\\": [\\n 0\\n ],\\n \\"MaxCPUTime\\": [\\n 0\\n ],\\n \\"Rows\\": [\\n 0\\n ],\\n \\"AvgRows\\": [\\n 0\\n ],\\n \\"MaxRows\\": [\\n 0\\n ],\\n \\"Frows\\": [\\n 0\\n ],\\n \\"AvgFrows\\": [\\n 0\\n ],\\n \\"MaxFrows\\": [\\n 0\\n ],\\n \\"Scnt\\": [\\n 0\\n ],\\n \\"AvgScnt\\": [\\n 0\\n ],\\n \\"MaxScnt\\": [\\n 0\\n ],\\n \\"TotalCount\\": 0\\n },\\n \\"ErrorCode\\": 10910,\\n \\"Message\\": \\"Successful\\",\\n \\"Timestamp\\": 1645668213000\\n }\\n}","type":"json"}]', - 'title' => '异步获取实例慢日志趋势数据', - 'description' => '**请确保在使用该接口前,已充分了解DAS产品的[收费方式和价格](~~156195~~)。**'."\n" - ."\n" - .'使用该接口需满足以下前提条件:'."\n" - ."\n" - .'- 请求实例已开通**DAS企业版**,或者智能运维服务(暂未上线)。'."\n" - .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + 'title' => '获取规则列表', + 'description' => '- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于2.1.8,建议使用最新版本。'."\n" + .'- 使用DAS的SDK的版本为2.1.8或以上。'."\n" .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - ."\n" - .'该接口异步调用后不会立即返回完整结果,当返回数据中 isFinish 取值为 false 时,请等待 1s 后重新发起调用,直到 isFinish 取值为 true 时,返回完整结果。', - ], - 'DescribeSlowLogStatistic' => [ - 'summary' => '慢日志统计信息。', - 'methods' => [ - 'post', - 'get', + .'- 本接口适用的数据库引擎为:'."\n" + .' - RDS MySQL'."\n" + .' - PolarDB MySQL版'."\n" + .' - RDS PostgreSQL', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetQueryOptimizeRuleList'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetQueryOptimizeRuleList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Total\\": 1,\\n \\"PageNo\\": 0,\\n \\"PageSize\\": 0,\\n \\"Extra\\": \\"None\\",\\n \\"List\\": [\\n {\\n \\"Type\\": \\"Predefined\\",\\n \\"Name\\": \\"LARGE_ROWS_EXAMINED\\",\\n \\"RuleId\\": \\"None\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetQueryOptimizeRuleListResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Total>1</Total>\\n <Extra>None</Extra>\\n <List>\\n <Type>Predefined</Type>\\n <Name>LARGE_ROWS_EXAMINED</Name>\\n <RuleId>None</RuleId>\\n </List>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetQueryOptimizeRuleListResponse>","errorExample":""}]', + ], + 'GetQueryOptimizeShareUrl' => [ + 'summary' => '调用GetQueryOptimizeShareUrl接口,获取查询治理的分享链接。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -18221,185 +14824,119 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '236526', - 'abilityTreeNodes' => [ - 'FEATUREhdmR88NLD', - ], + 'abilityTreeNodes' => ['FEATUREhdmTQGIFY'], ], 'parameters' => [ [ - 'name' => 'InstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze1jdv45i7l6****', - ], + 'name' => 'Engine', + 'in' => 'query', + 'schema' => ['description' => '数据库引擎,取值:'."\n" + ."\n" + .'- **MySQL**:RDS MySQL'."\n" + .'- **PolarDBMySQL**:PolarDB MySQL版'."\n" + .'- **PostgreSQL**:RDS PostgreSQL', 'type' => 'string', 'required' => true, 'example' => 'MySQL'], ], [ - 'name' => 'NodeId', - 'in' => 'formData', - 'schema' => [ - 'description' => '节点ID。'."\n" - ."\n" - .'- 对于RDS MySQL和PolarDB MySQL版,该参数仅适用于集群版实例。若不传该参数,默认查询主节点日志明细。'."\n" - .'- 对于PolarDB-X 2.0,该参数传入**polarx_cn**(计算节点)或**polarx_dn**(数据节点)。', - 'type' => 'string', - 'required' => false, - 'example' => 'r-x****-db-0', - ], + 'name' => 'InstanceIds', + 'in' => 'query', + 'schema' => ['description' => '实例ID,多个实例ID间用逗号分隔。', 'type' => 'string', 'required' => false, 'example' => 'rm-2ze1jdv45i7l6****'], ], [ - 'name' => 'Type', - 'in' => 'formData', - 'schema' => [ - 'description' => '任务类型:'."\n" - ."\n" - .'**SlowLogRequestOrigin**:groupBy originHost,通过来源IP聚合模板。'."\n" - ."\n" - .'**OriginHost**:OriginHost groupBy SQLID,通过SQLID聚合模板,并且限制originHost为templateID。'."\n" - ."\n" - .'**SlowLogRequestUser**:groupBy user,通过来源USER聚合模板。'."\n" - ."\n" - .'**SQL**:SQL groupBy SQLID,通过SQLID聚合模板,并且限制SQLID为templateID。', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [ - 'SlowLogRequestOrigin' => 'SlowLogRequestOrigin', - 'OriginHost' => 'OriginHost', - 'SlowLogRequestUser' => 'SlowLogRequestUser', - 'SQL' => 'SQL', - ], - 'example' => 'SQL', - ], + 'name' => 'TagNames', + 'in' => 'query', + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ - 'name' => 'TemplateId', - 'in' => 'formData', - 'schema' => [ - 'description' => '模板ID。', - 'type' => 'string', - 'required' => false, - 'example' => '04ea3310df40c3fa8a6b4854db49f79a', - ], + 'name' => 'Keywords', + 'in' => 'query', + 'schema' => ['description' => 'SQL文本关键词,多个关键词以空格分隔。', 'type' => 'string', 'required' => false, 'example' => 'select update'], ], [ - 'name' => 'StartTime', - 'in' => 'formData', - 'schema' => [ - 'description' => '查询任务开始时间,格式为Unix时间戳(UTC时间),单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1568269711000', - ], + 'name' => 'LogicalOperator', + 'in' => 'query', + 'schema' => ['description' => '多个SQL文本关键词的逻辑关系。'."\n" + ."\n" + .'- **or**:或。'."\n" + .'- **and**:与。', 'type' => 'string', 'required' => false, 'example' => 'or'], ], [ - 'name' => 'EndTime', - 'in' => 'formData', - 'schema' => [ - 'description' => '查询结束时间,格式为Unix时间戳(UTC时间),单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1608888296000', - ], + 'name' => 'Rules', + 'in' => 'query', + 'schema' => ['description' => '需要过滤的规则,多个规则以逗号分隔。具体信息请参见[查询治理](~~290038~~)。', 'type' => 'string', 'required' => false, 'example' => 'DAS_NOT_IMPORTANT'], + ], + [ + 'name' => 'DbNames', + 'in' => 'query', + 'schema' => ['description' => '需要查询的数据库名。', 'type' => 'string', 'required' => false, 'example' => 'testdb01'], + ], + [ + 'name' => 'Time', + 'in' => 'query', + 'schema' => ['description' => '查询数据的日期,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1642953600000'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '分页查询每页最大记录数,默认为10。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], + ], + [ + 'name' => 'PageNo', + 'in' => 'query', + 'schema' => ['description' => '分页查询的页码,从1开始,默认为1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ 'name' => 'OrderBy', - 'in' => 'formData', - 'schema' => [ - 'description' => '排序方式,可选为:'."\n" - ."\n" - .'**Count**'."\n" - ."\n" - .'**QueryTime**'."\n" - ."\n" - .'**LockTime**'."\n" - ."\n" - .'**RowsExamined**'."\n" - ."\n" - .'**RowsSent**', - 'type' => 'string', - 'required' => false, - 'example' => 'count', - ], + 'in' => 'query', + 'schema' => ['description' => '排序字段,默认为**count**。'."\n" + ."\n" + .'- **count**:执行次数。'."\n" + .'- **maxQueryTime**:最大执行时间。'."\n" + .'- **avgQueryTime**:平均执行时间。'."\n" + .'- **maxLockTime**:最大锁等待时间。'."\n" + .'- **avgLockTime**:平均锁等待时间。'."\n" + .'- **maxRowsExamined**:最大扫描行数。'."\n" + .'- **avgRowsExamined**:平均扫描行数。'."\n" + .'- **maxRowsSent**:最大返回行数。'."\n" + .'- **avgRowsSent**:平均返回行数。', 'type' => 'string', 'required' => false, 'example' => 'count'], ], [ 'name' => 'Asc', - 'in' => 'formData', - 'schema' => [ - 'description' => '升序排序开关,默认关闭。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'in' => 'query', + 'schema' => ['description' => '是否升序排序,默认为**true**。'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'PageNumber', - 'in' => 'formData', - 'schema' => [ - 'description' => '查询列表的页码,起始值为1,默认值为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'name' => 'OnlyOptimizedSql', + 'in' => 'query', + 'schema' => ['description' => '是否只查询待优化的SQL,默认为**false**。'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'PageSize', - 'in' => 'formData', - 'schema' => [ - 'description' => '每页最大记录数,默认值为10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + 'name' => 'SqlIds', + 'in' => 'query', + 'schema' => ['description' => 'SQL模板ID,您可调用[GetQueryOptimizeDataStats](~~405261~~)接口查询SQL模板ID。', 'type' => 'string', 'required' => false, 'example' => '6068ce044e3dc9b903979672fb0b69df,d12515c015fc9f41a0778a9e1de0****'], ], [ - 'name' => 'Filters', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '查询筛选条件列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'Key支持的参数和取值:'."\n" - ."\n" - .'hostAddress:来源,多个逗号分隔。'."\n" - ."\n" - .'sqlId:sqlId,多个逗号分隔。'."\n" - ."\n" - .'user:用户,多个逗号分隔。'."\n" - ."\n" - .'dbName:数据库,多个逗号分隔。'."\n" - ."\n" - .'keyWord:关键字,多个空格分隔。'."\n" - ."\n" - .'tags:标签,多个逗号分隔。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => '过滤参数', - 'description' => '过滤参数', - 'type' => 'string', - 'required' => false, - 'example' => 'KeyWords', - ], - 'Value' => [ - 'description' => '过滤参数的值。', - 'type' => 'string', - 'required' => false, - 'example' => 'select', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 100, - ], + 'name' => 'Region', + 'in' => 'query', + 'schema' => ['description' => '实例所属地域,取值:'."\n" + ."\n" + .'- **cn-china**:中国内地。'."\n" + .'- **cn-hongkong**:中国香港。'."\n" + .'- **ap-southeast-1**:新加坡。'."\n" + ."\n" + .'此参数只有在请求参数**InstanceIds**为空时有效。如果请求参数**InstanceIds**为空时,按照**Region**参数设置的地域获取数据,系统默认实例所属地域为**cn-china**;如果请求参数**InstanceIds**不为空时,即使设置了**Region**参数,也以**InstanceIds**所传入的第一个实例所在地域为准获取数据。'."\n" + ."\n" + .'> 在中国内地各地域创建的实例,传入此参数时,都为**cn-china**。', 'type' => 'string', 'required' => false, 'example' => 'cn-china'], + ], + [ + 'name' => 'User', + 'in' => 'query', + 'schema' => ['description' => '需要查询的数据库账号。', 'type' => 'string', 'required' => false, 'example' => 'testUser'], ], ], 'responses' => [ @@ -18407,1171 +14944,100 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '52D540CF-C517-1F57-BB42-9035F96******', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], - 'Data' => [ - 'title' => 'AsyncResult<DBLogRecords<SlowLogStat>>', - 'description' => 'AsyncResult<DBLogRecords<SlowLogStat>>', - 'type' => 'object', - 'properties' => [ - 'RequestKey' => [ - 'title' => '请求参数的Key', - 'description' => '请求参数的Key。', - 'type' => 'string', - 'example' => '123456789', - ], - 'ResultId' => [ - 'title' => '结果ID', - 'description' => '结果ID。', - 'type' => 'string', - 'example' => 'async__665ee69612f1627c7fd9f3c85075****', - ], - 'State' => [ - 'title' => '当前状态 (RUNNING: 正在运行, SUCCESS: 成功, FAIL: 失败)', - 'description' => '当前状态:'."\n" - ."\n" - .'-**RUNNING**:正在运行。'."\n" - ."\n" - .'-**SUCCESS**:成功。'."\n" - ."\n" - .'-**FAIL**:失败。', - 'type' => 'string', - 'example' => 'SUCCESS', - ], - 'IsFinish' => [ - 'title' => '是否完成', - 'description' => '是否完成。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'title' => '数据', - 'description' => '数据。', - 'type' => 'object', - 'properties' => [ - 'DbInstanceName' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => '0', - ], - 'NodeId' => [ - 'description' => '节点ID。'."\n" - ."\n" - .'对于MongoDB实例,通过该参数指定节点进行空间分析。调用[DescribeRoleZoneInfo](~~123802~~)接口,可以查询MongoDB实例各个节点的详细信息。'."\n" - ."\n" - .'- 当传入目标节点的**InsName**(节点ID)时,例如`d-bp1872fa24d5****`,调用该接口分析其对应的Hidden节点。'."\n" - .'- 当传入目标节点的`InsName#RoleId`时,例如`d-bp1872fa24d5****#299****5`,调用该接口分析指定的节点。'."\n" - ."\n" - .'><notice>对于MongoDB副本集实例,不传入此参数时,调用该接口会默认分析唯一的Hidden节点。对于MongoDB分片集群实例,推荐传入此参数,指定目标节点。</notice>', - 'type' => 'string', - 'example' => 'pi-wz99g5rn7w1x8h0sf', - ], - 'ItemsNumbers' => [ - 'description' => '当前页查询日志列表内的Item数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'StartTime' => [ - 'description' => '开始时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'string', - 'example' => '2024-10-08T02:01:00Z', - ], - 'EndTime' => [ - 'description' => '查询任务结束时间,格式为Unix时间戳,单位为毫秒。'."\n" - .'> 查询任务结束时间需晚于查询任务开始时间。', - 'type' => 'string', - 'example' => '2024-08-08T02:15:00Z', - ], - 'DbInstanceId' => [ - 'description' => '实例数字ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => 'rm-k2ja51w7cnusg5a1x', - ], - 'TotalRecords' => [ - 'description' => '总记录数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '13', - ], - 'PageNumbers' => [ - 'description' => '分页查询的页码,从1开始,默认为1。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'MaxRecordsPerPage' => [ - 'description' => '分页查询每页最大记录数。取值范围:5~100。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Logs' => [ - 'description' => '操作对象名称。', - 'type' => 'array', - 'items' => [ - 'description' => '日志。', - 'type' => 'object', - 'properties' => [ - 'Count' => [ - 'description' => 'Key的元素个数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '12', - ], - 'MaxLockTime' => [ - 'description' => '已废弃。', - 'type' => 'number', - 'format' => 'double', - 'example' => '-', - ], - 'MaxQueryTime' => [ - 'description' => '已废弃。', - 'type' => 'number', - 'format' => 'double', - 'example' => '-', - ], - 'MaxRowsExamined' => [ - 'description' => '最大扫描行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '318613', - ], - 'MaxRowsSent' => [ - 'description' => '最大返回行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '256', - ], - 'AvgQueryTime' => [ - 'description' => '已废弃。', - 'type' => 'number', - 'format' => 'double', - 'example' => '-', - ], - 'QueryTimeRate' => [ - 'description' => '查询耗时比例。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0.1018', - ], - 'CountRate' => [ - 'description' => '执行次数比例。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0.2034', - ], - 'AvgRowsExamined' => [ - 'description' => '平均扫描行数。', - 'type' => 'number', - 'format' => 'double', - 'example' => '53421.0', - ], - 'OriginAlias' => [ - 'description' => '来源别名。', - 'type' => 'string', - 'example' => 'order-1', - ], - 'User' => [ - 'description' => '用户。', - 'type' => 'string', - 'example' => 'user-1', - ], - 'SqlTag' => [ - 'description' => '标签。', - 'type' => 'object', - 'properties' => [ - 'SqlId' => [ - 'description' => 'SQL ID。', - 'type' => 'string', - 'example' => 'a3931d8c3a9315dd5ed016d71cf*****', - ], - 'Tags' => [ - 'title' => '逗号分隔的多个tag', - 'description' => '逗号分隔的多个tag。', - 'type' => 'string', - 'example' => 'DAS_IN_PLAN', - ], - 'Comments' => [ - 'description' => '备注。'."\n" - ."\n" - .'长度为1~300个字符。', - 'type' => 'string', - 'example' => 'dba 归档', - ], - ], - ], - 'Trend' => [ - 'description' => '慢日志趋势。', - 'type' => 'array', - 'items' => [ - 'description' => '慢日志趋势。', - 'type' => 'object', - 'properties' => [ - 'Timestamp' => [ - 'description' => '执行时间,格式为Unix时间戳,单位为毫秒(ms)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1723775362', - ], - 'Value' => [ - 'description' => '过滤参数的值。', - 'type' => 'any', - 'example' => 'tf-testacc-oos-parameter', - ], - ], - ], - ], - 'Database' => [ - 'description' => '数据库名。', - 'type' => 'string', - 'example' => 'work-wechat-api', - ], - 'Histogram' => [ - 'description' => '趋势图数据。', - 'type' => 'object', - 'properties' => [ - 'Total' => [ - 'description' => '查询的总记录数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '7', - ], - 'Count' => [ - 'description' => '慢日志数量。', - 'type' => 'array', - 'items' => [ - 'description' => '慢日志数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - ], - 'Ts' => [ - 'title' => '关系型数据库只使用这个', - 'description' => '执行时间戳。', - 'type' => 'array', - 'items' => [ - 'description' => '事件发生的时间,使用UNIX时间戳表示,单位:秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1715220818', - ], - ], - 'TsEnd' => [ - 'description' => '已废弃。', - 'type' => 'array', - 'items' => [ - 'description' => '已废弃。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '-', - ], - ], - 'Item' => [ - 'description' => '任务状态。', - 'type' => 'array', - 'items' => [ - 'description' => '错误码信息。', - 'type' => 'object', - 'properties' => [ - 'NodeId' => [ - 'description' => '节点id。', - 'type' => 'string', - 'example' => 'r-bp1s1m8hwzrm77kfvz-db-0', - ], - 'Count' => [ - 'description' => '慢日志数量。', - 'type' => 'array', - 'items' => [ - 'description' => 'Key的元素个数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - ], - ], - ], - ], - 'Rt' => [ - 'description' => '执行耗时,单位为秒。', - 'type' => 'array', - 'items' => [ - 'description' => '执行耗时,单位为秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '1854', - ], - ], - 'AvgRt' => [ - 'description' => '平均执行耗时。', - 'type' => 'array', - 'items' => [ - 'description' => '平均执行耗时。', - 'type' => 'number', - 'format' => 'double', - 'example' => '3709', - ], - ], - 'MaxRt' => [ - 'description' => '最大RT,单位ms。', - 'type' => 'array', - 'items' => [ - 'description' => '最大RT,单位ms。', - 'type' => 'number', - 'format' => 'double', - 'example' => '2516.0', - ], - ], - 'LockTime' => [ - 'description' => '锁等待时间,单位毫秒。', - 'type' => 'array', - 'items' => [ - 'description' => '锁等待时间,单位毫秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '300', - ], - ], - 'AvgLockTime' => [ - 'description' => '平均锁等待时间,单位为秒。', - 'type' => 'array', - 'items' => [ - 'description' => '平均锁等待时间,单位为秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '15', - ], - ], - 'MaxLockTime' => [ - 'description' => '最大锁等待时间,单位为秒。', - 'type' => 'array', - 'items' => [ - 'description' => '最大锁等待时间,单位为秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '1051', - ], - ], - 'RowsExamined' => [ - 'description' => '总扫描行数。'."\n" - .'> 目前支持该字段的数据库:RDS MySQL、RDS PostgreSQL、PolarDB MySQL版。', - 'type' => 'array', - 'items' => [ - 'description' => '总扫描行数。'."\n" - .'> 目前支持该字段的数据库:RDS MySQL、RDS PostgreSQL、PolarDB MySQL版。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '641057', - ], - ], - 'AvgRowsExamined' => [ - 'description' => '平均扫描行数。', - 'type' => 'array', - 'items' => [ - 'description' => '平均扫描行数。', - 'type' => 'number', - 'format' => 'double', - 'example' => '222189', - ], - ], - 'MaxRowsExamined' => [ - 'description' => '最大扫描行数。', - 'type' => 'array', - 'items' => [ - 'description' => '最大扫描行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '878511', - ], - ], - 'RowsSent' => [ - 'description' => '返回行数。', - 'type' => 'array', - 'items' => [ - 'description' => '返回行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '4', - ], - ], - 'AvgRowsSent' => [ - 'description' => '平均返回行数。', - 'type' => 'array', - 'items' => [ - 'description' => '平均返回行数。', - 'type' => 'number', - 'format' => 'double', - 'example' => '2.0', - ], - ], - 'MaxRowsSent' => [ - 'description' => '最大返回行数。', - 'type' => 'array', - 'items' => [ - 'description' => '最大返回行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '256', - ], - ], - ], - ], - 'SqlId' => [ - 'description' => 'SQL ID。', - 'type' => 'string', - 'example' => '2dca88762ec6b3812504ab8a4b******', - ], - 'Scheme' => [ - 'description' => 'HTTP或HTTPS。', - 'type' => 'string', - 'example' => 'HTTP', - ], - 'SubInstanceId' => [ - 'description' => '子实例ID。', - 'type' => 'string', - 'example' => 'r-8vba51c588ba3a94', - ], - 'DbInstanceName' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => '0', - ], - 'InsName' => [ - 'description' => '分片名。', - 'type' => 'string', - 'example' => 'rm-uf6zix1z2jh1y6fe5', - ], - 'AccountName' => [ - 'description' => '数据库账号。', - 'type' => 'string', - 'example' => 'edu_admin', - ], - 'HostAddress' => [ - 'description' => '客户端IP地址。', - 'type' => 'string', - 'example' => '172.23.142.178', - ], - 'QueryStartTime' => [ - 'description' => '查询开始的时间。格式:yyyy-MM-dd hh:mm:ss(UTC时间)。', - 'type' => 'string', - 'example' => '2024-12-25T03:00:00Z', - ], - 'SQLText' => [ - 'description' => 'SQL语句详情。', - 'type' => 'string', - 'example' => 'SELECT \'Hello, World!\' FROM DUAL', - ], - 'Psql' => [ - 'description' => 'SQL模板。', - 'type' => 'string', - 'example' => 'SELECT b?.id,b?.t?,b?.id,b?.t? FROM testtb? b? JOIN testtb? b? ON b?.id=b?.id WHERE b?.t? LIKE ? ORDER BY b?.id DESC', - ], - 'DBName' => [ - 'description' => '数据库名称。', - 'type' => 'string', - 'example' => 'member_score', - ], - 'QueryTime' => [ - 'description' => '查询执行时间阈值,单位为毫秒(ms)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '272.444', - ], - 'ReturnItemNumbers' => [ - 'description' => '返回项目编号。', - 'type' => 'string', - 'example' => '暂无', - ], - 'DocsExamined' => [ - 'description' => 'MongoDB该操作执行时扫描的文档数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'KeysExamined' => [ - 'description' => 'MongoDB索引扫描行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20000'."\n", - ], - 'TableName' => [ - 'description' => '表名。', - 'type' => 'string', - 'example' => 'users\\nifconfig\\n', - ], - 'LockTime' => [ - 'description' => '已废弃。', - 'type' => 'number', - 'format' => 'double', - 'example' => '-', - ], - 'RowsExamined' => [ - 'description' => '总扫描行数。'."\n" - .'> 目前支持该字段的数据库:RDS MySQL、RDS PostgreSQL、PolarDB MySQL版。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2444081', - ], - 'RowsSent' => [ - 'description' => '返回行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '772', - ], - 'ThreadId' => [ - 'title' => '仅 PolarDB MySQL 有thread_id', - 'description' => '仅 PolarDB MySQL 有thread_id。', - 'type' => 'string', - 'example' => '1', - ], - 'Timestamp' => [ - 'description' => '执行时间,格式为Unix时间戳,单位为毫秒(ms)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1708568930', - ], - 'AvgLockTime' => [ - 'description' => '已废弃。', - 'type' => 'number', - 'format' => 'double', - 'example' => '-', - ], - 'AvgRowsSent' => [ - 'description' => '平均返回行数。', - 'type' => 'number', - 'format' => 'double', - 'example' => '2.0', - ], - 'LockTimeSeconds' => [ - 'description' => '锁等待时间,单位为秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0.0', - ], - 'QueryTimeSeconds' => [ - 'description' => '查询耗时,单位为秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '25.472', - ], - 'AvgLockTimeSeconds' => [ - 'description' => '平均锁等待时间,单位为秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0.0', - ], - 'MaxLockTimeSeconds' => [ - 'description' => '最大锁等待时间,单位为秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0.0', - ], - 'MaxQueryTimeSeconds' => [ - 'description' => '最大查询耗时,单位为秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '14.402', - ], - 'AvgQueryTimeSeconds' => [ - 'description' => '平均查询耗时,单位为秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '6.211', - ], - 'SqlType' => [ - 'description' => 'SQL语句的类型。', - 'type' => 'string', - 'example' => 'LOGIN', - ], - 'QueryId' => [ - 'description' => 'Query ID。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'string', - 'example' => 'sq-1pzcdMwRb', - ], - 'NodeType' => [ - 'description' => '节点类型。'."\n" - .'> 目前支持该字段的数据库:云数据库MongoDB版、云数据库 Tair(兼容 Redis)。', - 'type' => 'string', - 'example' => 'DLNode', - ], - 'HostInsId' => [ - 'description' => '主机实例id。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'string', - 'example' => 'mongo-abc123456', - ], - 'InsRole' => [ - 'description' => '实例角色。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'string', - 'example' => '__system', - ], - 'OpType' => [ - 'description' => '操作类型。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'string', - 'example' => 'Insert', - ], - 'Namespace' => [ - 'description' => '命名空间。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'string', - 'example' => 'database.collection', - ], - 'AvgKeysExamined' => [ - 'description' => '平均索引扫描行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'number', - 'format' => 'double', - 'example' => '20000', - ], - 'AvgDocExamined' => [ - 'description' => '平均扫描文档行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'number', - 'format' => 'double', - 'example' => '10000', - ], - 'AvgReturnNum' => [ - 'description' => '平均返回行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'number', - 'format' => 'double', - 'example' => '1', - ], - 'MaxKeysExamined' => [ - 'description' => '最大索引扫描行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2000000', - ], - 'MaxDocExamined' => [ - 'description' => '最大扫描文档行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1000000', - ], - 'MaxReturnNum' => [ - 'description' => '最大返回行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'ReturnNum' => [ - 'description' => '返回行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'DocExamined' => [ - 'description' => '扫描文档行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2000000', - ], - 'Command' => [ - 'description' => '慢查询语句。'."\n" - .'>仅云数据库 Tair(兼容 Redis)实例支持。', - 'type' => 'string', - 'example' => 'SELECT b?.id,b?.t?,b?.id,b?.t? FROM testtb? b? JOIN testtb? b? ON b?.id=b?.id WHERE b?.t? LIKE ? ORDER BY b?.t? DESC', - ], - 'IOWrites' => [ - 'description' => 'I/O 写次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1000', - ], - 'MaxIOWrites' => [ - 'description' => '最大 I/O 写次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1000', - ], - 'LastRowsCountAffected' => [ - 'description' => '最后一条语句的影响行数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1000', - ], - 'MaxLastRowsCountAffected' => [ - 'description' => '最大最后一条语句的影响行数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1000', - ], - 'LogicalIOReads' => [ - 'description' => '逻辑读次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1000', - ], - 'MaxLogicalIOReads' => [ - 'description' => '最大逻辑读次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1000', - ], - 'PhysicalIOReads' => [ - 'description' => '物理读次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1000', - ], - 'MaxPhysicalIOReads' => [ - 'description' => '最大物理读次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1000', - ], - 'RowsCountAffected' => [ - 'description' => '影响的行数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1000', - ], - 'MaxRowsCountAffected' => [ - 'description' => '最大影响的行数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1000', - ], - 'CPUTime' => [ - 'description' => '已废弃。', - 'type' => 'number', - 'format' => 'double', - 'example' => '-', - ], - 'AvgCPUTime' => [ - 'description' => '已废弃。', - 'type' => 'number', - 'format' => 'double', - 'example' => '-'."\n", - ], - 'MaxCPUTime' => [ - 'description' => '已废弃。', - 'type' => 'number', - 'format' => 'double', - 'example' => '-'."\n", - ], - 'AvgIOWrites' => [ - 'description' => '平均 I/O 写次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'number', - 'format' => 'double', - 'example' => '1000', - ], - 'AvgLastRowsCountAffected' => [ - 'description' => '平均最后一条语句的影响行数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'number', - 'format' => 'double', - 'example' => '1000', - ], - 'AvgLogicalIOReads' => [ - 'description' => '平均逻辑读次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'number', - 'format' => 'double', - 'example' => '1000', - ], - 'AvgPhysicalIOReads' => [ - 'description' => '平均物理读次数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'number', - 'format' => 'double', - 'example' => '1000', - ], - 'AvgRowsCountAffected' => [ - 'description' => '平均影响的行数。'."\n" - .'>仅云数据库RDS SQL Server版实例支持。', - 'type' => 'number', - 'format' => 'double', - 'example' => '1000', - ], - 'AvgCPUTimeSeconds' => [ - 'description' => 'CPU 平均查询时间,单位秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '456', - ], - 'MaxCPUTimeSeconds' => [ - 'description' => 'CPU 最长查询时间,单位秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '456', - ], - 'CPUTimeSeconds' => [ - 'description' => 'CPU 查询时间,单位秒。'."\n" - ."\n" - .'> 仅云数据库 RDS SQL Server 版实例支持。', - 'type' => 'number', - 'format' => 'double', - 'example' => '456', - ], - 'Rows' => [ - 'description' => 'PolarDB-X 2.0数据库实例计算节点总更新或返回的行数。'."\n" - ."\n" - .'> 仅云数据库 PolarDB-X 2.0 版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '105', - ], - 'AvgRows' => [ - 'description' => '平均行数。', - 'type' => 'number', - 'format' => 'double', - 'example' => '10', - ], - 'MaxRows' => [ - 'description' => '最大行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'Frows' => [ - 'description' => 'PolarDB-X 2.0计算节点(CN)的拉取行数。'."\n" - ."\n" - .'> 仅云数据库 PolarDB-X 2.0 版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'AvgFrows' => [ - 'description' => '平均拉取行数。', - 'type' => 'number', - 'format' => 'double', - 'example' => '10', - ], - 'MaxFrows' => [ - 'description' => '最大拉取行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'Scnt' => [ - 'description' => 'PolarDB-X 2.0计算节点(CN)的DN请求数。'."\n" - ."\n" - .'> 仅云数据库 PolarDB-X 2.0 版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'AvgScnt' => [ - 'description' => '平均请求数。', - 'type' => 'number', - 'format' => 'double', - 'example' => '10', - ], - 'MaxScnt' => [ - 'description' => '最大请求数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'RuleId' => [ - 'description' => '规则ID,具体信息请参见[查询治理](~~290038~~)。', - 'type' => 'string', - 'example' => '181**47', - ], - 'AvgRt' => [ - 'type' => 'number', - 'format' => 'double', - ], - 'MaxRt' => [ - 'type' => 'number', - 'format' => 'double', - ], - 'AvgRequestSize' => [ - 'type' => 'number', - 'format' => 'double', - ], - 'MaxRequestSize' => [ - 'type' => 'number', - 'format' => 'double', - ], - 'AvgResponseSize' => [ - 'type' => 'number', - 'format' => 'double', - ], - 'MaxResponseSize' => [ - 'type' => 'number', - 'format' => 'double', - ], - 'TotalCount' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'Cmd' => [ - 'type' => 'string', - ], - 'ClientIp' => [ - 'type' => 'string', - ], - 'DbId' => [ - 'type' => 'string', - ], - ], - ], - ], - ], - ], - 'ErrorCode' => [ - 'title' => '错误码', - 'description' => '错误码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10910', - ], - 'Message' => [ - 'title' => '错误信息', - 'description' => '错误信息。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'Timestamp' => [ - 'title' => '请求时间', - 'description' => '请求时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1735104224250', - ], - ], - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + ."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], + 'Data' => ['title' => 'String', 'description' => '分享链接', 'type' => 'string', 'example' => 'https://hdm.console.aliyun.com/#/queryOptimize****'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"52D540CF-C517-1F57-BB42-9035F96******\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"RequestKey\\": \\"123456789\\",\\n \\"ResultId\\": \\"async__665ee69612f1627c7fd9f3c85075****\\",\\n \\"State\\": \\"SUCCESS\\",\\n \\"IsFinish\\": true,\\n \\"Data\\": {\\n \\"DbInstanceName\\": \\"0\\",\\n \\"NodeId\\": \\"pi-wz99g5rn7w1x8h0sf\\",\\n \\"ItemsNumbers\\": 10,\\n \\"StartTime\\": \\"2024-10-08T02:01:00Z\\",\\n \\"EndTime\\": \\"2024-08-08T02:15:00Z\\",\\n \\"DbInstanceId\\": 0,\\n \\"TotalRecords\\": 13,\\n \\"PageNumbers\\": 1,\\n \\"MaxRecordsPerPage\\": 10,\\n \\"Logs\\": [\\n {\\n \\"Count\\": 12,\\n \\"MaxLockTime\\": 0,\\n \\"MaxQueryTime\\": 0,\\n \\"MaxRowsExamined\\": 318613,\\n \\"MaxRowsSent\\": 256,\\n \\"AvgQueryTime\\": 0,\\n \\"QueryTimeRate\\": 0.1018,\\n \\"CountRate\\": 0.2034,\\n \\"AvgRowsExamined\\": 53421,\\n \\"OriginAlias\\": \\"order-1\\",\\n \\"User\\": \\"user-1\\",\\n \\"SqlTag\\": {\\n \\"SqlId\\": \\"a3931d8c3a9315dd5ed016d71cf*****\\",\\n \\"Tags\\": \\"DAS_IN_PLAN\\",\\n \\"Comments\\": \\"dba 归档\\"\\n },\\n \\"Trend\\": [\\n {\\n \\"Timestamp\\": 1723775362,\\n \\"Value\\": \\"tf-testacc-oos-parameter\\"\\n }\\n ],\\n \\"Database\\": \\"work-wechat-api\\",\\n \\"Histogram\\": {\\n \\"Total\\": 7,\\n \\"Count\\": [\\n 100\\n ],\\n \\"Ts\\": [\\n 1715220818\\n ],\\n \\"TsEnd\\": [\\n 0\\n ],\\n \\"Item\\": [\\n {\\n \\"NodeId\\": \\"r-bp1s1m8hwzrm77kfvz-db-0\\",\\n \\"Count\\": [\\n 100\\n ]\\n }\\n ],\\n \\"Rt\\": [\\n 1854\\n ],\\n \\"AvgRt\\": [\\n 3709\\n ],\\n \\"MaxRt\\": [\\n 2516\\n ],\\n \\"LockTime\\": [\\n 300\\n ],\\n \\"AvgLockTime\\": [\\n 15\\n ],\\n \\"MaxLockTime\\": [\\n 1051\\n ],\\n \\"RowsExamined\\": [\\n 641057\\n ],\\n \\"AvgRowsExamined\\": [\\n 222189\\n ],\\n \\"MaxRowsExamined\\": [\\n 878511\\n ],\\n \\"RowsSent\\": [\\n 4\\n ],\\n \\"AvgRowsSent\\": [\\n 2\\n ],\\n \\"MaxRowsSent\\": [\\n 256\\n ]\\n },\\n \\"SqlId\\": \\"2dca88762ec6b3812504ab8a4b******\\",\\n \\"Scheme\\": \\"HTTP\\",\\n \\"SubInstanceId\\": \\"r-8vba51c588ba3a94\\",\\n \\"DbInstanceName\\": \\"0\\",\\n \\"InsName\\": \\"rm-uf6zix1z2jh1y6fe5\\",\\n \\"AccountName\\": \\"edu_admin\\",\\n \\"HostAddress\\": \\"172.23.142.178\\",\\n \\"QueryStartTime\\": \\"2024-12-25T03:00:00Z\\",\\n \\"SQLText\\": \\"SELECT \'Hello, World!\' FROM DUAL\\",\\n \\"Psql\\": \\"SELECT b?.id,b?.t?,b?.id,b?.t? FROM testtb? b? JOIN testtb? b? ON b?.id=b?.id WHERE b?.t? LIKE ? ORDER BY b?.id DESC\\",\\n \\"DBName\\": \\"member_score\\",\\n \\"QueryTime\\": 272.444,\\n \\"ReturnItemNumbers\\": \\"暂无\\",\\n \\"DocsExamined\\": 1,\\n \\"KeysExamined\\": 20000,\\n \\"TableName\\": \\"users\\\\\\\\nifconfig\\\\\\\\n\\",\\n \\"LockTime\\": 0,\\n \\"RowsExamined\\": 2444081,\\n \\"RowsSent\\": 772,\\n \\"ThreadId\\": \\"1\\",\\n \\"Timestamp\\": 1708568930,\\n \\"AvgLockTime\\": 0,\\n \\"AvgRowsSent\\": 2,\\n \\"LockTimeSeconds\\": 0,\\n \\"QueryTimeSeconds\\": 25.472,\\n \\"AvgLockTimeSeconds\\": 0,\\n \\"MaxLockTimeSeconds\\": 0,\\n \\"MaxQueryTimeSeconds\\": 14.402,\\n \\"AvgQueryTimeSeconds\\": 6.211,\\n \\"SqlType\\": \\"LOGIN\\",\\n \\"QueryId\\": \\"sq-1pzcdMwRb\\",\\n \\"NodeType\\": \\"DLNode\\",\\n \\"HostInsId\\": \\"mongo-abc123456\\",\\n \\"InsRole\\": \\"__system\\",\\n \\"OpType\\": \\"Insert\\",\\n \\"Namespace\\": \\"database.collection\\",\\n \\"AvgKeysExamined\\": 20000,\\n \\"AvgDocExamined\\": 10000,\\n \\"AvgReturnNum\\": 1,\\n \\"MaxKeysExamined\\": 2000000,\\n \\"MaxDocExamined\\": 1000000,\\n \\"MaxReturnNum\\": 1,\\n \\"ReturnNum\\": 1,\\n \\"DocExamined\\": 2000000,\\n \\"Command\\": \\"SELECT b?.id,b?.t?,b?.id,b?.t? FROM testtb? b? JOIN testtb? b? ON b?.id=b?.id WHERE b?.t? LIKE ? ORDER BY b?.t? DESC\\",\\n \\"IOWrites\\": 1000,\\n \\"MaxIOWrites\\": 1000,\\n \\"LastRowsCountAffected\\": 1000,\\n \\"MaxLastRowsCountAffected\\": 1000,\\n \\"LogicalIOReads\\": 1000,\\n \\"MaxLogicalIOReads\\": 1000,\\n \\"PhysicalIOReads\\": 1000,\\n \\"MaxPhysicalIOReads\\": 1000,\\n \\"RowsCountAffected\\": 1000,\\n \\"MaxRowsCountAffected\\": 1000,\\n \\"CPUTime\\": 0,\\n \\"AvgCPUTime\\": 0,\\n \\"MaxCPUTime\\": 0,\\n \\"AvgIOWrites\\": 1000,\\n \\"AvgLastRowsCountAffected\\": 1000,\\n \\"AvgLogicalIOReads\\": 1000,\\n \\"AvgPhysicalIOReads\\": 1000,\\n \\"AvgRowsCountAffected\\": 1000,\\n \\"AvgCPUTimeSeconds\\": 456,\\n \\"MaxCPUTimeSeconds\\": 456,\\n \\"CPUTimeSeconds\\": 456,\\n \\"Rows\\": 105,\\n \\"AvgRows\\": 10,\\n \\"MaxRows\\": 10,\\n \\"Frows\\": 10,\\n \\"AvgFrows\\": 10,\\n \\"MaxFrows\\": 10,\\n \\"Scnt\\": 10,\\n \\"AvgScnt\\": 10,\\n \\"MaxScnt\\": 10,\\n \\"RuleId\\": \\"181**47\\",\\n \\"AvgRt\\": 0,\\n \\"MaxRt\\": 0,\\n \\"AvgRequestSize\\": 0,\\n \\"MaxRequestSize\\": 0,\\n \\"AvgResponseSize\\": 0,\\n \\"MaxResponseSize\\": 0,\\n \\"TotalCount\\": 0,\\n \\"Cmd\\": \\"\\",\\n \\"ClientIp\\": \\"\\",\\n \\"DbId\\": \\"\\"\\n }\\n ]\\n },\\n \\"ErrorCode\\": 10910,\\n \\"Message\\": \\"Successful\\",\\n \\"Timestamp\\": 1735104224250\\n }\\n}","type":"json"}]', - 'title' => '慢日志统计信息', - 'description' => '**请确保在使用该接口前,已充分了解DAS产品的[收费方式和价格](~~156195~~)。**'."\n" - ."\n" - .'使用该接口需满足以下前提条件:'."\n" - .'- 请求实例已开通智能运维服务。'."\n" - .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '获取查询治理的分享链接', + 'description' => '- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - ."\n" - .'该接口异步调用后不会立即返回完整结果,当返回数据中 isFinish 取值为 false 时,请等待 1s 后重新发起调用,直到 isFinish 取值为 true 时,返回完整结果。', - ], - 'DescribeSlowLogRecords' => [ - 'summary' => '本接口用于查询数据库实例的慢日志记录,支持按多种条件过滤和排序。', - 'methods' => [ - 'post', - 'get', + .'- 本接口适用的数据库引擎为:'."\n" + .' - RDS MySQL'."\n" + .' - PolarDB MySQL版'."\n" + .' - RDS PostgreSQL', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetQueryOptimizeShareUrl'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetQueryOptimizeShareUrl', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": \\"https://hdm.console.aliyun.com/#/queryOptimize****\\"\\n}","errorExample":""},{"type":"xml","example":"<GetQueryOptimizeShareUrlResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n <Data>https://hdm.console.aliyun.com/#/queryOptimize****</Data>\\n</GetQueryOptimizeShareUrlResponse>","errorExample":""}]', + ], + 'GetQueryOptimizeSolution' => [ + 'summary' => '调用GetQueryOptimizeSolution接口,获取治理建议。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '236528', - 'abilityTreeNodes' => [ - 'FEATUREhdmR88NLD', - ], - 'autoTest' => true, + 'abilityTreeNodes' => ['FEATUREhdmTQGIFY'], ], 'parameters' => [ [ - 'name' => 'InstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例id。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-8vbk4xz99su8****', - ], - ], - [ - 'name' => 'NodeId', - 'in' => 'formData', - 'schema' => [ - 'description' => '节点id。', - 'type' => 'string', - 'required' => false, - 'example' => 'pi-d9j9fe7wq7t9i****'."\n", - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'formData', - 'schema' => [ - 'description' => '起始时间。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1596177993000', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'formData', - 'schema' => [ - 'description' => '结束时间。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1634972640000', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'formData', - 'schema' => [ - 'description' => '页码,从1开始。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'formData', - 'schema' => [ - 'description' => '页大小。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'name' => 'Engine', + 'in' => 'query', + 'schema' => ['description' => '数据库引擎,取值:'."\n" + ."\n" + .'- **MySQL**'."\n" + .'- **PolarDBMySQL**'."\n" + .'- **PostgreSQL**', 'type' => 'string', 'required' => true, 'example' => 'MySQL'], ], [ - 'name' => 'Filters', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '筛选条件列表。', - 'type' => 'array', - 'items' => [ - 'description' => '筛选条件列表。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => '过滤参数', - 'description' => '过滤参数。'."\n" - ."\n" - .'> 详情请参见补充说明。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], - 'Value' => [ - 'description' => '过滤参数取值。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 100, - ], + 'name' => 'SqlId', + 'in' => 'query', + 'schema' => ['description' => 'SQL模板ID。'."\n" + .'您可调用[GetQueryOptimizeDataStats](~~405261~~)接口查询SQL模板ID。', 'type' => 'string', 'required' => true, 'example' => '05fecf7e7b3efd123c4d5197035f****'], ], [ - 'name' => 'OrderBy', + 'name' => 'RuleIds', 'in' => 'query', - 'schema' => [ - 'description' => '- **MySQL** '."\n" - .' - QueryTimeSeconds:查询耗时(秒)。'."\n" - .' - LockTimeSeconds:锁时间(秒)。'."\n" - .' - RowsSent:配置行。'."\n" - .' - RowsExamined:检查行。'."\n" - .'- **Redis**'."\n" - .' - QueryTime:耗时。'."\n" - .' - Timestamp:执行结束时间。'."\n" - .'- **MongoDB**'."\n" - .' - QueryTime:耗时。'."\n" - .' - Timestamp:执行结束时间。'."\n" - .' - KeysExamined:已检查密匙。'."\n" - .' - DocExamined:已检查文件。'."\n" - .' - ReturnNum:返回行。'."\n" - ."\n" - .'<notice>RDS PostgreSQL、PolarDB PostgreSQL和SQLServer不支持排序。</notice>', - 'type' => 'string', - 'required' => false, - 'example' => 'QueryTimeSeconds', - ], + 'schema' => ['description' => '规则ID,具体信息请参见[查询治理](~~290038~~)。', 'type' => 'string', 'required' => true, 'example' => 'LARGE_ROWS_EXAMINED'], ], [ - 'name' => 'Asc', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '是否升序排序,默认为**true**。'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '实例ID。'."\n" + .'您可调用[GetQueryOptimizeDataStats](~~405261~~)接口查询实例ID。', 'type' => 'string', 'required' => false, 'example' => 'rm-bp1o3z6beqpej****'], ], ], 'responses' => [ @@ -19579,626 +15045,118 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A1C79EE2-D04D-571B-8C60-961FAF8E****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - ."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ - 'title' => 'DBLogRecords<SlowLogItem>', - 'description' => 'DBLogRecords<SlowLogItem>', + 'description' => '详细信息列表。', 'type' => 'object', 'properties' => [ - 'DbInstanceName' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'rm-bp157g54vy772****', - ], - 'NodeId' => [ - 'description' => '节点id。', - 'type' => 'string', - 'example' => 'node123', - ], - 'ItemsNumbers' => [ - 'description' => '当前页查询日志列表内的Item数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'StartTime' => [ - 'description' => '起始时间。', - 'type' => 'string', - 'example' => '1672531200000', - ], - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '1672617600000', - ], - 'DbInstanceId' => [ - 'description' => '实例数字ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'TotalRecords' => [ - 'description' => '总记录数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'PageNumbers' => [ - 'description' => '分页查询的页码,从1开始,默认为1。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'MaxRecordsPerPage' => [ - 'description' => '分页查询每页最大记录数。取值范围:5~100。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'Logs' => [ - 'description' => '返回数据。', + 'Total' => ['description' => '总数据量。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'PageNo' => ['description' => '备用参数。', 'type' => 'integer', 'format' => 'int32', 'example' => 'None'], + 'PageSize' => ['description' => '备用参数。', 'type' => 'integer', 'format' => 'int32', 'example' => 'None'], + 'Extra' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], + 'List' => [ + 'description' => '治理建议列表。', 'type' => 'array', 'items' => [ - 'description' => '返回数据。', + 'description' => '治理建议列表。', 'type' => 'object', 'properties' => [ - 'SqlId' => [ - 'description' => 'SQL模板ID', - 'type' => 'string', - 'example' => 'sqlId', - ], - 'Scheme' => [ - 'description' => '数据Schema', - 'type' => 'string', - 'example' => 'HTTPS', - ], - 'SubInstanceId' => [ - 'description' => '子实例ID。', - 'type' => 'string', - 'example' => 'r-8vb219d10038****', - ], - 'DbInstanceName' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'rm-2zebg30mk056g****', - ], - 'InsName' => [ - 'description' => '实例名字', - 'type' => 'string', - 'example' => 'test', - ], - 'AccountName' => [ - 'description' => '用户。', - 'type' => 'string', - 'example' => 'user1', - ], - 'HostAddress' => [ - 'description' => '来源。', - 'type' => 'string', - 'example' => '192.168.1.1', - ], - 'QueryStartTime' => [ - 'description' => '查询开始的时间。格式:yyyy-MM-dd hh:mm:ss(UTC时间)。', - 'type' => 'string', - 'example' => '2024-04-01 11:00:00', - ], - 'SQLText' => [ - 'description' => 'sql文本。', - 'type' => 'string', - 'example' => 'SELECT * FROM my_table WHERE ROWNUM <= 10', - ], - 'Psql' => [ - 'description' => 'SQL模板。', - 'type' => 'string', - 'example' => 'SELECT * FROM my_table WHERE ROWNUM <= 10'."\n", - ], - 'DBName' => [ - 'description' => '数据库名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'QueryTime' => [ - 'description' => '查询耗时。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '121', - ], - 'ReturnItemNumbers' => [ - 'description' => '返回项目编号。', - 'type' => 'string', - 'example' => 'test', - ], - 'DocsExamined' => [ - 'description' => 'MongoDB该操作执行时扫描的文档数。', - 'type' => 'string', - 'example' => '100', - ], - 'KeysExamined' => [ - 'description' => 'MongoDB 索引扫描行数。', - 'type' => 'string', - 'example' => 'valueA', - ], - 'TableName' => [ - 'description' => '表名。', - 'type' => 'string', - 'example' => 'tableNameExample', - ], - 'LockTime' => [ - 'description' => '锁等待时间。', - 'type' => 'number', - 'format' => 'double', - 'example' => '100', - ], - 'RowsExamined' => [ - 'description' => '扫描行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'RowsSent' => [ - 'description' => '返回行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'ThreadId' => [ - 'title' => '仅 PolarDB MySQL 有thread_id', - 'description' => '线程ID。', - 'type' => 'string', - 'example' => '57472578', - ], - 'Timestamp' => [ - 'description' => '时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1747118812', - ], - 'SqlTag' => [ - 'description' => '标签。', - 'type' => 'object', - 'properties' => [ - 'SqlId' => [ - 'description' => 'sqlid。', - 'type' => 'string', - 'example' => '8ad7069f236bcdaaa9b3ae4b6299****', - ], - 'Tags' => [ - 'description' => '逗号分隔的多个tag。', - 'type' => 'string', - 'example' => 'DAS_IMPORTANT,DAS_IN_PLAN', - ], - 'Comments' => [ - 'description' => '备注信息。', - 'type' => 'string', - 'example' => 'test', - ], - ], - ], - 'LockTimeSeconds' => [ - 'description' => '锁等待时间,单位为秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '100', - ], - 'QueryTimeSeconds' => [ - 'description' => '查询耗时,单位秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '100', - ], - 'SqlType' => [ - 'description' => '选择SQL的类型。'."\n" - .'- **SELECT**'."\n" - .'- **UPDATE**'."\n" - .'- **DELETE**', - 'type' => 'string', - 'example' => 'SELECT', - ], - 'CPUTime' => [ - 'description' => 'CPU 查询时间。'."\n" - ."\n" - .'> 仅云数据库 RDS SQL Server 版实例支持。', - 'type' => 'number', - 'format' => 'double', - 'example' => '50', - ], - 'IOWrites' => [ - 'description' => 'I/O 写次数。'."\n" - ."\n" - .'> 仅云数据库 RDS SQL Server 版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'LastRowsCountAffected' => [ - 'description' => '最后一条语句的影响行数。'."\n" - ."\n" - .'> 仅云数据库 RDS SQL Server 版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'LogicalIOReads' => [ - 'description' => '逻辑读次数。'."\n" - ."\n" - .'> 仅云数据库 RDS SQL Server 版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'PhysicalIOReads' => [ - 'description' => '物理读次数。'."\n" - ."\n" - .'> 仅云数据库 RDS SQL Server 版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'RowsCountAffected' => [ - 'description' => '影响的行数。'."\n" - ."\n" - .'> 仅云数据库 RDS SQL Server 版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'Command' => [ - 'description' => '慢查询语句。'."\n" - .'>仅云数据库 Tair(兼容 Redis)实例支持。', - 'type' => 'string', - 'example' => 'SELECT', - ], - 'Namespace' => [ - 'description' => '命名空间。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'string', - 'example' => 'pro-test', - ], - 'QueryId' => [ - 'description' => 'Query ID。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'string', - 'example' => 'sq-1pzcdMwRb', - ], - 'ReturnNum' => [ - 'description' => '返回行数。'."\n" - .'>仅云数据库MongoDB版实例支持。', - 'type' => 'string', - 'example' => '20', - ], - 'ApplicationName' => [ - 'description' => '应用名。'."\n" - ."\n" - .'> 仅云数据库 RDS SQL Server 版实例支持。', - 'type' => 'string', - 'example' => 'MyApp', - ], - 'CPUTimeSeconds' => [ - 'description' => 'CPU 查询时间,单位秒。'."\n" - ."\n" - .'> 仅云数据库 RDS SQL Server 版实例支持。', - 'type' => 'number', - 'format' => 'double', - 'example' => '100', - ], - 'Rows' => [ - 'description' => 'PolarDB-X 2.0数据库实例计算节点总更新或返回的行数。'."\n" - ."\n" - .'> 仅云数据库 PolarDB-X 2.0 版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], - 'Frows' => [ - 'description' => 'PolarDB-X 2.0计算节点(CN)的拉取行数。'."\n" - ."\n" - .'> 仅云数据库 PolarDB-X 2.0 版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'Scnt' => [ - 'description' => 'PolarDB-X 2.0计算节点(CN)的DN请求数。'."\n" - ."\n" - .'> 仅云数据库 PolarDB-X 2.0 版实例支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'TraceId' => [ - 'description' => 'PolarDB-X 2.0的跟踪ID,即SQL在数据节点的执行ID。'."\n" - ."\n" - .'> 仅云数据库 PolarDB-X 2.0 版实例支持。', - 'type' => 'string', - 'example' => '074ce334-5247-40b9-b0c1-158aea5d****', - ], - 'TemplateId' => [ - 'description' => 'PolarDB-X 2.0 模板ID。'."\n" - ."\n" - .'> 仅云数据库 PolarDB-X 2.0 版实例支持。', - 'type' => 'string', - 'example' => '6a63b6ac4572abfaef7d1163f684****', - ], - 'NodeId' => [ - 'type' => 'string', - ], - 'Cmd' => [ - 'type' => 'string', - ], - 'Rt' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'RequestSize' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'ResponseSize' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'ClientIp' => [ - 'type' => 'string', - ], - 'DbId' => [ - 'type' => 'string', - ], - 'OriginTime' => [ - 'type' => 'string', - ], - 'OpType' => [ - 'type' => 'string', - ], + 'Level' => ['description' => '建议级别:'."\n" + ."\n" + .'- **INFO**:提示。'."\n" + .'- **WARN**:警告。', 'type' => 'string', 'example' => 'INFO'], + 'RuleId' => ['description' => '规则ID,具体信息请参见[查询治理](~~290038~~)。', 'type' => 'string', 'example' => 'LARGE_ROWS_EXAMINED'], + 'Solution' => ['description' => '解决方案,具体信息请参见[查询治理](~~290038~~)。', 'type' => 'string', 'example' => 'LARGE_ROWS_EXAMINED_SOLUTION'], + 'SolutionExt' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], ], ], ], ], ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '30FF4E40-17F3-5A51-AB23-43F30D9B****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => '获取治理建议', + 'description' => '- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 本接口适用的数据库引擎为:'."\n" + .' - RDS MySQL'."\n" + .' - PolarDB MySQL版'."\n" + .' - RDS PostgreSQL', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetQueryOptimizeSolution'], + ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetQueryOptimizeSolution', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"A1C79EE2-D04D-571B-8C60-961FAF8E****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"DbInstanceName\\": \\"rm-bp157g54vy772****\\",\\n \\"NodeId\\": \\"node123\\",\\n \\"ItemsNumbers\\": 10,\\n \\"StartTime\\": \\"1672531200000\\",\\n \\"EndTime\\": \\"1672617600000\\",\\n \\"DbInstanceId\\": 100,\\n \\"TotalRecords\\": 100,\\n \\"PageNumbers\\": 1,\\n \\"MaxRecordsPerPage\\": 20,\\n \\"Logs\\": [\\n {\\n \\"SqlId\\": \\"sqlId\\",\\n \\"Scheme\\": \\"HTTPS\\",\\n \\"SubInstanceId\\": \\"r-8vb219d10038****\\",\\n \\"DbInstanceName\\": \\"rm-2zebg30mk056g****\\",\\n \\"InsName\\": \\"test\\",\\n \\"AccountName\\": \\"user1\\",\\n \\"HostAddress\\": \\"192.168.1.1\\",\\n \\"QueryStartTime\\": \\"2024-04-01 11:00:00\\",\\n \\"SQLText\\": \\"SELECT * FROM my_table WHERE ROWNUM <= 10\\",\\n \\"Psql\\": \\"SELECT * FROM my_table WHERE ROWNUM <= 10\\\\n\\",\\n \\"DBName\\": \\"test\\",\\n \\"QueryTime\\": 121,\\n \\"ReturnItemNumbers\\": \\"test\\",\\n \\"DocsExamined\\": \\"100\\",\\n \\"KeysExamined\\": \\"valueA\\",\\n \\"TableName\\": \\"tableNameExample\\",\\n \\"LockTime\\": 100,\\n \\"RowsExamined\\": 100,\\n \\"RowsSent\\": 10,\\n \\"ThreadId\\": \\"57472578\\",\\n \\"Timestamp\\": 1747118812,\\n \\"SqlTag\\": {\\n \\"SqlId\\": \\"8ad7069f236bcdaaa9b3ae4b6299****\\",\\n \\"Tags\\": \\"DAS_IMPORTANT,DAS_IN_PLAN\\",\\n \\"Comments\\": \\"test\\"\\n },\\n \\"LockTimeSeconds\\": 100,\\n \\"QueryTimeSeconds\\": 100,\\n \\"SqlType\\": \\"SELECT\\",\\n \\"CPUTime\\": 50,\\n \\"IOWrites\\": 1,\\n \\"LastRowsCountAffected\\": 10,\\n \\"LogicalIOReads\\": 1,\\n \\"PhysicalIOReads\\": 1,\\n \\"RowsCountAffected\\": 10,\\n \\"Command\\": \\"SELECT\\",\\n \\"Namespace\\": \\"pro-test\\",\\n \\"QueryId\\": \\"sq-1pzcdMwRb\\",\\n \\"ReturnNum\\": \\"20\\",\\n \\"ApplicationName\\": \\"MyApp\\",\\n \\"CPUTimeSeconds\\": 100,\\n \\"Rows\\": 20,\\n \\"Frows\\": 10,\\n \\"Scnt\\": 10,\\n \\"TraceId\\": \\"074ce334-5247-40b9-b0c1-158aea5d****\\",\\n \\"TemplateId\\": \\"6a63b6ac4572abfaef7d1163f684****\\",\\n \\"NodeId\\": \\"\\",\\n \\"Cmd\\": \\"\\",\\n \\"Rt\\": 0,\\n \\"RequestSize\\": 0,\\n \\"ResponseSize\\": 0,\\n \\"ClientIp\\": \\"\\",\\n \\"DbId\\": \\"\\",\\n \\"OriginTime\\": \\"\\",\\n \\"OpType\\": \\"\\"\\n }\\n ]\\n }\\n}","type":"json"}]', - 'title' => '慢日志记录查询', - 'description' => '- `InstanceId` 为实例ID,必填参数。'."\n" - .'- `StartTime` 和 `EndTime` 为查询的时间范围,必填参数。'."\n" - .'- 可以通过设置 `PageNumber` 和 `PageSize` 来分页获取结果。'."\n" - .'- 支持通过 `OrderBy` 参数对结果进行排序,具体可排序字段请参考文档。'."\n" - .'- 使用 `Filters` 参数可以进一步细化查询条件,如按主机地址、SQL ID等过滤。'."\n" - .'<notice>某些数据库类型(如pg和polarPG)不支持特定的排序方式,请根据实际情况选择合适的参数。</notice>', - 'requestParamsDescription' => '**Key**支持的参数和取值:'."\n" - .'- **RDS MySQL、PolarDB MySQL、RDS PostgreSQL、PolarDB PostgreSQL版**'."\n" - .' - hostAddress:来源,多个使用逗号分隔。'."\n" - .' - sqlId:SqlID,多个使用逗号分隔。'."\n" - .' - user:用户,多个使用逗号分隔。'."\n" - .' - dbName:数据库名称,多个使用逗号分隔。'."\n" - .' - tags:标签,多个使用逗号分隔。'."\n" - .'- **MongoDB**'."\n" - .' - hostInsId:角色ID,多个使用逗号分隔。'."\n" - .' - insRole:实例角色,多个使用逗号分隔。'."\n" - .' - opType:操作类型,多个使用逗号分隔。'."\n" - .' - namespace:命名空间,多个使用逗号分隔。'."\n" - .' - nodeType:组件类型,多个使用逗号分隔。'."\n" - .' - queryId:查询ID,多个使用逗号分隔。'."\n" - .'- **云数据库Tair(兼容redis)**'."\n" - .' - hostAddress:来源。'."\n" - .' - user:用户。'."\n" - .' - dbName:数据库。'."\n" - .' - nodeType:节点类型。'."\n" - .'- **RDS SQL Server**'."\n" - .' - hostAddress:来源,多个使用逗号分隔。'."\n" - .' - sqlId:SqlID,多个使用逗号分隔。'."\n" - .' - user:用户,多个使用逗号分隔。'."\n" - .' - dbName:数据库,多个使用逗号分隔。'."\n" - .' - tags:标签,多个使用逗号分隔。'."\n" - .'- **PolarDB-X**'."\n" - .' - traceId:实例的跟踪 ID。'."\n" - .' - role:节点角色,取值CN或DN(计算节点/存储节点),必传。'."\n" - .' - hostAddress:来源,多个使用逗号分隔。'."\n" - .' - sqlId:SqlID,多个使用逗号分隔。'."\n" - .' - user:user,多个使用逗号分隔。'."\n" - .' - dbName:数据库,多个使用逗号分隔。'."\n" - .' - tags:标签,多个使用逗号分隔。'."\n" - .'> - SQL引擎支持根据sqlId查询数据,且sqlId支持逗号分隔传入多个,最多20个。'."\n" - .'> - MongoDB支持根据queryId查询数据,且queryId支持逗号分隔传入多个,最多20个。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Total\\": 1,\\n \\"PageNo\\": 0,\\n \\"PageSize\\": 0,\\n \\"Extra\\": \\"None\\",\\n \\"List\\": [\\n {\\n \\"Level\\": \\"INFO\\",\\n \\"RuleId\\": \\"LARGE_ROWS_EXAMINED\\",\\n \\"Solution\\": \\"LARGE_ROWS_EXAMINED_SOLUTION\\",\\n \\"SolutionExt\\": \\"None\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"30FF4E40-17F3-5A51-AB23-43F30D9B****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetQueryOptimizeSolutionResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Total>1</Total>\\n <Extra>None</Extra>\\n <List>\\n <Level>INFO</Level>\\n <RuleId>LARGE_ROWS_EXAMINED</RuleId>\\n <Solution>LARGE_ROWS_EXAMINED_SOLUTION</Solution>\\n <SolutionExt>None</SolutionExt>\\n </List>\\n </Data>\\n <RequestId>30FF4E40-17F3-5A51-AB23-43F30D9B****</RequestId>\\n <Success>true</Success>\\n</GetQueryOptimizeSolutionResponse>","errorExample":""}]', ], - 'UpdateAutoThrottleRulesAsync' => [ - 'summary' => '调用UpdateAutoThrottleRulesAsync接口,采用异步方式,批量设置指定数据库实例的自动SQL限流配置参数。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetQueryOptimizeTag' => [ + 'summary' => '调用GetQueryOptimizeTag接口,获取指定SQL的标签。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhdmTFSOG0', - ], + 'abilityTreeNodes' => ['FEATUREhdmTQGIFY'], ], 'parameters' => [ [ - 'name' => 'ConsoleContext', - 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], - ], - [ - 'name' => 'InstanceIds', - 'in' => 'query', - 'schema' => [ - 'description' => '数据库实例ID。'."\n" - ."\n" - .'> 数据格式为JSONArray,例如`[\'实例ID1\',\'实例ID2\']`,实例ID间用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => '[\'rm-2ze8g2am97624****\',\'rm-2ze9xrhze0709****\']', - ], - ], - [ - 'name' => 'CpuUsage', - 'in' => 'query', - 'schema' => [ - 'description' => 'CPU利用率阈值,取值范围:70%~100%。', - 'type' => 'number', - 'format' => 'double', - 'required' => true, - 'example' => '70', - ], - ], - [ - 'name' => 'CpuSessionRelation', - 'in' => 'query', - 'schema' => [ - 'title' => '[AND | OR]', - 'description' => 'CPU利用率阈值和活跃会话数阈值的逻辑关系。'."\n" - .'- **AND**:且。'."\n" - .'- **OR**:或。', - 'type' => 'string', - 'required' => true, - 'enumValueTitles' => [], - 'example' => 'OR', - ], - ], - [ - 'name' => 'ActiveSessions', - 'in' => 'query', - 'schema' => [ - 'description' => '活跃会话数阈值。 '."\n" - ."\n" - .'- 与CPU利用率阈值关系为**OR**(或)时,大于等于16。'."\n" - .'- 与CPU利用率阈值关系为**AND**(且)时,大于等于2。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '16', - ], - ], - [ - 'name' => 'AbnormalDuration', - 'in' => 'query', - 'schema' => [ - 'description' => '触发自动SQL限流的异常的持续时间阈值,取值范围:大于等于2的正整数,单位:分钟。'."\n", - 'type' => 'number', - 'format' => 'double', - 'required' => true, - 'example' => '2', - ], - ], - [ - 'name' => 'MaxThrottleTime', + 'name' => 'Engine', 'in' => 'query', - 'schema' => [ - 'description' => '最大限流时长,取值为正整数,单位:分钟。', - 'type' => 'number', - 'format' => 'double', - 'required' => true, - 'example' => '10', - ], + 'schema' => ['description' => '数据库引擎,取值:'."\n" + ."\n" + .'- **MySQL**:RDS MySQL'."\n" + .'- **PolarDBMySQL**:PolarDB MySQL版'."\n" + .'- **PostgreSQL**:RDS PostgreSQL', 'type' => 'string', 'required' => true, 'example' => 'MySQL'], ], [ - 'name' => 'AllowThrottleStartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '可限流时间段的开始时间(UTC时间)。', - 'type' => 'string', - 'required' => true, - 'example' => '00:00Z', - ], - ], - [ - 'name' => 'AllowThrottleEndTime', + 'name' => 'SqlId', 'in' => 'query', - 'schema' => [ - 'description' => '可限流时间段的结束时间(UTC时间)。', - 'type' => 'string', - 'required' => true, - 'example' => '23:59Z', - ], + 'schema' => ['description' => 'SQL模板ID。'."\n" + .'您可调用[GetQueryOptimizeDataStats](~~405261~~)接口查询SQL模板ID。', 'type' => 'string', 'required' => true, 'example' => '29d9fef63e347d39c3436658a5fe****'], ], [ - 'name' => 'AutoKillSession', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '是否同时KILL执行中的异常SQL:'."\n" - .'> 异常SQL:与需要限流的SQL模板相同。'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'required' => true, - 'example' => 'true', - ], - ], - [ - 'name' => 'ResultId', - 'in' => 'query', - 'schema' => [ - 'description' => '异步请求的ID。'."\n" - .'> 异步调用后不会立即返回完整结果,首先需要调用该接口获取**ResultId**,然后使用返回数据的**ResultId**,重新发起调用,直到**isFinish**取值为**true**时,返回完整结果。即获取一次完整数据,至少需要调用该接口两次。', - 'type' => 'string', - 'required' => false, - 'example' => 'async__507044db6c4eadfa2dab9b084e80****', - ], + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'], ], ], 'responses' => [ @@ -20206,239 +15164,96 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], 'Data' => [ - 'description' => '返回的数据。', + 'title' => 'SqlTag', + 'description' => '返回的SQL标签数据。', 'type' => 'object', 'properties' => [ - 'Fail' => [ - 'description' => '请求是否失败:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'ConfigResponse' => [ - 'description' => '批量设置的返回数据。'."\n" - .'> 异步请求完成时(即isFinish取值为**true**时)才会返回该数据。', - 'type' => 'object', - 'properties' => [ - 'TotalInstanceCount' => [ - 'description' => '总数据库实例数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'ConfigSuccessInstanceCount' => [ - 'description' => '设置成功的数据库实例数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'ConfigFailInstanceCount' => [ - 'description' => '设置失败的数据库实例数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'ConfigSuccessInstanceList' => [ - 'description' => '设置成功的数据库实例列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ConfigSuccess' => [ - 'description' => '设置是否成功:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'InstanceId' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze8g2am97624****', - ], - ], - ], - ], - 'ConfigFailInstanceList' => [ - 'description' => '设置失败的数据库实例列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ConfigSuccess' => [ - 'description' => '设置是否成功:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'InstanceId' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze9xrhze0709****', - ], - 'ErrorMessage' => [ - 'description' => '错误信息。', - 'type' => 'string', - 'example' => 'instance das autonomy service is off or can not find instance', - ], - ], - ], - ], - ], - ], - 'ResultId' => [ - 'description' => '异步请求ID。', - 'type' => 'string', - 'example' => 'async__665ee69612f1627c7fd9f3c85075****', - ], - 'IsFinish' => [ - 'description' => '异步请求是否执行完成:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'State' => [ - 'description' => '异步请求的执行状态:'."\n" - ."\n" - .'- **RUNNING**:正在运行。'."\n" - ."\n" - .'- **SUCCESS**:成功。'."\n" - ."\n" - .'- **FAIL**:失败。', - 'type' => 'string', - 'example' => 'SUCCESS', - ], - 'Complete' => [ - 'description' => '异步请求是否执行完成:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Timestamp' => [ - 'description' => '执行时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1645668213000', - ], + 'SqlId' => ['description' => 'SQL模板ID', 'type' => 'string', 'example' => '29d9fef63e347d39c3436658a5fe****'], + 'Tags' => ['title' => '逗号分隔的多个tag', 'description' => 'SQL标签,多个标签间使用英文逗号(,)分隔。', 'type' => 'string', 'example' => 'DAS_IN_PLAN,DAS_NOT_IMPORTANT'], + 'Comments' => ['description' => '备注信息。', 'type' => 'string', 'example' => 'Slow SQL from offline synchronization. No optimization needed.'], ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', - ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Fail\\": false,\\n \\"ConfigResponse\\": {\\n \\"TotalInstanceCount\\": 2,\\n \\"ConfigSuccessInstanceCount\\": 1,\\n \\"ConfigFailInstanceCount\\": 1,\\n \\"ConfigSuccessInstanceList\\": [\\n {\\n \\"ConfigSuccess\\": true,\\n \\"InstanceId\\": \\"rm-2ze8g2am97624****\\"\\n }\\n ],\\n \\"ConfigFailInstanceList\\": [\\n {\\n \\"ConfigSuccess\\": false,\\n \\"InstanceId\\": \\"rm-2ze9xrhze0709****\\",\\n \\"ErrorMessage\\": \\"instance das autonomy service is off or can not find instance\\"\\n }\\n ]\\n },\\n \\"ResultId\\": \\"async__665ee69612f1627c7fd9f3c85075****\\",\\n \\"IsFinish\\": true,\\n \\"State\\": \\"SUCCESS\\",\\n \\"Complete\\": true,\\n \\"Timestamp\\": 1645668213000\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<UpdateAutoThrottleRulesAsyncResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Fail>false</Fail>\\n <ConfigResponse>\\n <TotalInstanceCount>2</TotalInstanceCount>\\n <ConfigSuccessInstanceCount>1</ConfigSuccessInstanceCount>\\n <ConfigFailInstanceCount>1</ConfigFailInstanceCount>\\n <ConfigSuccessInstanceList>\\n <ConfigSuccess>true</ConfigSuccess>\\n <InstanceId>rm-2ze8g2am97624****</InstanceId>\\n </ConfigSuccessInstanceList>\\n <ConfigFailInstanceList>\\n <ConfigSuccess>false</ConfigSuccess>\\n <InstanceId>rm-2ze9xrhze0709****</InstanceId>\\n <ErrorMessage>instance das autonomy service is off or can not find instance</ErrorMessage>\\n </ConfigFailInstanceList>\\n </ConfigResponse>\\n <ResultId>async__665ee69612f1627c7fd9f3c85075****</ResultId>\\n <IsFinish>true</IsFinish>\\n <State>SUCCESS</State>\\n <Complete>true</Complete>\\n <Timestamp>1645668213000</Timestamp>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</UpdateAutoThrottleRulesAsyncResponse>","errorExample":""}]', - 'title' => '设置自动SQL限流配置参数', - 'description' => '> 异步调用后不会立即返回完整结果,首先需要调用该接口获取**ResultId**,然后使用返回数据的**ResultId**,重新发起调用,直到**isFinish**取值为**true**时,返回完整结果。即获取一次完整数据,至少需要调用该接口两次。'."\n" - ."\n" - .'使用该接口需满足以下前提条件:'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"SqlId\\": \\"29d9fef63e347d39c3436658a5fe****\\",\\n \\"Tags\\": \\"DAS_IN_PLAN,DAS_NOT_IMPORTANT\\",\\n \\"Comments\\": \\"Slow SQL from offline synchronization. No optimization needed.\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<GetQueryOptimizeTagResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n <Data>\\n <SqlId>29d9fef63e347d39c3436658a5fe****</SqlId>\\n <Tags>DAS_IN_PLAN,DAS_NOT_IMPORTANT</Tags>\\n <Comments>离线同步类慢SQL,无需优化。</Comments>\\n </Data>\\n</GetQueryOptimizeTagResponse>","errorExample":""}]', + 'title' => '获取SQL标签', + 'description' => '- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - ."\n" - .'- 目标数据库实例已开启自治服务,详情请参见[自治中心](~~152139~~)。'."\n" - ."\n" - .'- 目标数据库实例为:'."\n" - .' - RDS MySQL 5.6、5.7、 8.0高可用系列、三节点企业系列。'."\n" - .' - PolarDB MySQL版 5.6集群版、5.7集群版、 8.0集群版。', - ], - 'DisableAutoThrottleRules' => [ - 'summary' => '调用DisableAutoThrottleRules接口,批量关闭指定数据库实例的自动SQL限流功能。', - 'methods' => [ - 'get', - 'post', + .'- 本接口适用的数据库引擎为:'."\n" + .' - RDS MySQL'."\n" + .' - PolarDB MySQL版'."\n" + .' - RDS PostgreSQL', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetQueryOptimizeTag'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetQueryOptimizeTag', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetRedisAllSession' => [ + 'summary' => '调用GetRedisAllSession接口,获取Redis实例当前会话数据。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhdmDSULQV', - ], + 'abilityTreeCode' => '154787', + 'abilityTreeNodes' => ['FEATUREhdmMEY212'], ], 'parameters' => [ [ 'name' => 'ConsoleContext', 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ - 'name' => 'InstanceIds', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '数据库实例ID。'."\n" - ."\n" - .'> 数据格式为JSONArray,例如`[\'实例ID1\',\'实例ID2\']`,实例ID间用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => '[\'rm-2ze8g2am97624****\',\'rm-2ze9xrhze0709****\']', - ], + 'schema' => ['description' => '数据库实例ID。'."\n" + ."\n", 'type' => 'string', 'required' => true, 'example' => 'r-2zemyfd1sh1u2i****'], ], ], 'responses' => [ @@ -20446,177 +15261,174 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Message' => ['description' => '请求返回的消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ - 'description' => '返回的数据。', + 'description' => '会话数据。', 'type' => 'object', 'properties' => [ - 'TotalInstanceCount' => [ - 'description' => '总数据库实例数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'ConfigSuccessInstanceCount' => [ - 'description' => '关闭自动SQL限流功能成功的数据库实例数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'ConfigFailInstanceCount' => [ - 'description' => '关闭自动SQL限流功能失败的数据库实例数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'ConfigSuccessInstanceList' => [ - 'description' => '关闭自动SQL限流功能成功的数据库实例列表。', + 'Timestamp' => ['description' => '获取数据库会话数据的时间,格式为Unix时间戳,单位为毫秒(ms)。', 'type' => 'integer', 'format' => 'int64', 'example' => '1660100753556'], + 'Total' => ['description' => '会话总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'Sessions' => [ + 'description' => '会话信息。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'ConfigSuccess' => [ - 'description' => '关闭设置是否成功:'."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'InstanceId' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze8g2am97624****', - ], + 'Sub' => ['description' => '频道订阅数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'Psub' => ['description' => '模式匹配的订阅数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'Idle' => ['description' => '空闲时长,单位为秒(s)。', 'type' => 'integer', 'format' => 'int64', 'example' => '8'], + 'Flags' => ['description' => '客户端标志,取值如下:'."\n" + ."\n" + .'- **A**:尽快关闭连接。'."\n" + .'- **b**:客户端正在等待阻塞事件。'."\n" + .'- **c**:写入全部回复后将关闭连接。'."\n" + .'- **d**:受监视的键已被修改,`EXEC`命令将失败。'."\n" + .'- **i**:客户端正在等待虚拟机I/O操作(已废弃)。'."\n" + .'- **M**:客户端是主节点。'."\n" + .'- **N**:未设置特点标志。'."\n" + .'- **O**:处于监视模式的客户端。'."\n" + .'- **r**:客户端是只读模式的集群节点。'."\n" + .'- **S**:客户端是一般模式下的从节点。'."\n" + .'- **u**:客户端未被阻塞。'."\n" + .'- **U**:通过Unix域套接字连接的客户端。'."\n" + .'- **x**:客户端正在执行事务。'."\n" + ."\n\n" + ."\n\n" + ."\n\n" + ."\n\n", 'type' => 'string', 'example' => 'N'], + 'Oll' => ['description' => '输出列表包含的对象数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'QbufFree' => ['description' => '输入缓冲区剩余大小,单位为字节(Byte)。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'Multi' => ['description' => '`MULTI`/`EXEC`上下文中的命令数。', 'type' => 'integer', 'format' => 'int64', 'example' => '-1'], + 'Omem' => ['description' => '输出缓冲区大小,单位为字节(Byte)。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'Qbuf' => ['description' => '输入缓冲区大小,单位为字节(Byte)。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'Name' => ['description' => '客户端名称。', 'type' => 'string', 'example' => 'test'], + 'Obl' => ['description' => '输出固定缓冲区大小,单位为字节(Byte)。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'Client' => ['description' => '客户端的地址。', 'type' => 'string', 'example' => '172.16.XX.XX'], + 'Cmd' => ['description' => '最近一次执行的命令。', 'type' => 'string', 'example' => 'PING'], + 'Id' => ['description' => '客户端ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '9080586'], + 'Addr' => ['description' => '客户端的地址和端口。', 'type' => 'string', 'example' => '172.16.XX.XX:53458'], + 'NodeId' => ['description' => '节点ID。', 'type' => 'string', 'example' => 'r-2zemyfd1sh1u2i****-proxy-14#1679****'], + 'Age' => ['description' => '已连接时长,单位为秒(s)。', 'type' => 'string', 'example' => '12'], + 'Db' => ['description' => '该客户端正在使用的数据库ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'Events' => ['description' => '文件描述符事件,取值为:'."\n" + ."\n" + .'- **r**:客户端套接字在事件Loop中可读。'."\n" + .'- **w**:客户端套接字在事件Loop中可写。', 'type' => 'string', 'example' => 'r'], + 'Fd' => ['description' => '套接字所使用的文件描述符。', 'type' => 'integer', 'format' => 'int64', 'example' => '73'], + 'ClientDesc' => ['description' => '客户端别名。', 'type' => 'string', 'example' => 'prod ip'], ], + 'description' => '', ], ], - 'ConfigFailInstanceList' => [ - 'description' => '关闭自动SQL限流功能失败的数据库实例列表。', + 'SourceStats' => [ + 'description' => '访问来源统计数据。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'ConfigSuccess' => [ - 'description' => '关闭设置是否成功:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'InstanceId' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze9xrhze0709****', - ], - 'ErrorMessage' => [ - 'description' => '错误信息。', - 'type' => 'string', - 'example' => 'cannot found instance by rm-2ze9xrhze0709****', + 'Key' => ['description' => '访问来源。', 'type' => 'string', 'example' => '172.16.XX.XX'], + 'Count' => ['description' => '该访问来源的会话总数。', 'type' => 'string', 'example' => '1'], + 'Ids' => [ + 'description' => '客户端ID数据。', + 'type' => 'array', + 'items' => ['description' => '客户端ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '9080586'], ], ], + 'description' => '', ], ], ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '40C6E9AF-6C23-5614-AA83-34344CC6****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"TotalInstanceCount\\": 2,\\n \\"ConfigSuccessInstanceCount\\": 1,\\n \\"ConfigFailInstanceCount\\": 1,\\n \\"ConfigSuccessInstanceList\\": [\\n {\\n \\"ConfigSuccess\\": true,\\n \\"InstanceId\\": \\"rm-2ze8g2am97624****\\"\\n }\\n ],\\n \\"ConfigFailInstanceList\\": [\\n {\\n \\"ConfigSuccess\\": false,\\n \\"InstanceId\\": \\"rm-2ze9xrhze0709****\\",\\n \\"ErrorMessage\\": \\"cannot found instance by rm-2ze9xrhze0709****\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<DisableAutoThrottleRulesResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <TotalInstanceCount>2</TotalInstanceCount>\\n <ConfigSuccessInstanceCount>1</ConfigSuccessInstanceCount>\\n <ConfigFailInstanceCount>1</ConfigFailInstanceCount>\\n <ConfigSuccessInstanceList>\\n <ConfigSuccess>true</ConfigSuccess>\\n <InstanceId>rm-2ze8g2am97624****</InstanceId>\\n </ConfigSuccessInstanceList>\\n <ConfigFailInstanceList>\\n <ConfigSuccess>false</ConfigSuccess>\\n <InstanceId>rm-2ze9xrhze0709****</InstanceId>\\n <ErrorMessage>cannot found instance by rm-2ze9xrhze0709****</ErrorMessage>\\n </ConfigFailInstanceList>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</DisableAutoThrottleRulesResponse>","errorExample":""}]', - 'title' => '关闭自动SQL限流功能', - 'description' => '在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - ], - 'GetAutoThrottleRules' => [ - 'summary' => '获取指定数据库实例的自动SQL限流规则。', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '获取Redis实例当前会话', + 'description' => "\n" + .'- 本接口只适用于Redis引擎。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + ."\n" + .'> 对于Redis集群版数据库实例,无法获取使用直连模式产生的会话。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetRedisAllSession'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetRedisAllSession', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Timestamp\\": 1660100753556,\\n \\"Total\\": 2,\\n \\"Sessions\\": [\\n {\\n \\"Sub\\": 0,\\n \\"Psub\\": 0,\\n \\"Idle\\": 8,\\n \\"Flags\\": \\"N\\",\\n \\"Oll\\": 0,\\n \\"QbufFree\\": 0,\\n \\"Multi\\": -1,\\n \\"Omem\\": 0,\\n \\"Qbuf\\": 0,\\n \\"Name\\": \\"test\\",\\n \\"Obl\\": 0,\\n \\"Client\\": \\"172.16.XX.XX\\",\\n \\"Cmd\\": \\"PING\\",\\n \\"Id\\": 9080586,\\n \\"Addr\\": \\"172.16.XX.XX:53458\\",\\n \\"NodeId\\": \\"r-2zemyfd1sh1u2i****-proxy-14#1679****\\",\\n \\"Age\\": \\"12\\",\\n \\"Db\\": 0,\\n \\"Events\\": \\"r\\",\\n \\"Fd\\": 73,\\n \\"ClientDesc\\": \\"prod ip\\"\\n }\\n ],\\n \\"SourceStats\\": [\\n {\\n \\"Key\\": \\"172.16.XX.XX\\",\\n \\"Count\\": \\"1\\",\\n \\"Ids\\": [\\n 9080586\\n ]\\n }\\n ]\\n },\\n \\"RequestId\\": \\"40C6E9AF-6C23-5614-AA83-34344CC6****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetRedisAllSessionResponse>\\n <Message>Successful</Message>\\n <RequestId>40C6E9AF-6C23-5614-AA83-34344CC6****</RequestId>\\n <Data>\\n <SourceStats>\\n <Ids>5</Ids>\\n <Count>1</Count>\\n <Key>11.200.XX.XX</Key>\\n </SourceStats>\\n <SourceStats>\\n <Ids>106909499</Ids>\\n <Count>1</Count>\\n <Key>127.0.XX.XX</Key>\\n </SourceStats>\\n <Total>2</Total>\\n <Sessions>\\n <Sub>0</Sub>\\n <Omem>0</Omem>\\n <Qbuf>0</Qbuf>\\n <Multi>-1</Multi>\\n <Flags>N</Flags>\\n <Oll>0</Oll>\\n <Addr>127.0.XX.XX:44019</Addr>\\n <Name/>\\n <Events>r</Events>\\n <Psub>0</Psub>\\n <Idle>1</Idle>\\n <Obl>0</Obl>\\n <Cmd>config</Cmd>\\n <Id>106909499</Id>\\n <Client>127.0.XX.XX</Client>\\n <Age>6101538</Age>\\n <Db>0</Db>\\n <Fd>6</Fd>\\n </Sessions>\\n <Sessions>\\n <Sub>0</Sub>\\n <Omem>0</Omem>\\n <Qbuf>0</Qbuf>\\n <Multi>-1</Multi>\\n <Flags>S</Flags>\\n <Oll>0</Oll>\\n <Addr>127.0.XX.XX:44019</Addr>\\n <Name/>\\n <Events>r</Events>\\n <Psub>0</Psub>\\n <Idle>1</Idle>\\n <Obl>0</Obl>\\n <Cmd>replconf</Cmd>\\n <Id>5</Id>\\n <Client>11.200.XX.XX</Client>\\n <Age>67387263</Age>\\n <Db>0</Db>\\n <Fd>10</Fd>\\n </Sessions>\\n <Timestamp>1663912392217</Timestamp>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetRedisAllSessionResponse>","errorExample":""}]', + ], + 'GetRequestDiagnosisPage' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'ConsoleContext', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-0iwhhl8gx0ld6****'], ], [ - 'name' => 'InstanceIds', + 'name' => 'NodeId', 'in' => 'query', - 'schema' => [ - 'description' => '数据库实例ID。'."\n" - ."\n" - .'- 数据格式为JSONArray,例如`[\'实例ID1\',\'实例ID2\']`,实例ID间用英文逗号(,)分隔。'."\n" - .'- 不输入数据库实例ID时,默认返回当前账号曾经开启过自动SQL限流功能的全部数据库实例信息,包括:'."\n" - .' - 正在使用该功能的数据库实例。'."\n" - .' - 已关闭该功能的数据库实例(不包含已经释放的数据库实例)。', - 'type' => 'string', - 'required' => false, - 'example' => '[\'rm-2ze8g2am97624****\',\'rm-2vc54m2a6pd6p****\',\'rm-2ze9xrhze0709****\']', - ], + 'schema' => ['description' => '节点ID。'."\n" + ."\n" + .'> 对于PolarDB MySQL版、PolarDB PostgreSQL版(兼容Oracle)和云数据库MongoDB等集群实例,需要提供节点ID。', 'type' => 'string', 'required' => false, 'example' => '202****'], + ], + [ + 'name' => 'PageNo', + 'in' => 'query', + 'schema' => ['description' => '页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每页最大记录数,取值大于0且不超过Integer数据类型的最大值,默认值为10。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '查询任务的开始时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1633071840000'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '查询任务的结束时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1634972640000'], ], ], 'responses' => [ @@ -20624,489 +15436,362 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求的ID。', 'type' => 'string', 'example' => '800FBAF5-A539-5B97-A09E-C63AB2F7****'], 'Data' => [ - 'description' => '返回的数据。', + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'TotalAutoThrottleRulesCount' => [ - 'description' => '所有开启过自动SQL限流功能的数据库数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '3', - ], - 'EnableAutoThrottleCount' => [ - 'description' => '正在使用自动SQL限流功能的数据库实例数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'TurnOffAutoThrottleCount' => [ - 'description' => '曾经开启并且当前已关闭自动SQL限流功能的数据库实例数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'NeverEnableAutoThrottleOrReleasedInstanceCount' => [ - 'description' => '从未开启过自动SQL限流或者实例不存在的数据库实例数量。'."\n" - .'> 实例不存在:数据库实例已经释放或者传入的数据库实例ID存在错误。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'EnableAutoThrottleList' => [ - 'description' => '正在使用自动SQL限流功能的数据库实例信息列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'AbnormalDuration' => [ - 'description' => '触发自动限SQL流规则的异常的持续时间阈值,单位:分钟。', - 'type' => 'number', - 'format' => 'double', - 'example' => '2', - ], - 'CpuUsage' => [ - 'description' => 'CPU利用率阈值。', - 'type' => 'number', - 'format' => 'double', - 'example' => '70', - ], - 'CpuSessionRelation' => [ - 'description' => 'CPU利用率阈值和活跃会话数阈值的逻辑关系:'."\n" - ."\n" - .'- **AND**:且。'."\n" - .'- **OR**:或。', - 'type' => 'string', - 'example' => 'AND', - ], - 'ActiveSessions' => [ - 'description' => '活跃会话数量阈值。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '32', - ], - 'MaxThrottleTime' => [ - 'description' => '最大限流时长,单位:分钟。', - 'type' => 'number', - 'format' => 'double', - 'example' => '10', - ], - 'AllowThrottleStartTime' => [ - 'description' => '可限流时间段的开始时间(UTC时间)。', - 'type' => 'string', - 'example' => '00:00Z', - ], - 'AllowThrottleEndTime' => [ - 'description' => '可限流时间段的结束时间(UTC时间)。', - 'type' => 'string', - 'example' => '23:59Z', - ], - 'Visible' => [ - 'description' => '自动SQL限流规则是否开启:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'AutoKillSession' => [ - 'description' => '是否同时KILL执行中的异常SQL:'."\n" - .'> 异常SQL:与需要限流的SQL模板相同。'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'InstanceId' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze8g2am97624****', - ], - 'UserId' => [ - 'description' => '用户ID,即创建数据库实例的阿里云主账号ID。', - 'type' => 'string', - 'example' => '140692647406****', - ], - ], - ], - ], - 'TurnOffAutoThrottleList' => [ - 'description' => '曾经开启并且当前已关闭自动SQL限流功能的数据库实例信息列表。', + 'list' => [ + 'description' => 'SQL诊断历史记录列表。', 'type' => 'array', 'items' => [ + 'description' => 'SQL诊断历史记录列表。', 'type' => 'object', 'properties' => [ - 'AbnormalDuration' => [ - 'description' => '触发自动限流规则的持续时间阈值,单位:分钟。', - 'type' => 'number', - 'format' => 'double', - 'example' => '2', - ], - 'CpuUsage' => [ - 'description' => 'CPU利用率阈值。', - 'type' => 'number', - 'format' => 'double', - 'example' => '80', - ], - 'AllowThrottleEndTime' => [ - 'description' => '可限流时间段的结束时间(UTC时间)。', - 'type' => 'string', - 'example' => '23:59Z', - ], - 'InstanceId' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze9xrhze0709****', - ], - 'Visible' => [ - 'description' => '自动SQL限流规则是否开启:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'CpuSessionRelation' => [ - 'description' => 'CPU利用率阈值和活跃会话数阈值的关系:'."\n" - .'- **AND**:且。'."\n" - .'- **OR**:或。', - 'type' => 'string', - 'example' => 'OR', - ], - 'AutoKillSession' => [ - 'description' => '是否同时KILL执行中的异常SQL:'."\n" - .'> 异常SQL:与需要限流的SQL模板相同。'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ActiveSessions' => [ - 'description' => '活跃会话数阈值。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '64', - ], - 'MaxThrottleTime' => [ - 'description' => '最大限流时长,单位:分钟。', - 'type' => 'number', - 'format' => 'double', - 'example' => '10', - ], - 'UserId' => [ - 'description' => '用户ID,即创建数据库实例的阿里云主账号ID。', - 'type' => 'string', - 'example' => '140692647406****', - ], - 'AllowThrottleStartTime' => [ - 'description' => '可限流时间段的开始时间(UTC时间)。', - 'type' => 'string', - 'example' => '00:00Z', - ], + 'messageId' => ['description' => '诊断ID,唯一标识。', 'type' => 'string', 'example' => '61820b594664275c4429****'], + 'uuid' => ['description' => '诊断实例的唯一标识。', 'type' => 'string', 'example' => 'hdm_51fe9bc19ec413f4d530431af87a****'], + 'accountId' => ['description' => '用户ID。', 'type' => 'string', 'example' => '2093****'], + 'sqlId' => ['description' => 'SQL模板ID。', 'type' => 'string', 'example' => '0c95dae3afef77be06572612df9b****'], + 'engine' => ['description' => '数据库引擎:'."\n" + ."\n" + .'- **MySQL**'."\n" + .'- **PostgreSQL**'."\n" + .'- **SQLServer**'."\n" + .'- **PolarDBMySQL**'."\n" + .'- **PolarDBOracle**'."\n" + .'- **MongoDB**', 'type' => 'string', 'example' => 'MySQL'], + 'dbSchema' => ['description' => '数据库名。', 'type' => 'string', 'example' => 'das'], + 'param' => ['description' => '额外信息。', 'type' => 'string', 'example' => '{"":""}'], + 'state' => ['description' => '诊断状态:'."\n" + ."\n" + .'- **0**:诊断中。'."\n" + ."\n" + .'- **1**:诊断错误。'."\n" + ."\n" + .'- **2**:诊断完成。'."\n" + ."\n" + .'- **3**:SQL错误。'."\n" + ."\n" + .'- **4**:引擎错误。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'result' => ['description' => 'SQL诊断结果:'."\n" + ."\n" + .'- **endTime**:SQL诊断的结束时间。'."\n" + .'- **errorCode**:错误码。'."\n" + .' - **0001**:诊断成功。'."\n" + .' - **0003**:诊断失败。'."\n" + .'- **errorMessage**:错误信息。'."\n" + .'- **estimateCost**:预估得消耗。'."\n" + .' - **cpu**:索引的CPU消耗预估值。'."\n" + .' - **io**:索引的IO消耗预估值。'."\n" + .' - **rows**:索引的返回列预估值。'."\n" + .'- **improvement**:性能提升比。'."\n" + .'- **indexAdvices**:索引建议。'."\n" + .' - **columns**:索引列。'."\n" + .' - **ddlAddIndex**:索引DDL语句。'."\n" + .' - **indexName**:索引名。'."\n" + .' - **schemaName**:数据库名。'."\n" + .' - **tableName**:表名。'."\n" + .' - **unique**:是否唯一索引。'."\n" + .'- **ip**:实例的IP地址。'."\n" + .'- **messageId**:诊断ID。'."\n" + .'- **port**:实例的端口。'."\n" + .'- **sqlTag**:SQL标签。'."\n" + .'- **startTime**:SQL诊断的开始时间。'."\n" + .'- **success**:请求是否执行成功。'."\n" + .'- **support**:SQL语句是否支持诊断。'."\n" + .' - **true**:支持。'."\n" + .' - **false**:不支持。'."\n" + .'- **tuningAdvices**:SQL改写建议。'."\n" + ."\n", 'type' => 'string', 'example' => '{ "endTime":1636354256000, "errorCode":"0001", "errorMessage":"TFX成功", "estimateCost":{ "cpu":1.7878745150389268, "io":9.948402604746128, "rows":8.889372575194633 }, "improvement":12933.97, "indexAdvices":[ { "columns":[ "work_no" ], "ddlAddIndex":"ALTER TABLE `test`.`work_order` ADD INDEX `idx_workno` (`work_no`)", "indexName":"idx_workno", "schemaName":"test", "tableName":"work_order", "unique":false } ], "ip":"****.mysql.rds.aliyuncs.com", "messageId":"6188c8cb2f1365b16aee****", "port":3306, "sqlTag":"{\\"PRED_EQUAL\\":\\"Y\\",\\"CNT_QB\\":\\"1\\",\\"CNT_TB\\":\\"1\\"}", "startTime":1636354252000, "success":true, "support":true, "tuningAdvices":[ ] }'], + 'gmtCreate' => ['description' => 'SQL诊断创建时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'string', 'example' => '1633071840000'], + 'gmtModified' => ['description' => 'SQL诊断修改时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'string', 'example' => '1633071850000'], ], ], ], - 'NeverEnableAutoThrottleOrReleasedInstanceIdList' => [ - 'description' => '从未开启过自动SQL限流或者实例不存在的数据库实例数量。'."\n" - .'> 实例不存在:数据库实例已经释放或者传入的数据库实例ID存在错误。', - 'type' => 'array', - 'items' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'example' => 'rm-2vc54m2a6pd6p****', - ], - ], + 'pageNo' => ['description' => '页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'pageSize' => ['description' => '每页最大记录数,取值大于0且不超过Integer数据类型的最大值,默认值为10。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'total' => ['description' => '查询到的总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'extra' => ['description' => '其他信息。', 'type' => 'string', 'example' => '{"":""}'], ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '7172BECE-588A-5961-8126-C216E16B****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + ."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"TotalAutoThrottleRulesCount\\": 3,\\n \\"EnableAutoThrottleCount\\": 1,\\n \\"TurnOffAutoThrottleCount\\": 1,\\n \\"NeverEnableAutoThrottleOrReleasedInstanceCount\\": 1,\\n \\"EnableAutoThrottleList\\": [\\n {\\n \\"AbnormalDuration\\": 2,\\n \\"CpuUsage\\": 70,\\n \\"CpuSessionRelation\\": \\"AND\\",\\n \\"ActiveSessions\\": 32,\\n \\"MaxThrottleTime\\": 10,\\n \\"AllowThrottleStartTime\\": \\"00:00Z\\",\\n \\"AllowThrottleEndTime\\": \\"23:59Z\\",\\n \\"Visible\\": true,\\n \\"AutoKillSession\\": true,\\n \\"InstanceId\\": \\"rm-2ze8g2am97624****\\",\\n \\"UserId\\": \\"140692647406****\\"\\n }\\n ],\\n \\"TurnOffAutoThrottleList\\": [\\n {\\n \\"AbnormalDuration\\": 2,\\n \\"CpuUsage\\": 80,\\n \\"AllowThrottleEndTime\\": \\"23:59Z\\",\\n \\"InstanceId\\": \\"rm-2ze9xrhze0709****\\",\\n \\"Visible\\": false,\\n \\"CpuSessionRelation\\": \\"OR\\",\\n \\"AutoKillSession\\": true,\\n \\"ActiveSessions\\": 64,\\n \\"MaxThrottleTime\\": 10,\\n \\"UserId\\": \\"140692647406****\\",\\n \\"AllowThrottleStartTime\\": \\"00:00Z\\"\\n }\\n ],\\n \\"NeverEnableAutoThrottleOrReleasedInstanceIdList\\": [\\n \\"rm-2vc54m2a6pd6p****\\"\\n ]\\n },\\n \\"RequestId\\": \\"7172BECE-588A-5961-8126-C216E16B****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetAutoThrottleRulesResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <TotalAutoThrottleRulesCount>3</TotalAutoThrottleRulesCount>\\n <EnableAutoThrottleCount>1</EnableAutoThrottleCount>\\n <TurnOffAutoThrottleCount>1</TurnOffAutoThrottleCount>\\n <NeverEnableAutoThrottleOrReleasedInstanceCount>1</NeverEnableAutoThrottleOrReleasedInstanceCount>\\n <EnableAutoThrottleList>\\n <AbnormalDuration>2</AbnormalDuration>\\n <CpuUsage>70</CpuUsage>\\n <CpuSessionRelation>AND</CpuSessionRelation>\\n <ActiveSessions>32</ActiveSessions>\\n <MaxThrottleTime>10</MaxThrottleTime>\\n <AllowThrottleStartTime>00:00Z</AllowThrottleStartTime>\\n <AllowThrottleEndTime>23:59Z</AllowThrottleEndTime>\\n <Visible>true</Visible>\\n <AutoKillSession>true</AutoKillSession>\\n <InstanceId>rm-2ze8g2am97624****</InstanceId>\\n <UserId>140692647406****</UserId>\\n </EnableAutoThrottleList>\\n <TurnOffAutoThrottleList>\\n <AbnormalDuration>2</AbnormalDuration>\\n <CpuUsage>80</CpuUsage>\\n <AllowThrottleEndTime>23:59Z</AllowThrottleEndTime>\\n <InstanceId>rm-2ze9xrhze0709****</InstanceId>\\n <Visible>false</Visible>\\n <CpuSessionRelation>OR</CpuSessionRelation>\\n <AutoKillSession>true</AutoKillSession>\\n <ActiveSessions>64</ActiveSessions>\\n <MaxThrottleTime>10</MaxThrottleTime>\\n <UserId>140692647406****</UserId>\\n <AllowThrottleStartTime>00:00Z</AllowThrottleStartTime>\\n </TurnOffAutoThrottleList>\\n <NeverEnableAutoThrottleOrReleasedInstanceIdList>rm-2vc54m2a6pd6p****</NeverEnableAutoThrottleOrReleasedInstanceIdList>\\n </Data>\\n <RequestId>7172BECE-588A-5961-8126-C216E16B****</RequestId>\\n <Success>true</Success>\\n</GetAutoThrottleRulesResponse>","errorExample":""}]', - 'title' => '获取自动SQL限流规则', + 'title' => '分页获取SQL诊断历史记录', + 'summary' => '调用GetRequestDiagnosisPage接口,分页获取SQL诊断历史记录。', 'description' => '使用该接口需满足以下前提条件:'."\n" + ."\n" .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 目标数据库实例为:'."\n" - .' - RDS MySQL 5.6、5.7、 8.0高可用系列、三节点企业系列。'."\n" - .' - PolarDB MySQL版 5.6集群版、5.7集群版、 8.0集群版。', - ], - 'UpdateAutoSqlOptimizeStatus' => [ - 'summary' => '调用UpdateAutoSqlOptimizeStatus接口,批量开启、修改或关闭自动SQL优化功能。', - 'methods' => [ - 'post', - 'get', + .'- 本接口适用的数据库引擎为:'."\n" + ."\n" + .' - RDS MySQL'."\n" + .' - RDS PostgreSQL'."\n" + .' - RDS SQL Server'."\n" + .' - PolarDB MySQL版'."\n" + .' - PolarDB PostgreSQL版(兼容Oracle)'."\n" + .' - 云数据库MongoDB版'."\n" + ."\n" + .'> RDS PostgreSQL实例内核小版本为20220130及以上。查看和升级内核小版本,请参见[升级内核小版本](~~146895~~)。'."\n", + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetRequestDiagnosisPage'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetRequestDiagnosisPage', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"800FBAF5-A539-5B97-A09E-C63AB2F7****\\",\\n \\"Data\\": {\\n \\"list\\": [\\n {\\n \\"messageId\\": \\"61820b594664275c4429****\\",\\n \\"uuid\\": \\"hdm_51fe9bc19ec413f4d530431af87a****\\",\\n \\"accountId\\": \\"2093****\\",\\n \\"sqlId\\": \\"0c95dae3afef77be06572612df9b****\\",\\n \\"engine\\": \\"MySQL\\",\\n \\"dbSchema\\": \\"das\\",\\n \\"param\\": \\"{\\\\\\"\\\\\\":\\\\\\"\\\\\\"}\\",\\n \\"state\\": 2,\\n \\"result\\": \\"{ \\\\\\"endTime\\\\\\":1636354256000, \\\\\\"errorCode\\\\\\":\\\\\\"0001\\\\\\", \\\\\\"errorMessage\\\\\\":\\\\\\"TFX成功\\\\\\", \\\\\\"estimateCost\\\\\\":{ \\\\\\"cpu\\\\\\":1.7878745150389268, \\\\\\"io\\\\\\":9.948402604746128, \\\\\\"rows\\\\\\":8.889372575194633 }, \\\\\\"improvement\\\\\\":12933.97, \\\\\\"indexAdvices\\\\\\":[ { \\\\\\"columns\\\\\\":[ \\\\\\"work_no\\\\\\" ], \\\\\\"ddlAddIndex\\\\\\":\\\\\\"ALTER TABLE `test`.`work_order` ADD INDEX `idx_workno` (`work_no`)\\\\\\", \\\\\\"indexName\\\\\\":\\\\\\"idx_workno\\\\\\", \\\\\\"schemaName\\\\\\":\\\\\\"test\\\\\\", \\\\\\"tableName\\\\\\":\\\\\\"work_order\\\\\\", \\\\\\"unique\\\\\\":false } ], \\\\\\"ip\\\\\\":\\\\\\"****.mysql.rds.aliyuncs.com\\\\\\", \\\\\\"messageId\\\\\\":\\\\\\"6188c8cb2f1365b16aee****\\\\\\", \\\\\\"port\\\\\\":3306, \\\\\\"sqlTag\\\\\\":\\\\\\"{\\\\\\\\\\\\\\"PRED_EQUAL\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Y\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CNT_QB\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CNT_TB\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\"}\\\\\\", \\\\\\"startTime\\\\\\":1636354252000, \\\\\\"success\\\\\\":true, \\\\\\"support\\\\\\":true, \\\\\\"tuningAdvices\\\\\\":[ ] }\\",\\n \\"gmtCreate\\": \\"1633071840000\\",\\n \\"gmtModified\\": \\"1633071850000\\"\\n }\\n ],\\n \\"pageNo\\": 1,\\n \\"pageSize\\": 10,\\n \\"total\\": 100,\\n \\"extra\\": \\"{\\\\\\"\\\\\\":\\\\\\"\\\\\\"}\\"\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetRequestDiagnosisPageResponse>\\n <Message>Successful</Message>\\n <RequestId>800FBAF5-A539-5B97-A09E-C63AB2F7****</RequestId>\\n <Data>\\n <list>\\n <messageId>61820b594664275c4429****</messageId>\\n <uuid>hdm_51fe9bc19ec413f4d530431af87a****</uuid>\\n <accountId>2093****</accountId>\\n <sqlId>0c95dae3afef77be06572612df9b****</sqlId>\\n <engine>MySQL</engine>\\n <dbSchema>das</dbSchema>\\n <param>{\\"\\":\\"\\"}</param>\\n <state>2</state>\\n <result>{ \\"endTime\\":1636354256000, \\"errorCode\\":\\"0001\\", \\"errorMessage\\":\\"TFX成功\\", \\"estimateCost\\":{ \\"cpu\\":1.7878745150389268, \\"io\\":9.948402604746128, \\"rows\\":8.889372575194633 }, \\"improvement\\":12933.97, \\"indexAdvices\\":[ { \\"columns\\":[ \\"work_no\\" ], \\"ddlAddIndex\\":\\"ALTER TABLE `test`.`work_order` ADD INDEX `idx_workno` (`work_no`)\\", \\"indexName\\":\\"idx_workno\\", \\"schemaName\\":\\"test\\", \\"tableName\\":\\"work_order\\", \\"unique\\":false } ], \\"ip\\":\\"****.mysql.rds.aliyuncs.com\\", \\"messageId\\":\\"6188c8cb2f1365b16aee****\\", \\"port\\":3306, \\"sqlTag\\":\\"{\\\\\\"PRED_EQUAL\\\\\\":\\\\\\"Y\\\\\\",\\\\\\"CNT_QB\\\\\\":\\\\\\"1\\\\\\",\\\\\\"CNT_TB\\\\\\":\\\\\\"1\\\\\\"}\\", \\"startTime\\":1636354252000, \\"success\\":true, \\"support\\":true, \\"tuningAdvices\\":[ ] }</result>\\n <gmtCreate>1633071840000</gmtCreate>\\n <gmtModified>1633071850000</gmtModified>\\n </list>\\n <pageNo>1</pageNo>\\n <pageSize>10</pageSize>\\n <total>100</total>\\n <extra>{\\"\\":\\"\\"}</extra>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetRequestDiagnosisPageResponse>","errorExample":""}]', + ], + 'GetRequestDiagnosisResult' => [ + 'summary' => '调用GetRequestDiagnosisResult接口,查询SQL诊断的结果。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'update', - ], + 'operationType' => 'read', + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'Instances', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '数据库实例ID,多个ID间以英文逗号(,)分隔。'."\n" - ."\n" - .'> 最多不能输入超过50个数据库实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-bp10usoc1erj7****,rm-bp10usoc1erj7****', - ], + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-0iwhhl8gx0ld6****'], ], [ - 'name' => 'Status', + 'name' => 'NodeId', 'in' => 'query', - 'schema' => [ - 'description' => '自动SQL优化功能的状态:'."\n" - ."\n" - .'- **0**:关闭自动SQL优化功能。'."\n" - .'- **1**:设置为**SQL诊断并自动索引创建**。'."\n" - .'- **3**:设置为**仅SQL诊断**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], + 'schema' => ['description' => '节点ID。'."\n" + ."\n" + .'> 对于PolarDB MySQL版、PolarDB PostgreSQL版(兼容Oracle)和云数据库MongoDB等集群实例,需要提供节点ID。'."\n", 'type' => 'string', 'required' => false, 'example' => '202****'], + ], + [ + 'name' => 'MessageId', + 'in' => 'query', + 'schema' => ['description' => '诊断ID,[CreateRequestDiagnosis](~~341609~~)接口返回的诊断唯一标识。'."\n" + .'>当MessageId为自动SQL优化的诊断ID时,该接口无法返回诊断结果', 'type' => 'string', 'required' => true, 'example' => '61820b594664275c4429****'], + ], + [ + 'name' => 'SqlId', + 'in' => 'query', + 'schema' => ['title' => 'SQL模板ID', 'description' => 'SQL模板ID。'."\n" + ."\n" + .'> 此参数是DAS控制台调用API时使用,用户使用此API时无需传入。', 'type' => 'string', 'required' => false, 'example' => 'None'], + ], + [ + 'name' => 'Source', + 'in' => 'query', + 'schema' => ['title' => '诊断来源', 'description' => '任务来源。'."\n" + ."\n" + .'> 此参数是DAS控制台调用API时使用,用户使用此API时无需传入。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。'."\n" + ."\n", 'type' => 'string', 'example' => '800FBAF5-A539-5B97-A09E-C63AB2F7****'], 'Data' => [ - 'description' => '返回数据。', + 'description' => '返回数据', 'type' => 'object', 'properties' => [ - 'Success' => [ - 'description' => '设置自动SQL优化功能请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'false', - ], - 'ErrorCode' => [ - 'description' => '错误码:'."\n" - ."\n" - .'- **-1001**:参数错误。'."\n" - .'- **-91029**:系统错误。'."\n" - ."\n", - 'type' => 'string', - 'example' => '-1001', - ], - 'ErrorMsg' => [ - 'description' => '错误信息。', - 'type' => 'string', - 'example' => 'invalid param', - ], + 'messageId' => ['description' => '诊断ID,唯一标识。', 'type' => 'string', 'example' => '61820b594664275c4429****'], + 'uuid' => ['description' => '诊断实例唯一标识。', 'type' => 'string', 'example' => 'hdm_51fe9bc19ec413f4d530431af87a****'], + 'accountId' => ['description' => '用户ID。', 'type' => 'string', 'example' => '2093****'], + 'sqlId' => ['description' => 'SQL模板ID。', 'type' => 'string', 'example' => '0c95dae3afef77be06572612df9b****'], + 'engine' => ['description' => '数据库引擎,取值:'."\n" + ."\n" + .'- **MySQL**'."\n" + .'- **PostgreSQL**'."\n" + .'- **SQLServer**'."\n" + .'- **PolarDBMySQL**'."\n" + .'- **PolarDBOracle**'."\n" + .'- **MongoDB**'."\n" + ."\n\n" + ."\n\n" + ."\n\n" + ."\n\n" + ."\n\n", 'type' => 'string', 'example' => 'MySQL'], + 'dbSchema' => ['description' => '数据库名。', 'type' => 'string', 'example' => 'das'], + 'param' => ['description' => '额外信息。', 'type' => 'string', 'example' => '{"":""}'], + 'state' => ['description' => '诊断状态:'."\n" + ."\n" + .'- **0**:诊断中。'."\n" + .'- **1**:诊断错误。'."\n" + .'- **2**:诊断完成。'."\n" + .'- **3**:SQL错误。'."\n" + .'- **4**:引擎错误。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'result' => ['description' => 'SQL诊断结果。'."\n" + ."\n" + .'- **endTime**:SQL诊断的结束时间。'."\n" + .'- **errorCode**:错误码。'."\n" + .' - **0001**:诊断成功。'."\n" + .' - **0003**:诊断失败。'."\n" + .'- **errorMessage**:错误信息。'."\n" + .'- **estimateCost**:预估得消耗。'."\n" + .' - **cpu**:索引的CPU消耗预估值。'."\n" + .' - **io**:索引的IO消耗预估值。'."\n" + .' - **rows**:索引的返回列预估值。'."\n" + .'- **improvement**:性能提升比。'."\n" + .'- **indexAdvices**:索引建议。'."\n" + .' - **columns**:索引列。'."\n" + .' - **ddlAddIndex**:索引DDL语句。'."\n" + .' - **indexName**:索引名。'."\n" + .' - **schemaName**:数据库名。'."\n" + .' - **tableName**:表名。'."\n" + .' - **unique**:是否唯一索引。'."\n" + .'- **ip**:实例的IP地址。'."\n" + .'- **messageId**:诊断ID。'."\n" + .'- **port**:实例的端口。'."\n" + .'- **sqlTag**:SQL标签。'."\n" + .' - **PRED_EQUAL**:等值谓词。'."\n" + .' - **CNT_QB**:查询块数量。'."\n" + .' - **CNT_TB**:表数量。'."\n" + .' - **JOIN_LEFT**:左连接。'."\n" + .' - **SEL_SMALL**:小结果集选择。'."\n" + .' - **AGGR_SEL**:聚合选择。'."\n" + .' - **PRED_LT_EQ / PRED_GT_EQ**:小于等于 / 大于等于谓词。'."\n" + .' - **PRED_LIKE_PREFIX**:LIKE 前缀匹配。'."\n" + .' - **ORDER_BY**:包含 ORDER BY 子句。'."\n" + .' - **LIMIT**:包含 LIMIT 子句。'."\n" + .' - **GROUP_BY**:包含 GROUP BY 子句。'."\n" + .' - **JOIN_INNER**:内连接。'."\n" + .' - **JOIN_RIGHT**:右连接。'."\n" + .' - **HAVING**:包含 HAVING 子句。'."\n" + .' - **UNION**:包含 UNION 操作。'."\n" + .'- **startTime**:SQL诊断的开始时间。'."\n" + .'- **success**:请求是否执行成功。'."\n" + .'- **support**:SQL语句是否支持诊断。'."\n" + .' - **true**:支持。'."\n" + .' - **false**:不支持。'."\n" + .'- **tuningAdvices**:SQL改写建议。', 'type' => 'string', 'example' => '{ "endTime":1636354256000, "errorCode":"0001", "errorMessage":"TFX成功", "estimateCost":{ "cpu":1.7878745150389268, "io":9.948402604746128, "rows":8.889372575194633 }, "improvement":12933.97, "indexAdvices":[ { "columns":[ "work_no" ], "ddlAddIndex":"ALTER TABLE `test`.`work_order` ADD INDEX `idx_workno` (`work_no`)", "indexName":"idx_workno", "schemaName":"test", "tableName":"work_order", "unique":false } ], "ip":"****.mysql.rds.aliyuncs.com", "messageId":"6188c8cb2f1365b16aee****", "port":3306, "sqlTag":"{\\"PRED_EQUAL\\":\\"Y\\",\\"CNT_QB\\":\\"1\\",\\"CNT_TB\\":\\"1\\"}", "startTime":1636354252000, "success":true, "support":true, "tuningAdvices":[ ] }'], + 'gmtCreate' => ['description' => 'SQL诊断创建时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'string', 'example' => '1633071840000'], + 'gmtModified' => ['description' => 'SQL诊断修改时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'string', 'example' => '1633071850000'], ], ], - 'RequestId' => [ - 'description' => 'OpenAPI请求的ID。', - 'type' => 'string', - 'example' => 'A52AD37C-35ED-581A-AC23-2232BE54****', - ], - 'Success' => [ - 'description' => 'OpenAPI请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + ."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Success\\": \\"false\\",\\n \\"ErrorCode\\": \\"-1001\\",\\n \\"ErrorMsg\\": \\"invalid param\\"\\n },\\n \\"RequestId\\": \\"A52AD37C-35ED-581A-AC23-2232BE54****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateAutoSqlOptimizeStatusResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Success>false</Success>\\n <ErrorCode>-1001</ErrorCode>\\n <ErrorMsg>invalid param</ErrorMsg>\\n </Data>\\n <RequestId>A52AD37C-35ED-581A-AC23-2232BE54****</RequestId>\\n <Success>true</Success>\\n</UpdateAutoSqlOptimizeStatusResponse>","errorExample":""}]', - 'title' => '批量开启、修改或关闭自动SQL优化功能', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"800FBAF5-A539-5B97-A09E-C63AB2F7****\\",\\n \\"Data\\": {\\n \\"messageId\\": \\"61820b594664275c4429****\\",\\n \\"uuid\\": \\"hdm_51fe9bc19ec413f4d530431af87a****\\",\\n \\"accountId\\": \\"2093****\\",\\n \\"sqlId\\": \\"0c95dae3afef77be06572612df9b****\\",\\n \\"engine\\": \\"MySQL\\",\\n \\"dbSchema\\": \\"das\\",\\n \\"param\\": \\"{\\\\\\"\\\\\\":\\\\\\"\\\\\\"}\\",\\n \\"state\\": 2,\\n \\"result\\": \\"{ \\\\\\"endTime\\\\\\":1636354256000, \\\\\\"errorCode\\\\\\":\\\\\\"0001\\\\\\", \\\\\\"errorMessage\\\\\\":\\\\\\"TFX成功\\\\\\", \\\\\\"estimateCost\\\\\\":{ \\\\\\"cpu\\\\\\":1.7878745150389268, \\\\\\"io\\\\\\":9.948402604746128, \\\\\\"rows\\\\\\":8.889372575194633 }, \\\\\\"improvement\\\\\\":12933.97, \\\\\\"indexAdvices\\\\\\":[ { \\\\\\"columns\\\\\\":[ \\\\\\"work_no\\\\\\" ], \\\\\\"ddlAddIndex\\\\\\":\\\\\\"ALTER TABLE `test`.`work_order` ADD INDEX `idx_workno` (`work_no`)\\\\\\", \\\\\\"indexName\\\\\\":\\\\\\"idx_workno\\\\\\", \\\\\\"schemaName\\\\\\":\\\\\\"test\\\\\\", \\\\\\"tableName\\\\\\":\\\\\\"work_order\\\\\\", \\\\\\"unique\\\\\\":false } ], \\\\\\"ip\\\\\\":\\\\\\"****.mysql.rds.aliyuncs.com\\\\\\", \\\\\\"messageId\\\\\\":\\\\\\"6188c8cb2f1365b16aee****\\\\\\", \\\\\\"port\\\\\\":3306, \\\\\\"sqlTag\\\\\\":\\\\\\"{\\\\\\\\\\\\\\"PRED_EQUAL\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Y\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CNT_QB\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CNT_TB\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\"}\\\\\\", \\\\\\"startTime\\\\\\":1636354252000, \\\\\\"success\\\\\\":true, \\\\\\"support\\\\\\":true, \\\\\\"tuningAdvices\\\\\\":[ ] }\\",\\n \\"gmtCreate\\": \\"1633071840000\\",\\n \\"gmtModified\\": \\"1633071850000\\"\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetRequestDiagnosisResultResponse>\\n <Message>Successful</Message>\\n <RequestId>800FBAF5-A539-5B97-A09E-C63AB2F7****</RequestId>\\n <Data>\\n <messageId>61820b594664275c4429****</messageId>\\n <uuid>hdm_51fe9bc19ec413f4d530431af87a****</uuid>\\n <accountId>2093****</accountId>\\n <sqlId>0c95dae3afef77be06572612df9b****</sqlId>\\n <engine>MySQL</engine>\\n <dbSchema>das</dbSchema>\\n <param>{\\"\\":\\"\\"}</param>\\n <state>2</state>\\n <result>{ \\"endTime\\":1636354256000, \\"errorCode\\":\\"0001\\", \\"errorMessage\\":\\"TFX成功\\", \\"estimateCost\\":{ \\"cpu\\":1.7878745150389268, \\"io\\":9.948402604746128, \\"rows\\":8.889372575194633 }, \\"improvement\\":12933.97, \\"indexAdvices\\":[ { \\"columns\\":[ \\"work_no\\" ], \\"ddlAddIndex\\":\\"ALTER TABLE `test`.`work_order` ADD INDEX `idx_workno` (`work_no`)\\", \\"indexName\\":\\"idx_workno\\", \\"schemaName\\":\\"test\\", \\"tableName\\":\\"work_order\\", \\"unique\\":false } ], \\"ip\\":\\"****.mysql.rds.aliyuncs.com\\", \\"messageId\\":\\"6188c8cb2f1365b16aee****\\", \\"port\\":3306, \\"sqlTag\\":\\"{\\\\\\"PRED_EQUAL\\\\\\":\\\\\\"Y\\\\\\",\\\\\\"CNT_QB\\\\\\":\\\\\\"1\\\\\\",\\\\\\"CNT_TB\\\\\\":\\\\\\"1\\\\\\"}\\", \\"startTime\\":1636354252000, \\"success\\":true, \\"support\\":true, \\"tuningAdvices\\":[ ] }</result>\\n <gmtCreate>1633071840000</gmtCreate>\\n <gmtModified>1633071850000</gmtModified>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetRequestDiagnosisResultResponse>","errorExample":""}]', + 'title' => '查询SQL诊断的结果', 'description' => '使用该接口需满足以下前提条件:'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" ."\n" - .'- 目标数据库实例已开启DAS企业版,您可以调用[EnableDasPro](~~411645~~)接口为指定数据库实例开启DAS企业版。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 该接口不支持查询自动SQL优化的诊断结果'."\n" + .'- 本接口适用的数据库引擎为:'."\n" ."\n" - .'- 目标数据库实例已开启自治服务,详情请参见[自治中心](~~152139~~)。'."\n" + .' - RDS MySQL'."\n" + .' - RDS PostgreSQL'."\n" + .' - RDS SQL Server'."\n" + .' - PolarDB MySQL版'."\n" + .' - PolarDB PostgreSQL版(兼容Oracle)'."\n" + .' - 云数据库MongoDB版'."\n" ."\n" - .'- 本接口适用的数据库引擎为:'."\n" - .' - RDS MySQL高可用系列、三节点企业系列'."\n" - .' - PolarDB MySQL版的集群版', - ], - 'GetSqlOptimizeAdvice' => [ - 'summary' => '调用GetSqlOptimizeAdvice接口,查询DAS自动SQL优化产生的诊断建议。', - 'methods' => [ - 'get', - 'post', + .'> RDS PostgreSQL实例内核小版本为20220130及以上。查看和升级内核小版本,请参见[升级内核小版本](~~146895~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetRequestDiagnosisResult'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetRequestDiagnosisResult', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetRunningSqlConcurrencyControlRules' => [ + 'summary' => '调用GetRunningSqlConcurrencyControlRules接口,获取正在执行的限流规则。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'ConsoleContext', 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], - ], - [ - 'name' => 'Engine', - 'in' => 'query', - 'schema' => [ - 'description' => '数据库引擎,取值:'."\n" - ."\n" - .'- **MySQL**:RDS MySQL。'."\n" - .'- **PolarDBMySQL**:PolarDB MySQL版。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'MySQL', - ], - ], - [ - 'name' => 'InstanceIds', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - .'>仅支持RDS MySQL、PolarDB MySQL版实例。', - 'type' => 'string', - 'required' => false, - 'example' => 'rm-2ze1jdv45i7l6****', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ - 'name' => 'StartDt', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '查询开始日期,格式:<i>yyyyMMdd</i>(UTC时间)。'."\n" - ."\n" - .'- 为空时,默认为当前日期的前一天。'."\n" - .'- 只能查询当前日期前一天及之前的数据。', - 'type' => 'string', - 'required' => false, - 'example' => '20210916', - ], + 'schema' => ['description' => '实例ID。'."\n" + .'>仅支持RDS MySQL和 PolarDB MySQL版实例。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze1jdv45i7l6****'], ], [ - 'name' => 'EndDt', + 'name' => 'PageNo', 'in' => 'query', - 'schema' => [ - 'description' => '查询结束日期,格式:<i>yyyyMMdd</i>(UTC时间)。'."\n" - ."\n" - .'- 为空时,默认为当前日期的前一天。'."\n" - .'- 只能查询当前日期前一天及之前的数据,查询开始日期和查询结束日期的间隔不能超过30天。', - 'type' => 'string', - 'required' => false, - 'example' => '20210917', - ], + 'schema' => ['description' => '页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1'], ], [ - 'name' => 'Region', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '实例所属地域,取值:'."\n" - ."\n" - .'- **cn-china**:中国内地。'."\n" - .'- **cn-hongkong**:中国香港。'."\n" - .'- **ap-southeast-1**:新加坡。'."\n" - ."\n" - .'此参数只有在请求参数**InstanceIds**为空时有效。如果请求参数**InstanceIds**为空时,按照**Region**参数设置的地域获取数据,系统默认实例所属地域为**cn-china**;如果请求参数**InstanceIds**不为空时,即使设置了**Region**参数,也以**InstanceIds**所传入的第一个实例所在地域为准获取数据。'."\n" - ."\n" - .'> 在中国内地各地域创建的实例,传入此参数时,都为**cn-china**。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-china', - ], + 'schema' => ['description' => '每页最大记录数,取值大于0且不超过Integer数据类型的最大值,默认值为10。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '10'], ], ], 'responses' => [ @@ -21114,380 +15799,360 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ 'description' => '详细信息列表,包括信息总数、错误码等。', 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => '任务运行状态:'."\n" - ."\n" - .'- **INIT**:初始化。'."\n" - .'- **RUNNING**:运行中。'."\n" - .'- **FINISH**:完成。'."\n" - .'- **FAILED**:失败。', - 'type' => 'string', - 'example' => 'FINISH', - ], - 'StatusCode' => [ - 'description' => '任务状态码说明:'."\n" - ."\n" - .'- **NO_DATA**:没有数据。'."\n" - .'- **INTERNAL_ERROR**:内部错误。'."\n" - .'- **SUCCESS**:成功。', - 'type' => 'string', - 'example' => 'SUCCESS', - ], - 'DownloadUrl' => [ - 'description' => '文件下载的链接。', - 'type' => 'string', - 'example' => 'https://das-sql-optimize.oss-cn-shanghai.aliyuncs.com/adb/oss_sql_optimize_advice/1083*******', - ], - 'CreateTime' => [ - 'description' => '任务创建时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'string', - 'example' => '1632303861000', - ], - 'ExpireTime' => [ - 'description' => '文件过期时间,格式为Unix时间戳,单位为毫秒。'."\n" - .'>任务创建3天后,文件过期。', - 'type' => 'string', - 'example' => '1632563061000', - ], - 'TaskId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => '2021091710461519216****', + 'Total' => ['description' => '总记录数。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'runningRules' => [ + 'description' => '返回信息列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ItemId' => ['description' => '当前实例的限流规则ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '16'], + 'SqlType' => ['description' => '选择SQL的类型。取值:'."\n" + .'- **SELECT**'."\n" + .'- **UPDATE**'."\n" + .'- **DELETE**', 'type' => 'string', 'example' => 'SELECT'], + 'InstanceId' => ['description' => '实例ID。', 'type' => 'string', 'example' => 'rm-2ze1jdv45i7l6****'], + 'SqlKeywords' => ['description' => '需要限流的SQL关键词。'."\n" + .'>多个关键词间用波浪线(~)分隔,SQL语句中需要同时包含这些关键词才会触发限流规则。', 'type' => 'string', 'example' => 'call~open~api~test~4~from~POP'], + 'StartTime' => ['description' => '获取正在执行的限流规则的开始时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1608888296000'], + 'KeywordsHash' => ['description' => '哈希值,根据输入的限流关键词计算出来的值。', 'type' => 'string', 'example' => 'b0b8aceeb43baea87b219c81767b****'], + 'ConcurrencyControlTime' => ['description' => 'SQL限流的生效时长,单位为秒。'."\n" + .'>限流规则仅在生效时间内开启。', 'type' => 'integer', 'format' => 'int64', 'example' => '600'], + 'UserId' => ['description' => '阿里云账号ID。', 'type' => 'string', 'example' => 'testxxx'], + 'MaxConcurrency' => ['description' => 'SQL最大并发数,取值为大于或等于1的整数。'."\n" + .'>当包含关键词的SQL达到最大并发数时会触发限流策略。', 'type' => 'string', 'example' => '2'], + 'Status' => ['description' => '限流规则的生效状态,取值为**Open**:限流规则正在生效中。', 'type' => 'string', 'example' => 'Open'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功'."\n" + .'- **false**:执行失败', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Status\\": \\"FINISH\\",\\n \\"StatusCode\\": \\"SUCCESS\\",\\n \\"DownloadUrl\\": \\"https://das-sql-optimize.oss-cn-shanghai.aliyuncs.com/adb/oss_sql_optimize_advice/1083*******\\",\\n \\"CreateTime\\": \\"1632303861000\\",\\n \\"ExpireTime\\": \\"1632563061000\\",\\n \\"TaskId\\": \\"2021091710461519216****\\"\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetSqlOptimizeAdviceResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Status>FINISH</Status>\\n <StatusCode>SUCCESS</StatusCode>\\n <DownloadUrl>https://das-sql-optimize.oss-cn-shanghai.aliyuncs.com/adb/oss_sql_optimize_advice/1083*******</DownloadUrl>\\n <CreateTime>1632303861000</CreateTime>\\n <ExpireTime>1632563061000</ExpireTime>\\n <TaskId>2021091710461519216****</TaskId>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetSqlOptimizeAdviceResponse>","errorExample":""}]', - 'title' => '查询自动SQL优化产生的诊断建议', - 'description' => 'SQL诊断功能提供实例诊断建议,您可通过诊断建议优化实例的索引,详情请参见[自动SQL优化](~~167895~~)。'."\n" - ."\n" - .'> 调用本接口只能查询由DAS自动SQL优化功能产生的诊断建议。'."\n" - ."\n" - .'使用该接口需满足以下前提条件:'."\n" - ."\n" - .'- 数据库引擎为RDS MySQL和PolarDB MySQL版。'."\n" - .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - ], - 'GetInstanceSqlOptimizeStatistic' => [ - 'summary' => '调用GetInstanceSqlOptimizeStatistic接口,获取指定时间段内自动SQL优化任务的统计数据,包括任务总数和最大收益等。', - 'methods' => [ - 'get', - 'post', + 'title' => '获取正在执行的限流规则', + 'description' => '本接口适用的数据库引擎为:'."\n" + .'- RDS MySQL'."\n" + .'- PolarDB MySQL版', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetRunningSqlConcurrencyControlRules'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetRunningSqlConcurrencyControlRules', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Total\\": 2,\\n \\"List\\": {\\n \\"runningRules\\": [\\n {\\n \\"ItemId\\": 16,\\n \\"SqlType\\": \\"SELECT\\",\\n \\"InstanceId\\": \\"rm-2ze1jdv45i7l6****\\",\\n \\"SqlKeywords\\": \\"call~open~api~test~4~from~POP\\",\\n \\"StartTime\\": 1608888296000,\\n \\"KeywordsHash\\": \\"b0b8aceeb43baea87b219c81767b****\\",\\n \\"ConcurrencyControlTime\\": 600,\\n \\"UserId\\": \\"testxxx\\",\\n \\"MaxConcurrency\\": \\"2\\",\\n \\"Status\\": \\"Open\\"\\n }\\n ]\\n }\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetRunningSqlConcurrencyControlRulesResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Total>2</Total>\\n <List>\\n <ItemId>16</ItemId>\\n <SqlType>SELECT</SqlType>\\n <InstanceId>rm-2ze1jdv45i7l6****</InstanceId>\\n <SqlKeywords>call~open~api~test~4~from~POP</SqlKeywords>\\n <StartTime>1608888296000</StartTime>\\n <KeywordsHash>b0b8aceeb43baea87b219c81767b****</KeywordsHash>\\n <ConcurrencyControlTime>600</ConcurrencyControlTime>\\n <UserId>testxxx</UserId>\\n <MaxConcurrency>2</MaxConcurrency>\\n <Status>Open</Status>\\n </List>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetRunningSqlConcurrencyControlRulesResponse>","errorExample":""}]', + ], + 'GetSqlConcurrencyControlKeywordsFromSqlText' => [ + 'summary' => '调用GetSqlConcurrencyControlKeywordsFromSqlText接口,根据原始SQL语句,生成限流关键词串。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ + 'name' => 'ConsoleContext', + 'in' => 'query', + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], + ], + [ 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'title' => '实例ID', - 'description' => '数据库实例ID。'."\n" - ."\n" - .'> 仅支持RDS MySQL、PolarDB MySQL版数据库实例。', - 'type' => 'string', - 'required' => true, - 'example' => 'pc-wz90h9560rvdz****', - ], + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze5hpn2b99d2****'], ], [ - 'name' => 'StartTime', + 'name' => 'SqlText', 'in' => 'query', + 'schema' => ['description' => '待生成限流关键词的SQL文本。', 'type' => 'string', 'required' => true, 'example' => 'SELECT * FROM test where name = \'das\''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '开始时间', - 'description' => '查询开始时间,格式为Unix时间戳(UTC时间),单位为毫秒。', - 'type' => 'string', - 'required' => true, - 'example' => '1661308902060', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'Data' => ['description' => '根据模板化后的SQL生成的限流关键词串。', 'type' => 'string', 'example' => 'SELECT~FROM~test~where~name'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '30A643F5-D7A6-55F5-AB75-DF501427****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + ."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], + ], + ], + 'title' => '根据SQL语句生成限流关键词', + 'description' => '本接口适用的数据库引擎为:'."\n" + .'- RDS MySQL'."\n" + .'- PolarDB MySQL版', + 'responseParamsDescription' => '返回的限流关键词串,是根据模板化后的SQL生成的,如果需要限流某个特定值,则需要带上相应的参数。例如:原始SQL语句为`SELECT \\* FROM test where name = \'das\'`,返回的限流关键词串是`SELECT~FROM~test~where~name`,如果需要限流`name = \'das\'`,则需要在返回的限流关键词串中增加`~das`,即限流关键词串为`SELECT~FROM~test~where~name~das`。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetSqlConcurrencyControlKeywordsFromSqlText'], + ], + ], + 'ramActions' => [ [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'title' => '结束时间', - 'description' => '查询结束时间,格式为Unix时间戳(UTC时间),单位为毫秒。', - 'type' => 'string', - 'required' => true, - 'example' => '1662518540764', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetSqlConcurrencyControlKeywordsFromSqlText', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": \\"SELECT~FROM~test~where~name\\",\\n \\"RequestId\\": \\"30A643F5-D7A6-55F5-AB75-DF501427****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetSqlConcurrencyControlKeywordsFromSqlTextResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>SELECT~FROM~test~where~name</Data>\\n <RequestId>30A643F5-D7A6-55F5-AB75-DF501427****</RequestId>\\n <Success>true</Success>\\n</GetSqlConcurrencyControlKeywordsFromSqlTextResponse>","errorExample":""}]', + ], + 'GetSqlConcurrencyControlRulesHistory' => [ + 'summary' => '调用GetSqlConcurrencyControlRulesHistory接口,获取正在执行或被触发过的限流规则。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'NodeId', + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ + [ + 'name' => 'ConsoleContext', 'in' => 'query', - 'schema' => [ - 'title' => '子节点ID', - 'description' => '节点ID。'."\n" - ."\n" - .'> 对于RDS MySQL集群系列数据库实例或PolarDB MySQL版数据库实例,需要提供节点ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'pi-bp12v7243x012****', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ - 'name' => 'Threshold', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'title' => '阈值', - 'description' => '自动SQL优化事件的持续时间阈值。'."\n" - .'设置此参数后,只会统计持续时间不超过阈值的自动SQL优化事件。'."\n" - ."\n" - .'> 此参数为备用参数,当前暂不生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], + 'schema' => ['description' => '实例ID。'."\n" + .'>仅支持RDS MySQL和 PolarDB MySQL版实例。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze1jdv45i7l6****'], ], [ - 'name' => 'FilterEnable', + 'name' => 'PageNo', 'in' => 'query', - 'schema' => [ - 'title' => '是否过滤专业版', - 'description' => '是否过滤开启了DAS企业版的数据库实例:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> 取值为**true**时,只统计未开启DAS企业版的数据库实例;取值为**false**时,统计所有数据库实例。', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [], - 'example' => 'false', - ], + 'schema' => ['description' => '页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1'], ], [ - 'name' => 'UseMerging', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'title' => '是否合并事件', - 'description' => '是否合并事件:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'> 此参数为备用参数,当前暂不生效。', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [], - 'example' => 'true', - ], + 'schema' => ['description' => '每页最大记录数,取值大于0且不超过Integer数据类型的最大值,默认值为10。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '10'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回信息列表。', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ - 'description' => '详细信息列表。', + 'description' => '详细信息列表,包括信息总数、错误码等。', 'type' => 'object', 'properties' => [ - 'count' => [ - 'title' => 'SQL自动优化事件总数', - 'description' => '自动SQL优化事件总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '16', - ], - 'improvement' => [ - 'title' => '收益倍数', - 'description' => '返回的自动SQL优化事件中,SQL优化后的最大收益倍数。', - 'type' => 'number', - 'format' => 'double', - 'example' => '1003', + 'Total' => ['description' => '总记录数。', 'type' => 'integer', 'format' => 'int64', 'example' => '4'], + 'List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'rules' => [ + 'description' => '详细信息列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ItemId' => ['description' => '当前实例的限流规则ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '16'], + 'SqlType' => ['description' => '选择SQL的类型。取值:'."\n" + .'- **SELECT**'."\n" + .'- **UPDATE**'."\n" + .'- **DELETE**', 'type' => 'string', 'example' => 'SELECT'], + 'InstanceId' => ['description' => '实例ID。', 'type' => 'string', 'example' => 'rm-2ze1jdv45i7l6****'], + 'SqlKeywords' => ['description' => '需要限流的SQL关键词。'."\n" + .'>多个关键词间以波浪线(~)分隔,SQL语句中需要同时包含这些关键词才会触发限流规则。', 'type' => 'string', 'example' => 'call~open~api~test~4~from~POP'], + 'StartTime' => ['description' => '获取限流规则历史的开始时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1608888296000'], + 'KeywordsHash' => ['description' => '哈希值,根据输入的限流关键词计算出来的值。', 'type' => 'string', 'example' => 'b0b8aceeb43baea87b219c81767b****'], + 'ConcurrencyControlTime' => ['description' => 'SQL限流的生效时长,单位为秒。'."\n" + .'>限流规则仅在生效时间内开启。', 'type' => 'integer', 'format' => 'int64', 'example' => '600'], + 'UserId' => ['description' => '用户ID。', 'type' => 'string', 'example' => 'testxxx'], + 'MaxConcurrency' => ['description' => 'SQL最大并发数,取值为大于或等于1的整数。'."\n" + .'>当包含关键词的SQL达到最大并发数时会触发限流策略。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'Status' => ['description' => '限流规则的生效状态,取值:'."\n" + ."\n" + .'- **Open**:限流规则正在生效中。'."\n" + .'- **Closed**:限流规则已执行结束。', 'type' => 'string', 'example' => 'Open'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功'."\n" + .'- **false**:执行失败', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"count\\": 16,\\n \\"improvement\\": 1003\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetInstanceSqlOptimizeStatisticResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <count>16</count>\\n <improvement>1003</improvement>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetInstanceSqlOptimizeStatisticResponse>","errorExample":""}]', - 'title' => ' 获取自动SQL优化事件的统计数据', - 'description' => '使用该接口需满足以下前提条件:'."\n" - ."\n" - .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 数据库引擎为RDS MySQL或PolarDB MySQL版。', - ], - 'UpdateAutoResourceOptimizeRulesAsync' => [ - 'summary' => '调用UpdateAutoResourceOptimizeRulesAsync接口,采用异步方式,批量设置指定数据库实例空间碎片自动回收功能的配置参数。', - 'methods' => [ - 'get', - 'post', + 'title' => '获取正在执行或被触发过的限流规则', + 'description' => '本接口适用的数据库引擎为:'."\n" + .'- RDS MySQL'."\n" + .'- PolarDB MySQL版', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetSqlConcurrencyControlRulesHistory'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetSqlConcurrencyControlRulesHistory', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Total\\": 4,\\n \\"List\\": {\\n \\"rules\\": [\\n {\\n \\"ItemId\\": 16,\\n \\"SqlType\\": \\"SELECT\\",\\n \\"InstanceId\\": \\"rm-2ze1jdv45i7l6****\\",\\n \\"SqlKeywords\\": \\"call~open~api~test~4~from~POP\\",\\n \\"StartTime\\": 1608888296000,\\n \\"KeywordsHash\\": \\"b0b8aceeb43baea87b219c81767b****\\",\\n \\"ConcurrencyControlTime\\": 600,\\n \\"UserId\\": \\"testxxx\\",\\n \\"MaxConcurrency\\": 2,\\n \\"Status\\": \\"Open\\"\\n }\\n ]\\n }\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetSqlConcurrencyControlRulesHistoryResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Total>4</Total>\\n <List>\\n <ItemId>16</ItemId>\\n <SqlType>SELECT</SqlType>\\n <InstanceId>rm-2ze1jdv45i7l6****</InstanceId>\\n <SqlKeywords>call~open~api~test~4~from~POP</SqlKeywords>\\n <StartTime>1608888296000</StartTime>\\n <KeywordsHash>b0b8aceeb43baea87b219c81767b****</KeywordsHash>\\n <ConcurrencyControlTime>600</ConcurrencyControlTime>\\n <UserId>testxxx</UserId>\\n <MaxConcurrency>2</MaxConcurrency>\\n <Status>Open</Status>\\n </List>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetSqlConcurrencyControlRulesHistoryResponse>","errorExample":""}]', + ], + 'GetSqlOptimizeAdvice' => [ + 'summary' => '调用GetSqlOptimizeAdvice接口,查询DAS自动SQL优化产生的诊断建议。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhdm3TU4OK', - ], - ], + 'operationType' => 'read', + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'ConsoleContext', 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], + ], + [ + 'name' => 'Engine', + 'in' => 'query', + 'schema' => ['description' => '数据库引擎,取值:'."\n" + ."\n" + .'- **MySQL**:RDS MySQL。'."\n" + .'- **PolarDBMySQL**:PolarDB MySQL版。'."\n", 'type' => 'string', 'required' => false, 'example' => 'MySQL'], ], [ 'name' => 'InstanceIds', 'in' => 'query', - 'schema' => [ - 'description' => '数据库实例ID。'."\n" - ."\n" - .'> 数据格式为JSONArray,例如`[\'实例ID1\',\'实例ID2\']`,实例ID间用英文逗号(,)分隔。'."\n" - ."\n", - 'type' => 'string', - 'required' => true, - 'example' => '[\'rm-2ze8g2am97624****\',\'rm-2ze9xrhze0709****\']', - ], + 'schema' => ['description' => '实例ID。'."\n" + .'>仅支持RDS MySQL、PolarDB MySQL版实例。', 'type' => 'string', 'required' => false, 'example' => 'rm-2ze1jdv45i7l6****'], ], [ - 'name' => 'TableSpaceSize', + 'name' => 'StartDt', 'in' => 'query', - 'schema' => [ - 'description' => '触发空间碎片自动回收单个物理表的最小空间,取值范围:**5**~**100**,单位为GB。', - 'type' => 'number', - 'format' => 'double', - 'required' => true, - 'example' => '10', - ], + 'schema' => ['description' => '查询开始日期,格式:<i>yyyyMMdd</i>(UTC时间)。'."\n" + ."\n" + .'- 为空时,默认为当前日期的前一天。'."\n" + .'- 只能查询当前日期前一天及之前的数据。', 'type' => 'string', 'required' => false, 'example' => '20210916'], ], [ - 'name' => 'TableFragmentationRatio', + 'name' => 'EndDt', 'in' => 'query', - 'schema' => [ - 'description' => '触发空间碎片自动回收单个物理表的碎片率,取值范围:**0.10**~**0.99**。', - 'type' => 'number', - 'format' => 'double', - 'required' => true, - 'example' => '0.2', - ], + 'schema' => ['description' => '查询结束日期,格式:<i>yyyyMMdd</i>(UTC时间)。'."\n" + ."\n" + .'- 为空时,默认为当前日期的前一天。'."\n" + .'- 只能查询当前日期前一天及之前的数据,查询开始日期和查询结束日期的间隔不能超过30天。', 'type' => 'string', 'required' => false, 'example' => '20210917'], ], [ - 'name' => 'ResultId', + 'name' => 'Region', 'in' => 'query', - 'schema' => [ - 'description' => '异步请求的ID。'."\n" - .'> 异步调用后不会立即返回完整结果,首先需要调用该接口获取**ResultId**,然后使用返回数据的**ResultId**,重新发起调用,直到**isFinish**取值为**true**时,返回完整结果。即获取一次完整数据,至少需要调用该接口两次。', - 'type' => 'string', - 'required' => false, - 'example' => 'async__507044db6c4eadfa2dab9b084e80****', - ], + 'schema' => ['description' => '实例所属地域,取值:'."\n" + ."\n" + .'- **cn-china**:中国内地。'."\n" + .'- **cn-hongkong**:中国香港。'."\n" + .'- **ap-southeast-1**:新加坡。'."\n" + ."\n" + .'此参数只有在请求参数**InstanceIds**为空时有效。如果请求参数**InstanceIds**为空时,按照**Region**参数设置的地域获取数据,系统默认实例所属地域为**cn-china**;如果请求参数**InstanceIds**不为空时,即使设置了**Region**参数,也以**InstanceIds**所传入的第一个实例所在地域为准获取数据。'."\n" + ."\n" + .'> 在中国内地各地域创建的实例,传入此参数时,都为**cn-china**。', 'type' => 'string', 'required' => false, 'example' => 'cn-china'], ], ], 'responses' => [ @@ -21495,240 +16160,110 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ - 'description' => '返回的数据。', + 'description' => '详细信息列表,包括信息总数、错误码等。', 'type' => 'object', 'properties' => [ - 'Fail' => [ - 'description' => '请求是否失败:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'ConfigResponse' => [ - 'description' => '批量设置的返回数据。'."\n" - .'> 异步请求完成时(即isFinish取值为**true**时)才会返回该数据。', - 'type' => 'object', - 'properties' => [ - 'TotalInstanceCount' => [ - 'description' => '总数据库实例数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'ConfigSuccessInstanceCount' => [ - 'description' => '设置成功的数据库实例数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'ConfigFailInstanceCount' => [ - 'description' => '设置失败的数据库实例数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'ConfigSuccessInstanceList' => [ - 'description' => '设置成功的数据库实例列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ConfigSuccess' => [ - 'description' => '设置是否成功:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'InstanceId' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze8g2am97624****', - ], - ], - ], - ], - 'ConfigFailInstanceList' => [ - 'description' => '设置失败的数据库实例列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ConfigSuccess' => [ - 'description' => '设置是否成功:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'InstanceId' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze9xrhze0709****', - ], - 'ErrorMessage' => [ - 'description' => '错误信息。', - 'type' => 'string', - 'example' => 'Only Support DAS Pro High-availability Edition RDS MySQL 5.6, 5.7, 8.0 instance, and CPU cores >= 4, innodb_file_per_table=ON', - ], - ], - ], - ], - ], - ], - 'ResultId' => [ - 'description' => '异步请求的ID。', - 'type' => 'string', - 'example' => 'async__20ee808e72257f16a4fe024057ca****', - ], - 'IsFinish' => [ - 'description' => '异步请求是否执行完成:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'State' => [ - 'description' => '异步请求的执行状态:'."\n" - ."\n" - .'- **RUNNING**:正在运行。'."\n" - ."\n" - .'- **SUCCESS**:成功。'."\n" - ."\n" - .'- **FAIL**:失败。', - 'type' => 'string', - 'example' => 'SUCCESS', - ], - 'Complete' => [ - 'description' => '异步请求是否执行完成:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Timestamp' => [ - 'description' => '执行时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1645668213000', - ], + 'Status' => ['description' => '任务运行状态:'."\n" + ."\n" + .'- **INIT**:初始化。'."\n" + .'- **RUNNING**:运行中。'."\n" + .'- **FINISH**:完成。'."\n" + .'- **FAILED**:失败。', 'type' => 'string', 'example' => 'FINISH'], + 'StatusCode' => ['description' => '任务状态码说明:'."\n" + ."\n" + .'- **NO_DATA**:没有数据。'."\n" + .'- **INTERNAL_ERROR**:内部错误。'."\n" + .'- **SUCCESS**:成功。', 'type' => 'string', 'example' => 'SUCCESS'], + 'DownloadUrl' => ['description' => '文件下载的链接。', 'type' => 'string', 'example' => 'https://das-sql-optimize.oss-cn-shanghai.aliyuncs.com/adb/oss_sql_optimize_advice/1083*******'], + 'CreateTime' => ['description' => '任务创建时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'string', 'example' => '1632303861000'], + 'ExpireTime' => ['description' => '文件过期时间,格式为Unix时间戳,单位为毫秒。'."\n" + .'>任务创建3天后,文件过期。', 'type' => 'string', 'example' => '1632563061000'], + 'TaskId' => ['description' => '任务ID。', 'type' => 'string', 'example' => '2021091710461519216****'], ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '9CB97BC4-6479-55D0-B9D0-EA925AFE****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - ."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Fail\\": false,\\n \\"ConfigResponse\\": {\\n \\"TotalInstanceCount\\": 2,\\n \\"ConfigSuccessInstanceCount\\": 1,\\n \\"ConfigFailInstanceCount\\": 1,\\n \\"ConfigSuccessInstanceList\\": [\\n {\\n \\"ConfigSuccess\\": true,\\n \\"InstanceId\\": \\"rm-2ze8g2am97624****\\"\\n }\\n ],\\n \\"ConfigFailInstanceList\\": [\\n {\\n \\"ConfigSuccess\\": false,\\n \\"InstanceId\\": \\"rm-2ze9xrhze0709****\\",\\n \\"ErrorMessage\\": \\"Only Support DAS Pro High-availability Edition RDS MySQL 5.6, 5.7, 8.0 instance, and CPU cores >= 4, innodb_file_per_table=ON\\"\\n }\\n ]\\n },\\n \\"ResultId\\": \\"async__20ee808e72257f16a4fe024057ca****\\",\\n \\"IsFinish\\": true,\\n \\"State\\": \\"SUCCESS\\",\\n \\"Complete\\": true,\\n \\"Timestamp\\": 1645668213000\\n },\\n \\"RequestId\\": \\"9CB97BC4-6479-55D0-B9D0-EA925AFE****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<UpdateAutoResourceOptimizeRulesAsyncResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Fail>false</Fail>\\n <ConfigResponse>\\n <TotalInstanceCount>2</TotalInstanceCount>\\n <ConfigSuccessInstanceCount>1</ConfigSuccessInstanceCount>\\n <ConfigFailInstanceCount>1</ConfigFailInstanceCount>\\n <ConfigSuccessInstanceList>\\n <ConfigSuccess>true</ConfigSuccess>\\n <InstanceId>rm-2ze8g2am97624****</InstanceId>\\n </ConfigSuccessInstanceList>\\n <ConfigFailInstanceList>\\n <ConfigSuccess>false</ConfigSuccess>\\n <InstanceId>rm-2ze9xrhze0709****</InstanceId>\\n <ErrorMessage>Only Support DAS Pro High-availability Edition RDS MySQL 5.6, 5.7, 8.0 instance, and CPU cores >= 4, innodb_file_per_table=ON</ErrorMessage>\\n </ConfigFailInstanceList>\\n </ConfigResponse>\\n <ResultId>async__20ee808e72257f16a4fe024057ca****</ResultId>\\n <IsFinish>true</IsFinish>\\n <State>SUCCESS</State>\\n <Complete>true</Complete>\\n <Timestamp>1645668213000</Timestamp>\\n </Data>\\n <RequestId>9CB97BC4-6479-55D0-B9D0-EA925AFE****</RequestId>\\n <Success>true</Success>\\n</UpdateAutoResourceOptimizeRulesAsyncResponse>","errorExample":""}]', - 'title' => '设置空间碎片自动回收功能的配置参数', - 'description' => '> 异步调用后不会立即返回完整结果,首先需要调用该接口获取**ResultId**,然后使用返回数据的**ResultId**,重新发起调用,直到**isFinish**取值为**true**时,返回完整结果。即获取一次完整数据,至少需要调用该接口两次。'."\n" - ."\n" - .'使用该接口需满足以下前提条件:'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Status\\": \\"FINISH\\",\\n \\"StatusCode\\": \\"SUCCESS\\",\\n \\"DownloadUrl\\": \\"https://das-sql-optimize.oss-cn-shanghai.aliyuncs.com/adb/oss_sql_optimize_advice/1083*******\\",\\n \\"CreateTime\\": \\"1632303861000\\",\\n \\"ExpireTime\\": \\"1632563061000\\",\\n \\"TaskId\\": \\"2021091710461519216****\\"\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetSqlOptimizeAdviceResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Status>FINISH</Status>\\n <StatusCode>SUCCESS</StatusCode>\\n <DownloadUrl>https://das-sql-optimize.oss-cn-shanghai.aliyuncs.com/adb/oss_sql_optimize_advice/1083*******</DownloadUrl>\\n <CreateTime>1632303861000</CreateTime>\\n <ExpireTime>1632563061000</ExpireTime>\\n <TaskId>2021091710461519216****</TaskId>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetSqlOptimizeAdviceResponse>","errorExample":""}]', + 'title' => '查询自动SQL优化产生的诊断建议', + 'description' => 'SQL诊断功能提供实例诊断建议,您可通过诊断建议优化实例的索引,详情请参见[自动SQL优化](~~167895~~)。'."\n" ."\n" - .'- 数据库实例类型为RDS MySQL高可用系列。'."\n" + .'> 调用本接口只能查询由DAS自动SQL优化功能产生的诊断建议。'."\n" ."\n" - .'- 数据库实例已开启DAS企业版,您可以调用[DescribeInstanceDasPro](~~413866~~)查询。'."\n" + .'使用该接口需满足以下前提条件:'."\n" ."\n" - .'- 数据库实例的CPU规格不小于4核,且**innodb_file_per_table**参数值为**ON**。', - ], - 'DisableAutoResourceOptimizeRules' => [ - 'summary' => '调用DisableAutoResourceOptimizeRules接口,批量关闭指定数据库实例的空间碎片自动回收功能。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', + .'- 数据库引擎为RDS MySQL和PolarDB MySQL版。'."\n" + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetSqlOptimizeAdvice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetStorageAnalysisResult' => [ + 'summary' => '调用GetStorageAnalysisResult接口,查询空间分析任务状态和分析结果。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhdmTFSOG0', - ], + 'abilityTreeCode' => '204031', + 'abilityTreeNodes' => ['FEATUREhdm3TU4OK'], ], 'parameters' => [ [ - 'name' => 'ConsoleContext', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze1jdv45i7l6****'], ], [ - 'name' => 'InstanceIds', + 'name' => 'NodeId', 'in' => 'query', - 'schema' => [ - 'description' => '数据库实例ID。'."\n" - ."\n" - .'> 数据格式为JSONArray,例如`[\'实例ID1\',\'实例ID2\']`,实例ID间用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => '[\'rm-2ze8g2am97624****\',\'rm-2ze9xrhze0709****\']', - ], + 'schema' => ['description' => '节点ID。'."\n" + ."\n" + .'> 预留参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], + ], + [ + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => ['description' => '任务ID,调用[CreateStorageAnalysisTask](~~2639140~~)接口返回的任务ID。', 'type' => 'string', 'required' => true, 'example' => '910f83f4b96df0524ddc5749f615****'], ], ], 'responses' => [ @@ -21736,453 +16271,395 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ 'description' => '返回的数据。', 'type' => 'object', 'properties' => [ - 'TotalInstanceCount' => [ - 'description' => '总数据库实例ID数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'ConfigSuccessInstanceCount' => [ - 'description' => '关闭空间碎片自动回收功能成功的数据库实例数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'ConfigFailInstanceCount' => [ - 'description' => '关闭空间碎片自动回收功能失败的数据库实例数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'ConfigSuccessInstanceList' => [ - 'description' => '关闭空间碎片自动回收功能成功的数据库实例列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ConfigSuccess' => [ - 'description' => '关闭设置是否成功:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'InstanceId' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze8g2am97624****', + 'TaskId' => ['description' => '任务ID。', 'type' => 'string', 'example' => '910f83f4b96df0524ddc5749f615****'], + 'TaskFinish' => ['description' => '任务是否结束:'."\n" + ."\n" + .'- **true**:任务结束。'."\n" + .'- **false**:任务未结束。', 'type' => 'boolean', 'example' => 'true'], + 'TaskSuccess' => ['description' => '任务是否成功:'."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。'."\n" + ."\n" + .'> 当任务结束时才返回该字段。', 'type' => 'boolean', 'example' => 'true'], + 'TaskState' => ['description' => '空间分析任务的状态:'."\n" + ."\n" + .'- **INIT**:初始化。'."\n" + .'- **PENDING**:等待执行。'."\n" + .'- **RECEIVED**:任务已选择。'."\n" + .'- **RUNNING**:任务执行中。'."\n" + .'- **RETRY**:重试任务。'."\n" + .'- **SUCCESS**:任务成功。'."\n" + .'- **FAILURE**:任务失败。', 'type' => 'string', 'example' => 'SUCCESS'], + 'TaskProgress' => ['description' => '任务进度,取值为0~100的整数。'."\n" + ."\n" + .'> 例如取值为100时,表示任务进度100%。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'TotalDbCount' => ['description' => '空间分析任务需要分析的数据库数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '32'], + 'AnalyzedDbCount' => ['description' => '已分析结束的数据库数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'StorageAnalysisResult' => [ + 'description' => '空间分析详情。', + 'type' => 'object', + 'properties' => [ + 'TotalStorageSize' => ['description' => '实例总空间大小,单位为Byte。'."\n" + ."\n" + .'> 当前仅支持RDS MySQL。', 'type' => 'integer', 'format' => 'int64', 'example' => '214748364800'], + 'TotalUsedStorageSize' => ['description' => '已使用的空间,单位为Byte。', 'type' => 'integer', 'format' => 'int64', 'example' => '68345135104'], + 'TotalFreeStorageSize' => ['description' => '剩余可用空间,单位为Byte。'."\n" + ."\n" + .'> 当前仅支持RDS MySQL。', 'type' => 'integer', 'format' => 'int64', 'example' => '146403229696'], + 'DailyIncrement' => ['description' => '近一周空间日均增长量估算值,单位为Byte。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'EstimateAvailableDays' => ['description' => '剩余空间可使用天数估算值。', 'type' => 'integer', 'format' => 'int64', 'example' => '99'], + 'AnalysisSuccess' => ['description' => '数据库和表空间分析是否成功。'."\n" + ."\n" + .'- **true**:成功。'."\n" + .'- **false**:失败。', 'type' => 'boolean', 'example' => 'true'], + 'AnalysisErrorType' => ['description' => '数据库和表空间分析任务失败类型:'."\n" + .'- **DB_OR_TABLE_NOT_EXIST**:指定的数据库或表不存在。'."\n" + .'- **DB_NOT_EXIST**:指定的数据库不存在。', 'type' => 'string', 'example' => 'DB_NOT_EXIST'], + 'NeedOptimizeItemList' => [ + 'description' => '根据DAS默认规则生成的待优化项列表。用户也可根据自身业务情况忽略该列表中的内容,然后根据接口返回的其他基础数据自定义规则生成待优化项列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DbName' => ['description' => '数据库名。', 'type' => 'string', 'example' => 'testdb01'], + 'TableName' => ['description' => '表名。', 'type' => 'string', 'example' => 'test_table'], + 'OptimizeItemName' => ['description' => '待优化项:'."\n" + .'- **NEED_ANALYZE_TABLE**:`information_schema.tables`中该表空间统计数据和物理文件大小差值超过50 GB。仅适用于RDS MySQL和PolarDB MySQL版。'."\n" + .'- **NEED_OPTIMIZE_TABLE**:表的碎片空间大于6 GB,并且碎片率大于30%。表的碎片率计算方式:'."\n" + .' - RDS MySQL和PolarDB MySQL版为:`DataFree/(DataSize+IndexSize+DataFree)`,本接口中即`DataFree/PhyTotalSize`。'."\n" + .' - MongoDB为:`FragmentSize/PhyTotalSize`。'."\n" + .'- **TABLE_ENGINE**:表使用的存储引擎不是InnoDB或者XEngine。仅适用于RDS MySQL和PolarDB MySQL版。'."\n" + .'- **AUTO_INCREMENT_ID_BE_TO_RUN_OUT**:表自增ID使用率超过80%。仅适用于RDS MySQL和PolarDB MySQL版。'."\n" + .'- **DUPLICATE_INDEX**:索引冗余或者重复。仅适用于RDS MySQL和PolarDB MySQL版。'."\n" + .'- **TABLE_SIZE**:单表空间大于50 GB。仅适用于RDS MySQL和PolarDB MySQL版。'."\n" + .'- **TABLE_ROWS_AND_AVG_ROW_LENGTH**:单表行数大于500万,且平均行长大于10 KB。仅适用于RDS MySQL和PolarDB MySQL版。'."\n" + .'- **TOTAL_DATA_FREE**:实例可回收空间大于60 GB,且总碎片率大于5%。'."\n" + .'- **STORAGE_USED_PERCENT**:实例空间使用率大于90%。', 'type' => 'string', 'example' => 'NEED_OPTIMIZE_TABLE'], + 'OptimizeAdvice' => ['description' => '优化建议:'."\n" + .'- **NEED_ANALYZE_TABLE**:如有需要可在业务低峰时期对相关的表执行`ANALYZE TABLE`。仅适用于RDS MySQL和PolarDB MySQL版。'."\n" + .'- **NEED_OPTIMIZE_TABLE**:如有需要可在业务低峰时期进行表空间碎片回收。'."\n" + .'- **CHANGE_TABLE_ENGINE_IF_NECESSARY**:如果有需要可以在评估风险后更改表的存储引擎类型。仅适用于RDS MySQL和PolarDB MySQL版。'."\n" + .'- **AUTO_INCREMENT_ID_BE_TO_RUN_OUT**:注意自增ID使用情况。仅适用于RDS MySQL和PolarDB MySQL版。'."\n" + .'- **DUPLICATE_INDEX**:建议优化精简表上的索引。仅适用于RDS MySQL和PolarDB MySQL版。'."\n" + .'- **TABLE_SIZE**:注意表大小。仅适用于RDS MySQL和PolarDB MySQL版。'."\n" + .'- **TABLE_ROWS_AND_AVG_ROW_LENGTH**:注意表行数以及平均行长。仅适用于RDS MySQL和PolarDB MySQL版。'."\n" + .'- **STORAGE_USED_PERCENT**:注意空间使用情况,避免实例写满后锁定。', 'type' => 'string', 'example' => 'NEED_OPTIMIZE_TABLE'], + 'AssociatedData' => ['description' => '待优化项关联数据,以JSON格式返回。', 'type' => 'string', 'example' => '{'."\n" + .' "autoIncrementCurrentValue": 2147483647,'."\n" + .' "autoIncrementRatio": 1,'."\n" + .' "dbName": "testdb01",'."\n" + .' "maximumValue": 2147483647,'."\n" + .' "columnName": "id",'."\n" + .' "tableName": "test_table"'."\n" + .'}'], + ], ], ], - ], - ], - 'ConfigFailInstanceList' => [ - 'description' => '关闭空间碎片自动回收功能失败的数据库实例列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ConfigSuccess' => [ - 'description' => '关闭设置是否成功:'."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'InstanceId' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze9xrhze0709****', - ], - 'ErrorMessage' => [ - 'description' => '错误信息。', - 'type' => 'string', - 'example' => 'cannot found instance by rm-2ze9xrhze0709****', + 'TableStats' => [ + 'description' => '表空间数据列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DbName' => ['description' => '数据库名。', 'type' => 'string', 'example' => 'testdb01'], + 'TableName' => ['description' => '表名。', 'type' => 'string', 'example' => 'test_table'], + 'TableType' => ['description' => '表类型。'."\n" + ."\n" + .'> 该参数适用于RDS MySQL和PolarDB MySQL版。', 'type' => 'string', 'example' => 'BASE TABLE'], + 'Engine' => ['description' => '表使用的存储引擎类型。'."\n" + ."\n" + .'> 该参数适用于RDS MySQL和PolarDB MySQL版。', 'type' => 'string', 'example' => 'InnoDB'], + 'PhysicalFileSize' => ['description' => '表物理文件大小,单位为Byte。'."\n" + .'> 该参数适用于RDS MySQL和PolarDB MySQL版。部分实例因部署形态的原因不支持获取该数据。', 'type' => 'integer', 'format' => 'int64', 'example' => '3057655808'], + 'PhyTotalSize' => ['description' => '表空间大小,单位为Byte。'."\n" + .'> 对于RDS MySQL和PolarDB MySQL版,取值为**DataSize**、**IndexSize**、**DataFree**之和;对于MongoDB,取值为**DataSize**、**IndexSize**之和。', 'type' => 'integer', 'format' => 'int64', 'example' => '3012493312'], + 'TotalSize' => ['description' => '- 对于RDS MySQL和PolarDB MySQL版,该参数是表数据和索引占用空间大小,单位为Byte。取值为**DataSize**、**IndexSize**之和。'."\n" + ."\n" + .'- 对于MongoDB,该参数是Block Manager实际分配的空间大小,单位为Byte。MongoDB实例压缩率计算方式为:`TotalSize/DataSize`。', 'type' => 'integer', 'format' => 'int64', 'example' => '3005153280'], + 'IndexSize' => ['description' => '索引占用的空间大小,单位为Byte。', 'type' => 'integer', 'format' => 'int64', 'example' => '1022296064'], + 'DataSize' => ['description' => '- 对于RDS MySQL和PolarDB MySQL版,该参数是数据占用的空间大小,单位为Byte。'."\n" + .'- 对于MongoDB,该参数是未压缩数据的大小,即数据量,单位为Byte。', 'type' => 'integer', 'format' => 'int64', 'example' => '1982857216'], + 'DataFree' => ['description' => '碎片空间大小,单位为Byte。'."\n" + ."\n" + .'> 该参数适用于RDS MySQL和PolarDB MySQL版。表碎片率计算方式一般为:`DataFree/(DataSize+IndexSize+DataFree)`,本接口中即`DataFree/PhyTotalSize`。', 'type' => 'integer', 'format' => 'int64', 'example' => '7340032'], + 'TableRows' => ['description' => '表行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '12794732'], + 'AvgRowLength' => ['description' => '平均行长,单位为Byte。', 'type' => 'integer', 'format' => 'int64', 'example' => '154'], + 'FragmentSize' => ['description' => '可回收空间大小(碎片空间大小),单位为Byte。'."\n" + ."\n" + .'> 该参数仅适用于MongoDB实例。表碎片率计算方式为:`FragmentSize/PhyTotalSize`。', 'type' => 'integer', 'format' => 'int64', 'example' => '362221568'], + ], ], ], ], ], ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"TaskId\\": \\"910f83f4b96df0524ddc5749f615****\\",\\n \\"TaskFinish\\": true,\\n \\"TaskSuccess\\": true,\\n \\"TaskState\\": \\"SUCCESS\\",\\n \\"TaskProgress\\": 100,\\n \\"TotalDbCount\\": 32,\\n \\"AnalyzedDbCount\\": 2,\\n \\"StorageAnalysisResult\\": {\\n \\"TotalStorageSize\\": 214748364800,\\n \\"TotalUsedStorageSize\\": 68345135104,\\n \\"TotalFreeStorageSize\\": 146403229696,\\n \\"DailyIncrement\\": 0,\\n \\"EstimateAvailableDays\\": 99,\\n \\"AnalysisSuccess\\": true,\\n \\"AnalysisErrorType\\": \\"DB_NOT_EXIST\\",\\n \\"NeedOptimizeItemList\\": [\\n {\\n \\"DbName\\": \\"testdb01\\",\\n \\"TableName\\": \\"test_table\\",\\n \\"OptimizeItemName\\": \\"NEED_OPTIMIZE_TABLE\\",\\n \\"OptimizeAdvice\\": \\"NEED_OPTIMIZE_TABLE\\",\\n \\"AssociatedData\\": \\"{\\\\n \\\\\\"autoIncrementCurrentValue\\\\\\": 2147483647,\\\\n \\\\\\"autoIncrementRatio\\\\\\": 1,\\\\n \\\\\\"dbName\\\\\\": \\\\\\"testdb01\\\\\\",\\\\n \\\\\\"maximumValue\\\\\\": 2147483647,\\\\n \\\\\\"columnName\\\\\\": \\\\\\"id\\\\\\",\\\\n \\\\\\"tableName\\\\\\": \\\\\\"test_table\\\\\\"\\\\n}\\"\\n }\\n ],\\n \\"TableStats\\": [\\n {\\n \\"DbName\\": \\"testdb01\\",\\n \\"TableName\\": \\"test_table\\",\\n \\"TableType\\": \\"BASE TABLE\\",\\n \\"Engine\\": \\"InnoDB\\",\\n \\"PhysicalFileSize\\": 3057655808,\\n \\"PhyTotalSize\\": 3012493312,\\n \\"TotalSize\\": 3005153280,\\n \\"IndexSize\\": 1022296064,\\n \\"DataSize\\": 1982857216,\\n \\"DataFree\\": 7340032,\\n \\"TableRows\\": 12794732,\\n \\"AvgRowLength\\": 154,\\n \\"FragmentSize\\": 362221568\\n }\\n ]\\n }\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": true\\n}","type":"json"}]', + 'title' => '获取空间分析任务的结果', + 'description' => '> 物理文件大小获取的是文件真实大小(需实例部署形态支持);表级别其他数据基于`information_schema.tables`。由于MySQL中统计信息不是实时更新,所以可能和物理文件大小存在差异,如有需要获取最新数据,可在业务低峰时期对相关的表执行`ANALYZE TABLE`。'."\n" + ."\n" + .'- 本接口只适用于RDS MySQL、PolarDB MySQL版和MongoDB实例。'."\n" + .'- 对于RDS MySQL和PolarDB MySQL版实例,本接口对应于旧版空间分析功能,该接口生成的任务无法在DAS控制台新版空间分析页面查看。如有需要查看任务及结果,请调用接口后自行保存数据。'."\n" + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:GetStorageAnalysisResult', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"TotalInstanceCount\\": 2,\\n \\"ConfigSuccessInstanceCount\\": 1,\\n \\"ConfigFailInstanceCount\\": 1,\\n \\"ConfigSuccessInstanceList\\": [\\n {\\n \\"ConfigSuccess\\": true,\\n \\"InstanceId\\": \\"rm-2ze8g2am97624****\\"\\n }\\n ],\\n \\"ConfigFailInstanceList\\": [\\n {\\n \\"ConfigSuccess\\": false,\\n \\"InstanceId\\": \\"rm-2ze9xrhze0709****\\",\\n \\"ErrorMessage\\": \\"cannot found instance by rm-2ze9xrhze0709****\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<DisableAutoResourceOptimizeRulesResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <TotalInstanceCount>2</TotalInstanceCount>\\n <ConfigSuccessInstanceCount>1</ConfigSuccessInstanceCount>\\n <ConfigFailInstanceCount>1</ConfigFailInstanceCount>\\n <ConfigSuccessInstanceList>\\n <ConfigSuccess>true</ConfigSuccess>\\n <InstanceId>rm-2ze8g2am97624****</InstanceId>\\n </ConfigSuccessInstanceList>\\n <ConfigFailInstanceList>\\n <ConfigSuccess>false</ConfigSuccess>\\n <InstanceId>rm-2ze9xrhze0709****</InstanceId>\\n <ErrorMessage>cannot found instance by rm-2ze9xrhze0709****</ErrorMessage>\\n </ConfigFailInstanceList>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</DisableAutoResourceOptimizeRulesResponse>","errorExample":""}]', - 'title' => '关闭空间碎片自动回收功能', - 'description' => '在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n", ], - 'GetAutoResourceOptimizeRules' => [ - 'summary' => '获取指定数据库实例的空间碎片自动回收规则。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetYaoChiAgent' => [ + 'path' => '/agent', + 'methods' => ['post'], + 'schemes' => ['https', 'sse'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhdmROFBLE'], ], 'parameters' => [ [ - 'name' => 'ConsoleContext', + 'name' => 'Query', 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], + 'schema' => ['description' => '问答自然语言描述', 'type' => 'string', 'required' => true, 'example' => 'Are there any issues or abnormalities with my instance rm-xxx?'], ], [ - 'name' => 'InstanceIds', + 'name' => 'SessionId', + 'in' => 'query', + 'schema' => ['description' => '可选,会话Id,格式为UUID字符串。'."\n" + .'未传入会创建新的会话,上下文对话需保持同一个会话Id', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-xxxxxxxxxxxx'], + ], + [ + 'name' => 'Source', 'in' => 'query', 'schema' => [ - 'description' => '数据库实例ID。'."\n" - ."\n" - .'- 数据格式为JSONArray,例如`[\'实例ID1\',\'实例ID2\']`,实例ID间用英文逗号(,)分隔。'."\n" - .'- 不输入数据库实例ID时,默认返回当前账号曾经开启过空间碎片自动回收功能的全部数据库实例信息,包括:'."\n" - .' - 正在使用该功能的数据库实例。'."\n" - .' - 已关闭该功能的数据库实例(包含已经关闭了DAS企业版数据库实例,但不包含已经释放的数据库实例)。', + 'description' => '非必填,云产品来源,指定问答所属的云产品,未填写默认为yaochi', 'type' => 'string', 'required' => false, - 'example' => '[\'rm-2ze8g2am97624****\',\'rm-2vc54m2a6pd6p****\',\'rm-2ze9xrhze0709****\',\'rm-2ze8g2am97627****\']', + 'enumValueTitles' => ['tair' => 'tair', 'dbs' => 'dbs', 'polardb-ai' => 'polardb-ai', 'polarx' => 'polarx', 'yaochi' => 'yaochi', 'polarx-light' => 'polarx-light', 'lindorm' => 'lindorm', 'mongodb' => 'mongodb', 'polardb' => 'polardb'], + 'example' => 'yaochi', ], ], + [ + 'name' => 'ExtraInfo', + 'in' => 'query', + 'schema' => ['description' => '非必填,附加信息,json字符串', 'type' => 'string', 'required' => false, 'example' => '{}'], + ], + [ + 'name' => 'ImageKeys', + 'in' => 'query', + 'schema' => ['type' => 'string'], + ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'Data' => [ - 'description' => '返回的数据。'."\n" - ."\n", - 'type' => 'object', - 'properties' => [ - 'TotalAutoResourceOptimizeRulesCount' => [ - 'description' => '所有开启过空间碎片自动回收功能的数据库实例数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '3', - ], - 'EnableAutoResourceOptimizeCount' => [ - 'description' => '正在使用空间碎片自动回收功能的数据库实例数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'TurnOffAutoResourceOptimizeCount' => [ - 'description' => '曾经开启并且当前已关闭空间碎片自动回收功能的数据库实例数量。'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'HasEnableRuleButNotDasProCount' => [ - 'description' => '已开启并且未关闭空间碎片自动回收功能,但已不再使用DAS企业版的数据库实例数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'EnableAutoResourceOptimizeList' => [ - 'description' => '正在使用空间碎片自动回收功能的数据库实例信息列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'InstanceId' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze8g2am97624****', - ], - 'AutoDefragment' => [ - 'description' => '是否开启了自动空间碎片回收功能。'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'TableSpaceSize' => [ - 'description' => '触发空间碎片自动回收单个物理表的最小空间,单位为GB。', - 'type' => 'number', - 'format' => 'double', - 'example' => '10', - ], - 'DasProOn' => [ - 'description' => '是否开启了DAS企业版。'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'TableFragmentationRatio' => [ - 'description' => '触发空间碎片自动回收单个物理表的碎片率。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0.2', - ], - 'UserId' => [ - 'description' => '用户ID,即创建数据库实例的阿里云主账号ID。', - 'type' => 'string', - 'example' => '140692647406****', - ], - ], - ], - ], - 'TurnOffAutoResourceOptimizeList' => [ - 'description' => '曾经开启并且当前已关闭空间碎片自动回收功能的数据库实例信息列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'InstanceId' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'example' => 'rm-2vc54m2a6pd6p****', - ], - 'AutoDefragment' => [ - 'description' => '是否开启了自动空间碎片回收功能。'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'TableSpaceSize' => [ - 'description' => '触发空间碎片自动回收单个物理表的最小空间,单位为GB。', - 'type' => 'number', - 'format' => 'double', - 'example' => '10', - ], - 'DasProOn' => [ - 'description' => '是否开启了DAS企业版。'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'TableFragmentationRatio' => [ - 'description' => '触发空间碎片自动回收单个物理表的碎片率。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0.2', - ], - 'UserId' => [ - 'description' => '用户ID,即创建数据库实例的阿里云主账号ID。', - 'type' => 'string', - 'example' => '140692647406****', - ], - ], - ], - ], - 'HasEnableRuleButNotDasProList' => [ - 'description' => '已开启并且未关闭空间碎片自动回收功能,但已不再使用DAS企业版的数据库实例列表。'."\n" - .'> 此类数据库实例不会执行空间碎片自动回收,直至再次为数据库实例开启DAS企业版。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'InstanceId' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze9xrhze0709****', - ], - 'AutoDefragment' => [ - 'description' => '是否开启了自动空间碎片回收功能。'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'TableSpaceSize' => [ - 'description' => '触发空间碎片自动回收单个物理表的最小空间,单位为GB。', - 'type' => 'number', - 'format' => 'double', - 'example' => '10', - ], - 'DasProOn' => [ - 'description' => '是否开启了DAS企业版。'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'TableFragmentationRatio' => [ - 'description' => '触发空间碎片自动回收单个物理表的碎片率。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0.2', - ], - 'UserId' => [ - 'description' => '用户ID,即创建数据库实例的阿里云主账号ID。', - 'type' => 'string', - 'example' => '140692647406****', - ], - ], - ], - ], - 'NeverEnableAutoResourceOptimizeOrReleasedInstanceCount' => [ - 'description' => '从未开启过空间碎片自动回收或者实例不存在的数据库实例数量。'."\n" - .'> 实例不存在:数据库实例已经释放或者传入的数据库实例ID存在错误。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'NeverEnableAutoResourceOptimizeOrReleasedInstanceIdList' => [ - 'description' => '从未开启过空间碎片自动回收或者实例不存在的数据库实例信息列表。', - 'type' => 'array', - 'items' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze8g2am97624****', - ], + 'Content' => ['title' => 'Id of the request', 'description' => '回答内容', 'type' => 'string', 'example' => 'xxx'], + 'RequestId' => ['description' => '请求ID', 'type' => 'string', 'example' => '7172BECE-588A-5961-8126-C216E16B****'], + 'ReasoningContent' => ['description' => '模型思维内容', 'type' => 'string', 'example' => 'xxx'], + 'Product' => ['description' => '云产品类型', 'type' => 'string', 'example' => 'polardb'], + 'FunctionCall' => [ + 'description' => '工具调用列表', + 'type' => 'array', + 'items' => [ + 'description' => '字符串列表', + 'type' => 'object', + 'properties' => [ + 'Name' => ['description' => '调用工具名称', 'type' => 'string', 'example' => 'sqlReview'], + 'Arguments' => ['description' => '调用工具参数', 'type' => 'string', 'example' => '{"arg": "xxx"}'], + 'Id' => ['description' => '工具ID', 'type' => 'string', 'example' => '12345'], + 'Status' => ['description' => '工具调用状态', 'type' => 'string', 'example' => 'RUNNING'], ], ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', + 'UiFunctionCall' => [ + 'description' => '卡片工具调用列表', + 'type' => 'array', + 'items' => [ + 'description' => '字符串列表', + 'type' => 'object', + 'properties' => [ + 'ArgsText' => ['description' => '卡片工具参数', 'type' => 'string', 'example' => '{"arg": "xxx"}'], + 'ToolName' => ['description' => '卡片工具名称', 'type' => 'string', 'example' => 'card'], + ], + ], ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', + 'SessionId' => ['description' => 'SessionId, 同请求参数中的 SessionId', 'type' => 'string', 'example' => '123e4567-e89b-12d3-a456-xxxxxxxxxxxx'], + 'QueryId' => ['description' => 'QueryId, 同请求参数中的 QueryId', 'type' => 'string', 'example' => '123e4567-e89b-12d3-a456-xxxxxxxxxxxx'], + 'SubAgentCall' => [ + 'description' => '子Agent调用信息列表', + 'type' => 'array', + 'items' => [ + 'description' => '字符串列表', + 'type' => 'object', + 'properties' => [ + 'SubAgentId' => ['description' => '子AgentID', 'type' => 'string', 'example' => '12345'], + 'SubAgentName' => ['description' => '子Agent名称', 'type' => 'string', 'example' => 'XX Agent'], + 'Status' => ['description' => '子Agent状态', 'type' => 'string', 'example' => 'running'], + ], + ], ], + 'ParentId' => ['description' => '仅当消息为子Agent输出时,存在ParentId字段,且值为子AgentID', 'type' => 'string', 'example' => '12345'], + ], + ], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '瑶池Agent大模型能力接口', + 'summary' => '瑶池Agent大模型能力接口,可以进行知识问答,性能诊断等功能', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetYaoChiAgent', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Content\\": \\"xxx\\",\\n \\"RequestId\\": \\"7172BECE-588A-5961-8126-C216E16B****\\",\\n \\"ReasoningContent\\": \\"xxx\\",\\n \\"Product\\": \\"polardb\\",\\n \\"FunctionCall\\": [\\n {\\n \\"Name\\": \\"sqlReview\\",\\n \\"Arguments\\": \\"{\\\\\\"arg\\\\\\": \\\\\\"xxx\\\\\\"}\\",\\n \\"Id\\": \\"12345\\",\\n \\"Status\\": \\"RUNNING\\"\\n }\\n ],\\n \\"UiFunctionCall\\": [\\n {\\n \\"ArgsText\\": \\"{\\\\\\"arg\\\\\\": \\\\\\"xxx\\\\\\"}\\",\\n \\"ToolName\\": \\"card\\"\\n }\\n ],\\n \\"SessionId\\": \\"123e4567-e89b-12d3-a456-xxxxxxxxxxxx\\",\\n \\"QueryId\\": \\"123e4567-e89b-12d3-a456-xxxxxxxxxxxx\\",\\n \\"SubAgentCall\\": [\\n {\\n \\"SubAgentId\\": \\"12345\\",\\n \\"SubAgentName\\": \\"XX Agent\\",\\n \\"Status\\": \\"running\\"\\n }\\n ],\\n \\"ParentId\\": \\"12345\\"\\n}","type":"json"}]', + ], + 'KillInstanceAllSession' => [ + 'summary' => '调用KillInstanceAllSession接口,结束指定实例上的全部会话。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ + [ + 'name' => 'ConsoleContext', + 'in' => 'query', + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'r-8vbcyr4sw0c4yc****'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'Data' => ['description' => '备用参数。', 'type' => 'string', 'example' => 'None'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": \\"None\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<KillInstanceAllSessionResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</KillInstanceAllSessionResponse>","errorExample":""}]', + 'title' => '结束全部会话', + 'description' => '- 本接口只适用于Redis引擎。'."\n" + .'- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于4.3.3,建议使用最新版本。'."\n" + .'- 使用DAS的SDK的版本为1.0.2或以上。'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'hdm:KillInstanceAllSession', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"TotalAutoResourceOptimizeRulesCount\\": 3,\\n \\"EnableAutoResourceOptimizeCount\\": 1,\\n \\"TurnOffAutoResourceOptimizeCount\\": 1,\\n \\"HasEnableRuleButNotDasProCount\\": 1,\\n \\"EnableAutoResourceOptimizeList\\": [\\n {\\n \\"InstanceId\\": \\"rm-2ze8g2am97624****\\",\\n \\"AutoDefragment\\": true,\\n \\"TableSpaceSize\\": 10,\\n \\"DasProOn\\": true,\\n \\"TableFragmentationRatio\\": 0.2,\\n \\"UserId\\": \\"140692647406****\\"\\n }\\n ],\\n \\"TurnOffAutoResourceOptimizeList\\": [\\n {\\n \\"InstanceId\\": \\"rm-2vc54m2a6pd6p****\\",\\n \\"AutoDefragment\\": false,\\n \\"TableSpaceSize\\": 10,\\n \\"DasProOn\\": true,\\n \\"TableFragmentationRatio\\": 0.2,\\n \\"UserId\\": \\"140692647406****\\"\\n }\\n ],\\n \\"HasEnableRuleButNotDasProList\\": [\\n {\\n \\"InstanceId\\": \\"rm-2ze9xrhze0709****\\",\\n \\"AutoDefragment\\": true,\\n \\"TableSpaceSize\\": 10,\\n \\"DasProOn\\": false,\\n \\"TableFragmentationRatio\\": 0.2,\\n \\"UserId\\": \\"140692647406****\\"\\n }\\n ],\\n \\"NeverEnableAutoResourceOptimizeOrReleasedInstanceCount\\": 1,\\n \\"NeverEnableAutoResourceOptimizeOrReleasedInstanceIdList\\": [\\n \\"rm-2ze8g2am97624****\\"\\n ]\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetAutoResourceOptimizeRulesResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <TotalAutoResourceOptimizeRulesCount>3</TotalAutoResourceOptimizeRulesCount>\\n <EnableAutoResourceOptimizeCount>1</EnableAutoResourceOptimizeCount>\\n <TurnOffAutoResourceOptimizeCount>1</TurnOffAutoResourceOptimizeCount>\\n <HasEnableRuleButNotDasProCount>1</HasEnableRuleButNotDasProCount>\\n <EnableAutoResourceOptimizeList>\\n <InstanceId>rm-2ze8g2am97624****</InstanceId>\\n <AutoDefragment>true</AutoDefragment>\\n <TableSpaceSize>10</TableSpaceSize>\\n <DasProOn>true</DasProOn>\\n <TableFragmentationRatio>0.2</TableFragmentationRatio>\\n <UserId>140692647406****</UserId>\\n </EnableAutoResourceOptimizeList>\\n <TurnOffAutoResourceOptimizeList>\\n <InstanceId>rm-2vc54m2a6pd6p****</InstanceId>\\n <AutoDefragment>false</AutoDefragment>\\n <TableSpaceSize>10</TableSpaceSize>\\n <DasProOn>true</DasProOn>\\n <TableFragmentationRatio>0.2</TableFragmentationRatio>\\n <UserId>140692647406****</UserId>\\n </TurnOffAutoResourceOptimizeList>\\n <HasEnableRuleButNotDasProList>\\n <InstanceId>rm-2ze9xrhze0709****</InstanceId>\\n <AutoDefragment>true</AutoDefragment>\\n <TableSpaceSize>10</TableSpaceSize>\\n <DasProOn>false</DasProOn>\\n <TableFragmentationRatio>0.2</TableFragmentationRatio>\\n <UserId>140692647406****</UserId>\\n </HasEnableRuleButNotDasProList>\\n <NeverEnableAutoResourceOptimizeOrReleasedInstanceCount>1</NeverEnableAutoResourceOptimizeOrReleasedInstanceCount>\\n <NeverEnableAutoResourceOptimizeOrReleasedInstanceIdList>rm-2ze8g2am97624****</NeverEnableAutoResourceOptimizeOrReleasedInstanceIdList>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</GetAutoResourceOptimizeRulesResponse>","errorExample":""}]', - 'title' => '获取空间碎片自动回收规则', - 'description' => '使用该接口需满足以下前提条件:'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - ."\n" - .'- 实例类型为RDS MySQL高可用系列。'."\n" - ."\n" - .'- 数据库实例的CPU规格不小于4核,且**innodb_file_per_table**参数值为**ON**。', ], 'ModifyAutoScalingConfig' => [ 'summary' => '调用ModifyAutoScalingConfig接口,修改实例弹性伸缩功能配置。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****', - ], + 'schema' => ['description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'], ], [ 'name' => 'Spec', @@ -22192,26 +16669,14 @@ 'description' => '规格弹性伸缩功能配置项。', 'type' => 'object', 'properties' => [ - 'Apply' => [ - 'description' => '是否应用规格弹性伸缩功能配置项**Spec**下的配置:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - 'default' => 'false', - ], - 'Upgrade' => [ - 'description' => '是否开启规格自动扩容:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - 'default' => 'false', - ], + 'Apply' => ['description' => '是否应用规格弹性伸缩功能配置项**Spec**下的配置:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'default' => 'false'], + 'Upgrade' => ['description' => '是否开启规格自动扩容:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'default' => 'false'], 'CpuUsageUpperThreshold' => [ 'description' => '触发规格自动扩容的CPU平均利用率阈值,单位为%,取值:'."\n" ."\n" @@ -22227,13 +16692,7 @@ 'format' => 'int32', 'required' => false, 'example' => '70', - 'enum' => [ - '50', - '60', - '70', - '80', - '90', - ], + 'enum' => ['50', '60', '70', '80', '90'], ], 'MemUsageUpperThreshold' => [ 'description' => '触发规格自动扩容的内存平均利用率阈值,单位为%,取值:'."\n" @@ -22249,77 +16708,42 @@ 'format' => 'int32', 'required' => false, 'example' => '70', - 'enum' => [ - '50', - '60', - '70', - '80', - '90', - ], - ], - 'MaxSpec' => [ - 'description' => '自动扩容的规格上限。仅支持扩容到数据库实例同系列的更高规格,详情请参见各数据库实例的产品规格文档:'."\n" - .'<props="china">'."\n" - ."\n" - .'- PolarDB MySQL版的集群版请参见[计算节点规格](~~102542~~)。'."\n" - .'- RDS MySQL高可用系列云盘版请参见[产品规格](~~276974~~)。'."\n" - .'- Redis云原生(原云盘)开源版请参见[实例规格](~~144986~~)。'."\n" - ."\n" - .'</props>'."\n" - ."\n" - .'<props="intl">'."\n" - ."\n" - .'- PolarDB MySQL版的集群版请参见[计算节点规格](~~102542~~)。'."\n" - .'- RDS MySQL高可用系列云盘版请参见[产品规格](~~276974~~)。'."\n" - ."\n" - .'</props>', - 'type' => 'string', - 'required' => false, - 'example' => 'polar.mysql.x8.12xlarge'."\n", - ], - 'MaxReadOnlyNodes' => [ - 'description' => '实例只读节点数的最大值。'."\n" - ."\n" - .'><notice>目标数据库实例为PolarDB MySQL版的集群版时,需要设置本参数。'."\n" - .'></notice>', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '15', - 'minimum' => '1', - 'example' => '10', - ], - 'ObservationWindowSize' => [ - 'description' => '观测窗口。参数值由数值和时间单位后缀组成,支持的数据库实例及其取值如下,其中时间后缀**m**表示分钟,**h**表示小时:'."\n" - ."\n" - .'- PolarDB MySQL版的集群版:**5m**、**10m**、**15m**、**30m**。'."\n" - .'- RDS MySQL高可用系列云盘版:**5m**、**20m**、**30m**、**40m**、**1h**。'."\n" - .'- Redis云原生(原云盘)开源版:**5m**、**10m**、**15m**、**30m**。', - 'type' => 'string', - 'required' => false, - 'example' => '5m', - ], - 'CoolDownTime' => [ - 'description' => '静默期。参数值由数值和时间单位后缀组成,支持的数据库实例及其取值如下,其中时间单位后缀**m**表示分钟,**h**表示小时,**d**:表示天:'."\n" - ."\n" - .'- PolarDB MySQL版的集群版:**5m**、**10m**、**30m**、**1h**、**2h**、**3h**、**1d**、**7d**。'."\n" - .'- RDS MySQL高可用系列云盘版:**5m**、**10m**、**30m**、**1h**、**2h**、**3h**、**1d**、**7d**。', - 'type' => 'string', - 'required' => false, - 'example' => '5m', - ], - 'Downgrade' => [ - 'description' => '是否开启规格自动回缩:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'><notice>目标数据库实例为PolarDB MySQL版的集群版、RDS MySQL高可用系列云盘版时,需要设置本参数。'."\n" - .'></notice>', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - 'default' => 'false', + 'enum' => ['50', '60', '70', '80', '90'], ], + 'MaxSpec' => ['description' => '自动扩容的规格上限。仅支持扩容到数据库实例同系列的更高规格,详情请参见各数据库实例的产品规格文档:'."\n" + .'<props="china">'."\n" + ."\n" + .'- PolarDB MySQL版的集群版请参见[计算节点规格](~~102542~~)。'."\n" + .'- RDS MySQL高可用系列云盘版请参见[产品规格](~~276974~~)。'."\n" + .'- Redis云原生(原云盘)开源版请参见[实例规格](~~144986~~)。'."\n" + ."\n" + .'</props>'."\n" + ."\n" + .'<props="intl">'."\n" + ."\n" + .'- PolarDB MySQL版的集群版请参见[计算节点规格](~~102542~~)。'."\n" + .'- RDS MySQL高可用系列云盘版请参见[产品规格](~~276974~~)。'."\n" + ."\n" + .'</props>', 'type' => 'string', 'required' => false, 'example' => 'polar.mysql.x8.12xlarge'."\n"], + 'MaxReadOnlyNodes' => ['description' => '实例只读节点数的最大值。'."\n" + ."\n" + .'><notice>目标数据库实例为PolarDB MySQL版的集群版时,需要设置本参数。'."\n" + .'></notice>', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '15', 'minimum' => '1', 'example' => '10'], + 'ObservationWindowSize' => ['description' => '观测窗口。参数值由数值和时间单位后缀组成,支持的数据库实例及其取值如下,其中时间后缀**m**表示分钟,**h**表示小时:'."\n" + ."\n" + .'- PolarDB MySQL版的集群版:**5m**、**10m**、**15m**、**30m**。'."\n" + .'- RDS MySQL高可用系列云盘版:**5m**、**20m**、**30m**、**40m**、**1h**。'."\n" + .'- Redis云原生(原云盘)开源版:**5m**、**10m**、**15m**、**30m**。', 'type' => 'string', 'required' => false, 'example' => '5m'], + 'CoolDownTime' => ['description' => '静默期。参数值由数值和时间单位后缀组成,支持的数据库实例及其取值如下,其中时间单位后缀**m**表示分钟,**h**表示小时,**d**:表示天:'."\n" + ."\n" + .'- PolarDB MySQL版的集群版:**5m**、**10m**、**30m**、**1h**、**2h**、**3h**、**1d**、**7d**。'."\n" + .'- RDS MySQL高可用系列云盘版:**5m**、**10m**、**30m**、**1h**、**2h**、**3h**、**1d**、**7d**。', 'type' => 'string', 'required' => false, 'example' => '5m'], + 'Downgrade' => ['description' => '是否开启规格自动回缩:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'><notice>目标数据库实例为PolarDB MySQL版的集群版、RDS MySQL高可用系列云盘版时,需要设置本参数。'."\n" + .'></notice>', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'default' => 'false'], ], 'required' => false, ], @@ -22332,26 +16756,14 @@ 'description' => '存储自动扩容功能配置项。', 'type' => 'object', 'properties' => [ - 'Apply' => [ - 'description' => '是否应用存储自动扩容功能配置项**Storage**下的配置:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - 'default' => 'false', - ], - 'Upgrade' => [ - 'description' => '是否开启存储自动扩容:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - 'default' => 'false', - ], + 'Apply' => ['description' => '是否应用存储自动扩容功能配置项**Storage**下的配置:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'default' => 'false'], + 'Upgrade' => ['description' => '是否开启存储自动扩容:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'default' => 'false'], 'DiskUsageUpperThreshold' => [ 'description' => '触发存储自动扩容的存储空间平均利用率阈值,单位为%,取值:'."\n" .'- **50**'."\n" @@ -22363,28 +16775,14 @@ 'format' => 'int32', 'required' => false, 'example' => '70', - 'enum' => [ - '50', - '60', - '70', - '80', - '90', - ], - ], - 'MaxStorage' => [ - 'description' => '存储空间上限,需要大于等于实例当前存储空间总大小,取值:'."\n" - ."\n" - .'- ESSD云盘上限:32000 GB。'."\n" - .'- SSD云盘上限:6000 GB。'."\n" - ."\n" - .'> SSD云盘已下线,建议[升级至ESSD云盘](~~314678~~)。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '32000', - 'minimum' => '20', - 'example' => '32000', + 'enum' => ['50', '60', '70', '80', '90'], ], + 'MaxStorage' => ['description' => '存储空间上限,需要大于等于实例当前存储空间总大小,取值:'."\n" + ."\n" + .'- ESSD云盘上限:32000 GB。'."\n" + .'- SSD云盘上限:6000 GB。'."\n" + ."\n" + .'> SSD云盘已下线,建议[升级至ESSD云盘](~~314678~~)。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '32000', 'minimum' => '20', 'example' => '32000'], ], 'required' => false, ], @@ -22397,26 +16795,14 @@ 'description' => '带宽弹性伸缩功能配置项。', 'type' => 'object', 'properties' => [ - 'Apply' => [ - 'description' => '是否应用带宽弹性伸缩功能配置项**Bandwidth**下的配置:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - 'default' => 'false', - ], - 'Upgrade' => [ - 'description' => '是否开启带宽自动扩展:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - 'default' => 'false', - ], + 'Apply' => ['description' => '是否应用带宽弹性伸缩功能配置项**Bandwidth**下的配置:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'default' => 'false'], + 'Upgrade' => ['description' => '是否开启带宽自动扩展:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'default' => 'false'], 'BandwidthUsageUpperThreshold' => [ 'description' => '触发带宽自动扩展的带宽平均使用率阈值,单位为%,取值:'."\n" ."\n" @@ -22445,24 +16831,12 @@ 'type' => 'string', 'required' => false, 'example' => '5m', - 'enum' => [ - '1m', - '5m', - '10m', - '15m', - '30m', - ], - ], - 'Downgrade' => [ - 'description' => '是否开启带宽自动回缩:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - 'default' => 'false', + 'enum' => ['1m', '5m', '10m', '15m', '30m'], ], + 'Downgrade' => ['description' => '是否开启带宽自动回缩:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'default' => 'false'], 'BandwidthUsageLowerThreshold' => [ 'description' => '触发带宽自动回缩的带宽平均使用率阈值,单位为%,取值:'."\n" ."\n" @@ -22489,29 +16863,17 @@ 'description' => '分片弹性伸缩功能配置项。', 'type' => 'object', 'properties' => [ - 'Apply' => [ - 'description' => '是否应用分片弹性伸缩功能配置项**Shard**下的配置:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'><notice>仅当目标数据库实例为中国站Redis云原生(原云盘)版集群架构时,支持分片弹性伸缩功能。'."\n" - .'></notice>', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - 'default' => 'false', - ], - 'Upgrade' => [ - 'description' => '是否开启自动增加分片:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - 'default' => 'false', - ], + 'Apply' => ['description' => '是否应用分片弹性伸缩功能配置项**Shard**下的配置:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'><notice>仅当目标数据库实例为中国站Redis云原生(原云盘)版集群架构时,支持分片弹性伸缩功能。'."\n" + .'></notice>', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'default' => 'false'], + 'Upgrade' => ['description' => '是否开启自动增加分片:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'default' => 'false'], 'MemUsageUpperThreshold' => [ 'description' => '触发自动增加分片的内存平均利用率阈值,单位为%,取值:'."\n" ."\n" @@ -22524,23 +16886,9 @@ 'format' => 'int32', 'required' => false, 'example' => '70', - 'enum' => [ - '50', - '60', - '70', - '80', - '90', - ], - ], - 'MaxShards' => [ - 'description' => '实例总分片数的最大值, 取值为正整数,取值范围:4~32。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '64', - 'minimum' => '2', - 'example' => '16', + 'enum' => ['50', '60', '70', '80', '90'], ], + 'MaxShards' => ['description' => '实例总分片数的最大值, 取值为正整数,取值范围:4~32。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '64', 'minimum' => '2', 'example' => '16'], 'UpgradeObservationWindowSize' => [ 'description' => '自动增加分片观测窗口。参数值由数值和时间单位后缀组成,其中时间单位后缀**m**表示分钟:'."\n" ."\n" @@ -22551,25 +16899,14 @@ 'type' => 'string', 'required' => false, 'example' => '5m', - 'enum' => [ - '5m', - '10m', - '15m', - '30m', - ], - ], - 'Downgrade' => [ - 'description' => '自动减少分片是否开启:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'>自动减少分片功能目前在灰度发布中。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - 'default' => 'false', + 'enum' => ['5m', '10m', '15m', '30m'], ], + 'Downgrade' => ['description' => '自动减少分片是否开启:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'>自动减少分片功能目前在灰度发布中。', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'default' => 'false'], 'MemUsageLowerThreshold' => [ 'description' => '触发自动减少分片的内存平均利用率阈值,单位为%,取值:'."\n" ."\n" @@ -22580,21 +16917,9 @@ 'format' => 'int32', 'required' => false, 'example' => '30', - 'enum' => [ - '10', - '20', - '30', - ], - ], - 'MinShards' => [ - 'description' => '实例总分片数的最小值,取值为正整数,取值范围:4~32。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '64', - 'minimum' => '2', - 'example' => '4', + 'enum' => ['10', '20', '30'], ], + 'MinShards' => ['description' => '实例总分片数的最小值,取值为正整数,取值范围:4~32。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '64', 'minimum' => '2', 'example' => '4'], 'DowngradeObservationWindowSize' => [ 'description' => '自动减少分片观测窗口,参数由数值和时间单位后缀组成,其中时间单位后缀**h**表示小时,**d**表示天:'."\n" ."\n" @@ -22606,13 +16931,7 @@ 'type' => 'string', 'required' => false, 'example' => '1h', - 'enum' => [ - '1h', - '2h', - '3h', - '1d', - '7d', - ], + 'enum' => ['1h', '2h', '3h', '1d', '7d'], ], ], 'required' => false, @@ -22626,26 +16945,14 @@ 'description' => '资源弹性伸缩功能配置项。', 'type' => 'object', 'properties' => [ - 'Apply' => [ - 'description' => '是否应用资源弹性伸缩功能配置项**Resource**下的配置:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - 'default' => 'false', - ], - 'Enable' => [ - 'description' => '是否开启资源弹性伸缩:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - 'default' => 'false', - ], + 'Apply' => ['description' => '是否应用资源弹性伸缩功能配置项**Resource**下的配置:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'default' => 'false'], + 'Enable' => ['description' => '是否开启资源弹性伸缩:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'default' => 'false'], 'CpuUsageUpperThreshold' => [ 'description' => '触发资源自动扩容的CPU平均利用率阈值,单位为%,取值:'."\n" ."\n" @@ -22656,11 +16963,7 @@ 'format' => 'int32', 'required' => false, 'example' => '70', - 'enum' => [ - '70', - '80', - '90', - ], + 'enum' => ['70', '80', '90'], ], 'UpgradeObservationWindowSize' => [ 'description' => '扩容观测窗口。参数值由数值和时间单位后缀组成,其中时间单位后缀**m**表示分钟:'."\n" @@ -22673,23 +16976,9 @@ .'- **30m**', 'type' => 'string', 'required' => false, - 'enumValueTitles' => [ - '30m' => '30m', - '5m' => '5m', - '3m' => '3m', - '1m' => '1m', - '10m' => '10m', - '20m' => '20m', - ], + 'enumValueTitles' => ['30m' => '30m', '5m' => '5m', '3m' => '3m', '1m' => '1m', '10m' => '10m', '20m' => '20m'], 'example' => '5m', - 'enum' => [ - '1m', - '3m', - '5m', - '10m', - '20m', - '30m', - ], + 'enum' => ['1m', '3m', '5m', '10m', '20m', '30m'], ], 'DowngradeObservationWindowSize' => [ 'description' => '缩容观测窗口。参数值由数值和时间单位后缀组成,其中时间单位后缀**m**表示分钟:'."\n" @@ -22703,14 +16992,7 @@ 'type' => 'string', 'required' => false, 'example' => '5m', - 'enum' => [ - '1m', - '3m', - '5m', - '10m', - '20m', - '30m', - ], + 'enum' => ['1m', '3m', '5m', '10m', '20m', '30m'], ], ], 'required' => false, @@ -22722,50 +17004,28 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - ."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + ."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyAutoScalingConfigResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</ModifyAutoScalingConfigResponse>","errorExample":""}]', 'title' => '修改实例弹性伸缩功能配置', 'description' => '<props="china">API支持修改数据库实例的**规格弹性伸缩**功能、**存储自动扩容**功能、**带宽弹性伸缩**功能、**分片弹性伸缩**功能以及**资源弹性伸缩**功能:</props>'."\n" .'<props="intl">API支持修改数据库实例的**规格弹性伸缩**功能、**存储自动扩容**功能、**带宽弹性伸缩**功能以及**资源弹性伸缩**功能:</props>'."\n" @@ -22812,381 +17072,32 @@ .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" ."\n" .'</props>', - ], - 'DescribeAutoScalingConfig' => [ - 'summary' => '调用DescribeAutoScalingConfig接口,查询实例弹性伸缩功能配置信息。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyAutoScalingConfig'], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - ], - 'parameters' => [ + 'ramActions' => [ [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'pc-2ze1prap1k46r****', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '实例弹性伸缩功能配置信息。', - 'type' => 'object', - 'properties' => [ - 'Spec' => [ - 'description' => '规格弹性伸缩功能配置信息。', - 'type' => 'object', - 'properties' => [ - 'Upgrade' => [ - 'description' => '规格自动扩容是否开启:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'CpuUsageUpperThreshold' => [ - 'description' => '触发规格自动扩容的CPU平均利用率阈值,单位为%。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '70', - ], - 'MemUsageUpperThreshold' => [ - 'description' => '触发规格自动扩容的内存平均利用率阈值,单位为%。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '70', - ], - 'MaxSpec' => [ - 'description' => '自动扩容的规格上限。详情请参见各数据库实例的产品规格文档:'."\n" - .'<props="china">'."\n" - ."\n" - .'- PolarDB MySQL版的集群版请参见[计算节点规格](~~102542~~)。'."\n" - .'- RDS MySQL高可用系列云盘版请参见[产品规格](~~276974~~)。'."\n" - .'- Redis社区云盘版请参见[实例规格](~~144986~~)。'."\n" - ."\n" - .'</props>'."\n" - ."\n" - .'<props="intl">'."\n" - ."\n" - .'- PolarDB MySQL版的集群版请参见[计算节点规格](~~102542~~)。'."\n" - .'- RDS MySQL高可用系列云盘版请参见[产品规格](~~276974~~)。'."\n" - ."\n" - .'</props>', - 'type' => 'string', - 'example' => 'polar.mysql.x8.12xlarge', - ], - 'MaxReadOnlyNodes' => [ - 'description' => '实例只读节点数的最大值。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'ObservationWindowSize' => [ - 'description' => '观测窗口。 返回值由数值和时间单位后缀组成,其中时间单位后缀含义如下:'."\n" - ."\n" - .'- **s**:表示秒。'."\n" - .'- **m**:表示分钟。'."\n" - .'- **h**:表示小时。'."\n" - .'- **d**:表示天。 '."\n" - ."\n" - .'> 例如,返回**5m**表示5分钟。', - 'type' => 'string', - 'example' => '5m', - ], - 'CoolDownTime' => [ - 'description' => '静默期。返回值由数值和时间单位后缀组成,其中时间单位后缀含义如下:'."\n" - ."\n" - .'- **s**:表示秒。'."\n" - .'- **m**:表示分钟。'."\n" - .'- **h**:表示小时。'."\n" - .'- **d**:表示天。 '."\n" - ."\n" - .'> 例如,返回**5m**表示5分钟。', - 'type' => 'string', - 'example' => '5m', - ], - 'Downgrade' => [ - 'description' => '规格自动回缩是否开启:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - 'Storage' => [ - 'description' => '实例存储自动扩容功能配置信息。', - 'type' => 'object', - 'properties' => [ - 'Upgrade' => [ - 'description' => '存储自动扩容是否开启:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'DiskUsageUpperThreshold' => [ - 'description' => '触发存储自动扩容的存储空间平均利用率阈值,单位为%。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '70', - ], - 'MaxStorage' => [ - 'description' => '存储空间上限,单位为GB。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '32000', - ], - ], - ], - 'Resource' => [ - 'description' => '实例本地资源弹性伸缩功能配置信息。', - 'type' => 'object', - 'properties' => [ - 'Enable' => [ - 'description' => '本地资源弹性伸缩是否开启:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'CpuUsageUpperThreshold' => [ - 'description' => '触发本地资源自动扩容的CPU平均利用率阈值,单位为%。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '70', - ], - 'CpuStep' => [ - 'description' => 'CPU扩容步长。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'UpgradeObservationWindowSize' => [ - 'description' => '扩容观测窗口。返回值由数值和时间单位后缀组成,其中时间单位后缀含义如下:'."\n" - ."\n" - .'- **s**:表示秒。'."\n" - .'- **m**:表示分钟。'."\n" - .'- **h**:表示小时。'."\n" - .'- **d**:表示天。 '."\n" - ."\n" - .'> 例如,返回**5m**表示5分钟。', - 'type' => 'string', - 'example' => '5m', - ], - 'DowngradeObservationWindowSize' => [ - 'description' => '缩容观测窗口。返回值由数值和时间单位后缀组成,其中时间单位后缀含义如下:'."\n" - ."\n" - .'- **s**:表示秒。'."\n" - .'- **m**:表示分钟。'."\n" - .'- **h**:表示小时。'."\n" - .'- **d**:表示天。 '."\n" - ."\n" - .'> 例如,返回**5m**表示5分钟。', - 'type' => 'string', - 'example' => '5m', - ], - ], - ], - 'Shard' => [ - 'description' => '实例分片弹性伸缩功能配置信息。', - 'type' => 'object', - 'properties' => [ - 'Upgrade' => [ - 'description' => '自动增加分片是否开启:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'MemUsageUpperThreshold' => [ - 'description' => '触发自动增加分片的内存平均利用率阈值,单位为%。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '70', - ], - 'MaxShards' => [ - 'description' => '实例总分片数的最大值。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '16', - ], - 'UpgradeObservationWindowSize' => [ - 'description' => '自动增加分片观测窗口。返回值由数值和时间单位后缀组成,其中时间单位后缀含义如下:'."\n" - ."\n" - .'- **s**:表示秒。'."\n" - .'- **m**:表示分钟。'."\n" - .'- **h**:表示小时。'."\n" - .'- **d**:表示天。 '."\n" - ."\n" - .'> 例如,返回**5m**表示5分钟。', - 'type' => 'string', - 'example' => '5m', - ], - 'Downgrade' => [ - 'description' => '自动减少分片是否开启:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'MemUsageLowerThreshold' => [ - 'description' => '触发自动减少分片的内存平均利用率阈值,单位为%。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '30', - ], - 'MinShards' => [ - 'description' => '实例总分片数的最小值。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '4', - ], - 'DowngradeObservationWindowSize' => [ - 'description' => '自动减少分片观测窗口。返回值由数值和时间单位后缀组成,其中时间单位后缀含义如下:'."\n" - .'- **s**:表示秒。'."\n" - .'- **m**:表示分钟。'."\n" - .'- **h**:表示小时。'."\n" - .'- **d**:表示天。 '."\n" - ."\n" - .'> 例如,返回**1d**表示1天。', - 'type' => 'string', - 'example' => '1d', - ], - ], - ], - 'Bandwidth' => [ - 'description' => '实例带宽弹性伸缩功能配置信息。', - 'type' => 'object', - 'properties' => [ - 'Upgrade' => [ - 'description' => '带宽自动扩展是否开启:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'BandwidthUsageUpperThreshold' => [ - 'description' => '触发带宽自动扩展的带宽平均使用率阈值,单位为%。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '70', - ], - 'ObservationWindowSize' => [ - 'description' => '带宽自动扩展的观测窗口。返回值由数值和时间单位后缀组成,其中时间单位后缀含义如下:'."\n" - ."\n" - .'- **s**:表示秒。'."\n" - .'- **m**:表示分钟。'."\n" - .'- **h**:表示小时。'."\n" - .'- **d**:表示天。 '."\n" - ."\n" - .'> 例如,返回**5m**表示5分钟。', - 'type' => 'string', - 'example' => '5m', - ], - 'Downgrade' => [ - 'description' => '带宽自动回缩是否开启:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'BandwidthUsageLowerThreshold' => [ - 'description' => '触发带宽自动回缩的带宽平均使用率阈值,单位为%。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '30', - ], - ], - ], - ], - ], + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'hdm:ModifyAutoScalingConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"Spec\\": {\\n \\"Upgrade\\": true,\\n \\"CpuUsageUpperThreshold\\": 70,\\n \\"MemUsageUpperThreshold\\": 70,\\n \\"MaxSpec\\": \\"polar.mysql.x8.12xlarge\\",\\n \\"MaxReadOnlyNodes\\": 10,\\n \\"ObservationWindowSize\\": \\"5m\\",\\n \\"CoolDownTime\\": \\"5m\\",\\n \\"Downgrade\\": true\\n },\\n \\"Storage\\": {\\n \\"Upgrade\\": true,\\n \\"DiskUsageUpperThreshold\\": 70,\\n \\"MaxStorage\\": 32000\\n },\\n \\"Resource\\": {\\n \\"Enable\\": true,\\n \\"CpuUsageUpperThreshold\\": 70,\\n \\"CpuStep\\": 2,\\n \\"UpgradeObservationWindowSize\\": \\"5m\\",\\n \\"DowngradeObservationWindowSize\\": \\"5m\\"\\n },\\n \\"Shard\\": {\\n \\"Upgrade\\": true,\\n \\"MemUsageUpperThreshold\\": 70,\\n \\"MaxShards\\": 16,\\n \\"UpgradeObservationWindowSize\\": \\"5m\\",\\n \\"Downgrade\\": true,\\n \\"MemUsageLowerThreshold\\": 30,\\n \\"MinShards\\": 4,\\n \\"DowngradeObservationWindowSize\\": \\"1d\\"\\n },\\n \\"Bandwidth\\": {\\n \\"Upgrade\\": true,\\n \\"BandwidthUsageUpperThreshold\\": 70,\\n \\"ObservationWindowSize\\": \\"5m\\",\\n \\"Downgrade\\": true,\\n \\"BandwidthUsageLowerThreshold\\": 30\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeAutoScalingConfigResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n <Data>\\n <Spec>\\n <Upgrade>true</Upgrade>\\n <CpuUsageUpperThreshold>70</CpuUsageUpperThreshold>\\n <MemUsageUpperThreshold>70</MemUsageUpperThreshold>\\n <MaxSpec>polar.mysql.x8.12xlarge</MaxSpec>\\n <MaxReadOnlyNodes>10</MaxReadOnlyNodes>\\n <ObservationWindowSize>5m</ObservationWindowSize>\\n <CoolDownTime>5m</CoolDownTime>\\n <Downgrade>true</Downgrade>\\n </Spec>\\n </Data>\\n</DescribeAutoScalingConfigResponse>","errorExample":""}]', - 'title' => '查询实例弹性伸缩功能配置信息', - 'description' => '使用该接口需满足以下前提条件:'."\n" - ."\n" - .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyAutoScalingConfigResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</ModifyAutoScalingConfigResponse>","errorExample":""}]', ], - 'DescribeAutoScalingHistory' => [ - 'summary' => '调用DescribeAutoScalingHistory接口,查询实例弹性伸缩历史信息。', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'https', - 'http', - ], + 'ModifySecurityIPGroup' => [ + 'summary' => '修改用户跨产品白名单模板', + 'path' => '', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -23195,543 +17106,127 @@ 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeCode' => '247410', + 'abilityTreeNodes' => ['FEATUREhdmQULC0I'], + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'InstanceId', + 'name' => 'RegionName', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'> 当前仅支持RDS MySQL实例。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****', - ], + 'allowEmptyValue' => false, + 'schema' => ['description' => '地域 ID。', 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai'], ], [ - 'name' => 'AutoScalingTaskType', + 'name' => 'GlobalIgName', 'in' => 'query', - 'schema' => [ - 'description' => '查询的弹性伸缩业务种类。当前仅支持**SPEC**,表示仅支持查询自动性能扩展历史信息。', - 'type' => 'string', - 'required' => true, - 'example' => 'SPEC', - ], + 'schema' => ['description' => 'IP白名单模板名称。IP白名单模板名称需满足如下要求:'."\n" + .'- 由小写字母、数字、下划线(_)组成。'."\n" + .'- 由字母开头、字母或数字结尾。'."\n" + .'- 长度为2~120个字符。'."\n" + .'> 本参数将覆盖原值。', 'type' => 'string', 'required' => true, 'example' => 'test_123'], ], [ - 'name' => 'StartTime', + 'name' => 'GIpList', 'in' => 'query', - 'schema' => [ - 'description' => '查询任务的开始时间,格式为Unix时间戳,单位为毫秒。'."\n" - ."\n" - .'>查询任务的开始时间最大不能早于当前时间45天。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1675833788056', - ], + 'schema' => ['description' => '白名单模板内的IP地址。'."\n" + ."\n" + .'> 多个IP地址需要用英文逗号隔开,所有IP白名单累积支持添加1000个IP地址或地址段。', 'type' => 'string', 'required' => true, 'example' => '192.168.0.1'], ], [ - 'name' => 'EndTime', + 'name' => 'GlobalSecurityGroupId', 'in' => 'query', - 'schema' => [ - 'description' => '查询任务结束时间,格式为Unix时间戳,单位为毫秒。'."\n" - .'>查询任务结束时间需晚于查询任务开始时间。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1676605305796', - ], + 'schema' => ['description' => 'IP白名单模板ID。', 'type' => 'string', 'required' => true, 'example' => 'g-9ubyrqeoko****,g-pdxlrvn13k****'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '状态码。200表示成功。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'Code' => ['description' => '状态码。', 'type' => 'string', 'example' => '200'], 'Data' => [ - 'title' => 'AutoScalingInstanceHistory', - 'description' => '弹性伸缩历史记录。', + 'title' => 'ListResult<InstanceSSL>', + 'description' => 'ListResult<InstanceSSL>', 'type' => 'object', 'properties' => [ - 'InstanceId' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze1jdv45i7l6****', - ], - 'SpecHistory' => [ - 'description' => '自动性能扩展历史记录。', + 'GlobalSecurityIPGroup' => [ + 'description' => '跨产品白名单模板信息。', 'type' => 'array', 'items' => [ - 'description' => '自动性能扩展历史信息。', + 'description' => '跨产品白名单模板信息。', 'type' => 'object', 'properties' => [ - 'ScaleType' => [ - 'description' => '自动性能扩展任务类型,取值:'."\n" - .'- **SCALE_UP**:规格自动扩容。'."\n" - .'- **SCALE_DOWN**:规格自动缩容。', - 'type' => 'string', - 'example' => 'SCALE_UP', - ], - 'TaskExcuteStatus' => [ - 'description' => '任务执行状态:'."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ErrorCode' => [ - 'description' => '扩缩容内部任务返回的错误码:'."\n" - ."\n" - .'- **Insufficient_Balance** :用户余额不足或存在未支付订单。'."\n" - .'- **REACH_SPEC_UPPERBOUND** :已达到用户规格上限。'."\n" - .'- **Control_Error_Timeout_Msg** :管控任务超时。'."\n" - .'- **Invoke_Rds_Api_Error_Msg** :调用RDS API失败。', - 'type' => 'string', - 'example' => 'Insufficient_Balance', - ], - 'OriginInstanceClass' => [ - 'description' => '原始实例规格码。', - 'type' => 'string', - 'example' => 'mysql.n2.large.2c', - ], - 'TargetInstanceClass' => [ - 'description' => '目标实例规格码。', - 'type' => 'string', - 'example' => 'mysql.n2.xlarge.2c', - ], - 'OriginCore' => [ - 'description' => '原始实例CPU核数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '4', - ], - 'OriginMemory' => [ - 'description' => '原始实例内存大小,单位GB。', - 'type' => 'number', - 'format' => 'double', - 'example' => '8', - ], - 'TargetCore' => [ - 'description' => '目标实例CPU核数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '8', - ], - 'TargetMemory' => [ - 'description' => '目标实例内存大小,单位GB。', - 'type' => 'number', - 'format' => 'double', - 'example' => '16', - ], - 'TaskTime' => [ - 'description' => '任务执行时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1684830763000', - ], + 'SecurityIpType' => ['description' => 'ip类型', 'type' => 'string', 'example' => 'ipv4'], + 'RegionId' => ['description' => '地域 ID。'."\n" + ."\n" + .'示例值:'."\n" + .'cn-hangzhou', 'type' => 'string', 'example' => 'cn-beijing'], + 'GlobalIgName' => ['description' => 'IP白名单模板名称。', 'type' => 'string', 'example' => 'test'], + 'GlobalSecurityGroupId' => ['description' => 'IP白名单模板ID。', 'type' => 'string', 'example' => 'g-b1asblm5ae****'], + 'WhitelistNetType' => ['description' => '白名单的网络类型。', 'type' => 'string', 'example' => 'mix'], + 'GIpList' => ['description' => '白名单模板内的IP地址。'."\n" + ."\n" + .'> 多个IP地址需要用英文逗号隔开,所有IP白名单累积支持添加1000个IP地址或地址段。', 'type' => 'string', 'example' => '192.168.0.1'], ], ], ], - 'Storage' => [ - 'description' => '存储扩容历史记录,暂不支持。', - 'type' => 'array', - 'items' => [ - 'description' => '实例存储扩容历史信息。', - 'type' => 'object', - 'example' => 'None', - ], - ], - 'Resource' => [ - 'description' => 'Redis资源扩容历史记录,暂不支持。', - 'type' => 'array', - 'items' => [ - 'description' => 'Redis资源扩容历史信息。', - 'type' => 'object', - 'example' => 'None', - ], - ], - 'Shard' => [ - 'description' => 'Redis自动分片扩容历史记录,暂不支持。', - 'type' => 'array', - 'items' => [ - 'description' => 'Redis自动分片扩容历史信息。', - 'type' => 'object', - 'example' => 'None', - ], - ], - 'Bandwidth' => [ - 'description' => 'Redis带宽弹性伸缩历史记录,暂不支持。', - 'type' => 'array', - 'items' => [ - 'description' => 'Redis带宽弹性伸缩历史信息。', - 'type' => 'object', - 'example' => 'None', - ], - ], ], ], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + .'* **true**:执行成功'."\n" + .'* **false**:执行失败'."\n", 'type' => 'string', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"InstanceId\\": \\"rm-2ze1jdv45i7l6****\\",\\n \\"SpecHistory\\": [\\n {\\n \\"ScaleType\\": \\"SCALE_UP\\",\\n \\"TaskExcuteStatus\\": true,\\n \\"ErrorCode\\": \\"Insufficient_Balance\\",\\n \\"OriginInstanceClass\\": \\"mysql.n2.large.2c\\",\\n \\"TargetInstanceClass\\": \\"mysql.n2.xlarge.2c\\",\\n \\"OriginCore\\": 4,\\n \\"OriginMemory\\": 8,\\n \\"TargetCore\\": 8,\\n \\"TargetMemory\\": 16,\\n \\"TaskTime\\": 1684830763000\\n }\\n ],\\n \\"Storage\\": [\\n {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n }\\n ],\\n \\"Resource\\": [\\n {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n }\\n ],\\n \\"Shard\\": [\\n {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n }\\n ],\\n \\"Bandwidth\\": [\\n {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n }\\n ]\\n }\\n}","type":"json"}]', - 'title' => '查询实例弹性伸缩历史信息', - 'description' => '- 当前仅支持查询RDS MySQL高可用系列云盘版的自动性能扩展历史信息。'."\n" - .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - ."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - 'requestParamsDescription' => 'AutoScalingTaskType取值为SPEC时,表示查询自动性能扩展历史,当前仅支持取值为SPEC。', - ], - 'DisableInstanceDasConfig' => [ - 'summary' => '调用DisableInstanceDasConfig接口,关闭指定弹性伸缩功能。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'update', - ], - 'parameters' => [ - [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'r-bp1nti25tc7bq5****', - ], - ], - [ - 'name' => 'Engine', - 'in' => 'query', - 'schema' => [ - 'description' => '数据库引擎,当前仅支持Redis。', - 'type' => 'string', - 'required' => true, - 'example' => 'Redis', - ], - ], - [ - 'name' => 'ScaleType', - 'in' => 'query', - 'schema' => [ - 'description' => '弹性伸缩类型,取值:'."\n" - .'- **specScale**:规格自动弹性伸缩。'."\n" - .'- **shardScale**:分片自动弹性伸缩。'."\n" - .'- **bandwidthScale**:带宽自动弹性伸缩。', - 'type' => 'string', - 'required' => true, - 'example' => 'bandwidthScale', - 'enum' => [ - 'specScale', - 'shardScale', - 'bandwidthScale', - ], - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'Data' => [ - 'description' => '关闭数据库实例指定弹性伸缩功能的结果。', - 'type' => 'string', - 'example' => 'success', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '7172BECE-588A-5961-8126-C216E16B****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - .'* **true**:执行成功。'."\n" - .'* **false**:执行失败。'."\n", - 'type' => 'string', - 'example' => 'true', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": \\"success\\",\\n \\"RequestId\\": \\"7172BECE-588A-5961-8126-C216E16B****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DisableInstanceDasConfigResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>success</Data>\\n <RequestId>7172BECE-588A-5961-8126-C216E16B****</RequestId>\\n <Success>true</Success>\\n</DisableInstanceDasConfigResponse>","errorExample":""}]', - 'title' => '关闭指定弹性伸缩功能', + 'staticInfo' => ['returnType' => 'synchronous'], 'description' => '使用该接口需满足以下前提条件:'."\n" - ."\n" .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 本接口当前仅适用于Redis数据库实例。', - ], - 'GetPartitionsHeatmap' => [ - 'summary' => '调用GetPartitionsHeatmap接口,查看PolarDB-X 2.0分区访问热度和数据热点。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'ConsoleContext', - 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', - ], - ], - [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'pxc-hzrciqy62c****', - ], - ], - [ - 'name' => 'TimeRange', - 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的时间范围:'."\n" - ."\n" - .'- **LAST\\_ONE\\_HOURS**:过去一小时。'."\n" - .'- **LAST\\_SIX\\_HOURS**:过去六小时。'."\n" - .'- **LAST\\_ONE\\_DAYS**:过去一天。'."\n" - .'- **LAST\\_THREE\\_DAYS**:过去三天。'."\n" - .'- **LAST\\_SEVEN\\_DAYS**:过去七天。', - 'type' => 'string', - 'required' => false, - 'example' => 'LAST_SIX_HOURS', - ], - ], - [ - 'name' => 'Type', - 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的数据类型:'."\n" - .'- **READ_ROWS**:读行数。'."\n" - .'- **WRITTEN_ROWS**:写行数。'."\n" - .'- **READ\\_WRITTEN\\_ROWS**:读写行数。'."\n" - .'- **UPDATE_ROWS**:更新行数。'."\n" - .'- **INSERTED_ROWS**:插入行数。'."\n" - .'- **DELETED_ROWS**:删除行数。'."\n" - .'- **READ\\_ROWS\\_WITH\\_DN**:以DN视角返回的读行数。'."\n" - .'- **WRITTEN\\_ROWS\\_WITH\\_DN**:以DN视角返回的写行数。'."\n" - .'- **READ\\_WRITTEN\\_ROWS\\_WITH\\_DN**:以DN视角返回的读写行数。', - 'type' => 'string', - 'required' => false, - 'example' => 'WRITTEN_ROWS_WITH_DN', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => '返回信息列表。', - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'Data' => [ - 'description' => '分布式数据库的数据热点数据。返回JSON格式的文本。', - 'type' => 'string', - 'example' => '{'."\n" - .' "boundAxis": ['."\n" - .' {'."\n" - .' "bound": "A,B,C,D",'."\n" - .' "labels": ['."\n" - .' "L1",'."\n" - .' "L2",'."\n" - .' "L3",'."\n" - .' "L4"'."\n" - .' ],'."\n" - .' "rows": 3171'."\n" - .' },'."\n" - .' {'."\n" - .' "bound": "A,B,C,D",'."\n" - .' "labels": ['."\n" - .' "L1",'."\n" - .' "L2",'."\n" - .' "L3",'."\n" - .' "L4"'."\n" - .' ],'."\n" - .' "rows": 277128'."\n" - .' }'."\n" - .' ],'."\n" - .' "dataMap": {'."\n" - .' "READ_WRITTEN_ROWS": ['."\n" - .' ['."\n" - .' 0,'."\n" - .' 0,'."\n" - .' 0'."\n" - .' ],'."\n" - .' ['."\n" - .' 0,'."\n" - .' 0,'."\n" - .' 0'."\n" - .' ]'."\n" - .' ]'."\n" - .' },'."\n" - .' "timeAxis": ['."\n" - .' 1671701056070,'."\n" - .' 1671701116551,'."\n" - .' 1671701177020'."\n" - .' ]'."\n" - .'}', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'D00DB161-FEF6-5428-B37A-8D29A4C2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + .'- 使用该接口默认开启当前支持的最新版本。DAS企业版各个版本支持的数据库和地域请参见[DAS产品系列及支持的功能](~~156204~~)。', + 'title' => '跨产品白名单模板修改接口', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'hdm:ModifySecurityIPGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], - ], - ], - 'staticInfo' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": \\"{\\\\n \\\\\\"boundAxis\\\\\\": [\\\\n {\\\\n \\\\\\"bound\\\\\\": \\\\\\"A,B,C,D\\\\\\",\\\\n \\\\\\"labels\\\\\\": [\\\\n \\\\\\"L1\\\\\\",\\\\n \\\\\\"L2\\\\\\",\\\\n \\\\\\"L3\\\\\\",\\\\n \\\\\\"L4\\\\\\"\\\\n ],\\\\n \\\\\\"rows\\\\\\": 3171\\\\n },\\\\n {\\\\n \\\\\\"bound\\\\\\": \\\\\\"A,B,C,D\\\\\\",\\\\n \\\\\\"labels\\\\\\": [\\\\n \\\\\\"L1\\\\\\",\\\\n \\\\\\"L2\\\\\\",\\\\n \\\\\\"L3\\\\\\",\\\\n \\\\\\"L4\\\\\\"\\\\n ],\\\\n \\\\\\"rows\\\\\\": 277128\\\\n }\\\\n ],\\\\n \\\\\\"dataMap\\\\\\": {\\\\n \\\\\\"READ_WRITTEN_ROWS\\\\\\": [\\\\n [\\\\n 0,\\\\n 0,\\\\n 0\\\\n ],\\\\n [\\\\n 0,\\\\n 0,\\\\n 0\\\\n ]\\\\n ]\\\\n },\\\\n \\\\\\"timeAxis\\\\\\": [\\\\n 1671701056070,\\\\n 1671701116551,\\\\n 1671701177020\\\\n ]\\\\n}\\",\\n \\"RequestId\\": \\"D00DB161-FEF6-5428-B37A-8D29A4C2****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<GetPartitionsHeatmapResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>{\\n \\"boundAxis\\": [\\n {\\n \\"bound\\": \\"A,B,C,D\\",\\n \\"labels\\": [\\n \\"L1\\",\\n \\"L2\\",\\n \\"L3\\",\\n \\"L4\\"\\n ],\\n \\"rows\\": 3171\\n },\\n {\\n \\"bound\\": \\"A,B,C,D\\",\\n \\"labels\\": [\\n \\"L1\\",\\n \\"L2\\",\\n \\"L3\\",\\n \\"L4\\"\\n ],\\n \\"rows\\": 277128\\n }\\n ],\\n \\"dataMap\\": {\\n \\"READ_WRITTEN_ROWS\\": [\\n [\\n 0,\\n 0,\\n 0\\n ],\\n [\\n 0,\\n 0,\\n 0\\n ]\\n ]\\n },\\n \\"timeAxis\\": [\\n 1671701056070,\\n 1671701116551,\\n 1671701177020\\n ]\\n}</Data>\\n <RequestId>D00DB161-FEF6-5428-B37A-8D29A4C2****</RequestId>\\n <Success>true</Success>\\n</GetPartitionsHeatmapResponse>","errorExample":""}]', - 'title' => '获取分区热度信息', - 'description' => '该接口不建议用户自行调用,因为返回的数据格式比较特殊,自行解析会非常复杂,建议使用阿里云DAS的[分区热力图](~~470302~~)功能查看该数据。', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Data\\": {\\n \\"GlobalSecurityIPGroup\\": [\\n {\\n \\"SecurityIpType\\": \\"ipv4\\",\\n \\"RegionId\\": \\"cn-beijing\\",\\n \\"GlobalIgName\\": \\"test\\",\\n \\"GlobalSecurityGroupId\\": \\"g-b1asblm5ae****\\",\\n \\"WhitelistNetType\\": \\"mix\\",\\n \\"GIpList\\": \\"192.168.0.1\\"\\n }\\n ]\\n },\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', ], - 'GetPfsSqlSample' => [ - 'summary' => '调用GetPfsSqlSample接口,获取性能洞察(新版)功能的SQL样本数据。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ModifySecurityIPGroupRelation' => [ + 'summary' => '绑定/解绑用户跨产品白名单模板', + 'path' => '', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -23740,3197 +17235,1026 @@ 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '152860', - 'abilityTreeNodes' => [ - 'FEATUREhdmFT57I0', - ], + 'abilityTreeCode' => '247410', + 'abilityTreeNodes' => ['FEATUREhdmQULC0I'], + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'InstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - .'>仅支持RDS MySQL和PolarDB MySQL版数据库实例。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze1jdv45i7l6****', - ], - ], - [ - 'name' => 'NodeId', - 'in' => 'formData', - 'schema' => [ - 'description' => '节点ID。'."\n" - ."\n" - .'> 对于RDS MySQL集群系列或PolarDB MySQL版数据库实例,需要提供节点ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'r-x****-db-0', - ], - ], - [ - 'name' => 'SqlId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'SQL ID。', - 'type' => 'string', - 'required' => false, - 'example' => '651b56fe9418d48edb8fdf0980ec****', - ], + 'name' => 'RegionName', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['description' => '地域 ID。', 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai'], ], [ - 'name' => 'StartTime', - 'in' => 'formData', - 'schema' => [ - 'description' => '查询开始时间,格式为unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1676511134614', - ], + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '数据库实例ID。', 'type' => 'string', 'required' => true, 'example' => 'pc-bp1u5mas9exx7****'], ], [ - 'name' => 'EndTime', - 'in' => 'formData', - 'schema' => [ - 'description' => '查询结束时间,格式为unix时间戳,单位为毫秒。'."\n" - ."\n" - .'> 查询结束时间需晚于查询开始时间,最多可查看最近一个月内任意七天的数据。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1678074351197', - ], + 'name' => 'GlobalSecurityGroupId', + 'in' => 'query', + 'schema' => ['description' => 'IP白名单模板ID。', 'type' => 'string', 'required' => true, 'example' => 'g-ggh7qvrrwikyxe****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回数据。', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '9CB97BC4-6479-55D0-B9D0-EA925AFE****', - ], - 'Code' => [ - 'description' => '返回状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '状态码。', 'type' => 'string', 'example' => '200'], 'Data' => [ - 'description' => '返回的SQL样本数据。', - 'type' => 'array', - 'items' => [ - 'description' => '返回数据。', - 'type' => 'object', - 'properties' => [ - 'UserId' => [ - 'description' => '用户ID。', - 'type' => 'string', - 'example' => '196278346919****', - ], - 'InstanceId' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze1jdv45i7l6****', - ], - 'NodeId' => [ - 'description' => '节点ID。'."\n" - ."\n" - .'> RDS MySQL集群系列或PolarDB MySQL版数据库实例才会返回该数据。', - 'type' => 'string', - 'example' => 'r-x****-db-0', - ], - 'LogicId' => [ - 'description' => '逻辑库ID。', - 'type' => 'string', - 'example' => 'xxxxx', - ], - 'Timestamp' => [ - 'description' => '执行SQL的时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1660100753556', - ], - 'SqlId' => [ - 'description' => 'SQL ID。', - 'type' => 'string', - 'example' => '651b56fe9418d48edb8fdf0980ec****', - ], - 'Sql' => [ - 'description' => 'SQL样本。', - 'type' => 'string', - 'example' => 'select * from xxxx where ****', - ], - 'ThreadId' => [ - 'description' => '线程ID。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '81751940', - ], - 'EventId' => [ - 'description' => '事件ID。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '63735293', - ], - 'EndEventId' => [ - 'description' => '该参数在事件开始时默认为NULL,在事件结束时更新为线程当前事件编号。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'EventName' => [ - 'description' => '事件名称。', - 'type' => 'string', - 'example' => 'statement/sql/select', - ], - 'Latency' => [ - 'description' => '执行耗时,单位为毫秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0.199', - ], - 'LockLatency' => [ - 'description' => '锁等待时间,单位为毫秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0.09', - ], - 'Errors' => [ - 'description' => 'SQL语句错误数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Warnings' => [ - 'description' => 'SQL语句警告数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'RowsAffected' => [ - 'description' => '影响行数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'RowsSent' => [ - 'description' => '返回的SQL语句的当前行数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'RowsExamined' => [ - 'description' => '扫描行数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2048576', - ], - 'CreateTmpDiskTables' => [ - 'description' => '执行语句时创建的磁盘上内部临时表的数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'CreateTmpTables' => [ - 'description' => '执行语句时创建的内部临时表的数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'SelectFullJoin' => [ - 'description' => '不使用索引而执行表扫描的连接数。'."\n" - .'><notice>该参数是用来统计联合查询过程中没有利用索引的情况,如果该参数值不为0,请仔细检查表的索引。'."\n" - .'></notice>', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'SelectFullRangeJoin' => [ - 'description' => '在引用表上使用范围搜索的连接数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'SelectRange' => [ - 'description' => '在第一个表中使用范围的连接数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'SelectRangeCheck' => [ - 'description' => '在每一行数据后对键值进行检查,统计不带键值的连接的数量。'."\n" - .'><notice>该参数是用来统计联合查询过程中没有利用索引的情况,如果该参数值不为0,请仔细检查表的索引。'."\n" - .'></notice>', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'SelectScan' => [ - 'description' => '扫描数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'SortMergePasses' => [ - 'description' => '排序算法必须执行的合并次数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'SortRange' => [ - 'description' => '使用范围进行排序的次数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'SortRows' => [ - 'description' => '排序行数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'SortScan' => [ - 'description' => '扫描排序次数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'NoIndexUsed' => [ - 'description' => '语句在不使用索引的情况下是否执行了表扫描:'."\n" - ."\n" - .'- **1**:是。'."\n" - .'- **0**:否。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'NoGoodIndexUsed' => [ - 'description' => '服务器是否查找不到可用于该语句的索引:'."\n" - ."\n" - .'- **1**:是。'."\n" - .'- **0**:否。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Db' => [ - 'description' => '数据库名称。', - 'type' => 'string', - 'example' => 'testDB', + 'title' => 'ListResult<InstanceSSL>', + 'description' => 'ListResult<InstanceSSL>', + 'type' => 'object', + 'properties' => [ + 'GlobalSecurityIPGroupRel' => [ + 'description' => '跨产品IP白名单模板绑定信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'RegionId' => ['description' => '地域 ID。', 'type' => 'string', 'example' => 'cn-shanghai'], + 'GlobalIgName' => ['description' => 'IP白名单模板名称。IP白名单模板名称需满足如下要求:'."\n" + ."\n" + .'- 由小写字母、数字、下划线(_)组成。'."\n" + ."\n" + .'- 由字母开头、字母或数字结尾。'."\n" + ."\n" + .'- 长度为2~120个字符。', 'type' => 'string', 'example' => 'saas_jump'], + 'GlobalSecurityGroupId' => ['description' => 'IP白名单模板ID。', 'type' => 'string', 'example' => 'g-v8kwereyd6u7kx****'], + 'GIpList' => ['description' => '白名单模板内的IP地址。'."\n" + ."\n" + .'> 多个IP地址需要用英文逗号隔开,所有IP白名单累积支持添加1000个IP地址或地址段。', 'type' => 'string', 'example' => '192.168.0.1,192.168.100.0/24'], + ], + 'description' => '', ], ], + 'InstanceId' => ['description' => '实例ID。', 'type' => 'string', 'example' => 'rm-2ze1jdv45i7l6****'], ], ], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '840F51F7-9C01-538D-94F6-AE712905****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + .'* true:执行成功'."\n" + .'* false:执行失败'."\n", 'type' => 'string', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"9CB97BC4-6479-55D0-B9D0-EA925AFE****\\",\\n \\"Code\\": 200,\\n \\"Success\\": true,\\n \\"Data\\": [\\n {\\n \\"UserId\\": \\"196278346919****\\",\\n \\"InstanceId\\": \\"rm-2ze1jdv45i7l6****\\",\\n \\"NodeId\\": \\"r-x****-db-0\\",\\n \\"LogicId\\": \\"xxxxx\\",\\n \\"Timestamp\\": 1660100753556,\\n \\"SqlId\\": \\"651b56fe9418d48edb8fdf0980ec****\\",\\n \\"Sql\\": \\"select * from xxxx where ****\\",\\n \\"ThreadId\\": 81751940,\\n \\"EventId\\": 63735293,\\n \\"EndEventId\\": 0,\\n \\"EventName\\": \\"statement/sql/select\\",\\n \\"Latency\\": 0.199,\\n \\"LockLatency\\": 0.09,\\n \\"Errors\\": 0,\\n \\"Warnings\\": 0,\\n \\"RowsAffected\\": 0,\\n \\"RowsSent\\": 0,\\n \\"RowsExamined\\": 2048576,\\n \\"CreateTmpDiskTables\\": 0,\\n \\"CreateTmpTables\\": 0,\\n \\"SelectFullJoin\\": 0,\\n \\"SelectFullRangeJoin\\": 0,\\n \\"SelectRange\\": 0,\\n \\"SelectRangeCheck\\": 0,\\n \\"SelectScan\\": 0,\\n \\"SortMergePasses\\": 0,\\n \\"SortRange\\": 0,\\n \\"SortRows\\": 0,\\n \\"SortScan\\": 1,\\n \\"NoIndexUsed\\": 1,\\n \\"NoGoodIndexUsed\\": 1,\\n \\"Db\\": \\"testDB\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<GetPfsSqlSampleResponse>\\n <Message>Successful</Message>\\n <RequestId>9CB97BC4-6479-55D0-B9D0-EA925AFE****</RequestId>\\n <Code>200</Code>\\n <Success>true</Success>\\n <Data>\\n <UserId>196278346919****</UserId>\\n <InstanceId>rm-2ze1jdv45i7l6****</InstanceId>\\n <NodeId>r-x****-db-0</NodeId>\\n <LogicId>xxxxx</LogicId>\\n <Timestamp>1660100753556</Timestamp>\\n <SqlId>651b56fe9418d48edb8fdf0980ec****</SqlId>\\n <Sql>select * from xxxx where ****</Sql>\\n <ThreadId>81751940</ThreadId>\\n <EventId>63735293</EventId>\\n <EndEventId>0</EndEventId>\\n <EventName>statement/sql/select</EventName>\\n <Latency>0.199</Latency>\\n <LockLatency>0.09</LockLatency>\\n <Errors>0</Errors>\\n <Warnings>0</Warnings>\\n <RowsAffected>0</RowsAffected>\\n <RowsSent>0</RowsSent>\\n <RowsExamined>2048576</RowsExamined>\\n <CreateTmpDiskTables>0</CreateTmpDiskTables>\\n <CreateTmpTables>0</CreateTmpTables>\\n <SelectFullJoin>0</SelectFullJoin>\\n <SelectFullRangeJoin>0</SelectFullRangeJoin>\\n <SelectRange>0</SelectRange>\\n <SelectRangeCheck>0</SelectRangeCheck>\\n <SelectScan>0</SelectScan>\\n <SortMergePasses>0</SortMergePasses>\\n <SortRange>0</SortRange>\\n <SortRows>0</SortRows>\\n <SortScan>1</SortScan>\\n <NoIndexUsed>1</NoIndexUsed>\\n <NoGoodIndexUsed>1</NoGoodIndexUsed>\\n <Db>testDB</Db>\\n </Data>\\n</GetPfsSqlSampleResponse>","errorExample":""}]', - 'title' => '获取SQL样本数据', - 'description' => '使用该接口需满足以下前提条件:'."\n" - ."\n" - .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'description' => '- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 目标数据库实例为RDS MySQL或PolarDB MySQL版。'."\n" - .'- 目标数据库实例已开启性能洞察(新版),详情请参见[性能洞察(新版)](~~469117~~)。', - ], - 'GetPfsMetricTrends' => [ - 'summary' => '调用GetPfsMetricTrends接口,查询数据库实例性能洞察(新版)指定指标的趋势。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhdmF0MV2I', - ], - ], - 'parameters' => [ - [ - 'name' => 'InstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'rm-m5ea73876ukci****', - ], - ], - [ - 'name' => 'NodeId', - 'in' => 'formData', - 'schema' => [ - 'description' => '节点ID。'."\n" - ."\n" - .'> 对于RDS MySQL集群系列或PolarDB MySQL版数据库实例,需要提供节点ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'r-x****-db-0', - ], - ], - [ - 'name' => 'Metric', - 'in' => 'formData', - 'schema' => [ - 'description' => '需要查询趋势的指标:'."\n" - ."\n" - .'- **count**:执行次数。'."\n" - .'- **avgRt**:平均执行时间。'."\n" - .'- **rtRate**:耗时比例。'."\n" - .'- **rowsExamined**:总扫描行数。', - 'type' => 'string', - 'required' => false, - 'example' => 'Count', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'formData', - 'schema' => [ - 'description' => '查询开始时间,格式为unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1677461663092', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'formData', - 'schema' => [ - 'description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。'."\n" - .'> 查询结束时间需晚于查询开始时间,最多可查看最近一个月内任意七天的数据。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1678432430967', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Data' => [ - 'description' => '返回数据。', - 'type' => 'object', - 'additionalProperties' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Timestamp' => [ - 'type' => 'string', - 'example' => '1681975870000', - 'description' => '时间戳,格式为unix时间戳,单位为毫秒。', - ], - 'Value' => [ - 'type' => 'any', - 'description' => '指标值。', - 'example' => '478.28', - ], - ], - 'description' => '返回指标趋势结果。', - ], - 'description' => '返回数据列表。', - ], - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'F4C27966-284E-51C4-9407-DB50CAB8****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + .'- 目前支持的数据库实例请参见SQL洞察和审计的[功能概览](~~92561~~)。'."\n" + .'- 目标数据库实例已开启SQL洞察和审计(旧版)功能,开启方法请参见[开启SQL洞察和审计](~~92561~~)。', + 'title' => '跨产品白名单模板绑定/解绑接口', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'hdm:ModifySecurityIPGroupRelation', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Data\\": {\\n \\"key\\": [\\n {\\n \\"Timestamp\\": \\"1681975870000\\",\\n \\"Value\\": \\"478.28\\"\\n }\\n ]\\n },\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"F4C27966-284E-51C4-9407-DB50CAB8****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetPfsMetricTrendsResponse>\\n <Message>Successful</Message>\\n <RequestId>F4C27966-284E-51C4-9407-DB50CAB8****</RequestId>\\n <Data>\\n <Timestamp>1681975870000</Timestamp>\\n <Value>478.28</Value>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetPfsMetricTrendsResponse>","errorExample":""}]', - 'title' => '查询指定指标趋势', - 'description' => '使用该接口需满足以下前提条件:'."\n" - ."\n" - .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 目标数据库实例为RDS MySQL或PolarDB MySQL版。'."\n" - .'- 目标数据库实例已开启性能洞察(新版),详情请参见[性能洞察(新版)](~~469117~~)。', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Data\\": {\\n \\"GlobalSecurityIPGroupRel\\": [\\n {\\n \\"RegionId\\": \\"cn-shanghai\\",\\n \\"GlobalIgName\\": \\"saas_jump\\",\\n \\"GlobalSecurityGroupId\\": \\"g-v8kwereyd6u7kx****\\",\\n \\"GIpList\\": \\"192.168.0.1,192.168.100.0/24\\"\\n }\\n ],\\n \\"InstanceId\\": \\"rm-2ze1jdv45i7l6****\\"\\n },\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"840F51F7-9C01-538D-94F6-AE712905****\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', ], - 'GetPfsSqlSummaries' => [ - 'summary' => '调用GetPfsSqlSummaries接口,查询数据库实例性能洞察(新版)中按照SQL ID维度的全量请求数据。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ModifySqlLogConfig' => [ + 'summary' => '调用ModifySqlLogConfig接口,为数据库实例开启或配置DAS企业版。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhdmFT57I0', - ], + 'abilityTreeCode' => '198880', + 'abilityTreeNodes' => ['FEATUREhdmPGXCEW', 'FEATUREhdmFT57I0'], ], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'rm-uf61swc4cru0b****', - ], - ], - [ - 'name' => 'NodeId', - 'in' => 'formData', - 'schema' => [ - 'description' => '节点ID。'."\n" - ."\n" - .'> 对于RDS MySQL集群系列或PolarDB MySQL版数据库实例,需要提供节点ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'r-****-db-0', - ], - ], - [ - 'name' => 'SqlId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'SQL ID。'."\n" - ."\n" - .'> 传入SQL ID时,统计目标SQL ID的全量请求数据;为空时,统计整个数据库实例的全量请求数据。', - 'type' => 'string', - 'required' => false, - 'example' => '651b56fe9418d48edb8fdf0980ec****', - ], - ], - [ - 'name' => 'Keywords', - 'in' => 'formData', - 'schema' => [ - 'description' => 'SQL文本关键词,多个关键词以空格分隔。', - 'type' => 'string', - 'required' => false, - 'example' => 'select update', - ], + 'schema' => ['description' => '数据库实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rr-2ze770smbq3tp****'], ], [ - 'name' => 'StartTime', + 'name' => 'Enable', 'in' => 'formData', - 'schema' => [ - 'description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1675833788056', - ], + 'schema' => ['description' => '是否开启DAS企业版:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + .'> 开通企业版时必须配置,默认开启当前支持的最新版本。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'EndTime', + 'name' => 'RequestEnable', 'in' => 'formData', - 'schema' => [ - 'description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。'."\n" - .'> 查询结束时间需晚于查询开始时间,最多可查看最近一个月内任意七天的数据。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1679297005999', - ], + 'schema' => ['description' => '是否开启SQL洞察。'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'> 仅支持开通企业版 V3时,需要配置该参数。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'OrderBy', + 'name' => 'Retention', 'in' => 'formData', - 'schema' => [ - 'description' => '排序字段,默认为**count**。'."\n" - ."\n" - .'- **count**:执行次数。'."\n" - ."\n" - .'- **avgRt**:平均执行时间。'."\n" - ."\n" - .'- **rtRate**:耗时比例。'."\n" - ."\n" - .'- **rowsExamined**:总扫描行数。'."\n" - ."\n" - .'- **avgRowsExamined**:平均扫描行数。'."\n" - ."\n" - .'- **avgRowsReturned**:平均返回行数。', - 'type' => 'string', - 'required' => false, - 'example' => 'count', - ], + 'schema' => ['description' => '数据总存储时长,单位为天,取值为:'."\n" + ."\n" + .'- 7'."\n" + .'- 30'."\n" + .'- 180'."\n" + .'- 365'."\n" + ."\n" + .'> 开通DAS企业版 V3时,该参数取值必须大于等于30。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30'], ], [ - 'name' => 'Asc', + 'name' => 'HotRetention', 'in' => 'formData', - 'schema' => [ - 'description' => '是否升序排序,默认为**false**。'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '数据热存储时长,单位为天,取值为[1, 7]范围内的整数。'."\n" + ."\n" + .'> 仅支持开通企业版 V3时,需要配置该参数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ - 'name' => 'PageNo', - 'in' => 'formData', + 'name' => 'Filters', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '分页查询的页码,从1开始,默认为1。', - 'type' => 'integer', - 'format' => 'int32', + 'description' => '预留参数。', + 'type' => 'array', + 'items' => [ + 'description' => '预留参数。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '预留参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], + 'Value' => ['description' => '预留参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], + ], + 'required' => false, + ], 'required' => false, - 'example' => '1', + 'maxItems' => 100, ], ], [ - 'name' => 'PageSize', - 'in' => 'formData', - 'schema' => [ - 'description' => '分页查询每页最大记录数,默认为10,最大为100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'name' => 'EnableAudit', + 'in' => 'query', + 'schema' => ['description' => '开启安全审计。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'ListResult<PfsSqlSummary>', - 'description' => 'ListResult<PfsSqlSummary>', 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '54F3DBAE-9420-511A-9C29-265E8C04****', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '03C88D8E-1541-518E-8BFF-BEC6589B6334'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功'."\n" + .'- **false**:执行失败', 'type' => 'string', 'example' => 'false'], 'Data' => [ + 'title' => 'SqlLogConfig', 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'Total' => [ - 'description' => '总数据量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '264', - ], - 'List' => [ - 'description' => '详细信息列表。', - 'type' => 'array', - 'items' => [ - 'description' => '返回信息列表。', - 'type' => 'object', - 'properties' => [ - 'UserId' => [ - 'description' => '用户ID。', - 'type' => 'string', - 'example' => '196278346919****', - ], - 'Psql' => [ - 'description' => 'SQL模板。', - 'type' => 'string', - 'example' => 'select ?', - ], - 'InstanceId' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze8g2am97624****', - ], - 'NodeId' => [ - 'description' => '节点ID。'."\n" - .'> 对于RDS MySQL集群系列或PolarDB MySQL版数据库实例,返回此参数。', - 'type' => 'string', - 'example' => 'r-x****-db-0', - ], - 'SqlType' => [ - 'description' => 'SQL的类型。取值:'."\n" - .'- **SELECT**'."\n" - .'- **UPDATE**'."\n" - .'- **DELETE**', - 'type' => 'string', - 'example' => 'SELECT', - ], - 'LogicId' => [ - 'description' => '逻辑库ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '58275984', - ], - 'SqlId' => [ - 'description' => 'SQL模板ID。', - 'type' => 'string', - 'example' => '2e8147b5ca2dfc640dfd5e43d96a****', - ], - 'Timestamp' => [ - 'description' => '数据日期,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1643040000000', - ], - 'RtRate' => [ - 'title' => '耗时占比', - 'description' => '耗时占比。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0.1384', - ], - 'CountRate' => [ - 'title' => '执行次数占比', - 'description' => '执行次数占比。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0.0586', - ], - 'FullScan' => [ - 'description' => '是否全表扫描。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Count' => [ - 'description' => '总执行次数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100000', - ], - 'ErrCount' => [ - 'description' => '错误次数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'WarnCount' => [ - 'description' => '警告次数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'TotalLatency' => [ - 'description' => '总执行耗时,单位毫秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '60913.256', - ], - 'MaxLatency' => [ - 'description' => '最大执行耗时,单位毫秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '36.233', - ], - 'AvgLatency' => [ - 'description' => 'SQL平均执行耗时,单位毫秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0.1717', - ], - 'RowsSent' => [ - 'description' => '返回行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'RowsSendAvg' => [ - 'description' => '平均发送行数。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0', - ], - 'RowsExamined' => [ - 'description' => '总扫描行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'RowsExaminedAvg' => [ - 'description' => '平均扫描行数。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0', - ], - 'RowsAffected' => [ - 'description' => '影响行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'RowsAffectedAvg' => [ - 'description' => '平均影响行数。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0', - ], - 'TmpTables' => [ - 'description' => '临时表数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'TmpDiskTables' => [ - 'description' => '临时磁盘表数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'RowsSorted' => [ - 'description' => '排序行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'SortMergePasses' => [ - 'description' => '排序算法必须执行的合并次数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'PhysicalReads' => [ - 'description' => '物理节点数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'PhysicalAsyncReads' => [ - 'description' => '物理异步节点数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'SemisyncDelayTime' => [ - 'description' => '半同步延迟时间,单位毫秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0.12', - ], - 'RowsSentAvg' => [ - 'description' => '返回SQL句的平均行数。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0.52', - ], - 'LogicReads' => [ - 'description' => '逻辑节点数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'RedoWrites' => [ - 'description' => '重做节点数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'DataWriteTime' => [ - 'description' => '数据写入时间,单位毫秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0', - ], - 'DataWrites' => [ - 'description' => '可写数据节点数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'DataReadTime' => [ - 'description' => '可读数据时间,单位毫秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0', - ], - 'DataReads' => [ - 'description' => '可读数据节点数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'RwlockOsWaits' => [ - 'description' => '是否开启了读写分离。取值:'."\n" - ."\n" - .'- **0**:未开启。'."\n" - .'- **1**:开启。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'RwlockSpinRounds' => [ - 'description' => '读写分离参数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'RwlockSpinWaits' => [ - 'description' => '是否开启多重索引扫描。取值:'."\n" - ."\n" - .'- **0**:未开启。'."\n" - .'- **1**:开启。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'MutexWaits' => [ - 'description' => '互斥等待次数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'MutexSpins' => [ - 'description' => '互斥旋转次数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TransactionLockTime' => [ - 'description' => '存储事务锁定时间,单位毫秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0', - ], - 'ServerLockTime' => [ - 'description' => '服务器锁定时间,单位毫秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0', - ], - 'CpuTime' => [ - 'description' => 'CPU运行时间,单位为毫秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0', - ], - 'ElapsedTime' => [ - 'description' => '实际运行时间,单位毫秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0', - ], - 'Id' => [ - 'title' => '主键', - 'description' => '主键ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '26186357', - ], - 'SelectScanAvg' => [ - 'description' => '平均扫描数。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0', - ], - 'SelectRangeAvg' => [ - 'description' => '平均选取范围。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0', - ], - 'SelectFullJoinAvg' => [ - 'description' => '不使用索引而执行表扫描的平均连接数。'."\n" - .'><notice>如果该参数值不为0,则应仔细检查表的索引。'."\n" - .'></notice>', - 'type' => 'number', - 'format' => 'double', - 'example' => '0', - ], - 'SelectFullRangeJoinAvg' => [ - 'description' => '平均范围连接数。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0', - ], - 'SortScanAvg' => [ - 'description' => '平均扫描排序数。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0', - ], - 'SortRowsAvg' => [ - 'description' => '平均排序行数。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0', - ], - 'TmpTablesAvg' => [ - 'description' => '临时表平均数。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0', - ], - 'TmpDiskTablesAvg' => [ - 'description' => '临时磁盘表平均数。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0', - ], - 'FirstTime' => [ - 'description' => '首次执行时间,格式为unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1659308149000', - ], - 'LastTime' => [ - 'description' => '最后变更时间,格式为unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1661306520000', - ], - 'LockLatencyAvg' => [ - 'description' => '平均锁等待时间,单位毫秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0', - ], - 'TimerWaitAvg' => [ - 'description' => '备用参数。', - 'type' => 'number', - 'format' => 'double', - 'example' => 'None', - ], - 'SortRangeAvg' => [ - 'description' => '使用范围排序平均次数。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0', - ], - 'CpuRate' => [ - 'description' => 'CPU执行时间与SQL总执行时间的比值。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0', - ], - 'Db' => [ - 'description' => '数据库名称。', - 'type' => 'string', - 'example' => 'testDB', - ], - 'Tables' => [ - 'description' => '数据库表名。'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '数据库表名。'."\n", - 'type' => 'string', - 'example' => 'test_table', - ], - ], - ], - ], - ], - 'PageNo' => [ - 'description' => '页码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '每页最大记录数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'Extra' => [ - 'description' => '备用参数。', - 'type' => 'any', - 'example' => 'None', - ], + 'SqlLogVisibleTime' => ['description' => 'DAS企业版开启的时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1683712800000'], + 'RequestStopTime' => ['description' => 'DAS企业版V1到期时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1715335200000'], + 'CollectorVersion' => ['description' => '采集器版本。'."\n" + .'- **MYSQL_V0**:MySQL V0版。'."\n" + .'- **MYSQL_V1**:MySQL V1版。'."\n" + .'- **MYSQL_V2**:MySQL V2版。'."\n" + .'- **MYSQL_V3**:MySQL V3版。'."\n" + .'- **PG_V1**:PostgreSQL V1版。'."\n" + .'- **rdspg_v1**:RDS PostgreSQL V1版。'."\n" + .'- **polarpg_v1**:PolarDB PostgreSQL版 V1版。', 'type' => 'string', 'example' => 'MYSQL_V3'], + 'SupportVersion' => ['title' => '当前实例支持的数据库版本(不落库)', 'description' => '当前支持的最新DAS企业版版本。'."\n" + ."\n" + .'- **SQL_LOG_V0**:企业版 V0。'."\n" + .'- **SQL_LOG_V1**:企业版 V1。'."\n" + .'- **SQL_LOG_V2**:企业版 V2。'."\n" + .'- **SQL_LOG_V3**:企业版 V3。'."\n" + .'- **SQL_LOG_NOT_ENABLE**:未开启企业版。'."\n" + .'- **SQL_LOG_NOT_SUPPORT**: 不支持企业版。', 'type' => 'string', 'example' => 'SQL_LOG_V3'], + 'ColdRetention' => ['title' => '冷数据存储周期(不落库),通过 retention - hotRetention 计算', 'description' => '数据冷存储时长,单位为天,由` Retention - HotRetention` 计算获得。', 'type' => 'integer', 'format' => 'int32', 'example' => '23'], + 'SqlLogEnable' => ['description' => '是否开启了DAS企业版。'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'Retention' => ['description' => '数据总存储时长,单位为天。', 'type' => 'integer', 'format' => 'int32', 'example' => '30'], + 'HotRetention' => ['description' => '数据热存储时长,单位为天。', 'type' => 'integer', 'format' => 'int32', 'example' => '7'], + 'RequestEnable' => ['description' => '是否开启SQL洞察。'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'false'], + 'Version' => ['title' => '当前审计日志的版本', 'description' => '当前开启的DAS企业版版本。'."\n" + ."\n" + .'- **SQL_LOG_V0**:企业版 V0。'."\n" + .'- **SQL_LOG_V1**:企业版 V1。'."\n" + .'- **SQL_LOG_V2**:企业版 V2。'."\n" + .'- **SQL_LOG_V3**:企业版 V3。'."\n" + .'- **SQL_LOG_NOT_ENABLE**:未开启企业版。'."\n" + .'- **SQL_LOG_NOT_SUPPORT**: 不支持企业版。', 'type' => 'string', 'example' => 'SQL_LOG_V3'], + 'RequestStartTime' => ['description' => 'SQL洞察开启时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1683712800000'], + 'HotEnable' => ['description' => '是否开启数据热存储。'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'HotStartTime' => ['description' => '数据热存储开始时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1683712800000'], + 'ColdEnable' => ['description' => '是否开启数据冷存储。'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'ColdStartTime' => ['description' => '数据冷存储开始时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1683712800000'], + 'SqlLogState' => ['description' => '数据迁移状态。'."\n" + ."\n" + .'- **FINISH**: 历史数据迁移完成。'."\n" + .'- **RUNNING**: 历史数据迁移中。'."\n" + .'- **FAILURE**: 历史数据迁移失败。', 'type' => 'string', 'example' => 'FINISH'], + 'LogFilter' => ['description' => '预留参数。', 'type' => 'string', 'example' => 'None'], + 'SqlLogSource' => ['title' => '开启审计日志来源', 'description' => '开启审计日志来源', 'type' => 'string'], ], ], - 'Code' => [ - 'description' => '返回状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', - ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"54F3DBAE-9420-511A-9C29-265E8C04****\\",\\n \\"Data\\": {\\n \\"Total\\": 264,\\n \\"List\\": [\\n {\\n \\"UserId\\": \\"196278346919****\\",\\n \\"Psql\\": \\"select ?\\",\\n \\"InstanceId\\": \\"rm-2ze8g2am97624****\\",\\n \\"NodeId\\": \\"r-x****-db-0\\",\\n \\"SqlType\\": \\"SELECT\\",\\n \\"LogicId\\": 58275984,\\n \\"SqlId\\": \\"2e8147b5ca2dfc640dfd5e43d96a****\\",\\n \\"Timestamp\\": 1643040000000,\\n \\"RtRate\\": 0.1384,\\n \\"CountRate\\": 0.0586,\\n \\"FullScan\\": true,\\n \\"Count\\": 100000,\\n \\"ErrCount\\": 0,\\n \\"WarnCount\\": 0,\\n \\"TotalLatency\\": 60913.256,\\n \\"MaxLatency\\": 36.233,\\n \\"AvgLatency\\": 0.1717,\\n \\"RowsSent\\": 0,\\n \\"RowsSendAvg\\": 0,\\n \\"RowsExamined\\": 100,\\n \\"RowsExaminedAvg\\": 0,\\n \\"RowsAffected\\": 0,\\n \\"RowsAffectedAvg\\": 0,\\n \\"TmpTables\\": 0,\\n \\"TmpDiskTables\\": 0,\\n \\"RowsSorted\\": 0,\\n \\"SortMergePasses\\": 0,\\n \\"PhysicalReads\\": 0,\\n \\"PhysicalAsyncReads\\": 0,\\n \\"SemisyncDelayTime\\": 0.12,\\n \\"RowsSentAvg\\": 0.52,\\n \\"LogicReads\\": 0,\\n \\"RedoWrites\\": 0,\\n \\"DataWriteTime\\": 0,\\n \\"DataWrites\\": 0,\\n \\"DataReadTime\\": 0,\\n \\"DataReads\\": 0,\\n \\"RwlockOsWaits\\": 0,\\n \\"RwlockSpinRounds\\": 0,\\n \\"RwlockSpinWaits\\": 0,\\n \\"MutexWaits\\": 1,\\n \\"MutexSpins\\": 1,\\n \\"TransactionLockTime\\": 0,\\n \\"ServerLockTime\\": 0,\\n \\"CpuTime\\": 0,\\n \\"ElapsedTime\\": 0,\\n \\"Id\\": 26186357,\\n \\"SelectScanAvg\\": 0,\\n \\"SelectRangeAvg\\": 0,\\n \\"SelectFullJoinAvg\\": 0,\\n \\"SelectFullRangeJoinAvg\\": 0,\\n \\"SortScanAvg\\": 0,\\n \\"SortRowsAvg\\": 0,\\n \\"TmpTablesAvg\\": 0,\\n \\"TmpDiskTablesAvg\\": 0,\\n \\"FirstTime\\": 1659308149000,\\n \\"LastTime\\": 1661306520000,\\n \\"LockLatencyAvg\\": 0,\\n \\"TimerWaitAvg\\": 0,\\n \\"SortRangeAvg\\": 0,\\n \\"CpuRate\\": 0,\\n \\"Db\\": \\"testDB\\",\\n \\"Tables\\": [\\n \\"test_table\\"\\n ]\\n }\\n ],\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10,\\n \\"Extra\\": \\"None\\"\\n },\\n \\"Code\\": 200,\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetPfsSqlSummariesResponse>\\n <Message>Successful</Message>\\n <RequestId>54F3DBAE-9420-511A-9C29-265E8C04****</RequestId>\\n <Data>\\n <Total>264</Total>\\n <List>\\n <UserId>196278346919****</UserId>\\n <Psql>select ?</Psql>\\n <SqlFeature>None</SqlFeature>\\n <InstanceId>rm-2ze8g2am97624****</InstanceId>\\n <NodeId>r-x****-db-0</NodeId>\\n <SqlType>SELECT</SqlType>\\n <LogicId>58275984</LogicId>\\n <SqlId>2e8147b5ca2dfc640dfd5e43d96a****</SqlId>\\n <Timestamp>1643040000000</Timestamp>\\n <RtRate>0.1384</RtRate>\\n <CountRate>0.0586</CountRate>\\n <FullScan>true</FullScan>\\n <Count>100000</Count>\\n <ErrCount>0</ErrCount>\\n <WarnCount>0</WarnCount>\\n <TotalLatency>60913.256</TotalLatency>\\n <MaxLatency>36.233</MaxLatency>\\n <AvgLatency>0.1717</AvgLatency>\\n <RowsSent>0</RowsSent>\\n <RowsSendAvg>0</RowsSendAvg>\\n <RowsExamined>100</RowsExamined>\\n <RowsExaminedAvg>0</RowsExaminedAvg>\\n <RowsAffected>0</RowsAffected>\\n <RowsAffectedAvg>0</RowsAffectedAvg>\\n <TmpTables>0</TmpTables>\\n <TmpDiskTables>0</TmpDiskTables>\\n <RowsSorted>0</RowsSorted>\\n <SortMergePasses>0</SortMergePasses>\\n <PhysicalReads>0</PhysicalReads>\\n <PhysicalAsyncReads>0</PhysicalAsyncReads>\\n <SemisyncDelayTime>0.12</SemisyncDelayTime>\\n <RowsSentAvg>0.52</RowsSentAvg>\\n <LogicReads>0</LogicReads>\\n <RedoWrites>0</RedoWrites>\\n <DataWriteTime>0</DataWriteTime>\\n <DataWrites>0</DataWrites>\\n <DataReadTime>0</DataReadTime>\\n <DataReads>0</DataReads>\\n <RwlockOsWaits>0</RwlockOsWaits>\\n <RwlockSpinRounds>0</RwlockSpinRounds>\\n <RwlockSpinWaits>0</RwlockSpinWaits>\\n <MutexWaits>1</MutexWaits>\\n <MutexSpins>1</MutexSpins>\\n <TransactionLockTime>0</TransactionLockTime>\\n <ServerLockTime>0</ServerLockTime>\\n <CpuTime>0</CpuTime>\\n <ElapsedTime>0</ElapsedTime>\\n <Id>26186357</Id>\\n <SelectScanAvg>0</SelectScanAvg>\\n <SelectRangeAvg>0</SelectRangeAvg>\\n <SelectFullJoinAvg>0</SelectFullJoinAvg>\\n <SelectFullRangeJoinAvg>0</SelectFullRangeJoinAvg>\\n <SortScanAvg>0</SortScanAvg>\\n <SortRowsAvg>0</SortRowsAvg>\\n <TmpTablesAvg>0</TmpTablesAvg>\\n <TmpDiskTablesAvg>0</TmpDiskTablesAvg>\\n <FirstTime>1659308149000</FirstTime>\\n <LastTime>1661306520000</LastTime>\\n <LockLatencyAvg>0</LockLatencyAvg>\\n <SortRangeAvg>0</SortRangeAvg>\\n <CpuRate>0</CpuRate>\\n <Db>testDB</Db>\\n <Tables>test_table</Tables>\\n </List>\\n <PageNo>1</PageNo>\\n <PageSize>10</PageSize>\\n <Extra>None</Extra>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetPfsSqlSummariesResponse>","errorExample":""}]', - 'title' => '查询按照SQL ID维度统计的全量请求数据', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"03C88D8E-1541-518E-8BFF-BEC6589B6334\\",\\n \\"Success\\": \\"false\\",\\n \\"Data\\": {\\n \\"SqlLogVisibleTime\\": 1683712800000,\\n \\"RequestStopTime\\": 1715335200000,\\n \\"CollectorVersion\\": \\"MYSQL_V3\\",\\n \\"SupportVersion\\": \\"SQL_LOG_V3\\",\\n \\"ColdRetention\\": 23,\\n \\"SqlLogEnable\\": true,\\n \\"Retention\\": 30,\\n \\"HotRetention\\": 7,\\n \\"RequestEnable\\": false,\\n \\"Version\\": \\"SQL_LOG_V3\\",\\n \\"RequestStartTime\\": 1683712800000,\\n \\"HotEnable\\": true,\\n \\"HotStartTime\\": 1683712800000,\\n \\"ColdEnable\\": true,\\n \\"ColdStartTime\\": 1683712800000,\\n \\"SqlLogState\\": \\"FINISH\\",\\n \\"LogFilter\\": \\"None\\",\\n \\"SqlLogSource\\": \\"\\"\\n }\\n}","type":"json"}]', + 'title' => '开启或配置DAS企业版', 'description' => '使用该接口需满足以下前提条件:'."\n" - ."\n" .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 目标数据库实例为RDS MySQL或PolarDB MySQL版。'."\n" - .'- 目标数据库实例已开启性能洞察(新版),详情请参见[性能洞察(新版)](~~469117~~)。', - ], - 'DescribeErrorLogRecords' => [ - 'summary' => '查询实例指定时间范围内的错误日志明细。', - 'path' => '', - 'methods' => [ - 'post', - 'get', + .'- 使用该接口默认开启当前支持的最新版本。DAS企业版各个版本支持的数据库和地域请参见[DAS产品系列及支持的功能](~~156204~~)。', + 'requestParamsDescription' => 'DAS企业版当前存在V0、V1、V2、V3四个版本,默认开通当前支持的最新版本。'."\n" + ."\n" + .'- 对于仅支持开启企业版 V0的数据库实例,仅需传入参数**Enable**和**Retention**。'."\n" + .'- 对于支持开启企业版 V1的数据库实例,仅需传入参数**Enable**和**Retention**,系统自动开启SQL洞察功能(即**RequestEnable**默认配置为**true**)。'."\n" + .'- 对于支持开启企业版 V2的数据库实例,仅需传入参数**Enable**和**Retention**,系统自动开启SQL洞察功能(即**RequestEnable**默认配置为**true**),且数据热存储时长(**HotRetention**)固定为7天,数据冷存储时长为`Retention - 7`天。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifySqlLogConfig'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'hdm:ModifySqlLogConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'RunCloudBenchTask' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '235508', - 'abilityTreeNodes' => [ - 'FEATUREhdmR88NLD', - ], - 'tenantRelevance' => 'tenant', - ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'InstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'pc-bp1u5mas9exx7****', - ], - ], - [ - 'name' => 'NodeId', - 'in' => 'formData', - 'schema' => [ - 'description' => '节点ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'pi-bp16v3824rt73****', - ], - ], - [ - 'name' => 'Role', - 'in' => 'formData', - 'schema' => [ - 'description' => '节点角色:'."\n" - ."\n" - .'- db'."\n" - .'- mongos'."\n" - ."\n" - .'> 仅云数据库MongoDB版实例支持。', - 'type' => 'string', - 'required' => false, - 'example' => 'db', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'formData', - 'schema' => [ - 'description' => '查询开始时间,格式为Unix时间戳,单位为毫秒。'."\n" - ."\n" - .'><notice>该字段类型为Long,在序列化/反序列化的过程中可能导致精度丢失,请注意数值不得大于9007199254740991。></notice>', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1731983066000', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'formData', - 'schema' => [ - 'description' => '查询结束时间,格式为Unix时间戳,单位为毫秒。'."\n" - .'><notice>该字段类型为Long,在序列化/反序列化的过程中可能导致精度丢失,请注意数值不得大于9007199254740991。></notice>', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1732069466000', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'formData', - 'schema' => [ - 'description' => '页码。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'formData', - 'schema' => [ - 'description' => '每页大小,最大值为100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], - ], - [ - 'name' => 'Filters', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '筛选条件。'."\n" - ."\n" - .'> 仅支持RDS MySQL、RDS PostgreSQL、PolarDB MySQL版、PolarDB PostgreSQL版、PolarDB PostgreSQL版(兼容Oracle)的错误日志筛选。', - 'type' => 'array', - 'items' => [ - 'description' => '筛选条件。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => '过滤参数', - 'description' => '筛选参数,需填写为filters。', - 'type' => 'string', - 'required' => false, - 'example' => 'filters', - ], - 'Value' => [ - 'description' => '筛选的错误日志内容。', - 'type' => 'string', - 'required' => false, - 'example' => 'deadlock'."\n", - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 100, - ], + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => ['description' => '任务ID,您可通过[DescribeCloudBenchTasks](~~230670~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'e5cec704-0518-430f-8263-76f4dcds****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求 ID。', - 'type' => 'string', - 'example' => 'AAA17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], 'Data' => [ - 'title' => 'ListResult<VariableInspectionStrategy>', - 'description' => '数据详情。', 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'ItemsNumbers' => [ - 'description' => '当前返回的日志明细总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'StartTime' => [ - 'description' => '查询开始时间,格式为yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', - 'type' => 'string', - 'example' => '2025-07-22T05:48:43Z', - ], - 'EndTime' => [ - 'description' => '查询结束时间,格式为yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', - 'type' => 'string', - 'example' => '2025-07-23T05:48:43Z', - ], - 'TotalRecords' => [ - 'description' => '查询时间范围内的日志明细总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'PageNumbers' => [ - 'description' => '当前查询的页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'MaxRecordsPerPage' => [ - 'description' => '每页显示的最大记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Logs' => [ - 'description' => '日志明细。', + 'PreCheckItem' => [ + 'description' => '详细信息列表,包括信息的总数、错误码等。', 'type' => 'array', 'items' => [ - 'description' => '日志明细。', 'type' => 'object', 'properties' => [ - 'CreateTime' => [ - 'description' => '错误日志生成时间。格式为Unix时间戳,单位为毫秒。'."\n" - ."\n" - .'><notice>对于云数据库MongoDB版实例,格式为yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。></notice>', - 'type' => 'string', - 'example' => '1731983067000', - ], - 'DBInstanceName' => [ - 'description' => '节点ID。'."\n" - ."\n" - .'> 仅云数据库MongoDB版实例支持。', - 'type' => 'string', - 'example' => 'd-bp128a003436****'."\n", - ], - 'Category' => [ - 'description' => '日志类别,取值:'."\n" - .'- **NETWORK**:网络连接日志。'."\n" - .'- **ACCESS**:访问控制日志。'."\n" - .'- **-**:普通日志。'."\n" - .'- **COMMAND**:慢日志。'."\n" - .'- **SHARDING**:集群日志。'."\n" - .'- **STORAGE**:存储引擎日志。'."\n" - .'- **CONNPOOL**:连接池日志。'."\n" - .'- **ASIO**:异步 IO 日志。'."\n" - .'- **WRITE**:慢更新日志。'."\n" - ."\n" - .'> 仅云数据库 MongoDB 版实例支持。', - 'type' => 'string', - 'example' => 'NETWORK', - ], - 'ConnInfo' => [ - 'description' => '日志连接信息。'."\n" - ."\n" - .'> 仅云数据库MongoDB版实例支持。', - 'type' => 'string', - 'example' => 'conn18xxxxxx', - ], - 'Content' => [ - 'description' => '错误日志。', - 'type' => 'string', - 'example' => '2025-07-15T15:14:27.175188+08:00 0 [Note] [MY-012468] [InnoDB] Transactions deadlock detected, dumping detailed information.', - ], + 'Status' => ['description' => '任务的运行状态。取值:'."\n" + ."\n" + .'- **SUCCESS**:成功。'."\n" + .'- **IGNORED**:忽略。'."\n" + .'- **RUNNING**:运行中。'."\n" + .'- **EXCEPTION**:异常。', 'type' => 'string', 'example' => 'SUCCESS'], + 'Order' => ['description' => '检查项的顺序,取值范围:**0**~**10**。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], + 'Name' => ['description' => '检查项。取值:'."\n" + ."\n" + .'- **SqlArchiveStatusChecker**:检查SQL洞察数据是否可用。'."\n" + .'- **BenchClientEnvChecker**:检查压测机上程序运行环境是否可用。'."\n" + .'- **SpecChecker**:检查压测目标规格和压测机规格是否可用。'."\n" + .'- **SourceInstanceChecker**:检查压测源实例账号和网络是否可用。'."\n" + .'- **BenchTargetChecker**:检查压测目标实例账号和网络是否可用。', 'type' => 'string', 'example' => 'BenchTargetChecker'], + 'Details' => ['description' => '检查项的详细信息。', 'type' => 'string', 'example' => '"Data": { "total": 1, "list":[...] }, "Code": 200, "Success": true }'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"AAA17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ItemsNumbers\\": 10,\\n \\"StartTime\\": \\"2025-07-22T05:48:43Z\\",\\n \\"EndTime\\": \\"2025-07-23T05:48:43Z\\",\\n \\"TotalRecords\\": 100,\\n \\"PageNumbers\\": 1,\\n \\"MaxRecordsPerPage\\": 10,\\n \\"Logs\\": [\\n {\\n \\"CreateTime\\": \\"1731983067000\\",\\n \\"DBInstanceName\\": \\"d-bp128a003436****\\\\n\\",\\n \\"Category\\": \\"NETWORK\\",\\n \\"ConnInfo\\": \\"conn18xxxxxx\\",\\n \\"Content\\": \\"2025-07-15T15:14:27.175188+08:00 0 [Note] [MY-012468] [InnoDB] Transactions deadlock detected, dumping detailed information.\\"\\n }\\n ]\\n }\\n}","type":"json"}]', - 'title' => '查询错误日志明细', - 'description' => '本接口用于查询实例指定时间范围内的错误日志明细。'."\n" - ."\n" - .'使用该接口需满足以下前提条件:'."\n" - ."\n" - .'- 目标数据库引擎为:RDS MySQL、RDS PostgreSQL、PolarDB MySQL 版、PolarDB PostgreSQL 版、PolarDB PostgreSQL版(兼容Oracle)、云数据库 MongoDB 版。'."\n" - .'- 使用阿里云或 DAS 的 SDK 时,建议使用最新版本。'."\n" - .'- 使用 SDK 调用 DAS 服务时,需要将地域指定为 cn-shanghai。', - ], - 'GetDasAgentSSE' => [ - 'summary' => 'DAS大模型交互SSE接口。可以进行知识问答,性能诊断等功能。', - 'path' => '/getDasAgentSSE', - 'methods' => [ - 'post', + 'title' => '执行压测任务', + 'summary' => '调用RunCloudBenchTask接口,执行压测任务。', + 'description' => '数据库自治服务DAS提供智能压测功能,帮助您验证您的实例规格是否需要扩容,有效应对业务流量高峰。更多信息,请参见[智能压测](~~155068~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RunCloudBenchTask'], + ], ], - 'schemes' => [ - 'https', - 'sse', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:RunCloudBenchTask', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"PreCheckItem\\": [\\n {\\n \\"Status\\": \\"SUCCESS\\",\\n \\"Order\\": 0,\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Name\\": \\"BenchTargetChecker\\",\\n \\"Details\\": \\"\\\\\\"Data\\\\\\": { \\\\\\"total\\\\\\": 1, \\\\\\"list\\\\\\":[...] }, \\\\\\"Code\\\\\\": 200, \\\\\\"Success\\\\\\": true }\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<RunCloudBenchTaskResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n <Data>\\n <Status>SUCCESS</Status>\\n <Order>0</Order>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Name>BenchTarget</Name>\\n <Details>\\"Data\\": { \\"total\\": 1, \\"list\\":[...] }, \\"Code\\": 200, \\"Success\\": true }</Details>\\n </Data>\\n</RunCloudBenchTaskResponse>","errorExample":""}]', + ], + 'SetEventSubscription' => [ + 'summary' => '调用SetEventSubscription接口,配置数据库实例的事件订阅设置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhdmB8MM4L', - 'FEATUREhdmROFBLE', - 'FEATUREhdm1XKIXR', - 'FEATUREhdmR88NLD', - 'FEATUREhdm3TU4OK', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'abilityTreeNodes' => ['FEATUREhdmETIPZF'], ], 'parameters' => [ [ - 'name' => 'Query', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '问答自然语言描述', - 'type' => 'string', - 'required' => true, - 'example' => 'Are there any issues or abnormalities with my instance rm-xxx?', - ], + 'schema' => ['title' => '实例ID', 'description' => '实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-2ze8g2am97624****'], ], [ - 'name' => 'InstanceId', + 'name' => 'EventContext', 'in' => 'query', - 'allowEmptyValue' => true, 'schema' => [ - 'description' => '废弃参数, 实例Id通过Query字段传入', + 'title' => '事件场景', + 'description' => '支持的事件场景,当前仅支持**AllContext**,表示支持所有场景。', 'type' => 'string', 'required' => false, - 'example' => 'rm-xxxx', + 'enumValueTitles' => [], + 'example' => 'AllContext', ], ], [ - 'name' => 'SessionId', + 'name' => 'Lang', 'in' => 'query', 'schema' => [ - 'description' => '可选,会话Id,格式为UUID字符串,未传入会创建新的会话,上下文对话需保持同一个会话Id', + 'title' => '语言', + 'description' => '事件通知的语言,当前仅支持**zh-CN**,表示事件通知为中文。', 'type' => 'string', 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-xxxxxxxxxxxx', + 'enumValueTitles' => [], + 'example' => 'zh-CN', ], ], [ - 'name' => 'AgentId', + 'name' => 'MinInterval', + 'in' => 'query', + 'schema' => ['title' => '通知最小间隔', 'description' => '通知最小间隔时间,单位为秒(s)。', 'type' => 'string', 'required' => false, 'example' => '60'], + ], + [ + 'name' => 'ContactName', + 'in' => 'query', + 'schema' => ['title' => '告警订阅人', 'description' => '告警事件订阅人名称,多个名称间以英文逗号分隔。', 'type' => 'string', 'required' => false, 'example' => 'Default contact'], + ], + [ + 'name' => 'ChannelType', 'in' => 'query', 'schema' => [ - 'description' => '可选,默认使用默认Agent进行服务,或者传入开启DASAgent服务后生成的或者主动创建的Agent', + 'title' => '通知方式', + 'description' => '通知方式。'."\n" + .'- **hdm\\_alarm\\_sms**:手机短信。'."\n" + .'- **dingtalk**:钉钉机器人。'."\n" + .'- **hdm\\_alarm\\_sms\\_and\\_email**:手机短信+邮件。'."\n" + .'- **hdm\\_alarm\\_sms,dingtalk**:手机短信+钉钉机器人。', 'type' => 'string', 'required' => false, - 'example' => 'ag-472T0DxtmjIxxxxx', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'Id' => [ - 'description' => 'SessionId, 同请求参数中的SessionId', - 'type' => 'string', - 'example' => '123e4567-e89b-12d3-a456-xxxxxxxxxxxx', - ], - 'Answer' => [ - 'description' => '回答内容', - 'type' => 'string', - 'example' => 'rm-xxxx', - ], - 'Metadata' => [ - 'description' => '元信息', - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '如果异常,会返回错误类型,无异常时返回为空', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '-1810001', - ], - 'CharCount' => [ - 'description' => '回答的字符数量', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1403', - ], - 'ToolName' => [ - 'description' => '调用的工具命令', - 'type' => 'string', - 'example' => 'SqlFilter', - ], - 'ToolParams' => [ - 'description' => '工具参数', - 'type' => 'array', - 'items' => [ - 'description' => '字符串列表', - 'type' => 'string', - 'example' => '["--instanceId", "rm-*****", "--sqlText", "select~from~das~where~name~das1"]', - ], - ], - 'RequestId' => [ - 'description' => '请求Id', - 'type' => 'string', - 'example' => '04930480-9404-50CB-8252-Axxxxxxxx', - ], - ], - ], - 'Event' => [ - 'description' => '返回回答信息的类型', - 'type' => 'string', - 'enumValueTitles' => [ - 'summary' => '回答的相关统计', - ' error ' => '报错信息', - 'agent_message ' => '大模型生成的回答', - ], - 'example' => 'summary', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', + 'enumValueTitles' => [], + 'example' => 'hdm_alarm_sms,dingtalk', ], ], [ - [ - 'errorCode' => 'InstanceNotFound', - 'errorMessage' => 'Requested instance not found.', - ], - ], - 500 => [ - [ - 'errorCode' => 'Timeout', - 'errorMessage' => 'The request processing has failed due to timeout.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Id\\": \\"123e4567-e89b-12d3-a456-xxxxxxxxxxxx\\",\\n \\"Answer\\": \\"rm-xxxx\\",\\n \\"Metadata\\": {\\n \\"Code\\": -1810001,\\n \\"CharCount\\": 1403,\\n \\"ToolName\\": \\"SqlFilter\\",\\n \\"ToolParams\\": [\\n \\"[\\\\\\"--instanceId\\\\\\", \\\\\\"rm-*****\\\\\\", \\\\\\"--sqlText\\\\\\", \\\\\\"select~from~das~where~name~das1\\\\\\"]\\"\\n ],\\n \\"RequestId\\": \\"04930480-9404-50CB-8252-Axxxxxxxx\\"\\n },\\n \\"Event\\": \\"summary\\"\\n}","type":"json"}]', - 'title' => 'Das Agent 数据流接口', - 'description' => '该接口是付费接口,会按照输出字符进行计费,请确保在使用该接口前,已充分了解DAS Agent产品的收费方式和[价格](https://help.aliyun.com/zh/das/product-overview/billing-details-of-the-previous-version?spm=a2c4g.11186623.help-menu-63907.d_0_1_0.b7203b87MDNqHO&scm=20140722.H_156195._.OR_help-T_cn~zh-V_1#cad160563fbkd)。提供java和Python[两个调用示例供参考](https://help.aliyun.com/zh/das/developer-reference/getdasagentsse-practice)。', - 'extraInfo' => '### Java 版本示例'."\n" - ."\n" - .'```'."\n" - .'import com.aliyun.auth.credentials.Credential;'."\n" - .'import com.aliyun.auth.credentials.provider.StaticCredentialProvider;'."\n" - .'import com.aliyun.sdk.gateway.pop.Configuration;'."\n" - .'import com.aliyun.sdk.gateway.pop.auth.SignatureVersion;'."\n" - .'import com.aliyun.sdk.service.das20200116.models.GetDasAgentSSERequest;'."\n" - .'import com.aliyun.sdk.service.das20200116.models.GetDasAgentSSEResponseBody;'."\n" - .'import com.aliyun.sdk.service.das20200116.models.*;'."\n" - .'import com.aliyun.sdk.service.das20200116.*;'."\n" - .'import darabonba.core.ResponseIterable;'."\n" - .'import darabonba.core.client.ClientOverrideConfiguration;'."\n" - ."\n" - .'import java.util.*;'."\n" - .'import java.io.*;'."\n" - ."\n" - .'public class GetDasAgentSSESample {'."\n" - ."\n" - .' public static void main(String[] args) throws Exception {'."\n" - ."\n" - .' StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()'."\n" - .' .accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))'."\n" - .' .accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))'."\n" - .' .build());'."\n" - ."\n" - .' AsyncClient client = AsyncClient.builder()'."\n" - .' .region("cn-shanghai")'."\n" - .' .credentialsProvider(provider)'."\n" - .' .serviceConfiguration(Configuration.create().setSignatureVersion(SignatureVersion.V3))'."\n" - .' .overrideConfiguration(ClientOverrideConfiguration.create().setProtocol("HTTPS")'."\n" - .' .setEndpointOverride("das.cn-shanghai.aliyuncs.com"))'."\n" - .' .build();'."\n" - ."\n" - .' GetDasAgentSSERequest request = GetDasAgentSSERequest.builder()'."\n" - .' .query("麻烦介绍下DAS Agent,相关文字在1000字左右").build();'."\n" - .' ResponseIterable<GetDasAgentSSEResponseBody> x = client.getDasAgentSSEWithResponseIterable(request);'."\n" - .' for (GetDasAgentSSEResponseBody event : x) {'."\n" - .' System.out.printf(event.getAnswer());'."\n" - .' }'."\n" - ."\n" - .' client.close();'."\n" - .' }'."\n" - ."\n" - .'}'."\n" - .'```'."\n" - .'### Python 版本示例'."\n" - ."\n" - .'```'."\n" - .'# -*- coding: utf-8 -*-'."\n" - .'import os'."\n" - .'import sys'."\n" - .'import json'."\n" - .'import asyncio'."\n" - ."\n" - .'from typing import List'."\n" - ."\n" - .'from alibabacloud_das20200116.client import Client as DAS20200116Client'."\n" - .'from alibabacloud_credentials.client import Client as CredentialClient'."\n" - .'from alibabacloud_tea_openapi import models as open_api_models'."\n" - .'from alibabacloud_das20200116 import models as das20200116_models'."\n" - .'from alibabacloud_tea_util import models as util_models'."\n" - .'from alibabacloud_tea_util.client import Client as UtilClient'."\n" - ."\n\n" - .'class GetDasAgentSseSample:'."\n" - .' def __init__(self):'."\n" - .' pass'."\n" - ."\n" - .' @staticmethod'."\n" - .' def create_client() -> DAS20200116Client:'."\n" - .' """'."\n" - .' 使用凭据初始化账号Client'."\n" - .' @return: Client'."\n" - .' @throws Exception'."\n" - .' """'."\n" - .' credential = CredentialClient()'."\n" - .' config = open_api_models.Config('."\n" - .' credential=credential'."\n" - .' )'."\n" - .' config.endpoint = f\'das.cn-shanghai.aliyuncs.com\''."\n" - .' return DAS20200116Client(config)'."\n" - ."\n" - .' @staticmethod'."\n" - .' def create_api_info() -> open_api_models.Params:'."\n" - .' params = open_api_models.Params('."\n" - .' action=\'GetDasAgentSSE\','."\n" - .' version=\'2020-01-16\','."\n" - .' protocol=\'HTTPS\','."\n" - .' pathname=\'/\','."\n" - .' method=\'POST\','."\n" - .' auth_type=\'AK\','."\n" - .' style=\'RPC\','."\n" - .' req_body_type=\'json\','."\n" - .' body_type=\'sse\''."\n" - .' )'."\n" - .' return params'."\n" - ."\n" - .' @staticmethod'."\n" - .' def build_open_api_request(request_obj) -> open_api_models.OpenApiRequest:'."\n" - .' query_dict = {} '."\n" - .' for attr_name in dir(request_obj):'."\n" - .' if attr_name.startswith(\'_\'):'."\n" - .' continue'."\n" - .' if callable(getattr(request_obj, attr_name, None)):'."\n" - .' continue'."\n" - .' try:'."\n" - .' value = getattr(request_obj, attr_name)'."\n" - .' except AttributeError:'."\n" - .' continue '."\n" - .' if UtilClient.is_unset(value):'."\n" - .' continue'."\n" - .' '."\n" - .' api_key = \'\'.join(word.capitalize() for word in attr_name.split(\'_\'))'."\n" - .' query_dict[api_key] = value'."\n" - .' '."\n" - .' return open_api_models.OpenApiRequest('."\n" - .' query=query_dict,'."\n" - .' headers={}'."\n" - .' )'."\n" - ."\n" - .' @staticmethod'."\n" - .' def run() -> None:'."\n" - .' client = GetDasAgentSseSample.create_client()'."\n" - .' params = GetDasAgentSseSample.create_api_info()'."\n" - .' runtime = util_models.RuntimeOptions()'."\n" - .' '."\n" - .' # 创建请求对象(可以通过命令行参数传递 query)'."\n" - .' get_das_agent_sserequest = das20200116_models.GetDasAgentSSERequest('."\n" - .' query=\'麻烦介绍下DAS Agent,相关文字在1000字左右\''."\n" - .' )'."\n" - .' '."\n" - .' # 转换为 OpenApiRequest 格式'."\n" - .' open_api_request = GetDasAgentSseSample.build_open_api_request(get_das_agent_sserequest)'."\n" - .' '."\n" - .' response = client.call_sseapi(params, open_api_request, runtime)'."\n" - .' for res in response:'."\n" - .' answer = None '."\n" - .' if hasattr(res.event, \'data\'):'."\n" - .' # event.data 可能是字符串或字典'."\n" - .' event_data = res.event.data'."\n" - .' if isinstance(event_data, str):'."\n" - .' try:'."\n" - .' event_data = json.loads(event_data)'."\n" - .' except json.JSONDecodeError:'."\n" - .' pass'."\n" - .' if isinstance(event_data, dict):'."\n" - .' answer = event_data.get(\'Answer\')'."\n" - .' if answer:'."\n" - .' print(answer, end=\'\', flush=True)'."\n" - ."\n\n" - .'if __name__ == \'__main__\':'."\n" - .' GetDasAgentSseSample.run()'."\n" - .'```', - ], - 'GetInstanceGroupInspectReportList' => [ - 'summary' => '用于查询DAS Agent生成的运维报告列表。', - 'path' => '', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhdmJC65CS', + 'name' => 'ContactGroupName', + 'in' => 'query', + 'schema' => ['title' => '告警订阅组', 'description' => '告警事件订阅组名称,多个名称以英文逗号分隔。', 'type' => 'string', 'required' => false, 'example' => 'Default contact group'], ], - 'tenantRelevance' => 'tenant', - ], - 'parameters' => [ [ - 'name' => 'GroupId', + 'name' => 'Level', 'in' => 'query', 'schema' => [ - 'description' => '保留参数', + 'title' => '事件风险级别', + 'description' => '需要进行通知的事件级别,取值:'."\n" + .'- **Notice**:通知(包含**Notice**、**Optimization**、**Warn**和**Critical**级别的事件)。'."\n" + .'- **Optimization**:优化(包含**Optimization**、**Warn**和**Critical**级别的事件)。'."\n" + .'- **Warn**:警告(包含**Warn**和**Critical**级别的事件)。'."\n" + .'- **Critical**:严重(仅包含**Critical**级别的事件)。'."\n" + ."\n" + .'各个级别事件的含义如下:'."\n" + ."\n" + .'- 通知:暂无建议的数据库异常事件。'."\n" + .'- 优化:根据数据库运行情况给出优化建议的事件。'."\n" + .'- 警告:需要关注的可能会影响数据库的事件。'."\n" + .'- 严重:影响数据库运行的事件。', 'type' => 'string', 'required' => false, - 'example' => 'null', + 'enumValueTitles' => [], + 'example' => 'Optimization', ], ], [ - 'name' => 'AgentId', + 'name' => 'Active', 'in' => 'query', 'schema' => [ - 'description' => '可选,默认使用默认Agent进行服务,或者传入开启DASAgent服务后生成的或者主动创建的Agent', + 'title' => '是否启用', + 'description' => '是否启用事件订阅功能:'."\n" + .'- **0**:关闭。'."\n" + .'- **1**:开启。', 'type' => 'string', 'required' => false, - 'example' => 'ag-472T0DxtmjIxxxxx', + 'enumValueTitles' => [], + 'example' => '1', ], ], [ - 'name' => 'StartTime', - 'in' => 'formData', - 'schema' => [ - 'title' => '开始时间戳', - 'description' => '开始时间戳', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1596177993000', - ], + 'name' => 'Severity', + 'in' => 'query', + 'schema' => ['description' => '按照事件类型设置事件的告警级别。'."\n" + ."\n" + .'输入格式:`{"事件类型1":"告警级别", "事件类型2":"告警级别"}`。'."\n" + ."\n" + .'事件类型:'."\n" + ."\n" + .'- **AutoScale**:弹性伸缩事件。'."\n" + .'- **SQLThrottle**:限流事件。'."\n" + .'- **TimeSeriesAbnormal**:时序异常检测事件。'."\n" + .'- **SQLOptimize**:SQL优化事件。'."\n" + .'- **ResourceOptimize**:空间优化事件。'."\n" + ."\n" + .'告警级别:'."\n" + .'- **info**:一般。'."\n" + .'- **noticed**:通知。'."\n" + .'- **warning**:警告。'."\n" + .'- **critical**:严重。', 'type' => 'string', 'required' => false, 'example' => '{"AutoScale":"critical","SQLThrottle":"info","TimeSeriesAbnormal":"warning"}'], ], [ - 'name' => 'EndTime', - 'in' => 'formData', - 'schema' => [ - 'title' => '结束时间戳', - 'description' => '结束时间戳', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1655427625000', - ], + 'name' => 'DispatchRule', + 'in' => 'query', + 'schema' => ['description' => '按照事件类型设置事件的消息通知规则,此参数为空时,以**MinInterval**和**ChannelType**设置为准。'."\n" + ."\n" + .'输入格式:`{"silenced": {"事件类型1":是否打开自适应静默, "事件类型2":是否打开自适应静默},"min_interval":{"事件类型1":通知最小间隔, "事件类型2":通知最小间隔},"alert_type": {"事件类型1":"通知方式", "事件类型2":"通知方式"}}`。'."\n" + ."\n" + .'- **silenced**:是否打开自适应静默。打开自适应静默后,事件中连续告警的发送间隔变为**min\\_interval**设置值和该事件持续时间1/3中的最大值。'."\n" + .' - 1:打开。'."\n" + .' - 2:关闭。'."\n" + .'- **min\\_interval**:通知最小间隔时间,单位为秒(s)。'."\n" + .'- **alert_type**:通知方式,取值:'."\n" + .' - **hdm\\_alarm\\_sms**:手机短信。'."\n" + .' - **dingtalk**:钉钉机器人。'."\n" + .' - **hdm\\_alarm\\_sms\\_and\\_email**:手机短信+邮件。'."\n" + .' - **hdm\\_alarm\\_sms,dingtalk**:手机短信+钉钉机器人。', 'type' => 'string', 'required' => false, 'example' => '{"silenced": {"AutoScale":1, "SQLThrottle":0, "TimeSeriesAbnormal": 1}, "min_interval": {"AutoScale":300, "SQLThrottle":360, "TimeSeriesAbnormal": 120}, "alert_type": {"AutoScale":"hdm_alarm_sms", "SQLThrottle":"hdm_alarm_sms_and_email", "TimeSeriesAbnormal": "hdm_alarm_sms,dingtalk"}}'], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'description' => '返回信息列表。', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。'."\n" - ."\n", - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - .'* **true**:执行成功。'."\n" - .'* **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '097F0C56-B252-515A-B602-FC56EF93EF8A'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ - 'title' => 'List<ReportStatus>', - 'description' => 'List<ReportStatus>', - 'type' => 'array', - 'items' => [ - 'description' => '详细信息列表,报告ID、任务日期、任务状态。', - 'type' => 'object', - 'properties' => [ - 'ReportId' => [ - 'description' => '报告ID', - 'type' => 'string', - 'example' => '13f52040-5a6e-42c3-bb84-051f5d6d****', - ], - 'Status' => [ - 'title' => '任务状态 WAITING_UNREADY = 0 WAITING_READY = 1 PROCESSING = 2 FINISHED = 3 ERROR = 4 STOPPED = -1', - 'description' => '任务状态 WAITING_UNREADY = 0 WAITING_READY = 1 PROCESSING = 2 FINISHED = 3 ERROR = 4 STOPPED = -1', - 'type' => 'string', - 'example' => '3', - ], - 'ReportDate' => [ - 'title' => '诊断的日期', - 'description' => '诊断的日期', - 'type' => 'string', - 'example' => '2025-12-10', - ], - 'CreateTime' => [ - 'description' => '任务创建时间。', - 'type' => 'string', - 'example' => '2025-12-11 00:39:00', - ], - ], + 'description' => '详细信息列表。', + 'type' => 'object', + 'properties' => [ + 'userId' => ['title' => '用户ID ', 'description' => '用户ID。', 'type' => 'string', 'example' => '1088760496****'], + 'instanceId' => ['title' => '实例ID', 'description' => '实例ID。', 'type' => 'string', 'example' => 'rm-2ze8g2am97624****'], + 'eventContext' => ['title' => '事件场景', 'description' => '支持的事件场景,当前仅支持**AllContext**,表示支持所有场景。', 'type' => 'string', 'example' => 'AllContext'], + 'lang' => ['title' => '语言', 'description' => '事件通知的语言,当前仅支持**zh-CN**,表示事件通知为中文。', 'type' => 'string', 'example' => 'zh_CN'], + 'active' => ['title' => '是否启用', 'description' => '是否启用事件订阅:'."\n" + .'- **0**:关闭。'."\n" + .'- **1**:开启。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'minInterval' => ['title' => '通知最小间隔', 'description' => '通知最小间隔时间,单位秒(s)。', 'type' => 'integer', 'format' => 'int32', 'example' => '60'], + 'contactName' => ['title' => '告警订阅人', 'description' => '告警事件订阅人名称,多个名称间以英文逗号分隔。', 'type' => 'string', 'example' => 'Default contact'], + 'contactGroupName' => ['title' => '告警订阅组', 'description' => '告警事件订阅组名称,多个名称间以英文逗号分隔。', 'type' => 'string', 'example' => 'Default contact group'], + 'channelType' => ['title' => '通知方式', 'description' => '通知方式:'."\n" + .'- **hdm\\_alarm\\_sms**:手机短信。'."\n" + .'- **dingtalk**:钉钉机器人。'."\n" + .'- **hdm\\_alarm\\_sms\\_and\\_email**:手机短信+邮件。'."\n" + .'- **hdm\\_alarm\\_sms,dingtalk**:手机短信+钉钉机器人。', 'type' => 'string', 'example' => 'hdm_alarm_sms,dingtalk'], + 'level' => ['title' => '事件风险级别', 'description' => '事件风险级别:'."\n" + .'- **Notice**:通知。'."\n" + .'- **Optimization**:优化。'."\n" + .'- **Warn**:警告。'."\n" + .'- **Critical**:严重。'."\n", 'type' => 'string', 'example' => 'Optimization'], ], ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": [\\n {\\n \\"ReportId\\": \\"13f52040-5a6e-42c3-bb84-051f5d6d****\\",\\n \\"Status\\": \\"3\\",\\n \\"ReportDate\\": \\"2025-12-10\\",\\n \\"CreateTime\\": \\"2025-12-11 00:39:00\\"\\n }\\n ]\\n}","type":"json"}]', - 'title' => '查询DAS Agent运维报告列表', - 'description' => '开启DAS Agent的运维报告功能可让系统对目标实例进行定期巡检并给出报告。当前仅支持生成日报。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"097F0C56-B252-515A-B602-FC56EF93EF8A\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"userId\\": \\"1088760496****\\",\\n \\"instanceId\\": \\"rm-2ze8g2am97624****\\",\\n \\"eventContext\\": \\"AllContext\\",\\n \\"lang\\": \\"zh_CN\\",\\n \\"active\\": 1,\\n \\"minInterval\\": 60,\\n \\"contactName\\": \\"Default contact\\",\\n \\"contactGroupName\\": \\"Default contact group\\",\\n \\"channelType\\": \\"hdm_alarm_sms,dingtalk\\",\\n \\"level\\": \\"Optimization\\"\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<SetEventSubscriptionResponse>\\n <RequestId>097F0C56-B252-515A-B602-FC56EF93EF8A</RequestId>\\n <Message>Successful</Message>\\n <Data>\\n <userId>1088760496****</userId>\\n <instanceId>rm-2ze8g2am97624****</instanceId>\\n <eventContext>AllContext</eventContext>\\n <lang>zh_CN</lang>\\n <active>1</active>\\n <minInterval>60</minInterval>\\n <contactName>默认联系人</contactName>\\n <contactGroupName>默认联系组</contactGroupName>\\n <channelType>hdm_alarm_sms,dingtalk</channelType>\\n <level>Optimization</level>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</SetEventSubscriptionResponse>","errorExample":""}]', + 'title' => '配置事件订阅设置', + 'description' => '使用该接口需满足以下前提条件:'."\n" ."\n" - .'使用该接口需满足以下前提条件:'."\n" - .'- 用户开通DAS Agent并且该Agent仍在有效期。'."\n" - .'- 用户在DAS Agent的配置页面,开启日报功能。'."\n" - .'- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于4.3.3,建议使用最新版本。'."\n" - .'- 使用DAS的SDK的版本为1.0.3或以上。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - ], - 'GetInstanceGroupInspectReportDetail' => [ - 'summary' => '获取DAS Agent运维报告详情。', - 'path' => '', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhdmJC65CS', + .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" + .'- 使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + .'- 数据库实例已接入DAS。'."\n" + ."\n" + .'<props="china"> <note>事件订阅已集成至告警功能。如果在控制台配置了事件告警,通过该API接口配置的事件订阅设置将被事件告警覆盖。配置事件告警请参见[配置告警](~~87017~~)。</note></props>', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetEventSubscription'], ], - 'tenantRelevance' => 'tenant', ], - 'parameters' => [ - [ - 'name' => 'ReportId', - 'in' => 'formData', - 'schema' => [ - 'title' => '报告ID', - 'description' => '运维报告ID', - 'type' => 'string', - 'required' => true, - 'example' => '13f52040-5a6e-42c3-bb84-051f5d6d****', - ], - ], + 'ramActions' => [ [ - 'name' => 'AgentId', - 'in' => 'query', - 'schema' => [ - 'description' => '用户购买的智能体ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'ag-472T0DxtmjIxxxxx', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回的消息。'."\n" - ."\n" - .'> 请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - .'* true:执行成功'."\n" - .'* false:执行失败'."\n", - 'type' => 'string', - 'example' => 'true', - ], - 'Data' => [ - 'title' => 'ReportDetail', - 'description' => 'ReportDetail', - 'type' => 'object', - 'properties' => [ - 'ReportId' => [ - 'description' => '报告ID', - 'type' => 'string', - 'example' => '13f52040-5a6e-42c3-bb84-051f5d6d****'."\n", - ], - 'ReportDetail' => [ - 'description' => '运维报告的内容,主要包括报告日期、纳管实例的诊断详情。', - 'type' => 'string', - 'example' => '"### 概要\\n\\n报告日期:2025-12-10 \\n对比周期:[昨日日期] → 2025-12-10 以下省略"', - ], - ], - ], + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'hdm:SetEventSubscription', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"ReportId\\": \\"13f52040-5a6e-42c3-bb84-051f5d6d****\\\\n\\",\\n \\"ReportDetail\\": \\"\\\\\\"### 概要\\\\\\\\n\\\\\\\\n报告日期:2025-12-10 \\\\\\\\n对比周期:[昨日日期] → 2025-12-10 以下省略\\\\\\"\\"\\n }\\n}","type":"json"}]', - 'title' => '查询DAS Agent运维报告明细', - 'description' => '开启DAS Agent的运维报告功能可让系统对目标实例进行定期巡检并给出报告。当前仅支持生成日报。该接口用于查询报告明细。'."\n" - ."\n" - .'使用该接口需满足以下前提条件:'."\n" - ."\n" - .'- 用户开通DAS Agent并且该Agent仍在有效期。'."\n" - .'- 用户在DAS Agent的配置页面,开启日报功能。'."\n" - .'- 在使用阿里云SDK时,需要保证aliyun-sdk-core的版本大于4.3.3,建议使用最新版本。'."\n" - .'- 使用DAS的SDK的版本为1.0.3或以上。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', ], - 'CreateSecurityIPGroup' => [ - 'summary' => '创建用户跨产品白名单模板', - 'path' => '', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'https', - ], + 'UpdateAutoResourceOptimizeRulesAsync' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '247410', - 'abilityTreeNodes' => [ - 'FEATUREhdmQULC0I', - ], - 'tenantRelevance' => 'tenant', + 'abilityTreeNodes' => ['FEATUREhdm3TU4OK'], ], 'parameters' => [ [ - 'name' => 'RegionName', + 'name' => 'ConsoleContext', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => '地域 ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-beijing', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ - 'name' => 'GlobalIgName', + 'name' => 'InstanceIds', 'in' => 'query', - 'schema' => [ - 'description' => 'IP白名单模板名称。IP白名单模板名称需满足如下要求:'."\n" - ."\n" - .'- 由小写字母、数字、下划线(_)组成。'."\n" - ."\n" - .'- 由字母开头、字母或数字结尾。'."\n" - ."\n" - .'- 长度为2~120个字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'test_123', - ], + 'schema' => ['description' => '数据库实例ID。'."\n" + ."\n" + .'> 数据格式为JSONArray,例如`[\'实例ID1\',\'实例ID2\']`,实例ID间用英文逗号(,)分隔。'."\n" + ."\n", 'type' => 'string', 'required' => true, 'example' => '[\'rm-2ze8g2am97624****\',\'rm-2ze9xrhze0709****\']'], ], [ - 'name' => 'GIpList', + 'name' => 'TableSpaceSize', 'in' => 'query', - 'schema' => [ - 'description' => '白名单模板内的IP地址。'."\n" - ."\n" - .'> 多个IP地址需要用英文逗号(,)分隔,不可重复,上限为1000个。', - 'type' => 'string', - 'required' => true, - 'example' => '192.168.0.1', - ], + 'schema' => ['description' => '触发空间碎片自动回收单个物理表的最小空间,取值范围:**5**~**100**,单位为GB。', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '10'], ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Data' => [ - 'title' => 'ListResult<InstanceSSL>', - 'description' => 'ListResult<InstanceSSL>', - 'type' => 'object', - 'properties' => [ - 'GlobalSecurityIPGroup' => [ - 'description' => '跨产品白名单模板信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'SecurityIpType' => [ - 'description' => 'IP类型', - 'type' => 'string', - 'example' => 'ipv4', - ], - 'RegionId' => [ - 'description' => '地域 ID。'."\n" - ."\n" - .'示例值:'."\n" - .'cn-hangzhou', - 'type' => 'string', - 'example' => 'cn-shenzhen', - ], - 'GlobalIgName' => [ - 'description' => 'IP白名单模板名称。IP白名单模板名称需满足如下要求:'."\n" - ."\n" - .'- 由小写字母、数字、下划线(_)组成。'."\n" - ."\n" - .'- 由字母开头、字母或数字结尾。'."\n" - ."\n" - .'- 长度为2~120个字符。', - 'type' => 'string', - 'example' => 'test', - ], - 'GlobalSecurityGroupId' => [ - 'description' => 'IP白名单模板ID。', - 'type' => 'string', - 'example' => 'g-2uztsd6yvhmsqyjXXX', - ], - 'WhitelistNetType' => [ - 'description' => '白名单的网络类型。', - 'type' => 'string', - 'example' => 'mix', - ], - 'GIpList' => [ - 'description' => '白名单模板内的IP地址。'."\n" - ."\n" - .'> 多个IP地址需要用英文逗号隔开,所有IP白名单累积支持添加1000个IP地址或地址段。', - 'type' => 'string', - 'example' => '192.168.0.0/24', - ], - ], - ], - ], - ], - ], - 'Message' => [ - 'description' => '请求返回的消息。'."\n" - ."\n" - .'> 请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'D578DB3C-06BF-54F2-A78F-C6C25Exxxxxx', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Data\\": {\\n \\"GlobalSecurityIPGroup\\": [\\n {\\n \\"SecurityIpType\\": \\"ipv4\\",\\n \\"RegionId\\": \\"cn-shenzhen\\",\\n \\"GlobalIgName\\": \\"test\\",\\n \\"GlobalSecurityGroupId\\": \\"g-2uztsd6yvhmsqyjXXX\\",\\n \\"WhitelistNetType\\": \\"mix\\",\\n \\"GIpList\\": \\"192.168.0.0/24\\"\\n }\\n ]\\n },\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"D578DB3C-06BF-54F2-A78F-C6C25Exxxxxx\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', - 'title' => '跨产品白名单模板创建接口', - 'description' => '前提条件:'."\n" - ."\n" - .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 仅开通了DAS企业版的数据库实例支持创建离线任务。DAS企业版各个版本支持的数据库和地域请参见[DAS产品系列及支持的功能](~~156204~~)。'."\n" - ."\n" - .'接口限制:'."\n" - ."\n" - .'最大同时执行数量为10。', - ], - 'DescribeSecurityIPGroup' => [ - 'summary' => '展示用户跨产品白名单模板具体信息', - 'path' => '', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'https', - ], - 'security' => [ [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '247410', - 'abilityTreeNodes' => [ - 'FEATUREhdmQULC0I', + 'name' => 'TableFragmentationRatio', + 'in' => 'query', + 'schema' => ['description' => '触发空间碎片自动回收单个物理表的碎片率,取值范围:**0.10**~**0.99**。', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2'], ], - 'tenantRelevance' => 'tenant', - ], - 'parameters' => [ [ - 'name' => 'RegionName', + 'name' => 'ResultId', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => '地域 ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => '异步请求的ID。'."\n" + .'> 异步调用后不会立即返回完整结果,首先需要调用该接口获取**ResultId**,然后使用返回数据的**ResultId**,重新发起调用,直到**isFinish**取值为**true**时,返回完整结果。即获取一次完整数据,至少需要调用该接口两次。', 'type' => 'string', 'required' => false, 'example' => 'async__507044db6c4eadfa2dab9b084e80****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ - 'title' => 'ListResult<InstanceSSL>', - 'description' => 'ListResult<InstanceSSL>', + 'description' => '返回的数据。', 'type' => 'object', 'properties' => [ - 'SecurityIpGroups' => [ - 'description' => '用户在该region下的所有跨产品白名单模板列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'DbInstances' => [ - 'description' => '该跨产品白名单模板所绑定的数据库实例列表。', - 'type' => 'array', - 'items' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'example' => '["r-2ze9g6mnhu1***",'."\n" - .'"pc-2zew5qn1m***",'."\n" - .'"r-2ze9g6mn****",'."\n" - .'"pc-2zew5qh41*****"]', + 'Fail' => ['description' => '请求是否失败:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'false'], + 'ConfigResponse' => [ + 'description' => '批量设置的返回数据。'."\n" + .'> 异步请求完成时(即isFinish取值为**true**时)才会返回该数据。', + 'type' => 'object', + 'properties' => [ + 'TotalInstanceCount' => ['description' => '总数据库实例数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'ConfigSuccessInstanceCount' => ['description' => '设置成功的数据库实例数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'ConfigFailInstanceCount' => ['description' => '设置失败的数据库实例数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'ConfigSuccessInstanceList' => [ + 'description' => '设置成功的数据库实例列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ConfigSuccess' => ['description' => '设置是否成功:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'InstanceId' => ['description' => '数据库实例ID。', 'type' => 'string', 'example' => 'rm-2ze8g2am97624****'], ], + 'description' => '', ], - 'SecurityIpType' => [ - 'description' => 'ip类型', - 'type' => 'string', - 'example' => 'ipv4', - ], - 'Uid' => [ - 'description' => '账号ID,您可在阿里云**账号管理**的**安全设置**页面获取**登录账号**的ID。', - 'type' => 'string', - 'example' => '160-79abe3f4****', - ], - 'RegionId' => [ - 'description' => '地域 ID。', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'GEcsSgIdList' => [ - 'description' => 'ECS 安全组ID,已无效,是冗余数据,待下线', - 'type' => 'string', - 'example' => ' null', - ], - 'GlobalIgName' => [ - 'description' => 'IP白名单模板名称。IP白名单模板名称需满足如下要求:'."\n" - ."\n" - .'- 由小写字母、数字、下划线(_)组成。'."\n" - ."\n" - .'- 由字母开头、字母或数字结尾。'."\n" - ."\n" - .'- 长度为2~120个字符。', - 'type' => 'string', - 'example' => 'test_123', - ], - 'GlobalSecurityGroupId' => [ - 'description' => 'IP白名单模板ID。', - 'type' => 'string', - 'example' => 'g-1no2rzybnqcv****', - ], - 'WhitelistNetType' => [ - 'description' => '白名单的网络类型。', - 'type' => 'string', - 'example' => 'mix', - ], - 'EngineInfoList' => [ - 'description' => '该模板所绑定的各产品下的实例信息', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'InstanceNum' => [ - 'description' => '当前登录账号包含的实例数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'EngineName' => [ - 'description' => '目标实例的数据库类型。', - 'type' => 'string', - 'example' => 'PolarDBMySQL', - ], - 'InstanceIds' => [ - 'description' => '数据库实例ID列表。', - 'type' => 'array', - 'items' => [ - 'description' => '数据库实例ID。'."\n" - ."\n" - .'> 数据格式为JSONArray,例如`[\'实例ID1\',\'实例ID2\']`,实例ID间用英文逗号(,)分隔。', - 'type' => 'string', - 'example' => 'rm-2ze8ygcc****', - ], - ], - ], + ], + 'ConfigFailInstanceList' => [ + 'description' => '设置失败的数据库实例列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ConfigSuccess' => ['description' => '设置是否成功:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'false'], + 'InstanceId' => ['description' => '数据库实例ID。', 'type' => 'string', 'example' => 'rm-2ze9xrhze0709****'], + 'ErrorMessage' => ['description' => '错误信息。', 'type' => 'string', 'example' => 'Only Support DAS Pro High-availability Edition RDS MySQL 5.6, 5.7, 8.0 instance, and CPU cores >= 4, innodb_file_per_table=ON'], ], - ], - 'UserId' => [ - 'description' => '用户id', - 'type' => 'string', - 'example' => '641***', - ], - 'GIpList' => [ - 'description' => '白名单模板内的IP地址。'."\n" - .'> 多个IP地址需要用英文逗号(,)分隔。', - 'type' => 'string', - 'example' => '192.168.1.28/32', + 'description' => '', ], ], ], ], + 'ResultId' => ['description' => '异步请求的ID。', 'type' => 'string', 'example' => 'async__20ee808e72257f16a4fe024057ca****'], + 'IsFinish' => ['description' => '异步请求是否执行完成:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'State' => ['description' => '异步请求的执行状态:'."\n" + ."\n" + .'- **RUNNING**:正在运行。'."\n" + ."\n" + .'- **SUCCESS**:成功。'."\n" + ."\n" + .'- **FAIL**:失败。', 'type' => 'string', 'example' => 'SUCCESS'], + 'Complete' => ['description' => '异步请求是否执行完成:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'Timestamp' => ['description' => '执行时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1645668213000'], ], ], - 'Message' => [ - 'description' => '请求返回的消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CAC553F1-C669-53F1-A295-2CF050E****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '9CB97BC4-6479-55D0-B9D0-EA925AFE****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + ."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Data\\": {\\n \\"SecurityIpGroups\\": [\\n {\\n \\"DbInstances\\": [\\n \\"[\\\\\\"r-2ze9g6mnhu1***\\\\\\",\\\\n\\\\\\"pc-2zew5qn1m***\\\\\\",\\\\n\\\\\\"r-2ze9g6mn****\\\\\\",\\\\n\\\\\\"pc-2zew5qh41*****\\\\\\"]\\"\\n ],\\n \\"SecurityIpType\\": \\"ipv4\\",\\n \\"Uid\\": \\"160-79abe3f4****\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"GEcsSgIdList\\": \\" null\\",\\n \\"GlobalIgName\\": \\"test_123\\",\\n \\"GlobalSecurityGroupId\\": \\"g-1no2rzybnqcv****\\",\\n \\"WhitelistNetType\\": \\"mix\\",\\n \\"EngineInfoList\\": [\\n {\\n \\"InstanceNum\\": 10,\\n \\"EngineName\\": \\"PolarDBMySQL\\",\\n \\"InstanceIds\\": [\\n \\"rm-2ze8ygcc****\\"\\n ]\\n }\\n ],\\n \\"UserId\\": \\"641***\\",\\n \\"GIpList\\": \\"192.168.1.28/32\\"\\n }\\n ]\\n },\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"CAC553F1-C669-53F1-A295-2CF050E****\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', - 'title' => '跨产品白名单模板展示接口', - 'description' => '使用该接口需满足以下前提条件:'."\n" + 'title' => '设置空间碎片自动回收功能的配置参数', + 'summary' => '调用UpdateAutoResourceOptimizeRulesAsync接口,采用异步方式,批量设置指定数据库实例空间碎片自动回收功能的配置参数。', + 'description' => '> 异步调用后不会立即返回完整结果,首先需要调用该接口获取**ResultId**,然后使用返回数据的**ResultId**,重新发起调用,直到**isFinish**取值为**true**时,返回完整结果。即获取一次完整数据,至少需要调用该接口两次。'."\n" ."\n" - .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - ], - 'DescribeSecurityIPGroupRelation' => [ - 'summary' => '展示用户跨产品白名单模板与实例绑定信息', - 'path' => '', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '247410', - 'abilityTreeNodes' => [ - 'FEATUREhdmQULC0I', + .'使用该接口需满足以下前提条件:'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + ."\n" + .'- 数据库实例类型为RDS MySQL高可用系列。'."\n" + ."\n" + .'- 数据库实例已开启DAS企业版,您可以调用[DescribeInstanceDasPro](~~413866~~)查询。'."\n" + ."\n" + .'- 数据库实例的CPU规格不小于4核,且**innodb_file_per_table**参数值为**ON**。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateAutoResourceOptimizeRulesAsync'], ], - 'tenantRelevance' => 'tenant', ], - 'parameters' => [ - [ - 'name' => 'RegionName', - 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => '地域 ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - ], - ], + 'ramActions' => [ [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2zegsc57ofexxxxx', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Data' => [ - 'title' => 'ListResult<InstanceSSL>', - 'description' => 'ListResult<InstanceSSL>', - 'type' => 'object', - 'properties' => [ - 'GlobalSecurityIPGroupRel' => [ - 'description' => '全局IP白名单模板信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'RegionId' => [ - 'description' => '地域 ID。', - 'type' => 'string', - 'example' => 'cn-shenzhen', - ], - 'GlobalIgName' => [ - 'description' => 'IP白名单模板名称。', - 'type' => 'string', - 'example' => 'test2', - ], - 'GlobalSecurityGroupId' => [ - 'description' => 'IP白名单模板ID。', - 'type' => 'string', - 'example' => 'g-1no2rzybnqcv0xxxxxx', - ], - 'GIpList' => [ - 'description' => '白名单模板内的IP地址。'."\n" - ."\n" - .'> 多个IP地址需要用英文逗号隔开,所有IP白名单累积支持添加1000个IP地址或地址段。', - 'type' => 'string', - 'example' => '192.168.1.28/32', - ], - ], - ], - ], - 'InstanceId' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze1jdv45i7l6****', - ], - ], - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A6D1C8EE-013C-541F-83EB-B13C8xxxxxx', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:UpdateAutoResourceOptimizeRulesAsync', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Data\\": {\\n \\"GlobalSecurityIPGroupRel\\": [\\n {\\n \\"RegionId\\": \\"cn-shenzhen\\",\\n \\"GlobalIgName\\": \\"test2\\",\\n \\"GlobalSecurityGroupId\\": \\"g-1no2rzybnqcv0xxxxxx\\",\\n \\"GIpList\\": \\"192.168.1.28/32\\"\\n }\\n ],\\n \\"InstanceId\\": \\"rm-2ze1jdv45i7l6****\\"\\n },\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"A6D1C8EE-013C-541F-83EB-B13C8xxxxxx\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', - 'title' => '跨产品白名单模板绑定信息展示接口', - 'description' => '使用该接口需满足以下前提条件:'."\n" - ."\n" - .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Fail\\": false,\\n \\"ConfigResponse\\": {\\n \\"TotalInstanceCount\\": 2,\\n \\"ConfigSuccessInstanceCount\\": 1,\\n \\"ConfigFailInstanceCount\\": 1,\\n \\"ConfigSuccessInstanceList\\": [\\n {\\n \\"ConfigSuccess\\": true,\\n \\"InstanceId\\": \\"rm-2ze8g2am97624****\\"\\n }\\n ],\\n \\"ConfigFailInstanceList\\": [\\n {\\n \\"ConfigSuccess\\": false,\\n \\"InstanceId\\": \\"rm-2ze9xrhze0709****\\",\\n \\"ErrorMessage\\": \\"Only Support DAS Pro High-availability Edition RDS MySQL 5.6, 5.7, 8.0 instance, and CPU cores >= 4, innodb_file_per_table=ON\\"\\n }\\n ]\\n },\\n \\"ResultId\\": \\"async__20ee808e72257f16a4fe024057ca****\\",\\n \\"IsFinish\\": true,\\n \\"State\\": \\"SUCCESS\\",\\n \\"Complete\\": true,\\n \\"Timestamp\\": 1645668213000\\n },\\n \\"RequestId\\": \\"9CB97BC4-6479-55D0-B9D0-EA925AFE****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<UpdateAutoResourceOptimizeRulesAsyncResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Fail>false</Fail>\\n <ConfigResponse>\\n <TotalInstanceCount>2</TotalInstanceCount>\\n <ConfigSuccessInstanceCount>1</ConfigSuccessInstanceCount>\\n <ConfigFailInstanceCount>1</ConfigFailInstanceCount>\\n <ConfigSuccessInstanceList>\\n <ConfigSuccess>true</ConfigSuccess>\\n <InstanceId>rm-2ze8g2am97624****</InstanceId>\\n </ConfigSuccessInstanceList>\\n <ConfigFailInstanceList>\\n <ConfigSuccess>false</ConfigSuccess>\\n <InstanceId>rm-2ze9xrhze0709****</InstanceId>\\n <ErrorMessage>Only Support DAS Pro High-availability Edition RDS MySQL 5.6, 5.7, 8.0 instance, and CPU cores >= 4, innodb_file_per_table=ON</ErrorMessage>\\n </ConfigFailInstanceList>\\n </ConfigResponse>\\n <ResultId>async__20ee808e72257f16a4fe024057ca****</ResultId>\\n <IsFinish>true</IsFinish>\\n <State>SUCCESS</State>\\n <Complete>true</Complete>\\n <Timestamp>1645668213000</Timestamp>\\n </Data>\\n <RequestId>9CB97BC4-6479-55D0-B9D0-EA925AFE****</RequestId>\\n <Success>true</Success>\\n</UpdateAutoResourceOptimizeRulesAsyncResponse>","errorExample":""}]', ], - 'ModifySecurityIPGroup' => [ - 'summary' => '修改用户跨产品白名单模板', - 'path' => '', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'https', - ], + 'UpdateAutoSqlOptimizeStatus' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '247410', - 'abilityTreeNodes' => [ - 'FEATUREhdmQULC0I', - ], - 'tenantRelevance' => 'tenant', - ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'RegionName', - 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => '地域 ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - ], - ], - [ - 'name' => 'GlobalIgName', - 'in' => 'query', - 'schema' => [ - 'description' => 'IP白名单模板名称。IP白名单模板名称需满足如下要求:'."\n" - .'- 由小写字母、数字、下划线(_)组成。'."\n" - .'- 由字母开头、字母或数字结尾。'."\n" - .'- 长度为2~120个字符。'."\n" - .'> 本参数将覆盖原值。', - 'type' => 'string', - 'required' => true, - 'example' => 'test_123', - ], - ], - [ - 'name' => 'GIpList', + 'name' => 'Instances', 'in' => 'query', - 'schema' => [ - 'description' => '白名单模板内的IP地址。'."\n" - ."\n" - .'> 多个IP地址需要用英文逗号隔开,所有IP白名单累积支持添加1000个IP地址或地址段。', - 'type' => 'string', - 'required' => true, - 'example' => '192.168.0.1', - ], + 'schema' => ['description' => '数据库实例ID,多个ID间以英文逗号(,)分隔。'."\n" + ."\n" + .'> 最多不能输入超过50个数据库实例ID。', 'type' => 'string', 'required' => true, 'example' => 'rm-bp10usoc1erj7****,rm-bp10usoc1erj7****'], ], [ - 'name' => 'GlobalSecurityGroupId', + 'name' => 'Status', 'in' => 'query', - 'schema' => [ - 'description' => 'IP白名单模板ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'g-9ubyrqeoko****,g-pdxlrvn13k****', - ], + 'schema' => ['description' => '自动SQL优化功能的状态:'."\n" + ."\n" + .'- **0**:关闭自动SQL优化功能。'."\n" + .'- **1**:设置为**SQL诊断并自动索引创建**。'."\n" + .'- **3**:设置为**仅SQL诊断**。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '状态码。', - 'type' => 'string', - 'example' => '200', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + ."\n" + .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ - 'title' => 'ListResult<InstanceSSL>', - 'description' => 'ListResult<InstanceSSL>', + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'GlobalSecurityIPGroup' => [ - 'description' => '跨产品白名单模板信息。', - 'type' => 'array', - 'items' => [ - 'description' => '跨产品白名单模板信息。', - 'type' => 'object', - 'properties' => [ - 'SecurityIpType' => [ - 'description' => 'ip类型', - 'type' => 'string', - 'example' => 'ipv4', - ], - 'RegionId' => [ - 'description' => '地域 ID。'."\n" - ."\n" - .'示例值:'."\n" - .'cn-hangzhou', - 'type' => 'string', - 'example' => 'cn-beijing', - ], - 'GlobalIgName' => [ - 'description' => 'IP白名单模板名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'GlobalSecurityGroupId' => [ - 'description' => 'IP白名单模板ID。', - 'type' => 'string', - 'example' => 'g-b1asblm5ae****', - ], - 'WhitelistNetType' => [ - 'description' => '白名单的网络类型。', - 'type' => 'string', - 'example' => 'mix', - ], - 'GIpList' => [ - 'description' => '白名单模板内的IP地址。'."\n" - ."\n" - .'> 多个IP地址需要用英文逗号隔开,所有IP白名单累积支持添加1000个IP地址或地址段。', - 'type' => 'string', - 'example' => '192.168.0.1', - ], - ], - ], - ], + 'Success' => ['description' => '设置自动SQL优化功能请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'false'], + 'ErrorCode' => ['description' => '错误码:'."\n" + ."\n" + .'- **-1001**:参数错误。'."\n" + .'- **-91029**:系统错误。'."\n" + ."\n", 'type' => 'string', 'example' => '-1001'], + 'ErrorMsg' => ['description' => '错误信息。', 'type' => 'string', 'example' => 'invalid param'], ], ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - .'* **true**:执行成功'."\n" - .'* **false**:执行失败'."\n", - 'type' => 'string', - 'example' => 'true', - ], + 'RequestId' => ['description' => 'OpenAPI请求的ID。', 'type' => 'string', 'example' => 'A52AD37C-35ED-581A-AC23-2232BE54****'], + 'Success' => ['description' => 'OpenAPI请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'string', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数错误'], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => '没有权限执行该操作'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Data\\": {\\n \\"GlobalSecurityIPGroup\\": [\\n {\\n \\"SecurityIpType\\": \\"ipv4\\",\\n \\"RegionId\\": \\"cn-beijing\\",\\n \\"GlobalIgName\\": \\"test\\",\\n \\"GlobalSecurityGroupId\\": \\"g-b1asblm5ae****\\",\\n \\"WhitelistNetType\\": \\"mix\\",\\n \\"GIpList\\": \\"192.168.0.1\\"\\n }\\n ]\\n },\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', - 'title' => '跨产品白名单模板修改接口', + 'title' => '批量开启、修改或关闭自动SQL优化功能', + 'summary' => '调用UpdateAutoSqlOptimizeStatus接口,批量开启、修改或关闭自动SQL优化功能。', 'description' => '使用该接口需满足以下前提条件:'."\n" - .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 使用该接口默认开启当前支持的最新版本。DAS企业版各个版本支持的数据库和地域请参见[DAS产品系列及支持的功能](~~156204~~)。', - ], - 'ModifySecurityIPGroupRelation' => [ - 'summary' => '绑定/解绑用户跨产品白名单模板', - 'path' => '', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '247410', - 'abilityTreeNodes' => [ - 'FEATUREhdmQULC0I', + ."\n" + .'- 目标数据库实例已开启DAS企业版,您可以调用[EnableDasPro](~~411645~~)接口为指定数据库实例开启DAS企业版。'."\n" + ."\n" + .'- 目标数据库实例已开启自治服务,详情请参见[自治中心](~~152139~~)。'."\n" + ."\n" + .'- 本接口适用的数据库引擎为:'."\n" + .' - RDS MySQL高可用系列、三节点企业系列'."\n" + .' - PolarDB MySQL版的集群版', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateAutoSqlOptimizeStatus'], ], - 'tenantRelevance' => 'tenant', ], - 'parameters' => [ + 'ramActions' => [ [ - 'name' => 'RegionName', - 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => '地域 ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - ], - ], - [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'pc-bp1u5mas9exx7****', - ], - ], - [ - 'name' => 'GlobalSecurityGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => 'IP白名单模板ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'g-ggh7qvrrwikyxe****', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Data' => [ - 'title' => 'ListResult<InstanceSSL>', - 'description' => 'ListResult<InstanceSSL>', - 'type' => 'object', - 'properties' => [ - 'GlobalSecurityIPGroupRel' => [ - 'description' => '跨产品IP白名单模板绑定信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'RegionId' => [ - 'description' => '地域 ID。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - 'GlobalIgName' => [ - 'description' => 'IP白名单模板名称。IP白名单模板名称需满足如下要求:'."\n" - ."\n" - .'- 由小写字母、数字、下划线(_)组成。'."\n" - ."\n" - .'- 由字母开头、字母或数字结尾。'."\n" - ."\n" - .'- 长度为2~120个字符。', - 'type' => 'string', - 'example' => 'saas_jump', - ], - 'GlobalSecurityGroupId' => [ - 'description' => 'IP白名单模板ID。', - 'type' => 'string', - 'example' => 'g-v8kwereyd6u7kx****', - ], - 'GIpList' => [ - 'description' => '白名单模板内的IP地址。'."\n" - ."\n" - .'> 多个IP地址需要用英文逗号隔开,所有IP白名单累积支持添加1000个IP地址或地址段。', - 'type' => 'string', - 'example' => '192.168.0.1,192.168.100.0/24', - ], - ], - ], - ], - 'InstanceId' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze1jdv45i7l6****', - ], - ], - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '840F51F7-9C01-538D-94F6-AE712905****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - .'* true:执行成功'."\n" - .'* false:执行失败'."\n", - 'type' => 'string', - 'example' => 'true', - ], + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'hdm:UpdateAutoSqlOptimizeStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Data\\": {\\n \\"GlobalSecurityIPGroupRel\\": [\\n {\\n \\"RegionId\\": \\"cn-shanghai\\",\\n \\"GlobalIgName\\": \\"saas_jump\\",\\n \\"GlobalSecurityGroupId\\": \\"g-v8kwereyd6u7kx****\\",\\n \\"GIpList\\": \\"192.168.0.1,192.168.100.0/24\\"\\n }\\n ],\\n \\"InstanceId\\": \\"rm-2ze1jdv45i7l6****\\"\\n },\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"840F51F7-9C01-538D-94F6-AE712905****\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', - 'title' => '跨产品白名单模板绑定/解绑接口', - 'description' => '- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 目前支持的数据库实例请参见SQL洞察和审计的[功能概览](~~92561~~)。'."\n" - .'- 目标数据库实例已开启SQL洞察和审计(旧版)功能,开启方法请参见[开启SQL洞察和审计](~~92561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Success\\": \\"false\\",\\n \\"ErrorCode\\": \\"-1001\\",\\n \\"ErrorMsg\\": \\"invalid param\\"\\n },\\n \\"RequestId\\": \\"A52AD37C-35ED-581A-AC23-2232BE54****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateAutoSqlOptimizeStatusResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Success>false</Success>\\n <ErrorCode>-1001</ErrorCode>\\n <ErrorMsg>invalid param</ErrorMsg>\\n </Data>\\n <RequestId>A52AD37C-35ED-581A-AC23-2232BE54****</RequestId>\\n <Success>true</Success>\\n</UpdateAutoSqlOptimizeStatusResponse>","errorExample":""}]', ], - 'DeleteSecurityIPGroup' => [ - 'summary' => '删除用户跨产品白名单模板', - 'path' => '', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'https', - ], + 'UpdateAutoThrottleRulesAsync' => [ + 'summary' => '调用UpdateAutoThrottleRulesAsync接口,采用异步方式,批量设置指定数据库实例的自动SQL限流配置参数。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '247410', - 'abilityTreeNodes' => [ - 'FEATUREhdmQULC0I', - ], - 'tenantRelevance' => 'tenant', + 'abilityTreeNodes' => ['FEATUREhdmTFSOG0'], ], 'parameters' => [ [ - 'name' => 'RegionName', + 'name' => 'ConsoleContext', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => '地域 ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => '备用参数。', 'type' => 'string', 'required' => false, 'example' => 'None'], ], [ - 'name' => 'GlobalSecurityGroupId', + 'name' => 'InstanceIds', 'in' => 'query', - 'schema' => [ - 'description' => 'IP白名单模板ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'g-rcge12hbfooad3m****', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Data' => [ - 'title' => 'ListResult<InstanceSSL>', - 'description' => 'ListResult<InstanceSSL>', - 'type' => 'object', - 'properties' => [ - 'GlobalSecurityIPGroup' => [ - 'description' => '跨产品白名单模板信息。', - 'type' => 'array', - 'items' => [ - 'description' => '跨产品白名单模板信息。', - 'type' => 'object', - 'properties' => [ - 'GlobalSecurityGroupId' => [ - 'description' => 'IP白名单模板ID。', - 'type' => 'string', - 'example' => 'g-1no2rzybnqcv0m****'."\n", - ], - ], - ], - ], - ], - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], - ], - ], + 'schema' => ['description' => '数据库实例ID。'."\n" + ."\n" + .'> 数据格式为JSONArray,例如`[\'实例ID1\',\'实例ID2\']`,实例ID间用英文逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => '[\'rm-2ze8g2am97624****\',\'rm-2ze9xrhze0709****\']'], ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Data\\": {\\n \\"GlobalSecurityIPGroup\\": [\\n {\\n \\"GlobalSecurityGroupId\\": \\"g-1no2rzybnqcv0m****\\\\n\\"\\n }\\n ]\\n },\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', - 'title' => '跨产品白名单模板删除接口', - 'description' => '- 本接口用于删除[CreateCloudBenchTasks](~~230665~~)接口创建的智能压测任务中已释放的DBgateway元数据。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - ."\n" - .'> 当DBGateway与接入点超过20秒无心跳时,此DBGateway为停止状态。', - ], - 'GetHDMAliyunResourceSyncResult' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'CpuUsage', + 'in' => 'query', + 'schema' => ['description' => 'CPU利用率阈值,取值范围:70%~100%。', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '70'], ], - ], - 'systemTags' => [ - 'operationType' => 'get', - ], - 'parameters' => [ [ - 'name' => 'Uid', + 'name' => 'CpuSessionRelation', 'in' => 'query', 'schema' => [ + 'title' => '[AND | OR]', + 'description' => 'CPU利用率阈值和活跃会话数阈值的逻辑关系。'."\n" + .'- **AND**:且。'."\n" + .'- **OR**:或。', 'type' => 'string', - 'required' => false, + 'required' => true, + 'enumValueTitles' => [], + 'example' => 'OR', ], ], [ - 'name' => 'accessKey', + 'name' => 'ActiveSessions', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['description' => '活跃会话数阈值。 '."\n" + ."\n" + .'- 与CPU利用率阈值关系为**OR**(或)时,大于等于16。'."\n" + .'- 与CPU利用率阈值关系为**AND**(且)时,大于等于2。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '16'], ], [ - 'name' => 'signature', + 'name' => 'AbnormalDuration', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['description' => '触发自动SQL限流的异常的持续时间阈值,取值范围:大于等于2的正整数,单位:分钟。'."\n", 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '2'], ], [ - 'name' => 'timestamp', + 'name' => 'MaxThrottleTime', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['description' => '最大限流时长,取值为正整数,单位:分钟。', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '10'], ], [ - 'name' => '__context', + 'name' => 'AllowThrottleStartTime', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['description' => '可限流时间段的开始时间(UTC时间)。', 'type' => 'string', 'required' => true, 'example' => '00:00Z'], ], [ - 'name' => 'skipAuth', + 'name' => 'AllowThrottleEndTime', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - 'default' => 'true', - ], + 'schema' => ['description' => '可限流时间段的结束时间(UTC时间)。', 'type' => 'string', 'required' => true, 'example' => '23:59Z'], ], [ - 'name' => 'UserId', + 'name' => 'AutoKillSession', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['description' => '是否同时KILL执行中的异常SQL:'."\n" + .'> 异常SQL:与需要限流的SQL模板相同。'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'required' => true, 'example' => 'true'], ], [ - 'name' => 'TaskId', + 'name' => 'ResultId', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['description' => '异步请求的ID。'."\n" + .'> 异步调用后不会立即返回完整结果,首先需要调用该接口获取**ResultId**,然后使用返回数据的**ResultId**,重新发起调用,直到**isFinish**取值为**true**时,返回完整结果。即获取一次完整数据,至少需要调用该接口两次。', 'type' => 'string', 'required' => false, 'example' => 'async__507044db6c4eadfa2dab9b084e80****'], ], ], 'responses' => [ @@ -26938,3356 +18262,1730 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Message' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Synchro' => [ - 'type' => 'string', - ], + 'Code' => ['description' => '返回的状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'Message' => ['description' => '请求返回消息。'."\n" + .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', 'type' => 'string', 'example' => 'Successful'], 'Data' => [ + 'description' => '返回的数据。', 'type' => 'object', 'properties' => [ - 'SyncStatus' => [ - 'type' => 'string', - ], - 'ErrorMsg' => [ - 'type' => 'string', - ], - 'SubResults' => [ + 'Fail' => ['description' => '请求是否失败:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'false'], + 'ConfigResponse' => [ + 'description' => '批量设置的返回数据。'."\n" + .'> 异步请求完成时(即isFinish取值为**true**时)才会返回该数据。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'ResourceSyncSubResult' => [ + 'TotalInstanceCount' => ['description' => '总数据库实例数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'ConfigSuccessInstanceCount' => ['description' => '设置成功的数据库实例数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'ConfigFailInstanceCount' => ['description' => '设置失败的数据库实例数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'ConfigSuccessInstanceList' => [ + 'description' => '设置成功的数据库实例列表。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'SyncCount' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'ResourceType' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'ErrMsg' => [ - 'type' => 'string', - ], + 'ConfigSuccess' => ['description' => '设置是否成功:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'InstanceId' => ['description' => '数据库实例ID。', 'type' => 'string', 'example' => 'rm-2ze8g2am97624****'], + ], + ], + ], + 'ConfigFailInstanceList' => [ + 'description' => '设置失败的数据库实例列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ConfigSuccess' => ['description' => '设置是否成功:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'false'], + 'InstanceId' => ['description' => '数据库实例ID。', 'type' => 'string', 'example' => 'rm-2ze9xrhze0709****'], + 'ErrorMessage' => ['description' => '错误信息。', 'type' => 'string', 'example' => 'instance das autonomy service is off or can not find instance'], ], ], ], ], ], - 'Results' => [ - 'type' => 'string', - ], + 'ResultId' => ['description' => '异步请求ID。', 'type' => 'string', 'example' => 'async__665ee69612f1627c7fd9f3c85075****'], + 'IsFinish' => ['description' => '异步请求是否执行完成:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'State' => ['description' => '异步请求的执行状态:'."\n" + ."\n" + .'- **RUNNING**:正在运行。'."\n" + ."\n" + .'- **SUCCESS**:成功。'."\n" + ."\n" + .'- **FAIL**:失败。', 'type' => 'string', 'example' => 'SUCCESS'], + 'Complete' => ['description' => '异步请求是否执行完成:'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'Timestamp' => ['description' => '执行时间,格式为Unix时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1645668213000'], ], ], - 'Code' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'string', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****'], + 'Success' => ['description' => '请求是否执行成功:'."\n" + ."\n" + .'- **true**:执行成功。'."\n" + .'- **false**:执行失败。', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'You are not authorized to do this action.', 'description' => ''], ], ], - 'responseDemo' => '', - ], - 'GetEndpointSwitchTask' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": {\\n \\"Fail\\": false,\\n \\"ConfigResponse\\": {\\n \\"TotalInstanceCount\\": 2,\\n \\"ConfigSuccessInstanceCount\\": 1,\\n \\"ConfigFailInstanceCount\\": 1,\\n \\"ConfigSuccessInstanceList\\": [\\n {\\n \\"ConfigSuccess\\": true,\\n \\"InstanceId\\": \\"rm-2ze8g2am97624****\\"\\n }\\n ],\\n \\"ConfigFailInstanceList\\": [\\n {\\n \\"ConfigSuccess\\": false,\\n \\"InstanceId\\": \\"rm-2ze9xrhze0709****\\",\\n \\"ErrorMessage\\": \\"instance das autonomy service is off or can not find instance\\"\\n }\\n ]\\n },\\n \\"ResultId\\": \\"async__665ee69612f1627c7fd9f3c85075****\\",\\n \\"IsFinish\\": true,\\n \\"State\\": \\"SUCCESS\\",\\n \\"Complete\\": true,\\n \\"Timestamp\\": 1645668213000\\n },\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<UpdateAutoThrottleRulesAsyncResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>\\n <Fail>false</Fail>\\n <ConfigResponse>\\n <TotalInstanceCount>2</TotalInstanceCount>\\n <ConfigSuccessInstanceCount>1</ConfigSuccessInstanceCount>\\n <ConfigFailInstanceCount>1</ConfigFailInstanceCount>\\n <ConfigSuccessInstanceList>\\n <ConfigSuccess>true</ConfigSuccess>\\n <InstanceId>rm-2ze8g2am97624****</InstanceId>\\n </ConfigSuccessInstanceList>\\n <ConfigFailInstanceList>\\n <ConfigSuccess>false</ConfigSuccess>\\n <InstanceId>rm-2ze9xrhze0709****</InstanceId>\\n <ErrorMessage>instance das autonomy service is off or can not find instance</ErrorMessage>\\n </ConfigFailInstanceList>\\n </ConfigResponse>\\n <ResultId>async__665ee69612f1627c7fd9f3c85075****</ResultId>\\n <IsFinish>true</IsFinish>\\n <State>SUCCESS</State>\\n <Complete>true</Complete>\\n <Timestamp>1645668213000</Timestamp>\\n </Data>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n</UpdateAutoThrottleRulesAsyncResponse>","errorExample":""}]', + 'title' => '设置自动SQL限流配置参数', + 'description' => '> 异步调用后不会立即返回完整结果,首先需要调用该接口获取**ResultId**,然后使用返回数据的**ResultId**,重新发起调用,直到**isFinish**取值为**true**时,返回完整结果。即获取一次完整数据,至少需要调用该接口两次。'."\n" + ."\n" + .'使用该接口需满足以下前提条件:'."\n" + .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" + ."\n" + .'- 目标数据库实例已开启自治服务,详情请参见[自治中心](~~152139~~)。'."\n" + ."\n" + .'- 目标数据库实例为:'."\n" + .' - RDS MySQL 5.6、5.7、 8.0高可用系列、三节点企业系列。'."\n" + .' - PolarDB MySQL版 5.6集群版、5.7集群版、 8.0集群版。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:UpdateAutoThrottleRulesAsync', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], ], - 'systemTags' => [ + ], + ], + 'endpoints' => [ + ['regionId' => 'cn-shanghai', 'regionName' => '华东2(上海)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'das.cn-shanghai.aliyuncs.com', 'endpoint' => 'das.cn-shanghai.aliyuncs.com', 'vpc' => 'das.vpc-proxy.aliyuncs.com'], + ['regionId' => 'cn-north-2-gov-1', 'regionName' => '北京政务云', 'areaId' => 'industryCloud', 'areaName' => '行业云', 'public' => 'das.aliyuncs.com', 'endpoint' => 'das.aliyuncs.com', 'vpc' => ''], + ], + 'errorCodes' => [ + ['code' => '-1005', 'message' => 'Service request timed out. Please try again later.', 'http_code' => 503, 'description' => '后端接口查询超时'], + ['code' => '-10200017', 'message' => 'The instance already enable other version audit.', 'http_code' => 517, 'description' => '该实例已经开启其它版本审计日志'], + ['code' => '-10200030', 'message' => 'Invalid query parameter.', 'http_code' => 432, 'description' => '审计日志查询参数非法'], + ['code' => '-1120002', 'message' => 'Node ID is duplicate. Please check and try again.', 'http_code' => 438, 'description' => '节点ID重复,请检查并重试。'], + ['code' => '-1150006', 'message' => 'Auto-scaling system error. Please contact support.', 'http_code' => 512, 'description' => '弹性伸缩内部错误'], + ['code' => '-1170007', 'message' => 'Query time out of hot records range.', 'http_code' => 433, 'description' => '查询时间超过热数据范围'], + ['code' => '-404', 'message' => 'Resource not found.', 'http_code' => 516, 'description' => '实体未发现'], + ['code' => '-40402', 'message' => 'Instance not found.', 'http_code' => 515, 'description' => '找不到实例'], + ['code' => '-5001', 'message' => 'Task run error. Please check the task configuration.', 'http_code' => 514, 'description' => '任务执行失败'], + ['code' => '-80000', 'message' => 'Analysis task threshold exceeds the limit. Please adjust the threshold.', 'http_code' => 513, 'description' => '空间分析任务超过阈值,半个小时内仅允许创建一个任务'], + ['code' => '-8063', 'message' => 'Invalid result ID. Please check and try again.', 'http_code' => 439, 'description' => '无效的异步任务结果ID'], + ['code' => '-90005', 'message' => 'Unsupported engine minor version. Please upgrade or downgrade to a supported version.', 'http_code' => 518, 'description' => '引擎小版本不支持'], + ['code' => '-9006', 'message' => 'Request is not enabled. Please enable the related feature first.', 'http_code' => 437, 'description' => 'SQL 洞察未开启'], + ['code' => '-91007', 'message' => 'DAS Pro is not enabled. Please enable DAS Pro first.', 'http_code' => 402, 'description' => '未购买DAS专业版(企业版)'], + ['code' => '-91023', 'message' => 'SQL log detail archive exceeds the limit. Please clean up the archive.', 'http_code' => 435, 'description' => 'sql archive 超过上限'], + ['code' => '-91045', 'message' => 'Page number is too large. Please use a smaller page number.', 'http_code' => 434, 'description' => '翻页PageNo太大'], + ['code' => '-996', 'message' => 'Operation is too fast. Please try again later.', 'http_code' => 429, 'description' => '操作过快'], + ['code' => '-998', 'message' => 'Unsupported operation. Please check the operation type.', 'http_code' => 405, 'description' => '该操作类型不支持'], + ['code' => '-999', 'message' => 'Can not get endpoint.', 'http_code' => 452, 'description' => '无法获取链接地址'], + ['code' => '2', 'message' => 'Time not match the format: yyyyMMdd.', 'http_code' => 440, 'description' => '时间参数格式不合法'], + ['code' => '400', 'message' => 'The provided API key is malformed. Please check the format of the key and ensure it is correctly configured.', 'http_code' => 441, 'description' => '提供的密钥不合法'], + ['code' => '500', 'message' => 'The request processing has failed due to timeout.', 'http_code' => 519, 'description' => '访问超时'], + ['code' => 'InstanceNotFound', 'message' => 'Requested instance not found.', 'http_code' => 404, 'description' => '对应实例id无法找到'], + ['code' => 'InstanceNotFound', 'message' => 'The specified instance does not exist.', 'http_code' => 404, 'description' => '实例不存在'], + ['code' => 'InvalidParams', 'message' => 'The request parameters are invalid.', 'http_code' => 400, 'description' => '请求参数错误'], + ['code' => 'NoPermission', 'message' => 'You are not authorized to do this action.', 'http_code' => 403, 'description' => '没有权限执行该操作'], + ['code' => 'Timeout', 'message' => 'The request processing has failed due to timeout.', 'http_code' => 500, 'description' => '由于超时请求处理失败。'], + ], + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAutoResourceOptimizeRules'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetFullRequestSampleByInstanceId'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetQueryOptimizeExecErrorStats'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPartitionsHeatmap'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetFullRequestStatResultByInstanceId'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetMongoDBCurrentOp'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetMySQLAllSessionAsync'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetRequestDiagnosisResult'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetQueryOptimizeDataStats'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DisableAutoResourceOptimizeRules'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAutonomousNotifyEventsInRange'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDasSQLLogHotData'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetFullRequestOriginStatByInstanceId'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAutoIncrementUsageStatistic'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetQueryOptimizeDataTop'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateSqlLogTask'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DisableInstanceDasConfig'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EnableDasPro'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetQueryOptimizeSolution'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetSqlConcurrencyControlKeywordsFromSqlText'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DisableAutoThrottleRules'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeSqlLogRecords'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateCacheAnalysisJob'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCloudBenchTasks'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDiagnosticReport'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDeadLockDetailList'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeSqlLogStatistic'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetErrorRequestSample'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetQueryOptimizeExecErrorSample'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDBInstanceConnectivityDiagnosis'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAsyncErrorRequestListByCode'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RunCloudBenchTask'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EnableSqlConcurrencyControl'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAsyncErrorRequestStatResult'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetRedisAllSession'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetHDMAliyunResourceSyncResult'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAutoThrottleRules'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetInstanceMissingIndexList'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddHDMInstance'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDeadLockDetail'], + ['threshold' => '-1', 'countWindow' => 1, 'regionId' => '*'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DisableSqlConcurrencyControl'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetSqlOptimizeAdvice'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDiagnosticReportList'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetQueryOptimizeDataTrend'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCacheAnalysisJob'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDasProServiceUsage'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeSlowLogHistogramAsync'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetKillInstanceSessionTaskResult'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateAutoResourceOptimizeRulesAsync'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeHotKeys'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetQueryOptimizeRuleList'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DisableAllSqlConcurrencyControlRules'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAutoScalingConfig'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeSqlLogTasks'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPfsSqlSample'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetStorageAnalysisResult'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetInstanceInspections'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetEndpointSwitchTask'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetEventSubscription'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateKillInstanceSessionTask'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLatestDeadLockAnalysis'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDeadlockHistogram'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'KillInstanceAllSession'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetRequestDiagnosisPage'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyAutoScalingConfig'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateStorageAnalysisTask'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetRunningSqlConcurrencyControlRules'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeSqlLogConfig'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateQueryOptimizeTag'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeInstanceDasPro'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeHotBigKeys'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateRequestDiagnosis'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeTopBigKeys'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DisableDasPro'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeTopHotKeys'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetHDMLastAliyunResourceSyncResult'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAutonomousNotifyEventContent'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPfsSqlSummaries'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeSlowLogStatistic'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteStopGateway'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetBlockingDetailList'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetEventSubscription'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCloudbenchTask'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeSlowLogRecords'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCloudbenchTaskConfig'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetQueryOptimizeTag'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDeadLockHistory'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCacheAnalysisJobs'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAsyncErrorRequestStatByCode'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateCloudBenchTasks'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAutoScalingHistory'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetSqlConcurrencyControlRulesHistory'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateAutoThrottleRulesAsync'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPfsMetricTrends'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetInstanceSqlOptimizeStatistic'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeSqlLogTask'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteCloudBenchTask'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetQueryOptimizeShareUrl'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifySqlLogConfig'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateAutoSqlOptimizeStatus'], + ], + ], + 'ram' => [ + 'productCode' => 'DAS', + 'productName' => '数据库自治服务', + 'ramCodes' => ['hdm'], + 'ramLevel' => '操作级', + 'ramConditions' => [], + 'ramActions' => [ + [ + 'apiName' => 'GetAsyncErrorRequestStatResult', + 'description' => '获取指定SQL的执行错误次数', 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'Uid', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], - ], - [ - 'name' => 'accessKey', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], - ], - [ - 'name' => 'signature', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], - ], - [ - 'name' => 'timestamp', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], - ], - [ - 'name' => '__context', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], - ], - [ - 'name' => 'skipAuth', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - 'default' => 'true', - ], - ], - [ - 'name' => 'UserId', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], - ], - [ - 'name' => 'TaskId', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, + 'ramAction' => [ + 'action' => 'hdm:GetAsyncErrorRequestStatResult', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Message' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Synchro' => [ - 'type' => 'string', - ], - 'Data' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'type' => 'string', - ], - 'Uuid' => [ - 'type' => 'string', - ], - 'OriUuid' => [ - 'type' => 'string', - ], - 'AccountId' => [ - 'type' => 'string', - ], - 'ErrMsg' => [ - 'type' => 'string', - ], - 'TaskId' => [ - 'type' => 'string', - ], - 'DbLinkId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - ], - ], - 'Code' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'string', - ], - ], + [ + 'apiName' => 'GetDeadlockHistogram', + 'description' => '查询时间范围内全量死锁分析的数量趋势', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:GetDeadlockHistogram', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', + [ + 'apiName' => 'DescribeCacheAnalysisJob', + 'description' => '查询缓存分析任务详情', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeCacheAnalysisJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '', - ], - 'GetHDMLastAliyunResourceSyncResult' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'systemTags' => [ + [ + 'apiName' => 'GetRunningSqlConcurrencyControlRules', + 'description' => '获取正在执行的限流规则', 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'Uid', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], - ], - [ - 'name' => 'accessKey', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], - ], - [ - 'name' => 'signature', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], - ], - [ - 'name' => 'timestamp', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], - ], - [ - 'name' => '__context', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], - ], - [ - 'name' => 'skipAuth', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - 'default' => 'true', - ], - ], - [ - 'name' => 'UserId', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, + 'ramAction' => [ + 'action' => 'hdm:GetRunningSqlConcurrencyControlRules', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Message' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Synchro' => [ - 'type' => 'string', - ], - 'Data' => [ - 'type' => 'object', - 'properties' => [ - 'SyncStatus' => [ - 'type' => 'string', - ], - 'ErrorMsg' => [ - 'type' => 'string', - ], - 'SubResults' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ResourceSyncSubResult' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'SyncCount' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'ResourceType' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'ErrMsg' => [ - 'type' => 'string', - ], - ], - ], - ], - ], - ], - 'Results' => [ - 'type' => 'string', - ], - ], - ], - 'Code' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'string', - ], - ], + [ + 'apiName' => 'GetAutoIncrementUsageStatistic', + 'description' => '获取表自增ID使用数据', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:GetAutoIncrementUsageStatistic', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', + [ + 'apiName' => 'GetAutoThrottleRules', + 'description' => '获取自动SQL限流规则', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:GetAutoThrottleRules', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', + ], + [ + 'apiName' => 'DescribeSqlLogTasks', + 'description' => '查询DAS企业版离线任务列表', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'hdm:DescribeSqlLogTasks', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '', - ], - 'DescribeSqlLogRecords' => [ - 'summary' => '调用DescribeSqlLogRecords接口,查询DAS企业版日志明细。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'GetPartitionsHeatmap', + 'description' => '获取分区热度信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetPartitionsHeatmap', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '199697', - 'abilityTreeNodes' => [ - 'FEATUREhdmFT57I0', + [ + 'apiName' => 'GetYaoChiAgent', + 'description' => '瑶池Agent大模型能力接口', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetYaoChiAgent', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'InstanceId', - 'in' => 'formData', - 'schema' => [ - 'title' => '实例ID', - 'description' => '数据库实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'pc-2ze8g2am97624****'."\n", + [ + 'apiName' => 'GetPfsMetricTrends', + 'description' => '查询指定指标趋势', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetPfsMetricTrends', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'NodeId', - 'in' => 'formData', - 'schema' => [ - 'description' => '节点ID。'."\n" - ."\n" - .'- 对于RDS MySQL和PolarDB MySQL版,该参数仅适用于集群版实例。若不传该参数,默认查询主节点日志明细。'."\n" - .'- 对于PolarDB-X 2.0,该参数传入**polarx_cn**(计算节点)或**polarx_dn**(数据节点)。', - 'type' => 'string', - 'required' => false, - 'example' => 'pi-uf6k5f6g3912i****', + ], + [ + 'apiName' => 'KillInstanceAllSession', + 'description' => '结束全部会话', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'hdm:KillInstanceAllSession', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Role', - 'in' => 'query', - 'schema' => [ - 'description' => 'PolarDB-X 2.0数据库实例节点的角色。'."\n" - ."\n" - .'- **polarx_cn **:计算节点。'."\n" - .'- **polarx_dn **:数据节点。', - 'type' => 'string', - 'required' => false, - 'example' => 'polarx_cn ', + ], + [ + 'apiName' => 'DescribeCacheAnalysisJobs', + 'description' => '查询缓存分析任务列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeCacheAnalysisJobs', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Filters', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '筛选条件列表。', - 'type' => 'array', - 'items' => [ - 'description' => '筛选条件。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => '过滤参数', - 'description' => '过滤参数。'."\n" - ."\n" - .'> 支持的过滤参数及其取值请参考**请求参数补充说明**。', - 'type' => 'string', - 'required' => false, - 'example' => 'keyWords', - ], - 'Value' => [ - 'description' => '过滤参数取值。', - 'type' => 'string', - 'required' => false, - 'example' => 'select', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 100, + ], + [ + 'apiName' => 'DisableInstanceDasConfig', + 'description' => '关闭指定弹性伸缩功能', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'hdm:DisableInstanceDasConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'StartTime', - 'in' => 'formData', - 'schema' => [ - 'description' => '开始时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1596177993000', + ], + [ + 'apiName' => 'GetMongoDBCurrentOp', + 'description' => '获取MongoDB实例当前会话', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'hdm:GetMongoDBCurrentOp', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'EndTime', - 'in' => 'formData', - 'schema' => [ - 'description' => '结束时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1608888296000', + ], + [ + 'apiName' => 'GetQueryOptimizeTag', + 'description' => '获取SQL标签', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetQueryOptimizeTag', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'PageNo', - 'in' => 'formData', - 'schema' => [ - 'description' => '分页查询的页码,从1开始,默认为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', + ], + [ + 'apiName' => 'DescribeAutoScalingHistory', + 'description' => '查询实例弹性伸缩历史信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeAutoScalingHistory', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'PageSize', - 'in' => 'formData', - 'schema' => [ - 'description' => '每页最大记录数,最大支持100,默认值为10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', + ], + [ + 'apiName' => 'GetAutonomousNotifyEventsInRange', + 'description' => '获取指定类型或范围的通知事件', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetAutonomousNotifyEventsInRange', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => '根节点或根目录', - 'description' => '根节点或根目录', - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'F43E7FB3-CE67-5FFD-A59C-EFD278BCD7BE', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], - 'Data' => [ - 'title' => 'SqlLogDetailResult', - 'description' => '返回数据。', - 'type' => 'object', - 'properties' => [ - 'StartTime' => [ - 'description' => '开始时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1596177993000', - ], - 'EndTime' => [ - 'description' => '结束时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1608888296000', - ], - 'TotalRecords' => [ - 'description' => '总记录数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'Items' => [ - 'description' => '列表数据', - 'type' => 'object', - 'properties' => [ - 'SQLLogRecord' => [ - 'description' => 'SQL日志数据。', - 'type' => 'array', - 'items' => [ - 'description' => 'SQL日志数据。', - 'type' => 'object', - 'properties' => [ - 'Ext' => [ - 'description' => '扩展信息字段,备用参数。', - 'type' => 'string', - 'example' => 'None', - ], - 'ExecuteTime' => [ - 'description' => '执行时间,格式为UTC时间:`yyyy-MM-ddTHH:mm:ssZ`。', - 'type' => 'string', - 'example' => '2023-12-07T02:15:32Z', - ], - 'OriginTime' => [ - 'description' => '执行时间戳,格式为Unix时间,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1701886532000', - ], - 'HostAddress' => [ - 'description' => '客户端IP地址。', - 'type' => 'string', - 'example' => '11.197.XX.XX', - ], - 'UpdateRows' => [ - 'description' => '更新行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'LogicRead' => [ - 'description' => '逻辑读。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'SqlText' => [ - 'description' => 'SQL语句。', - 'type' => 'string', - 'example' => 'select resource_id as cluster_id, tpl_name \\n\\tfrom dbfree_alert_resource_tpl_ref\\n\\twhere user_id=? and type=\'cluster\' group by resource_id, tpl_name', - ], - 'LockTime' => [ - 'description' => '锁等待时间,单位毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'ScanRows' => [ - 'description' => '扫描行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'ThreadId' => [ - 'description' => '线程ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => 'None', - ], - 'State' => [ - 'description' => '执行状态。'."\n" - ."\n" - .'- **0**:执行成功。'."\n" - .'- **1**:执行失败。', - 'type' => 'string', - 'example' => '0', - ], - 'DBName' => [ - 'description' => '数据库名称。', - 'type' => 'string', - 'example' => 'testdb', - ], - 'SqlType' => [ - 'description' => 'SQL语句的类型。', - 'type' => 'string', - 'example' => 'select', - ], - 'AccountName' => [ - 'description' => '数据库账号。', - 'type' => 'string', - 'example' => 'testname', - ], - 'PhysicSyncRead' => [ - 'description' => '物理同步读。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'PhysicAsyncRead' => [ - 'description' => '物理异步读。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'TrxId' => [ - 'description' => '事务ID。', - 'type' => 'string', - 'example' => '200000', - ], - 'ReturnRows' => [ - 'description' => '返回行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'Consume' => [ - 'description' => '执行耗时(us)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '58', - ], - 'Vip' => [ - 'description' => '查询链接的endpoint解析地址。', - 'type' => 'string', - 'example' => '100.115.XX.XX', - ], - 'NodeId' => [ - 'description' => '节点ID。', - 'type' => 'string', - 'example' => 'pi-uf6k5f6g3912i****', - ], - 'SqlId' => [ - 'description' => 'SQL ID。', - 'type' => 'string', - 'example' => 'c67649d4a7fb62c4f8c7a447c52b5b17', - ], - 'UseImciEngine' => [ - 'description' => 'PolarDB MySQL版实例是否使用列存索引。'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'string', - 'example' => 'true', - ], - 'ParallelQueueTime' => [ - 'description' => 'PolarDB MySQL版实例的并行度。', - 'type' => 'string', - 'example' => '2', - ], - 'ParallelDegree' => [ - 'description' => 'PolarDB MySQL版实例的并行排队时间,单位为毫秒。', - 'type' => 'string', - 'example' => '10', - ], - 'Scnt' => [ - 'description' => 'PolarDB-X 2.0计算节点(CN)的DN请求数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'Rows' => [ - 'description' => 'PolarDB-X 2.0数据库实例计算节点总更新或返回的行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'Frows' => [ - 'description' => 'PolarDB-X 2.0计算节点(CN)的拉取行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'TraceId' => [ - 'description' => 'PolarDB-X 2.0的跟踪ID,即SQL在数据节点的执行ID。', - 'type' => 'string', - 'example' => '14c93b7c7bf00000 ', - ], - 'PhysicRead' => [ - 'description' => '物理读。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'CpuTime' => [ - 'description' => 'CPU执行时间,单位为微秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'Writes' => [ - 'description' => 'RDS SQL Server引擎的写入数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'Collection' => [ - 'description' => '预留参数。', - 'type' => 'string', - 'example' => 'None', - ], - 'TableName' => [ - 'title' => 'SQL日志记录中的表名', - 'description' => 'SQL日志记录中的表名', - 'type' => 'string', - 'example' => 'das', - ], - 'ConnectionId' => [ - 'title' => 'SQL日志记录的连接ID', - 'description' => 'SQL日志记录的连接ID', - 'type' => 'string', - 'example' => 'ld-******', - ], - 'Protocol' => [ - 'title' => 'SQL日志记录的协议类型', - 'description' => 'SQL日志记录的协议类型', - 'type' => 'string', - 'example' => 'MySQL', - ], - 'Params' => [ - 'title' => 'SQL日志记录的参数', - 'description' => 'SQL日志记录的参数', - 'type' => 'string', - 'example' => '[1, "das"]', - ], - 'ClientIp' => [ - 'title' => 'SQL日志记录中的客户端IP'."\n" - .'SQL日志记录中客户端的IP地址', - 'description' => 'SQL日志记录中的客户端IP'."\n" - .'SQL日志记录中客户端的IP地址', - 'type' => 'string', - 'example' => '10.0.0.1xx', - ], - 'ClientPort' => [ - 'title' => '客户端端口号', - 'description' => '客户端端口号', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '3306', - ], - 'RowKey' => [ - 'title' => 'SQL日志记录的行键', - 'description' => 'SQL日志记录的行键', - 'type' => 'string', - 'example' => '23', - ], - 'AffectColumns' => [ - 'title' => '受影响的列', - 'description' => '受影响的列', - 'type' => 'string', - 'example' => '["col1"]', - ], - ], - ], - ], - ], - ], - 'Finish' => [ - 'description' => '任务是否完成。'."\n" - .'- **0**:未完成'."\n" - .'- **1**:已完成'."\n" - ."\n" - .'> 当**Finish**返回为0,并且包含**JobId**字段时,说明当前请求为异步请求,无法直接获取返回结果,需要进一步根据**JobId**进行查询。查询时将**JobId**作为**Filters**的输入值,例如:`Filters=[{"Key": "JobId", "Value": "******"}]`。', - 'type' => 'string', - 'example' => '1', - ], - 'JobId' => [ - 'description' => '异步任务ID。', - 'type' => 'string', - 'example' => 'MzI4NTZfUUlOR0RBT19DTTlfTlUyMF9NWVNRTF9PREJTX0xWU18zMjg1Nl9teXNxbF9XZWQgTWFyIDA2IDE0OjUwOjQ3IENTVCAyMDI0XzBfMzBfRXhlY3V0ZVRpbWVfREVTQ19XZWQgTWFyIDA2IDE0OjM1OjQ3IENTVCAyMDI0Xw==_1709708406465', - ], - ], - ], - ], + [ + 'apiName' => 'DescribeSqlLogConfig', + 'description' => '查询DAS企业版配置信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeSqlLogConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', + [ + 'apiName' => 'GetEventSubscription', + 'description' => '获取事件订阅设置', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetEventSubscription', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', + ], + [ + 'apiName' => 'GetDasAgentSSE', + 'description' => '(废弃)Das Agent 数据流接口', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetDasAgentSSE', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"F43E7FB3-CE67-5FFD-A59C-EFD278BCD7BE\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"StartTime\\": 1596177993000,\\n \\"EndTime\\": 1608888296000,\\n \\"TotalRecords\\": 1,\\n \\"Items\\": {\\n \\"SQLLogRecord\\": [\\n {\\n \\"Ext\\": \\"None\\",\\n \\"ExecuteTime\\": \\"2023-12-07T02:15:32Z\\",\\n \\"OriginTime\\": 1701886532000,\\n \\"HostAddress\\": \\"11.197.XX.XX\\",\\n \\"UpdateRows\\": 0,\\n \\"LogicRead\\": 0,\\n \\"SqlText\\": \\"select resource_id as cluster_id, tpl_name \\\\\\\\n\\\\\\\\tfrom dbfree_alert_resource_tpl_ref\\\\\\\\n\\\\\\\\twhere user_id=? and type=\'cluster\' group by resource_id, tpl_name\\",\\n \\"LockTime\\": 0,\\n \\"ScanRows\\": 0,\\n \\"ThreadId\\": 0,\\n \\"State\\": \\"0\\",\\n \\"DBName\\": \\"testdb\\",\\n \\"SqlType\\": \\"select\\",\\n \\"AccountName\\": \\"testname\\",\\n \\"PhysicSyncRead\\": 0,\\n \\"PhysicAsyncRead\\": 0,\\n \\"TrxId\\": \\"200000\\",\\n \\"ReturnRows\\": 0,\\n \\"Consume\\": 58,\\n \\"Vip\\": \\"100.115.XX.XX\\",\\n \\"NodeId\\": \\"pi-uf6k5f6g3912i****\\",\\n \\"SqlId\\": \\"c67649d4a7fb62c4f8c7a447c52b5b17\\",\\n \\"UseImciEngine\\": \\"true\\",\\n \\"ParallelQueueTime\\": \\"2\\",\\n \\"ParallelDegree\\": \\"10\\",\\n \\"Scnt\\": 10,\\n \\"Rows\\": 10,\\n \\"Frows\\": 10,\\n \\"TraceId\\": \\"14c93b7c7bf00000 \\",\\n \\"PhysicRead\\": 0,\\n \\"CpuTime\\": 100,\\n \\"Writes\\": 10,\\n \\"Collection\\": \\"None\\",\\n \\"TableName\\": \\"das\\",\\n \\"ConnectionId\\": \\"ld-******\\",\\n \\"Protocol\\": \\"MySQL\\",\\n \\"Params\\": \\"[1, \\\\\\"das\\\\\\"]\\",\\n \\"ClientIp\\": \\"10.0.0.1xx\\",\\n \\"ClientPort\\": 3306,\\n \\"RowKey\\": \\"23\\",\\n \\"AffectColumns\\": \\"[\\\\\\"col1\\\\\\"]\\"\\n }\\n ]\\n },\\n \\"Finish\\": \\"1\\",\\n \\"JobId\\": \\"MzI4NTZfUUlOR0RBT19DTTlfTlUyMF9NWVNRTF9PREJTX0xWU18zMjg1Nl9teXNxbF9XZWQgTWFyIDA2IDE0OjUwOjQ3IENTVCAyMDI0XzBfMzBfRXhlY3V0ZVRpbWVfREVTQ19XZWQgTWFyIDA2IDE0OjM1OjQ3IENTVCAyMDI0Xw==_1709708406465\\"\\n }\\n}","type":"json"}]', - 'title' => '(废弃)查询DAS企业版日志明细', - 'description' => '使用该接口需满足以下前提条件:'."\n" - ."\n" - .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。', - 'requestParamsDescription' => '**Key**支持的参数和取值:'."\n" - ."\n" - .'- **KeyWords**:关键字,多个关键字间使用空格隔开。'."\n" - .'- **LogicalOperator**:关键字间的逻辑操作,取值为and或or。'."\n" - .'- **AccountName**:用户名,可以传递多个的,用逗号分开,上限为5。'."\n" - .'- **dbName**:数据库名称,可以传递多个的,用逗号分开,上限为5。'."\n" - .'- **HostAddress**:客户端IP地址,可以传递多个的,用逗号分开,上限为5。'."\n" - .'- **MaxConsume**:最大耗时,单位us。'."\n" - .'- **MinConsume**:最小耗时,单位us。'."\n" - .'- **MaxScanRows**:最大扫描行。'."\n" - .'- **MinScanRows**:最小扫描行。'."\n" - .'- **SqlType**:SQL类型,取值select、update、insert或delete。'."\n" - .'- **State**:执行结果,取值0(成功)或1(失败)。'."\n" - .'- **ThreadId**:线程ID。'."\n" - .'- **SortKey**:排序列名称,取值ScanRows(扫描行数)、UpdateRows(更新行数)、Consume(耗时)、ExecuteTime(执行时间)、ReturnRows(返回行数)、LockTime(锁等待时间)、Frows(PolarDB-X 2.0计算节点的拉取行数)、Scnt(PolarDB-X 2.0计算节点的DN请求数)、CpuTime(CPU执行时间)、PhysicalRead(物理读)。'."\n" - .'- **SortMethod**:排序方式,取值DESC(降序)、ASC(升序)。默认为DESC。'."\n" - .'- **TraceId**:PolarDB-X 2.0实例的跟踪ID。'."\n" - .'- **MinRows**:最小更新行数。'."\n" - .'- **MaxRows**:最大更新行数。'."\n" - .'- **MinScnt**:PolarDB-X 2.0计算节点(CN)的DN最小请求数。'."\n" - .'- **MaxScnt**:PolarDB-X 2.0计算节点(CN)的DN最大请求数。'."\n" - .'- **TrxId**:事务ID。'."\n" - .'- **Fail**:错误码。'."\n" - .'- **SqlId**:SQL ID。'."\n" - .'- **JobId**:通过异步任务ID进一步查询返回结果。', - ], - 'EnableDasPro' => [ - 'summary' => '开启指定实例DAS专业版。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DescribeSecurityIPGroup', + 'description' => '跨产品白名单模板展示接口', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeSecurityIPGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ + [ + 'apiName' => 'CreateDiagnosticReport', + 'description' => '创建诊断报告', 'operationType' => 'create', - 'abilityTreeCode' => '23825', - 'abilityTreeNodes' => [ - 'FEATUREhdm543Z01', - ], - ], - 'parameters' => [ - [ - 'name' => 'UserId', - 'in' => 'query', - 'schema' => [ - 'description' => '用户ID,即创建数据库实例的阿里云主账号ID。'."\n" - ."\n" - .'> 非必填,输入目标数据库实例ID后,在调用API接口时,系统会自动获取用户ID。', - 'type' => 'string', - 'required' => false, - 'example' => '196278346919****', + 'ramAction' => [ + 'action' => 'hdm:CreateDiagnosticReport', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****', + ], + [ + 'apiName' => 'UpdateAutoThrottleRulesAsync', + 'description' => '设置自动SQL限流配置参数', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:UpdateAutoThrottleRulesAsync', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'SqlRetention', - 'in' => 'query', - 'schema' => [ - 'description' => 'SQL洞察数据存储时长,单位为天,默认为**30**。'."\n" - ."\n" - .'- **30**'."\n" - .'- **180**'."\n" - .'- **365**'."\n" - .'- **1095**'."\n" - .'- **1825**', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '30', + ], + [ + 'apiName' => 'CreateSecurityIPGroup', + 'description' => '跨产品白名单模板创建接口', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'hdm:CreateSecurityIPGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '7172BECE-588A-5961-8126-C216E16B****', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'Synchro' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', - ], - 'Data' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', - ], - 'Code' => [ - 'description' => '状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - ."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], - ], + [ + 'apiName' => 'DescribeDiagnosticReportList', + 'description' => '查询诊断报告', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeDiagnosticReportList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', + [ + 'apiName' => 'GetSqlConcurrencyControlRulesHistory', + 'description' => '获取正在执行或被触发过的限流规则', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetSqlConcurrencyControlRulesHistory', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', + ], + [ + 'apiName' => 'GetFullRequestOriginStatByInstanceId', + 'description' => '按照访问来源统计全量请求数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetFullRequestOriginStatByInstanceId', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7172BECE-588A-5961-8126-C216E16B****\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Synchro\\": \\"None\\",\\n \\"Data\\": \\"None\\",\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<EnableDasProResponse>\\n <RequestId>7172BECE-588A-5961-8126-C216E16B****</RequestId>\\n <Message>Successful</Message>\\n <Code>200</Code>\\n <Success>true</Success>\\n</EnableDasProResponse>","errorExample":""}]', - 'title' => '开启DAS企业版 V1', - 'description' => '- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 该接口仅适用于DAS企业版 V1。'."\n" - ."\n" - .'>推荐使用[ModifySqlLogConfig](~~2778835~~)接口,为实例开启或关闭DAS企业版。DAS企业版各个版本支持的数据库和地域请参见[DAS产品系列及支持的功能](~~156204~~)。', - ], - 'DisableDasPro' => [ - 'summary' => '关闭指定实例DAS专业版。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'GetDeadLockHistory', + 'description' => '获取死锁分析的任务列表', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:GetDeadLockHistory', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'delete', - ], - 'parameters' => [ - [ - 'name' => 'UserId', - 'in' => 'query', - 'schema' => [ - 'description' => '用户ID,即创建数据库实例的阿里云主账号ID。'."\n" - ."\n" - .'> 非必填,输入目标数据库实例ID后,在调用API接口时,系统会自动获取用户ID。', - 'type' => 'string', - 'required' => false, - 'example' => '196278346919****', + [ + 'apiName' => 'GetBlockingDetailList', + 'description' => '查询RDS SQL Server实例的锁阻塞列表', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'hdm:GetBlockingDetailList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****', + ], + [ + 'apiName' => 'CreateQueryOptimizeTag', + 'description' => '对目标SQL进行打标', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'hdm:CreateQueryOptimizeTag', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '7172BECE-588A-5961-8126-C216E16B****', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'Synchro' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', - ], - 'Data' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', - ], - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - ."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], - ], + [ + 'apiName' => 'CreateCloudBenchTasks', + 'description' => '创建压测任务', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'hdm:CreateCloudBenchTasks', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', - ], - [ - 'errorCode' => '-1020004', - 'errorMessage' => 'the dbconfig is applying', + [ + 'apiName' => 'GetInstanceInspections', + 'description' => '获取数据库实例巡检评分结果', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetInstanceInspections', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', + ], + [ + 'apiName' => 'DescribeSqlLogStatistic', + 'description' => '查询DAS企业版数据统计信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeSqlLogStatistic', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7172BECE-588A-5961-8126-C216E16B****\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Synchro\\": \\"None\\",\\n \\"Data\\": \\"None\\",\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DisableDasProResponse>\\n <RequestId>7172BECE-588A-5961-8126-C216E16B****</RequestId>\\n <Message>Successful</Message>\\n <Code>200</Code>\\n <Success>true</Success>\\n</DisableDasProResponse>","errorExample":""}]', - 'title' => '关闭DAS企业版 V1', - 'description' => '- 目前支持的数据库实例请参见[DAS企业版使用说明](~~190912~~)。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 该接口仅适用于DAS企业版 V1。'."\n" - .'>推荐使用[ModifySqlLogConfig](~~2778835~~)接口,为实例开启或关闭DAS企业版。DAS企业版各个版本支持的数据库和地域请参见[DAS产品系列及支持的功能](~~156204~~)。', - ], - 'DescribeInstanceDasPro' => [ - 'summary' => '调用DescribeInstanceDasPro接口,查询指定数据库实例是否开启了DAS企业版 V1或企业版 V2。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'CreateKillInstanceSessionTask', + 'description' => '创建结束会话的任务', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'hdm:CreateKillInstanceSessionTask', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'GetAsyncErrorRequestListByCode', + 'description' => '查询产生指定MySQL错误码的SQL ID', 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhdm543Z01', + 'ramAction' => [ + 'action' => 'hdm:GetAsyncErrorRequestListByCode', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****', + [ + 'apiName' => 'GetQueryOptimizeExecErrorSample', + 'description' => '获取执行失败的样本数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetQueryOptimizeExecErrorSample', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '9CB97BC4-6479-55D0-B9D0-EA925AFE****', - ], - 'Data' => [ - 'description' => '数据库实例是否开启了DAS企业版:'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - ."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], - ], + [ + 'apiName' => 'GetQueryOptimizeDataStats', + 'description' => '获取查询治理模板数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetQueryOptimizeDataStats', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', + [ + 'apiName' => 'DescribeCloudBenchTasks', + 'description' => '查询压测任务列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeCloudBenchTasks', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', + ], + [ + 'apiName' => 'ModifySecurityIPGroup', + 'description' => '跨产品白名单模板修改接口', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'hdm:ModifySecurityIPGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"9CB97BC4-6479-55D0-B9D0-EA925AFE****\\",\\n \\"Data\\": true,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeInstanceDasProResponse>\\n <Message>Successful</Message>\\n <RequestId>9CB97BC4-6479-55D0-B9D0-EA925AFE****</RequestId>\\n <Data>true</Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</DescribeInstanceDasProResponse>","errorExample":""}]', - 'title' => '查询是否开启了DAS企业版 V1或V2', - 'description' => '- 目前支持的数据库实例请参见[DAS企业版使用说明](~~190912~~)。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 该接口仅适用于DAS企业版 V1、V2。'."\n" - .'>推荐使用[DescribeSqlLogConfig](~~2778837~~)接口,查询数据库实例的DAS企业版配置信息。', - ], - 'GetDasProServiceUsage' => [ - 'summary' => '调用GetDasProServiceUsage接口,查询数据库实例DAS企业版 V1或企业版 V2存储空间的使用情况。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'ModifyAutoScalingConfig', + 'description' => '修改实例弹性伸缩功能配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'hdm:ModifyAutoScalingConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'DescribeQueryExplain', + 'description' => '查询SQL执行计划', 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'UserId', - 'in' => 'query', - 'schema' => [ - 'description' => '用户ID,即创建数据库实例的阿里云主账号ID。'."\n" - ."\n" - .'> 非必填,输入目标数据库实例ID后,在调用API接口时,系统会自动获取用户ID。', - 'type' => 'string', - 'required' => false, - 'example' => '196278346919****', + 'ramAction' => [ + 'action' => 'hdm:DescribeQueryExplain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze8g2am97624****', + ], + [ + 'apiName' => 'GetQueryOptimizeShareUrl', + 'description' => '获取查询治理的分享链接', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetQueryOptimizeShareUrl', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '7172BECE-588A-5961-8126-C216E16B****', - ], - 'Data' => [ - 'description' => '返回数据。', - 'type' => 'object', - 'properties' => [ - 'storageFreeQuotaInMB' => [ - 'description' => '赠送的SQL洞察数据存储空间,单位为MB。', - 'type' => 'number', - 'format' => 'double', - 'example' => '5120', - ], - 'ip' => [ - 'description' => '数据库实例的地址。', - 'type' => 'string', - 'example' => 'rm-2ze8g2am97624****.mysql.****.com', - ], - 'userId' => [ - 'description' => '用户ID,即创建数据库实例的阿里云主账号ID。', - 'type' => 'string', - 'example' => '196278346919****', - ], - 'expireTime' => [ - 'description' => '数据库实例企业版到期时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1648742400000', - ], - 'instanceId' => [ - 'description' => '数据库实例ID。', - 'type' => 'string', - 'example' => 'rm-2ze8g2am97624****', - ], - 'storageUsed' => [ - 'description' => '数据库实例已使用的SQL洞察数据存储空间,单位为Byte。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '35903498', - ], - 'engine' => [ - 'description' => '数据库引擎。', - 'type' => 'string', - 'example' => 'MySQL', - ], - 'instanceAlias' => [ - 'description' => '数据库实例名称。', - 'type' => 'string', - 'example' => 'TESTDB01', - ], - 'port' => [ - 'description' => '端口号。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3306', - ], - 'vpcId' => [ - 'description' => 'VPC ID。', - 'type' => 'string', - 'example' => 'vpc-2zentqj1sk4qmolci****', - ], - 'commodityInstanceId' => [ - 'description' => 'DAS企业版ID。', - 'type' => 'string', - 'example' => 'daspro-cn-v0h1l6i****', - ], - 'startTime' => [ - 'description' => '开启企业版的时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1646100892000', - ], - 'isSpare' => [ - 'description' => '数据库实例的企业版是否过期:'."\n" - ."\n" - .'- **true**:过期。'."\n" - .'- **false**:未过期。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'region' => [ - 'description' => '数据库实例所属的地域。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - 'serviceUnitId' => [ - 'description' => '服务单元ID。', - 'type' => 'string', - 'example' => '4', - ], - 'sqlRetention' => [ - 'description' => 'SQL洞察数据存储时长,单位为天。', - 'type' => 'string', - 'example' => '180', - ], - 'migrationPredictRemainingTime' => [ - 'description' => '旧版SQL洞察和审计迁移到新版的预计剩余时间,单位为毫秒。'."\n" - .'><notice>仅当进行旧版SQL洞察和审计迁移到新版操作时,返回此参数。'."\n" - .'></notice>', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '60000', - ], - ], - 'example' => '{ "storageFreeQuotaInMB": 5120, "ip": "rm-2ze8g2am97624****.mysql.****.com", "custinsId": 12448331, "userId": "196278346919****", "uuid": "hdm_b0ae36343407609bf3e8df8709d8****", "expireTime": 1924963200000, "instanceId": "rm-2ze8g2am97624****", "storageUsed": 10773752667393, "engine": "MySQL", "instanceAlias": "TESTDB01_PROD", "port": 3310, "vpcId": "hdm_****", "commodityInstanceId": "daspro-****", "startTime": 1606381940000, "isSpare": false, "region": "cn-shanghai", "serviceUnitId": "5", "sqlRetention": 30 }', - ], - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], + [ + 'apiName' => 'GetRequestDiagnosisPage', + 'description' => '分页获取SQL诊断历史记录', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetRequestDiagnosisPage', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', + [ + 'apiName' => 'CreateSqlLogTask', + 'description' => '创建DAS企业版离线任务', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'hdm:CreateSqlLogTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', + ], + [ + 'apiName' => 'GetInstanceMissingIndexList', + 'description' => '查询RDS SQL Server实例索引缺失情况', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'hdm:GetInstanceMissingIndexList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"7172BECE-588A-5961-8126-C216E16B****\\",\\n \\"Data\\": {\\n \\"storageFreeQuotaInMB\\": 5120,\\n \\"ip\\": \\"rm-2ze8g2am97624****.mysql.****.com\\",\\n \\"userId\\": \\"196278346919****\\",\\n \\"expireTime\\": 1648742400000,\\n \\"instanceId\\": \\"rm-2ze8g2am97624****\\",\\n \\"storageUsed\\": 35903498,\\n \\"engine\\": \\"MySQL\\",\\n \\"instanceAlias\\": \\"TESTDB01\\",\\n \\"port\\": 3306,\\n \\"vpcId\\": \\"vpc-2zentqj1sk4qmolci****\\",\\n \\"commodityInstanceId\\": \\"daspro-cn-v0h1l6i****\\",\\n \\"startTime\\": 1646100892000,\\n \\"isSpare\\": false,\\n \\"region\\": \\"cn-shanghai\\",\\n \\"serviceUnitId\\": \\"4\\",\\n \\"sqlRetention\\": \\"180\\",\\n \\"migrationPredictRemainingTime\\": 60000\\n },\\n \\"Code\\": 200,\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetDasProServiceUsageResponse>\\n <Message>Successful</Message>\\n <RequestId>7172BECE-588A-5961-8126-C216E16B****</RequestId>\\n <Data>\\n <storageFreeQuotaInMB>5120</storageFreeQuotaInMB>\\n <ip>rm-2ze8g2am97624****.mysql.****.com</ip>\\n <userId>196278346919****</userId>\\n <expireTime>1648742400000</expireTime>\\n <instanceId>rm-2ze8g2am97624****</instanceId>\\n <storageUsed>35903498</storageUsed>\\n <engine>MySQL</engine>\\n <instanceAlias>TESTDB01</instanceAlias>\\n <port>3306</port>\\n <vpcId>vpc-2zentqj1sk4qmolci****</vpcId>\\n <commodityInstanceId>daspro-cn-v0h1l6i****</commodityInstanceId>\\n <startTime>1646100892000</startTime>\\n <isSpare>false</isSpare>\\n <region>cn-shanghai</region>\\n <serviceUnitId>4</serviceUnitId>\\n <sqlRetention>180</sqlRetention>\\n </Data>\\n <Code>200</Code>\\n <Success>true</Success>\\n</GetDasProServiceUsageResponse>","errorExample":""}]', - 'title' => '查询DAS企业版(V1或V2)存储空间使用情况', - 'description' => '- 当前支持的数据库请参见[DAS企业版使用说明](~~190912~~)。'."\n" - .'- 使用阿里云或DAS的SDK时,建议使用最新版本。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - .'- 该接口仅适用于DAS企业版 V1、V2。'."\n" - .'>推荐使用[DescribeSqlLogStatistic](~~2778836~~)接口,查询DAS企业版的数据统计信息。', - ], - 'RunCloudBenchTask' => [ - 'summary' => '调用RunCloudBenchTask接口,执行压测任务。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'CreateLatestDeadLockAnalysis', + 'description' => '创建最近死锁分析任务', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:CreateLatestDeadLockAnalysis', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ + [ + 'apiName' => 'DescribeHotBigKeys', + 'description' => '实时获取当前热Key和大Key', 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'TaskId', - 'in' => 'query', - 'schema' => [ - 'description' => '任务ID,您可通过[DescribeCloudBenchTasks](~~230670~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'e5cec704-0518-430f-8263-76f4dcds****', + 'ramAction' => [ + 'action' => 'hdm:DescribeHotBigKeys', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], - 'Data' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'PreCheckItem' => [ - 'description' => '详细信息列表,包括信息的总数、错误码等。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '任务的运行状态。取值:'."\n" - ."\n" - .'- **SUCCESS**:成功。'."\n" - .'- **IGNORED**:忽略。'."\n" - .'- **RUNNING**:运行中。'."\n" - .'- **EXCEPTION**:异常。', - 'type' => 'string', - 'example' => 'SUCCESS', - ], - 'Order' => [ - 'description' => '检查项的顺序,取值范围:**0**~**10**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'Name' => [ - 'description' => '检查项。取值:'."\n" - ."\n" - .'- **SqlArchiveStatusChecker**:检查SQL洞察数据是否可用。'."\n" - .'- **BenchClientEnvChecker**:检查压测机上程序运行环境是否可用。'."\n" - .'- **SpecChecker**:检查压测目标规格和压测机规格是否可用。'."\n" - .'- **SourceInstanceChecker**:检查压测源实例账号和网络是否可用。'."\n" - .'- **BenchTargetChecker**:检查压测目标实例账号和网络是否可用。', - 'type' => 'string', - 'example' => 'BenchTargetChecker', - ], - 'Details' => [ - 'description' => '检查项的详细信息。', - 'type' => 'string', - 'example' => '"Data": { "total": 1, "list":[...] }, "Code": 200, "Success": true }', - ], - ], - ], - ], - ], - ], - ], + [ + 'apiName' => 'CreateRequestDiagnosis', + 'description' => '发起SQL诊断请求', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'hdm:CreateRequestDiagnosis', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', + [ + 'apiName' => 'DescribeSqlLogRecords', + 'description' => '(废弃)查询DAS企业版日志明细', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'hdm:DescribeSqlLogRecords', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', + ], + [ + 'apiName' => 'CreateCacheAnalysisJob', + 'description' => '创建缓存分析任务', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'hdm:CreateCacheAnalysisJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"PreCheckItem\\": [\\n {\\n \\"Status\\": \\"SUCCESS\\",\\n \\"Order\\": 0,\\n \\"Code\\": 200,\\n \\"Message\\": \\"Successful\\",\\n \\"Name\\": \\"BenchTargetChecker\\",\\n \\"Details\\": \\"\\\\\\"Data\\\\\\": { \\\\\\"total\\\\\\": 1, \\\\\\"list\\\\\\":[...] }, \\\\\\"Code\\\\\\": 200, \\\\\\"Success\\\\\\": true }\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<RunCloudBenchTaskResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n <Data>\\n <Status>SUCCESS</Status>\\n <Order>0</Order>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Name>BenchTarget</Name>\\n <Details>\\"Data\\": { \\"total\\": 1, \\"list\\":[...] }, \\"Code\\": 200, \\"Success\\": true }</Details>\\n </Data>\\n</RunCloudBenchTaskResponse>","errorExample":""}]', - 'title' => '执行压测任务', - 'description' => '数据库自治服务DAS提供智能压测功能,帮助您验证您的实例规格是否需要扩容,有效应对业务流量高峰。更多信息,请参见[智能压测](~~155068~~)。', - ], - 'DescribeCloudbenchTask' => [ - 'summary' => '调用DescribeCloudbenchTask接口,查询压测任务。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DescribeAuditLogs', + 'description' => '查询审计告警日志', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'hdm:DescribeAuditLogs', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [ + [ + 'apiName' => 'GetMySQLAllSessionAsync', + 'description' => '获取实例当前会话', 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'TaskId', - 'in' => 'query', - 'schema' => [ - 'description' => '任务ID,您可通过[DescribeCloudBenchTasks](~~230670~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'e5cec704-0518-430f-8263-76f4dcds****', + 'ramAction' => [ + 'action' => 'hdm:GetMySQLAllSessionAsync', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '详细信息列表,包括信息总数、错误码等。', - 'type' => 'object', - 'properties' => [ - 'DtsJobName' => [ - 'description' => 'DTS的任务名称。', - 'type' => 'string', - 'example' => 'RDS间迁移', - ], - 'ErrorMessage' => [ - 'description' => '任务失败的错误提示。', - 'type' => 'string', - 'example' => 'DTS-070211: Connect Source DB failed. cause by [com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:Could not create connection to database server. Attempted reconnect 3 times. Giving up.][com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure\\n\\nThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.][java.net.ConnectException:Connection timed out (Connection timed out)] About more information in [https://yq.aliyun.com/articles/499178].', - ], - 'External' => [ - 'description' => '其他信息。', - 'type' => 'string', - 'example' => 'Null', - ], - 'BackupType' => [ - 'description' => '备份类型。取值:'."\n" - ."\n" - .'- **TIMESTAMP**:按备份时间。'."\n" - .'- **BACKUPID**:按备份集ID。', - 'type' => 'string', - 'example' => 'TIMESTAMP', - ], - 'UserId' => [ - 'description' => '阿里云账号ID。', - 'type' => 'string', - 'example' => '109141182625****', - ], - 'DstType' => [ - 'description' => '目标实例的类型。取值:'."\n" - .'- **Instance**(默认):实例ID。'."\n" - .'- **ConnectionString**:实例的连接地址。', - 'type' => 'string', - 'example' => 'Instance', - ], - 'EcsInstanceId' => [ - 'description' => 'ECS的实例ID。', - 'type' => 'string', - 'example' => 'i-bp1ecr5go2go1****', - ], - 'DstInstanceUuid' => [ - 'description' => '目标实例的唯一标识符号。', - 'type' => 'string', - 'example' => 'hdm_d887b5ccf99fa0dc9a1e5aaac368****', - ], - 'TaskType' => [ - 'description' => '压测任务类型。取值:'."\n" - .'- **pressure test**(默认):智能压测,将从源实例上捕获的流量,按照目标实例规格支持的极限速度,在目标实例上进行回放。'."\n" - .'- **smart pressure test**:生成压测,通过分析和学习短时间内在源实例上捕获的流量,生成和原始流量的业务模型和流量分布基本一致的流量进行持续压测,减少从源实例采集数据的时间,降低存储成本和性能开销。', - 'type' => 'string', - 'example' => 'pressure test', - ], - 'BenchStep' => [ - 'description' => '压测的子步骤。取值:'."\n" - ."\n" - .'- **NEW**:任务初始化。'."\n" - .'- **WAIT_BUY_ECS**:新购ECS实例。'."\n" - .'- **WAIT_START_ECS**:ECS实例启动。'."\n" - .'- **WAIT_INSTALL_JDK**:安装JDK。'."\n" - .'- **WAIT_INSTALL_DBGATEWAY**:安装DBGateway。'."\n" - .'- **ADD_SECURITY_IPS_STEP**:配置安全组白名单。'."\n" - .'- **ARCHIVE**:全量SQL归档。'."\n" - .'- **DOWNLOAD**:下载全量SQL文件。'."\n" - .'- **PROCEED**:预处理全量SQL文件。'."\n" - .'- **PRE_LOAD**:预加载全量SQL文件。'."\n" - .'- **VALIDATE**:功能验证。'."\n" - .'- **PRESSURE**:性能压测。', - 'type' => 'string', - 'example' => 'PROCEED', - ], - 'Version' => [ - 'description' => '压测任务版本。取值:'."\n" - ."\n" - .'- **V2.0**'."\n" - .'- **V3.0**', - 'type' => 'string', - 'example' => 'V3.0', - ], - 'EndState' => [ - 'description' => '压测任务结束后的状态。取值:'."\n" - ."\n" - .'- **WAIT_TARGET**:准备压测的目标实例。'."\n" - .'- **WAIT_DBGATEWAY**:准备压测部署。'."\n" - .'- **WAIT_SQL**:准备全量SQL。'."\n" - .'- **WAIT_LOGIC**:准备开始回放流量。'."\n" - ."\n" - .'>当压测任务执行完EndState设置的状态之后,任务将直接到达完成状态。', - 'type' => 'string', - 'example' => 'WAIT_LOGIC', - ], - 'SrcInstanceUuid' => [ - 'description' => '源实例的唯一标识符号。', - 'type' => 'string', - 'example' => 'a364e414-e68b-4e5c-9166-65b3a153****', - ], - 'ClientType' => [ - 'description' => '压测机器类型。取值:'."\n" - ."\n" - .'- **ECS**:您需要自己准备[数据库网关](~~64905~~)。'."\n" - .'- **DAS_ECS**:DAS自动购买和部署的ECS。', - 'type' => 'string', - 'example' => 'ECS', - ], - 'State' => [ - 'description' => '目前压测任务的状态。取值:'."\n" - ."\n" - .'- **WAIT_TARGET**:准备压测的目标实例。'."\n" - .'- **WAIT_DBGATEWAY**:准备压测部署。'."\n" - .'- **WAIT_SQL**:准备全量SQL。'."\n" - .'- **WAIT_LOGIC**:准备开始回放流量。', - 'type' => 'string', - 'example' => 'WAIT_TARGET', - ], - 'DstIp' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', - ], - 'SrcPublicIp' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', - ], - 'BackupId' => [ - 'description' => '备份集ID,可通过查询备份列表接口[DescribeBackups](~~26273~~)获取。', - 'type' => 'string', - 'example' => '229132', - ], - 'SqlCompleteReuse' => [ - 'description' => '全量SQL的复用信息。', - 'type' => 'string', - 'example' => '{"sqlUuid":"task_a37d2f07-45cb-****-a2a6-c66c62****","metaUuid":"task_211e2561-5c0c-486b-864c-56b511****","sqlFile":"cl-1620057600000-1800626.sc","metaFile":"cl-1620057600000-180****.meta"}', - ], - 'SmartPressureTime' => [ - 'description' => '生成压测时间,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '86400000', - ], - 'ArchiveState' => [ - 'description' => 'SQL归档状态,取值:'."\n" - ."\n" - .'- **0**:未开始。'."\n" - .'- **1**:完成。'."\n" - .'- **2**:错误。'."\n" - .'- **3**:运行中。'."\n" - .'- **4**:无需下载。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Status' => [ - 'description' => '压测任务的运行状态。取值:'."\n" - ."\n" - .'- **SUCCESS**:成功。'."\n" - .'- **IGNORED**:忽略。'."\n" - .'- **RUNNING**:运行中。'."\n" - .'- **EXCEPTION**:异常。', - 'type' => 'string', - 'example' => 'RUNNING', - ], - 'WorkDir' => [ - 'description' => '压测生成的临时目录。', - 'type' => 'string', - 'example' => '/tmp/bench/', - ], - 'ArchiveOssTableName' => [ - 'description' => '归档的OSS表名。', - 'type' => 'string', - 'example' => 'custins15546355_161604665****', - ], - 'DtsJobId' => [ - 'description' => 'DTS迁移任务ID。', - 'type' => 'string', - 'example' => 'i03e3zty16i****', - ], - 'DtsJobState' => [ - 'description' => 'DTS任务状态,取值:'."\n" - ."\n" - .'- **NOT_STARTED**:未启动。'."\n" - .'- **PRE_CHECKING**:预检查中。'."\n" - .'- **PRE_CHECK_FAILED**:预检查失败。'."\n" - .'- **CHECKING**:检查中。'."\n" - .'- **MIGRATING**:迁移中。'."\n" - .'- **CATCHED**:已经追平。'."\n" - .'- **SUSPENDING**:暂停中。'."\n" - .'- **MIGRATION_FAILED**:迁移失败。'."\n" - .'- **FINISHED**:完成。'."\n" - .'- **INITIALIZING**:同步初始化。'."\n" - .'- **INITIALIZE_FAILED**:同步初始化失败。'."\n" - .'- **SYNCHRONIZING**:同步中。'."\n" - .'- **MODIFYING**:同步对象变更中。'."\n" - .'- **SWITCHING**:切换中。'."\n" - .'- **FAILED**:失败。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => 'CHECKING', - ], - 'DstPort' => [ - 'description' => '目标实例的端口。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3306', - ], - 'DtsJobClass' => [ - 'description' => 'DTS任务规格。', - 'type' => 'string', - 'example' => 'medium', - ], - 'ClientGatewayId' => [ - 'description' => '压测机的数据库网关ID。', - 'type' => 'string', - 'example' => '58598b2af48a0193dfc16fc6964ef****', - ], - 'Description' => [ - 'description' => '压测任务描述。', - 'type' => 'string', - 'example' => 'test-das-bench-0501', - ], - 'ErrorCode' => [ - 'description' => '压测内部任务返回的错误码。', - 'type' => 'string', - 'example' => '10910', - ], - 'TableSchema' => [ - 'description' => '压测中涉及的表名。', - 'type' => 'string', - 'example' => '[{"TABLE_NAME":"customer1","TABLE_SCHEMA":"tpcc"}]', - ], - 'DtsJobStatus' => [ - 'description' => 'DTS任务状态,取值:'."\n" - ."\n" - .'- **NOT_STARTED**:未启动。'."\n" - .'- **PRE_CHECKING**:预检查中。'."\n" - .'- **PRE_CHECK_FAILED**:预检查失败。'."\n" - .'- **CHECKING**:检查中。'."\n" - .'- **MIGRATING**:迁移中。'."\n" - .'- **CATCHED**:已经追平。'."\n" - .'- **SUSPENDING**:暂停中。'."\n" - .'- **MIGRATION_FAILED**:迁移失败。'."\n" - .'- **FINISHED**:完成。'."\n" - .'- **INITIALIZING**:同步初始化。'."\n" - .'- **INITIALIZE_FAILED**:同步初始化失败。'."\n" - .'- **SYNCHRONIZING**:同步中。'."\n" - .'- **MODIFYING**:同步对象变更中。'."\n" - .'- **SWITCHING**:切换中。'."\n" - .'- **FAILED**:失败。'."\n", - 'type' => 'string', - 'example' => 'PRE_CHECKING', - ], - 'SrcInstanceArea' => [ - 'description' => '源实例的数据库类型。', - 'type' => 'string', - 'example' => 'RDS', - ], - 'BenchStepStatus' => [ - 'description' => '压测子步骤状态。取值:'."\n" - ."\n" - .'- **NEW**:任务初始化。'."\n" - .'- **RUNNING**:正在执行。'."\n" - .'- **FAILED**:失败。'."\n" - .'- **FINISHED**:已完成。'."\n" - .'- **Terminated**:已终止。'."\n" - .'- **Deleted**:已删除。'."\n" - ."\n", - 'type' => 'string', - 'example' => 'FINISHED', - ], - 'Source' => [ - 'description' => '任务来源。取值:'."\n" - ."\n" - .'- **DAS**。'."\n" - .'- **OPEN_API**。', - 'type' => 'string', - 'example' => 'DAS', - ], - 'ArchiveJobId' => [ - 'description' => '归档任务ID。', - 'type' => 'string', - 'example' => '\'202105211430070112231480820340758****', - ], - 'Topic' => [ - 'description' => 'kafka的消费Topic。', - 'type' => 'string', - 'example' => 'das', - ], - 'RequestDuration' => [ - 'description' => '压测任务的持续时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '864000', - ], - 'TaskId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => 'e5cec704-0518-430f-8263-76f4dcds****', - ], - 'Rate' => [ - 'description' => '压测倍率。回放倍率必须是正整数,取值范围为:**0**~**30**,默认为**1**。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - ], - ], - ], + [ + 'apiName' => 'RunCloudBenchTask', + 'description' => '执行压测任务', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:RunCloudBenchTask', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', + [ + 'apiName' => 'DeleteStopGateway', + 'description' => '删除已停止的DBGateway元数据', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'hdm:DeleteStopGateway', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', + ], + [ + 'apiName' => 'AddHDMInstance', + 'description' => '接入数据库实例', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'hdm:AddHDMInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"DtsJobName\\": \\"RDS间迁移\\",\\n \\"ErrorMessage\\": \\"DTS-070211: Connect Source DB failed. cause by [com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:Could not create connection to database server. Attempted reconnect 3 times. Giving up.][com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure\\\\\\\\n\\\\\\\\nThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.][java.net.ConnectException:Connection timed out (Connection timed out)] About more information in [https://yq.aliyun.com/articles/499178].\\",\\n \\"External\\": \\"Null\\",\\n \\"BackupType\\": \\"TIMESTAMP\\",\\n \\"UserId\\": \\"109141182625****\\",\\n \\"DstType\\": \\"Instance\\",\\n \\"EcsInstanceId\\": \\"i-bp1ecr5go2go1****\\",\\n \\"DstInstanceUuid\\": \\"hdm_d887b5ccf99fa0dc9a1e5aaac368****\\",\\n \\"TaskType\\": \\"pressure test\\",\\n \\"BenchStep\\": \\"PROCEED\\",\\n \\"Version\\": \\"V3.0\\",\\n \\"EndState\\": \\"WAIT_LOGIC\\",\\n \\"SrcInstanceUuid\\": \\"a364e414-e68b-4e5c-9166-65b3a153****\\",\\n \\"ClientType\\": \\"ECS\\",\\n \\"State\\": \\"WAIT_TARGET\\",\\n \\"DstIp\\": \\"None\\",\\n \\"SrcPublicIp\\": \\"None\\",\\n \\"BackupId\\": \\"229132\\",\\n \\"SqlCompleteReuse\\": \\"{\\\\\\"sqlUuid\\\\\\":\\\\\\"task_a37d2f07-45cb-****-a2a6-c66c62****\\\\\\",\\\\\\"metaUuid\\\\\\":\\\\\\"task_211e2561-5c0c-486b-864c-56b511****\\\\\\",\\\\\\"sqlFile\\\\\\":\\\\\\"cl-1620057600000-1800626.sc\\\\\\",\\\\\\"metaFile\\\\\\":\\\\\\"cl-1620057600000-180****.meta\\\\\\"}\\",\\n \\"SmartPressureTime\\": 86400000,\\n \\"ArchiveState\\": 1,\\n \\"Status\\": \\"RUNNING\\",\\n \\"WorkDir\\": \\"/tmp/bench/\\",\\n \\"ArchiveOssTableName\\": \\"custins15546355_161604665****\\",\\n \\"DtsJobId\\": \\"i03e3zty16i****\\",\\n \\"DtsJobState\\": 0,\\n \\"DstPort\\": 3306,\\n \\"DtsJobClass\\": \\"medium\\",\\n \\"ClientGatewayId\\": \\"58598b2af48a0193dfc16fc6964ef****\\",\\n \\"Description\\": \\"test-das-bench-0501\\",\\n \\"ErrorCode\\": \\"10910\\",\\n \\"TableSchema\\": \\"[{\\\\\\"TABLE_NAME\\\\\\":\\\\\\"customer1\\\\\\",\\\\\\"TABLE_SCHEMA\\\\\\":\\\\\\"tpcc\\\\\\"}]\\",\\n \\"DtsJobStatus\\": \\"PRE_CHECKING\\",\\n \\"SrcInstanceArea\\": \\"RDS\\",\\n \\"BenchStepStatus\\": \\"FINISHED\\",\\n \\"Source\\": \\"DAS\\",\\n \\"ArchiveJobId\\": \\"\'202105211430070112231480820340758****\\",\\n \\"Topic\\": \\"das\\",\\n \\"RequestDuration\\": 864000,\\n \\"TaskId\\": \\"e5cec704-0518-430f-8263-76f4dcds****\\",\\n \\"Rate\\": 1\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeCloudbenchTaskResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n <Data>\\n <DtsJobName>RDS间迁移</DtsJobName>\\n <ErrorMessage>DTS-070211: Connect Source DB failed. cause by [com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:Could not create connection to database server. Attempted reconnect 3 times. Giving up.][com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure\\\\n\\\\nThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.][java.net.ConnectException:Connection timed out (Connection timed out)] About more information in [https://yq.aliyun.com/articles/499178].</ErrorMessage>\\n <External>Null</External>\\n <BackupType>TIMESTAMP</BackupType>\\n <UserId>109141182625****</UserId>\\n <DstType>Instance</DstType>\\n <EcsInstanceId>i-bp1ecr5go2go1****</EcsInstanceId>\\n <DstInstanceUuid>hdm_d887b5ccf99fa0dc9a1e5aaac368****</DstInstanceUuid>\\n <TaskType>pressure test</TaskType>\\n <BenchStep>PROCEED</BenchStep>\\n <Version>V3.0</Version>\\n <EndState>WAIT_LOGIC</EndState>\\n <SrcInstanceUuid>a364e414-e68b-4e5c-9166-65b3a153****</SrcInstanceUuid>\\n <ClientType>ECS</ClientType>\\n <State>WAIT_TARGET</State>\\n <DstIp>None</DstIp>\\n <SrcPublicIp>None</SrcPublicIp>\\n <BackupId>229132</BackupId>\\n <SqlCompleteReuse>{\\"sqlUuid\\":\\"task_a37d2f07-45cb-****-a2a6-c66c62****\\",\\"metaUuid\\":\\"task_211e2561-5c0c-486b-864c-56b511****\\",\\"sqlFile\\":\\"cl-1620057600000-1800626.sc\\",\\"metaFile\\":\\"cl-1620057600000-180****.meta\\"}</SqlCompleteReuse>\\n <SmartPressureTime>86400000</SmartPressureTime>\\n <ArchiveState>1</ArchiveState>\\n <Status>RUNNING</Status>\\n <WorkDir>/tmp/bench/</WorkDir>\\n <ArchiveOssTableName>custins15546355_161604665****</ArchiveOssTableName>\\n <DtsJobId>i03e3zty16i****</DtsJobId>\\n <DstPort>3306</DstPort>\\n <DtsJobClass>medium</DtsJobClass>\\n <ClientGatewayId>58598b2af48a0193dfc16fc6964ef****</ClientGatewayId>\\n <Description>test-das-bench-0501</Description>\\n <ErrorCode>10910</ErrorCode>\\n <TableSchema>[{\\"TABLE_NAME\\":\\"customer1\\",\\"TABLE_SCHEMA\\":\\"tpcc\\"}]</TableSchema>\\n <DtsJobStatus>PRE_CHECKING</DtsJobStatus>\\n <SrcInstanceArea>RDS</SrcInstanceArea>\\n <BenchStepStatus>FINISHED</BenchStepStatus>\\n <Source>DAS</Source>\\n <ArchiveJobId>\'202105211430070112231480820340758****</ArchiveJobId>\\n <Topic>das</Topic>\\n <RequestDuration>864000</RequestDuration>\\n <TaskId>e5cec704-0518-430f-8263-76f4dcds****</TaskId>\\n <Rate>1</Rate>\\n </Data>\\n</DescribeCloudbenchTaskResponse>","errorExample":""}]', - 'title' => '查询压测任务', - 'description' => '数据库自治服务DAS提供智能压测功能,帮助您验证您的实例规格是否需要扩容,有效应对业务流量高峰。更多信息,请参见[智能压测](~~155068~~)。', - ], - 'DescribeCloudBenchTasks' => [ - 'summary' => '调用DescribeCloudBenchTasks接口,查询压测任务列表。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'GetDeadLockDetail', + 'description' => '查询单个死锁详情', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:GetDeadLockDetail', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [ + [ + 'apiName' => 'GetDasSQLLogHotData', + 'description' => '查询DAS企业版热存储数据明细', 'operationType' => 'get', - 'abilityTreeCode' => '29456', - 'abilityTreeNodes' => [ - 'FEATUREhdmB8MM4L', - ], - ], - 'parameters' => [ - [ - 'name' => 'Status', - 'in' => 'query', - 'schema' => [ - 'description' => '任务的运行状态。取值:'."\n" - ."\n" - .'- **SUCCESS**:成功。'."\n" - .'- **IGNORED**:忽略。'."\n" - .'- **RUNNING**:运行中。'."\n" - .'- **EXCEPTION**:异常。', - 'type' => 'string', - 'required' => false, - 'example' => 'SUCCESS', + 'ramAction' => [ + 'action' => 'hdm:GetDasSQLLogHotData', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'TaskType', - 'in' => 'query', - 'schema' => [ - 'description' => '压测任务类型。取值:'."\n" - .'- **pressure test**(默认):智能压测,将从源实例上捕获的流量,按照目标实例规格支持的极限速度,在目标实例上进行回放。'."\n" - .'- **smart pressure test**:生成压测,通过分析和学习短时间内在源实例上捕获的流量,生成和原始流量的业务模型和流量分布基本一致的流量进行持续压测,减少从源实例采集数据的时间,降低存储成本和性能开销。', - 'type' => 'string', - 'required' => false, - 'example' => 'pressure test', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '查询任务开始时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'string', - 'required' => false, - 'example' => '1596177993000', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '查询任务结束时间,格式为Unix时间戳,单位为毫秒。'."\n" - .'>查询任务结束时间需晚于查询任务开始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '1596177993001', + ], + [ + 'apiName' => 'GetInstanceGroupInspectReportList', + 'description' => '查询DAS Agent运维报告列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetInstanceGroupInspectReportList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'PageNo', - 'in' => 'query', - 'schema' => [ - 'description' => '页码,取值大于0且不超过Integer数据类型的最大值,默认值为1。', - 'type' => 'string', - 'required' => false, - 'example' => '1', + ], + [ + 'apiName' => 'EnableDasPro', + 'description' => '开启DAS企业版 V1', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'hdm:EnableDasPro', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '每页最大记录数,取值大于0且不超过Integer数据类型的最大值,默认值为10。', - 'type' => 'string', - 'required' => false, - 'example' => '10', + ], + [ + 'apiName' => 'GetQueryOptimizeRuleList', + 'description' => '获取规则列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetQueryOptimizeRuleList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '详细信息列表,包括信息总数、错误码等。', - 'type' => 'object', - 'properties' => [ - 'PageNo' => [ - 'description' => '页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '每页最大记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Extra' => [ - 'description' => ' 备用参数。', - 'type' => 'string', - 'example' => 'None', - ], - 'Total' => [ - 'description' => '结果的数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'cloudbenchTasks' => [ - 'description' => '压测任务的详细信息列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'DtsJobName' => [ - 'description' => 'DTS的任务名称。', - 'type' => 'string', - 'example' => 'RDS间迁移', - ], - 'ErrorMessage' => [ - 'description' => '任务失败的错误提示。', - 'type' => 'string', - 'example' => 'DTS-070211: Connect Source DB failed. cause by [com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:Could not create connection to database server. Attempted reconnect 3 times. Giving up.][com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure\\n\\nThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.][java.net.ConnectException:Connection timed out (Connection timed out)] About more information in [https://yq.aliyun.com/articles/499178].', - ], - 'External' => [ - 'description' => '其他信息。', - 'type' => 'string', - 'example' => 'Null', - ], - 'BackupType' => [ - 'description' => '备份类型。取值:'."\n" - ."\n" - .'- **TIMESTAMP**:按备份时间。'."\n" - .'- **BACKUPID**:按备份集ID。', - 'type' => 'string', - 'example' => 'TIMESTAMP', - ], - 'UserId' => [ - 'description' => '阿里云账号ID。', - 'type' => 'string', - 'example' => '1091411816252****', - ], - 'DstType' => [ - 'description' => '目标实例的类型。取值:'."\n" - .'- **Instance**(默认):实例ID。'."\n" - .'- **ConnectionString**:实例的连接地址。', - 'type' => 'string', - 'example' => 'Instance', - ], - 'EcsInstanceId' => [ - 'description' => 'ECS的实例ID。', - 'type' => 'string', - 'example' => 'i-bp1ecr5go2go1****', - ], - 'DstInstanceUuid' => [ - 'description' => '目标实例的唯一标识符号。', - 'type' => 'string', - 'example' => 'hdm_d887b5ccf99fa0dc9a1e5aaac368****', - ], - 'TaskType' => [ - 'description' => '压测任务类型。取值:'."\n" - .'- **pressure test**(默认):智能压测,将从源实例上捕获的流量,按照目标实例规格支持的极限速度,在目标实例上进行回放。'."\n" - .'- **smart pressure test**:生成压测,通过分析和学习短时间内在源实例上捕获的流量,生成和原始流量的业务模型和流量分布基本一致的流量进行持续压测,减少从源实例采集数据的时间,降低存储成本和性能开销。', - 'type' => 'string', - 'example' => 'pressure test', - ], - 'BenchStep' => [ - 'description' => '压测的子步骤。取值:'."\n" - ."\n" - .'- **NEW**:任务初始化。'."\n" - .'- **WAIT_BUY_ECS**:新购ECS实例。'."\n" - .'- **WAIT_START_ECS**:ECS实例启动。'."\n" - .'- **WAIT_INSTALL_JDK**:安装JDK。'."\n" - .'- **WAIT_INSTALL_DBGATEWAY**:安装DBGateway。'."\n" - .'- **ADD_SECURITY_IPS_STEP**:配置安全组白名单。'."\n" - .'- **ARCHIVE**:全量SQL归档。'."\n" - .'- **DOWNLOAD**:下载全量SQL文件。'."\n" - .'- **PROCEED**:预处理全量SQL文件。'."\n" - .'- **PRE_LOAD**:预加载全量SQL文件。'."\n" - .'- **VALIDATE**:功能验证。'."\n" - .'- **PRESSURE**:性能压测。', - 'type' => 'string', - 'example' => 'PROCEED', - ], - 'Version' => [ - 'description' => '压测任务版本。取值:'."\n" - ."\n" - .'- **V2.0**。'."\n" - .'- **V3.0**。', - 'type' => 'string', - 'example' => 'V3.0', - ], - 'EndState' => [ - 'description' => '压测任务结束后的状态。取值:'."\n" - ."\n" - .'- **WAIT_TARGET**:准备压测的目标实例。'."\n" - .'- **WAIT_DBGATEWAY**:准备压测部署。'."\n" - .'- **WAIT_SQL**:准备全量SQL。'."\n" - .'- **WAIT_LOGIC**:准备开始回放流量。'."\n" - ."\n" - .'>当压测任务执行完EndState设置的状态之后,任务将直接到达完成状态。', - 'type' => 'string', - 'example' => 'WAIT_TARGET', - ], - 'SrcInstanceUuid' => [ - 'description' => '源实例的唯一标识符号。', - 'type' => 'string', - 'example' => 'hdm_3063db6792965c080a4bcb6e6304****', - ], - 'ClientType' => [ - 'description' => '压测机器类型。取值:'."\n" - ."\n" - .'- **ECS**:您需要自己准备[数据库网关](~~64905~~)。'."\n" - .'- **DAS_ECS**:DAS自动购买和部署的ECS。', - 'type' => 'string', - 'example' => 'ECS', - ], - 'State' => [ - 'description' => '目前压测任务的状态。取值:'."\n" - ."\n" - .'- **WAIT_TARGET**:准备压测的目标实例。'."\n" - .'- **WAIT_DBGATEWAY**:准备压测部署。'."\n" - .'- **WAIT_SQL**:准备全量SQL。'."\n" - .'- **WAIT_LOGIC**:准备开始回放流量。', - 'type' => 'string', - 'example' => 'WAIT_TARGET', - ], - 'DstIp' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', - ], - 'SrcPublicIp' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', - ], - 'BackupId' => [ - 'description' => '备份集ID,可通过查询备份列表接口[DescribeBackups](~~26273~~)获取。', - 'type' => 'string', - 'example' => '229132', - ], - 'SqlCompleteReuse' => [ - 'description' => '全量SQL的复用信息。', - 'type' => 'string', - 'example' => '{"sqlUuid":"task_a37d2f07-45cb-4413-a2a6-c66c68****","metaUuid":"task_211e2561-5c0c-486b-864c-56b511****","sqlFile":"cl-1620057600000-1800626.sc","metaFile":"cl-1620057600000-1800626.meta"}', - ], - 'SmartPressureTime' => [ - 'description' => '生成压测的时间,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '86400000', - ], - 'ArchiveState' => [ - 'description' => 'SQL归档状态,取值:'."\n" - ."\n" - .'- **0**:未开始。'."\n" - .'- **1**:完成。'."\n" - .'- **2**:错误。'."\n" - .'- **3**:运行中。'."\n" - .'- **4**:无需下载。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Status' => [ - 'description' => '压测任务的运行状态。取值:'."\n" - ."\n" - .'- **SUCCESS**:成功。'."\n" - .'- **IGNORED**:忽略。'."\n" - .'- **RUNNING**:运行中。'."\n" - .'- **EXCEPTION**:异常。', - 'type' => 'string', - 'example' => 'RUNNING', - ], - 'WorkDir' => [ - 'description' => '压测生成的临时目录。', - 'type' => 'string', - 'example' => '/tmp/bench/', - ], - 'ArchiveOssTableName' => [ - 'description' => '归档至OSS的表名。', - 'type' => 'string', - 'example' => 'custins15546355_161604665****', - ], - 'DtsJobId' => [ - 'description' => 'DTS迁移的任务ID。', - 'type' => 'string', - 'example' => 'i03e3zty16i****', - ], - 'DtsJobState' => [ - 'description' => 'DTS任务状态,取值:'."\n" - ."\n" - .'- **NOT_STARTED**:未启动。'."\n" - .'- **PRE_CHECKING**:预检查中。'."\n" - .'- **PRE_CHECK_FAILED**:预检查失败。'."\n" - .'- **CHECKING**:检查中。'."\n" - .'- **MIGRATING**:迁移中。'."\n" - .'- **CATCHED**:已经追平。'."\n" - .'- **SUSPENDING**:暂停中。'."\n" - .'- **MIGRATION_FAILED**:迁移失败。'."\n" - .'- **FINISHED**:完成。'."\n" - .'- **INITIALIZING**:同步初始化。'."\n" - .'- **INITIALIZE_FAILED**:同步初始化失败。'."\n" - .'- **SYNCHRONIZING**:同步中。'."\n" - .'- **MODIFYING**:同步对象变更中。'."\n" - .'- **SWITCHING**:切换中。'."\n" - .'- **FAILED**:失败。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => 'CHECKING', - ], - 'DstPort' => [ - 'description' => '目标实例的端口。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3306', - ], - 'DtsJobClass' => [ - 'description' => 'DTS链路规格。'."\n" - .'>关于各链路规格的说明及性能测试情况请参见[数据迁移链路规格说明](~~26606~~)。', - 'type' => 'string', - 'example' => 'medium', - ], - 'ClientGatewayId' => [ - 'description' => '压测机的数据库网关ID。', - 'type' => 'string', - 'example' => '58598b2af48a0193dfc16fc6964ef****', - ], - 'Description' => [ - 'description' => '压测任务描述。', - 'type' => 'string', - 'example' => 'test-das-bench-0501', - ], - 'ErrorCode' => [ - 'description' => '压测内部任务返回的错误码。', - 'type' => 'string', - 'example' => '10109', - ], - 'TableSchema' => [ - 'description' => '压测中涉及的表名。', - 'type' => 'string', - 'example' => '[{"TABLE_NAME":"customer1","TABLE_SCHEMA":"tpcc"}]', - ], - 'DtsJobStatus' => [ - 'description' => 'DTS任务状态,取值:'."\n" - ."\n" - .'- **NOT_STARTED**:未启动。'."\n" - .'- **PRE_CHECKING**:预检查中。'."\n" - .'- **PRE_CHECK_FAILED**:预检查失败。'."\n" - .'- **CHECKING**:检查中。'."\n" - .'- **MIGRATING**:迁移中。'."\n" - .'- **CATCHED**:已经追平。'."\n" - .'- **SUSPENDING**:暂停中。'."\n" - .'- **MIGRATION_FAILED**:迁移失败。'."\n" - .'- **FINISHED**:完成。'."\n" - .'- **INITIALIZING**:同步初始化。'."\n" - .'- **INITIALIZE_FAILED**:同步初始化失败。'."\n" - .'- **SYNCHRONIZING**:同步中。'."\n" - .'- **MODIFYING**:同步对象变更中。'."\n" - .'- **SWITCHING**:切换中。'."\n" - .'- **FAILED**:失败。'."\n", - 'type' => 'string', - 'example' => 'PRE_CHECK_FAILED', - ], - 'SrcInstanceArea' => [ - 'description' => '源实例的数据库类型。', - 'type' => 'string', - 'example' => 'RDS', - ], - 'BenchStepStatus' => [ - 'description' => '压测子步骤状态。取值:'."\n" - ."\n" - .'- **NEW**:任务初始化。'."\n" - .'- **RUNNING**:正在执行。'."\n" - .'- **FAILED**:失败。'."\n" - .'- **FINISHED**:完成。'."\n" - .'- **Terminated**:已终止。'."\n" - .'- **Deleted**:已删除。'."\n", - 'type' => 'string', - 'example' => 'FINISHED', - ], - 'Source' => [ - 'description' => '任务来源。取值:'."\n" - ."\n" - .'- **DAS**。'."\n" - .'- **OPEN_API**。', - 'type' => 'string', - 'example' => 'DAS', - ], - 'ArchiveJobId' => [ - 'description' => '归档任务ID。', - 'type' => 'string', - 'example' => '\'202105211430070112231480820340758****', - ], - 'Topic' => [ - 'description' => 'kafka的消费Topic。', - 'type' => 'string', - 'example' => 'das', - ], - 'RequestDuration' => [ - 'description' => '压测任务持续时间,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '86400000', - ], - 'TaskId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => 'e5cec704-0518-430f-8263-76f4dcds****', - ], - 'Rate' => [ - 'description' => '源实例流量在目标实例上的回放速度,回放速度必须是正整数,取值:**0**~**30**,默认为**1**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - ], - ], - ], - ], - ], - ], - ], - ], + [ + 'apiName' => 'GetFullRequestStatResultByInstanceId', + 'description' => '按照SQL ID异步统计全量请求数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetFullRequestStatResultByInstanceId', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', + [ + 'apiName' => 'DescribeSlowLogRecords', + 'description' => '慢日志记录查询', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeSlowLogRecords', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', + ], + [ + 'apiName' => 'GetFullRequestSampleByInstanceId', + 'description' => '按照SQL ID查询SQL样本数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetFullRequestSampleByInstanceId', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10,\\n \\"Extra\\": \\"None\\",\\n \\"Total\\": 2,\\n \\"List\\": {\\n \\"cloudbenchTasks\\": [\\n {\\n \\"DtsJobName\\": \\"RDS间迁移\\",\\n \\"ErrorMessage\\": \\"DTS-070211: Connect Source DB failed. cause by [com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:Could not create connection to database server. Attempted reconnect 3 times. Giving up.][com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure\\\\\\\\n\\\\\\\\nThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.][java.net.ConnectException:Connection timed out (Connection timed out)] About more information in [https://yq.aliyun.com/articles/499178].\\",\\n \\"External\\": \\"Null\\",\\n \\"BackupType\\": \\"TIMESTAMP\\",\\n \\"UserId\\": \\"1091411816252****\\",\\n \\"DstType\\": \\"Instance\\",\\n \\"EcsInstanceId\\": \\"i-bp1ecr5go2go1****\\",\\n \\"DstInstanceUuid\\": \\"hdm_d887b5ccf99fa0dc9a1e5aaac368****\\",\\n \\"TaskType\\": \\"pressure test\\",\\n \\"BenchStep\\": \\"PROCEED\\",\\n \\"Version\\": \\"V3.0\\",\\n \\"EndState\\": \\"WAIT_TARGET\\",\\n \\"SrcInstanceUuid\\": \\"hdm_3063db6792965c080a4bcb6e6304****\\",\\n \\"ClientType\\": \\"ECS\\",\\n \\"State\\": \\"WAIT_TARGET\\",\\n \\"DstIp\\": \\"None\\",\\n \\"SrcPublicIp\\": \\"None\\",\\n \\"BackupId\\": \\"229132\\",\\n \\"SqlCompleteReuse\\": \\"{\\\\\\"sqlUuid\\\\\\":\\\\\\"task_a37d2f07-45cb-4413-a2a6-c66c68****\\\\\\",\\\\\\"metaUuid\\\\\\":\\\\\\"task_211e2561-5c0c-486b-864c-56b511****\\\\\\",\\\\\\"sqlFile\\\\\\":\\\\\\"cl-1620057600000-1800626.sc\\\\\\",\\\\\\"metaFile\\\\\\":\\\\\\"cl-1620057600000-1800626.meta\\\\\\"}\\",\\n \\"SmartPressureTime\\": 86400000,\\n \\"ArchiveState\\": 1,\\n \\"Status\\": \\"RUNNING\\",\\n \\"WorkDir\\": \\"/tmp/bench/\\",\\n \\"ArchiveOssTableName\\": \\"custins15546355_161604665****\\",\\n \\"DtsJobId\\": \\"i03e3zty16i****\\",\\n \\"DtsJobState\\": 0,\\n \\"DstPort\\": 3306,\\n \\"DtsJobClass\\": \\"medium\\",\\n \\"ClientGatewayId\\": \\"58598b2af48a0193dfc16fc6964ef****\\",\\n \\"Description\\": \\"test-das-bench-0501\\",\\n \\"ErrorCode\\": \\"10109\\",\\n \\"TableSchema\\": \\"[{\\\\\\"TABLE_NAME\\\\\\":\\\\\\"customer1\\\\\\",\\\\\\"TABLE_SCHEMA\\\\\\":\\\\\\"tpcc\\\\\\"}]\\",\\n \\"DtsJobStatus\\": \\"PRE_CHECK_FAILED\\",\\n \\"SrcInstanceArea\\": \\"RDS\\",\\n \\"BenchStepStatus\\": \\"FINISHED\\",\\n \\"Source\\": \\"DAS\\",\\n \\"ArchiveJobId\\": \\"\'202105211430070112231480820340758****\\",\\n \\"Topic\\": \\"das\\",\\n \\"RequestDuration\\": 86400000,\\n \\"TaskId\\": \\"e5cec704-0518-430f-8263-76f4dcds****\\",\\n \\"Rate\\": 1\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeCloudBenchTasksResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n <Data>\\n <PageNo>1</PageNo>\\n <PageSize>10</PageSize>\\n <Extra>None</Extra>\\n <Total>2</Total>\\n <List>\\n <DtsJobName>RDS间迁移</DtsJobName>\\n <ErrorMessage>DTS-070211: Connect Source DB failed. cause by [com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:Could not create connection to database server. Attempted reconnect 3 times. Giving up.][com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure\\\\n\\\\nThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.][java.net.ConnectException:Connection timed out (Connection timed out)] About more information in [https://yq.aliyun.com/articles/499178].</ErrorMessage>\\n <External>Null</External>\\n <BackupType>TIMESTAMP</BackupType>\\n <UserId>1091411816252****</UserId>\\n <DstType>Instance</DstType>\\n <EcsInstanceId>i-bp1ecr5go2go1****</EcsInstanceId>\\n <DstInstanceUuid>hdm_d887b5ccf99fa0dc9a1e5aaac368****</DstInstanceUuid>\\n <TaskType>pressure test</TaskType>\\n <BenchStep>PROCEED</BenchStep>\\n <Version>V3.0</Version>\\n <EndState>WAIT_TARGET</EndState>\\n <SrcInstanceUuid>hdm_3063db6792965c080a4bcb6e6304****</SrcInstanceUuid>\\n <ClientType>ECS</ClientType>\\n <State>WAIT_TARGET</State>\\n <DstIp>None</DstIp>\\n <SrcPublicIp>None</SrcPublicIp>\\n <BackupId>229132</BackupId>\\n <SqlCompleteReuse>{\\"sqlUuid\\":\\"task_a37d2f07-45cb-4413-a2a6-c66c68****\\",\\"metaUuid\\":\\"task_211e2561-5c0c-486b-864c-56b511****\\",\\"sqlFile\\":\\"cl-1620057600000-1800626.sc\\",\\"metaFile\\":\\"cl-1620057600000-1800626.meta\\"}</SqlCompleteReuse>\\n <SmartPressureTime>86400000</SmartPressureTime>\\n <ArchiveState>1</ArchiveState>\\n <Status>RUNNING</Status>\\n <WorkDir>/tmp/bench/</WorkDir>\\n <ArchiveOssTableName>custins15546355_161604665****</ArchiveOssTableName>\\n <DtsJobId>i03e3zty16i****</DtsJobId>\\n <DstPort>3306</DstPort>\\n <DtsJobClass>medium</DtsJobClass>\\n <ClientGatewayId>58598b2af48a0193dfc16fc6964ef****</ClientGatewayId>\\n <Description>test-das-bench-0501</Description>\\n <ErrorCode>10109</ErrorCode>\\n <TableSchema>[{\\"TABLE_NAME\\":\\"customer1\\",\\"TABLE_SCHEMA\\":\\"tpcc\\"}]</TableSchema>\\n <DtsJobStatus>PRE_CHECK_FAILED</DtsJobStatus>\\n <SrcInstanceArea>RDS</SrcInstanceArea>\\n <BenchStepStatus>FINISHED</BenchStepStatus>\\n <Source>DAS</Source>\\n <ArchiveJobId>\'202105211430070112231480820340758****</ArchiveJobId>\\n <Topic>das</Topic>\\n <RequestDuration>86400000</RequestDuration>\\n <TaskId>e5cec704-0518-430f-8263-76f4dcds****</TaskId>\\n <Rate>1</Rate>\\n </List>\\n </Data>\\n</DescribeCloudBenchTasksResponse>","errorExample":""}]', - 'title' => '查询压测任务列表', - 'description' => '数据库自治服务DAS提供智能压测功能,帮助您验证您的实例规格是否需要扩容,有效应对业务流量高峰。更多信息,请参见[智能压测](~~155068~~)。', - ], - 'CreateCloudBenchTasks' => [ - 'summary' => '调用CreateCloudBenchTasks接口,创建压测任务。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'CreateStorageAnalysisTask', + 'description' => '创建空间分析任务', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:CreateStorageAnalysisTask', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], - 'parameters' => [ - [ - 'name' => 'TaskType', - 'in' => 'query', - 'schema' => [ - 'description' => '压测任务类型。取值:'."\n" - .'- **pressure test**(默认):智能压测,将从源实例上捕获的流量,按照目标实例规格支持的极限速度,在目标实例上进行回放。'."\n" - .'- **smart pressure test**:生成压测,通过分析和学习短时间内在源实例上捕获的流量,生成和原始流量的业务模型和流量分布基本一致的流量进行持续压测,减少从源实例采集数据的时间,降低存储成本和性能开销。', - 'type' => 'string', - 'required' => true, - 'example' => 'pressure test', + [ + 'apiName' => 'DisableAutoThrottleRules', + 'description' => '关闭自动SQL限流功能', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:DisableAutoThrottleRules', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'SrcInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '源实例ID,仅支持RDS MySQL、PolarDB MySQL版实例,您可通过调用[GetInstanceInspections](~~202857~~)接口获取。'."\n" - .'>当**DstType**为**Instance**时,本参数需要传入。', - 'type' => 'string', - 'required' => true, - 'example' => 'rm-2ze1jdv45i7l6****', + ], + [ + 'apiName' => 'DescribeErrorLogRecords', + 'description' => '查询错误日志明细', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:DescribeErrorLogRecords', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Description', - 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => '压测任务描述。', - 'type' => 'string', - 'required' => true, - 'example' => 'test-das-bench-0501', + ], + [ + 'apiName' => 'GetSqlOptimizeAdvice', + 'description' => '查询自动SQL优化产生的诊断建议', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetSqlOptimizeAdvice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'SrcPublicIp', - 'in' => 'query', - 'schema' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'None', + ], + [ + 'apiName' => 'GetErrorRequestSample', + 'description' => '查询执行错误的SQL样本数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetErrorRequestSample', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'DstInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '目标实例ID,仅支持RDS MySQL、PolarDB MySQL版实例,您可通过调用[GetInstanceInspections](~~202857~~)接口获取。'."\n" - .'>当**DstType**为**Instance**时,本参数需要传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'rm-2ze1jdv45i7l6****', + ], + [ + 'apiName' => 'GetRequestDiagnosisResult', + 'description' => '查询SQL诊断的结果', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetRequestDiagnosisResult', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'GatewayVpcId', - 'in' => 'query', - 'schema' => [ - 'description' => '数据库网关的专有网络ID。'."\n" - .'>若**ClientType**取值为**ECS**,则此参数必传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-t4nsnwvpbc1h76ja4****', + ], + [ + 'apiName' => 'ModifySqlLogConfig', + 'description' => '开启或配置DAS企业版', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'hdm:ModifySqlLogConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'GatewayVpcIp', - 'in' => 'query', - 'schema' => [ - 'description' => '数据库网关的IP地址或域名。'."\n" - .'>若**ClientType**取值为**ECS**,则此参数必传入。', - 'type' => 'string', - 'required' => false, - 'example' => '172.30.XX.XX', + ], + [ + 'apiName' => 'DescribeSecurityIPGroupRelation', + 'description' => '跨产品白名单模板绑定信息展示接口', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeSecurityIPGroupRelation', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ClientType', - 'in' => 'query', - 'schema' => [ - 'description' => '压测机器类型。取值:'."\n" - ."\n" - .'- **ECS**:您需要自己准备[数据库网关](~~64905~~)。'."\n" - .'- **DAS_ECS**:DAS自动购买和部署的ECS。', - 'type' => 'string', - 'required' => true, - 'example' => 'ECS', + ], + [ + 'apiName' => 'GetRedisAllSession', + 'description' => '获取Redis实例当前会话', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetRedisAllSession', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'RequestStartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '压测任务的开始时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'string', - 'required' => false, - 'example' => '1608888296000', + ], + [ + 'apiName' => 'DescribeSlowLogHistogramAsync', + 'description' => '异步获取实例慢日志趋势数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeSlowLogHistogramAsync', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'RequestEndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '压测任务的结束时间,格式为Unix时间戳,单位为毫秒。', - 'type' => 'string', - 'required' => false, - 'example' => '1608888296001', + ], + [ + 'apiName' => 'GetQueryOptimizeDataTrend', + 'description' => '获取查询治理趋势数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetQueryOptimizeDataTrend', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'RequestDuration', - 'in' => 'query', - 'schema' => [ - 'description' => '压测任务的持续时间,单位为毫秒。', - 'type' => 'string', - 'required' => false, - 'example' => '86400000', + ], + [ + 'apiName' => 'DescribeHotKeys', + 'description' => '查询实例当前的热Key', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeHotKeys', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Rate', - 'in' => 'query', - 'schema' => [ - 'description' => '源实例流量在目标实例上的回放速度,回放速度必须是正整数,取值:**1**~**30**,默认为**1**。', - 'type' => 'string', - 'required' => false, - 'example' => '1', + ], + [ + 'apiName' => 'GetAutonomousNotifyEventContent', + 'description' => '获取实例自治事件内容', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetAutonomousNotifyEventContent', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'SmartPressureTime', - 'in' => 'query', - 'schema' => [ - 'description' => '生成压测的持续时间,单位为毫秒。'."\n" - .'>当**TaskType**为**smart pressure test**时本参数需要传入。', - 'type' => 'string', - 'required' => false, - 'example' => '86400000', + ], + [ + 'apiName' => 'DescribeAutoScalingConfig', + 'description' => '查询实例弹性伸缩功能配置信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeAutoScalingConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'DtsJobClass', - 'in' => 'query', - 'schema' => [ - 'description' => 'DTS迁移任务规格,您可以通过调用[DescribeCloudbenchTask](~~230669~~)接口获取。'."\n" - .'>压测任务需要先将源实例基准数据迁移至目标实例,当您新建DTS任务时需要传入本参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'medium', + ], + [ + 'apiName' => 'GetKillInstanceSessionTaskResult', + 'description' => '获取结束会话任务的结果', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetKillInstanceSessionTaskResult', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'DtsJobId', - 'in' => 'query', - 'schema' => [ - 'description' => 'DTS迁移任务ID,您可调用[ConfigureDtsJob](~~208399~~)接口获取。'."\n" - .'>已在DTS控制台创建完DTS任务时本参数必传入。', - 'type' => 'string', - 'required' => false, - 'example' => '23127', + ], + [ + 'apiName' => 'UpdateAutoSqlOptimizeStatus', + 'description' => '批量开启、修改或关闭自动SQL优化功能', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'hdm:UpdateAutoSqlOptimizeStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'SrcSuperAccount', - 'in' => 'query', - 'schema' => [ - 'description' => '源端实例高权限账号。取值:**admin**。'."\n" - .'>当**DstType**为**Instance**时,本参数需要传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'admin', + ], + [ + 'apiName' => 'GetQueryOptimizeSolution', + 'description' => '获取治理建议', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetQueryOptimizeSolution', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'SrcSuperPassword', - 'in' => 'query', - 'schema' => [ - 'description' => '源端实例高权限账号的密码。'."\n" - .'>当**DstType**为**Instance**时,本参数需要传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'test123', + ], + [ + 'apiName' => 'GetAsyncErrorRequestStatByCode', + 'description' => '查询MySQL错误码以及每个错误码对应的SQL数量', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetAsyncErrorRequestStatByCode', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'DstSuperAccount', - 'in' => 'query', - 'schema' => [ - 'description' => '目标实例的高权限账号。', - 'type' => 'string', - 'required' => false, - 'example' => 'root', + ], + [ + 'apiName' => 'GetDBInstanceConnectivityDiagnosis', + 'description' => '获取数据库实例网络连通性诊断结果', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetDBInstanceConnectivityDiagnosis', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'DstSuperPassword', - 'in' => 'query', - 'schema' => [ - 'description' => '目标实例高权限账号的密码。', - 'type' => 'string', - 'required' => false, - 'example' => 'test123', + ], + [ + 'apiName' => 'GetQueryOptimizeExecErrorStats', + 'description' => '获取执行失败的模板数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetQueryOptimizeExecErrorStats', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'DstType', - 'in' => 'query', - 'schema' => [ - 'description' => '目标实例的类型。取值:'."\n" - .'- **Instance**(默认):实例ID。'."\n" - .'- **ConnectionString**:实例的连接地址。', - 'type' => 'string', - 'required' => false, - 'example' => 'Instance', + ], + [ + 'apiName' => 'DescribeCloudbenchTaskConfig', + 'description' => '查询压测任务配置', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeCloudbenchTaskConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'DstConnectionString', - 'in' => 'query', - 'schema' => [ - 'description' => '目标实例的连接地址,仅支持RDS MySQL、PolarDB MySQL版实例。'."\n" - .'>**DstType**为**ConnectionString**本参数有效。', - 'type' => 'string', - 'required' => false, - 'example' => 'rm-de21209****.mysql.rds.aliyuncs.com', + ], + [ + 'apiName' => 'DescribeSlowLogStatistic', + 'description' => '慢日志统计信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeSlowLogStatistic', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'DstPort', - 'in' => 'query', - 'schema' => [ - 'description' => '目标实例的端口。'."\n" - .'>**DstType**为**ConnectionString**本参数有效。', - 'type' => 'string', - 'required' => false, - 'example' => '3306', + ], + [ + 'apiName' => 'Chat', + 'description' => 'DAS Agent 交互接口', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:Chat', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'WorkDir', - 'in' => 'query', - 'schema' => [ - 'description' => '压测生成的临时目录。', - 'type' => 'string', - 'required' => false, - 'example' => '/tmp/bench/', + ], + [ + 'apiName' => 'DescribeCloudbenchTask', + 'description' => '查询压测任务', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeCloudbenchTask', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'BackupId', - 'in' => 'query', - 'schema' => [ - 'description' => '备份集ID,可通过查询备份列表接口[DescribeBackups](~~26273~~)获取。', - 'type' => 'string', - 'required' => false, - 'example' => '229132', + ], + [ + 'apiName' => 'GetInstanceGroupInspectReportDetail', + 'description' => '查询DAS Agent运维报告明细', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetInstanceGroupInspectReportDetail', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'BackupTime', - 'in' => 'query', - 'schema' => [ - 'description' => '备份的时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => false, - 'example' => '2021-04-23T13:22:14Z', + ], + [ + 'apiName' => 'DisableSqlConcurrencyControl', + 'description' => '关闭指定限流规则', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'hdm:DisableSqlConcurrencyControl', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Amount', - 'in' => 'query', - 'schema' => [ - 'description' => '创建压测任务的总个数,取值:**0**~**30**,默认为**1**。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - 'default' => '1', + ], + [ + 'apiName' => 'GetStorageAnalysisResult', + 'description' => '获取空间分析任务的结果', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:GetStorageAnalysisResult', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'EndState', - 'in' => 'query', - 'schema' => [ - 'description' => '压测任务结束后的状态。取值:'."\n" - ."\n" - .'- **WAIT_TARGET**:准备压测的目标实例。'."\n" - .'- **WAIT_DBGATEWAY**:准备压测部署。'."\n" - .'- **WAIT_SQL**:准备全量SQL。'."\n" - .'- **WAIT_LOGIC**:准备开始回放流量。'."\n" - ."\n" - .'>当压测任务执行完EndState设置的状态之后,任务将直接到达完成状态。', - 'type' => 'string', - 'required' => false, - 'example' => 'WAIT_TARGET', + ], + [ + 'apiName' => 'DescribeTopBigKeys', + 'description' => ' 获取排名前100的大Key', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeTopBigKeys', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], - 'Data' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'taskIds' => [ - 'description' => '详细信息列表。', - 'type' => 'array', - 'items' => [ - 'description' => '详细信息列表,包括信息总数、错误码等。', - 'type' => 'string', - 'example' => '"Data": { "total": 1, "list":[...] }, "Code": 200, "Success": true }', - ], - ], - ], - ], - ], + [ + 'apiName' => 'DeleteCloudBenchTask', + 'description' => '删除压测任务', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'hdm:DeleteCloudBenchTask', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', + [ + 'apiName' => 'DescribeInstanceDasPro', + 'description' => '查询是否开启了DAS企业版 V1或V2', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeInstanceDasPro', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', + ], + [ + 'apiName' => 'DescribeTopHotKeys', + 'description' => '获取排名前100的热Key', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeTopHotKeys', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"taskIds\\": [\\n \\"\\\\\\"Data\\\\\\": { \\\\\\"total\\\\\\": 1, \\\\\\"list\\\\\\":[...] }, \\\\\\"Code\\\\\\": 200, \\\\\\"Success\\\\\\": true }\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<CreateCloudBenchTasksResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n <Data>\\"Data\\": { \\"total\\": 1, \\"list\\":[...] }, \\"Code\\": 200, \\"Success\\": true }</Data>\\n</CreateCloudBenchTasksResponse>","errorExample":""}]', - 'title' => '创建压测任务', - 'description' => '数据库自治服务DAS提供智能压测功能,帮助您验证您的实例规格是否需要扩容,有效应对业务流量高峰。更多信息,请参见[智能压测](~~155068~~)。数据库需满足如下前提条件:'."\n" - ."\n" - .' - 源数据库仅支持RDS MySQL高可用系列或三节点企业系列、PolarDB MySQL版的集群版。'."\n" - .' - 目标数据库实例为RDS MySQL、PolarDB MySQL版。'."\n" - .' - 实例已接入DAS,详情请参见[接入阿里云数据库实例](~~65405~~)。'."\n" - .' - 需开启DAS企业版,详情请参见[DAS企业版](~~190912~~)。', - ], - 'DescribeCloudbenchTaskConfig' => [ - 'summary' => '调用DescribeCloudbenchTaskConfig接口,查询压测任务配置信息。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'GetDasProServiceUsage', + 'description' => '查询DAS企业版(V1或V2)存储空间使用情况', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetDasProServiceUsage', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'read', - 'systemTags' => [ + [ + 'apiName' => 'GetInstanceSqlOptimizeStatistic', + 'description' => ' 获取自动SQL优化事件的统计数据', 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'TaskId', - 'in' => 'query', - 'schema' => [ - 'description' => '任务ID,您可通过[DescribeCloudBenchTasks](~~230670~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'e5cec704-0518-430f-8263-76f4dcds****', + 'ramAction' => [ + 'action' => 'hdm:GetInstanceSqlOptimizeStatistic', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '详细信息列表,包括信息总数、错误码等。', - 'type' => 'object', - 'properties' => [ - 'WorkDir' => [ - 'description' => '压测生成的临时目录。', - 'type' => 'string', - 'example' => '/tmp/bench/', - ], - 'ArchiveFolder' => [ - 'description' => '归档文件路径。', - 'type' => 'string', - 'example' => '/tmp/das/cloudbench/archive-sqls/', - ], - 'MetaFilePath' => [ - 'description' => '元文件路径。', - 'type' => 'string', - 'example' => '/tmp/das/cloudbench/cl-1621353601000-360****.meta', - ], - 'MetaFileName' => [ - 'description' => '元文件名。', - 'type' => 'string', - 'example' => 'cl-1621353601000-360****.meta', - ], - 'MetaFileOnOss' => [ - 'description' => '元文件在OSS的名称。', - 'type' => 'string', - 'example' => '"https://cb-rm-bp1w9g06h560l****.oss-cn-hangzhou.aliyuncs.com/cl-1621353601000-360****.meta?OSSAccessKeyId=LTAI5tKj8B4wikkVtupK****&Expires=1622441372&Signature=Qsehg3tzeA57M%2BIixAbWPWAtvl****', - ], - 'UserId' => [ - 'description' => '阿里云账号ID。', - 'type' => 'string', - 'example' => '1091411816252****', - ], - 'BenchCmd' => [ - 'description' => '压测的命令。', - 'type' => 'string', - 'example' => 'java -jar /tmp/das/cloudbench/CloudBenchClient.jar --bench --rocksdb /tmp/das/cloudbench/rocksdb --meta /tmp/das/cloudbench/cl-1621353601000-360****.meta --task_name 2777bba9-a836-49e6-9f70-1c3822fc9239 --result_file /tmp/das/cloudbench/null.result --user cloudb**** --pwd \\"cloudbench@****\\" --host rm-bp1j5f8s5x26kq79216****.mysql.rds.aliyuncs.com --port 3306 --charset utf8mb4 --interval 1 --bench_time 3600 --rate_factor 1.0 --start_time 1621353601 --rt > /tmp/das/cloudbench/null.log', - ], - 'SqlFileOnOss' => [ - 'description' => '全量SQL文件在OSS的名称。', - 'type' => 'string', - 'example' => 'https://cb-rm-bp1w9g06h560l****.oss-cn-hangzhou.aliyuncs.com/cl-1621353601000-360****.sc?OSSAccessKeyId=LTAI5tKj8B4wikkVtupK****&Expires=1622441372&Signature=LYMADwo%2BRrJeqR3e4d8OlIkVmw****', - ], - 'LoadCmd' => [ - 'description' => 'SQL文件预加载的命令。', - 'type' => 'string', - 'example' => 'java -jar /tmp/das/cloudbench/CloudBenchClient.jar --load --out /tmp/das/cloudbench/cl-1621353601000-360****.sc --meta /tmp/das/cloudbench/cl-1621353601000-360****.meta --task_name 2777bba9-****-49e6-9f70-1c3822fc**** --rocksdb /tmp/das/cloudbench/rocksdb', - ], - 'RocksDbPath' => [ - 'description' => 'RocksDB存储系统在压测机中的位置。', - 'type' => 'string', - 'example' => '/tmp/das/cloudbench/rocksdb', - ], - 'ParseCmd' => [ - 'description' => 'SQL文件解析的命令。', - 'type' => 'string', - 'example' => 'cd /tmp/das/cloudbench && java -jar CloudBenchClient.jar --parse --threads 32 --file /tmp/das/cloudbench/2777bba9-a836-49e6-9f70-1c3822fc9239.archiveSql --meta /tmp/das/cloudbench/cl-1621353601000-360****.meta --out /tmp/das/cloudbench/cl-1621353601000-360****.sc --parent_patmp/das/cloudbench --source RDS --h /thost rm-bp1j5f8s5x266****.mysql.rds.aliyuncs.com --port 3306 --user cloudb**** --pwd \\"cloudbench@****\\" --cutSqlLen 8192 --db_black_list=information_schema,test,unknow,null', - ], - 'SqlFileName' => [ - 'description' => '全量SQL文件名。', - 'type' => 'string', - 'example' => 'cl-1621353601000-360****.sc', - ], - 'ClientJarPath' => [ - 'description' => '压测Jar包路径。', - 'type' => 'string', - 'example' => '/tmp/das/cloudbench/CloudBenchClient.jar', - ], - 'SqlFilePath' => [ - 'description' => 'SQL文件路径。', - 'type' => 'string', - 'example' => '/tmp/das/cloudbench/cl-1621353601000-360****.sc', - ], - 'ParseFilePath' => [ - 'description' => '解析后的SQL文件路径。', - 'type' => 'string', - 'example' => '/tmp/das/cloudbench/2777bba9-a836-49e6-9f70-1c3822fc****.archiveSql', - ], - 'JarOnOss' => [ - 'description' => '压测Jar包在OSS的路径。', - 'type' => 'string', - 'example' => 'https://cloudbench-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/CloudBenchClient.jar?OSSAccessKeyId=LTAI5tKj8B4wikkVtupK****&Expires=1622441372&Signature=28p%2BCe4tNHpr9VPOcHc3Si9iOb****', - ], - 'TaskId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => 'e5cec704-0518-430f-8263-76f4dcds****', - ], - ], - ], - ], + [ + 'apiName' => 'GetSqlConcurrencyControlKeywordsFromSqlText', + 'description' => '根据SQL语句生成限流关键词', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetSqlConcurrencyControlKeywordsFromSqlText', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', + [ + 'apiName' => 'UpdateAutoResourceOptimizeRulesAsync', + 'description' => '设置空间碎片自动回收功能的配置参数', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:UpdateAutoResourceOptimizeRulesAsync', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', + ], + [ + 'apiName' => 'DisableAutoResourceOptimizeRules', + 'description' => '关闭空间碎片自动回收功能', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:DisableAutoResourceOptimizeRules', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Success\\": \\"true\\",\\n \\"Data\\": {\\n \\"WorkDir\\": \\"/tmp/bench/\\",\\n \\"ArchiveFolder\\": \\"/tmp/das/cloudbench/archive-sqls/\\",\\n \\"MetaFilePath\\": \\"/tmp/das/cloudbench/cl-1621353601000-360****.meta\\",\\n \\"MetaFileName\\": \\"cl-1621353601000-360****.meta\\",\\n \\"MetaFileOnOss\\": \\"\\\\\\"https://cb-rm-bp1w9g06h560l****.oss-cn-hangzhou.aliyuncs.com/cl-1621353601000-360****.meta?OSSAccessKeyId=LTAI5tKj8B4wikkVtupK****&Expires=1622441372&Signature=Qsehg3tzeA57M%2BIixAbWPWAtvl****\\",\\n \\"UserId\\": \\"1091411816252****\\",\\n \\"BenchCmd\\": \\"java -jar /tmp/das/cloudbench/CloudBenchClient.jar --bench --rocksdb /tmp/das/cloudbench/rocksdb --meta /tmp/das/cloudbench/cl-1621353601000-360****.meta --task_name 2777bba9-a836-49e6-9f70-1c3822fc9239 --result_file /tmp/das/cloudbench/null.result --user cloudb**** --pwd \\\\\\\\\\\\\\"cloudbench@****\\\\\\\\\\\\\\" --host rm-bp1j5f8s5x26kq79216****.mysql.rds.aliyuncs.com --port 3306 --charset utf8mb4 --interval 1 --bench_time 3600 --rate_factor 1.0 --start_time 1621353601 --rt > /tmp/das/cloudbench/null.log\\",\\n \\"SqlFileOnOss\\": \\"https://cb-rm-bp1w9g06h560l****.oss-cn-hangzhou.aliyuncs.com/cl-1621353601000-360****.sc?OSSAccessKeyId=LTAI5tKj8B4wikkVtupK****&Expires=1622441372&Signature=LYMADwo%2BRrJeqR3e4d8OlIkVmw****\\",\\n \\"LoadCmd\\": \\"java -jar /tmp/das/cloudbench/CloudBenchClient.jar --load --out /tmp/das/cloudbench/cl-1621353601000-360****.sc --meta /tmp/das/cloudbench/cl-1621353601000-360****.meta --task_name 2777bba9-****-49e6-9f70-1c3822fc**** --rocksdb /tmp/das/cloudbench/rocksdb\\",\\n \\"RocksDbPath\\": \\"/tmp/das/cloudbench/rocksdb\\",\\n \\"ParseCmd\\": \\"cd /tmp/das/cloudbench && java -jar CloudBenchClient.jar --parse --threads 32 --file /tmp/das/cloudbench/2777bba9-a836-49e6-9f70-1c3822fc9239.archiveSql --meta /tmp/das/cloudbench/cl-1621353601000-360****.meta --out /tmp/das/cloudbench/cl-1621353601000-360****.sc --parent_patmp/das/cloudbench --source RDS --h /thost rm-bp1j5f8s5x266****.mysql.rds.aliyuncs.com --port 3306 --user cloudb**** --pwd \\\\\\\\\\\\\\"cloudbench@****\\\\\\\\\\\\\\" --cutSqlLen 8192 --db_black_list=information_schema,test,unknow,null\\",\\n \\"SqlFileName\\": \\"cl-1621353601000-360****.sc\\",\\n \\"ClientJarPath\\": \\"/tmp/das/cloudbench/CloudBenchClient.jar\\",\\n \\"SqlFilePath\\": \\"/tmp/das/cloudbench/cl-1621353601000-360****.sc\\",\\n \\"ParseFilePath\\": \\"/tmp/das/cloudbench/2777bba9-a836-49e6-9f70-1c3822fc****.archiveSql\\",\\n \\"JarOnOss\\": \\"https://cloudbench-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/CloudBenchClient.jar?OSSAccessKeyId=LTAI5tKj8B4wikkVtupK****&Expires=1622441372&Signature=28p%2BCe4tNHpr9VPOcHc3Si9iOb****\\",\\n \\"TaskId\\": \\"e5cec704-0518-430f-8263-76f4dcds****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeCloudbenchTaskConfigResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Success>true</Success>\\n <Data>\\n <WorkDir>/tmp/bench/</WorkDir>\\n <ArchiveFolder>/tmp/das/cloudbench/archive-sqls/</ArchiveFolder>\\n <MetaFilePath>/tmp/das/cloudbench/cl-1621353601000-360****.meta</MetaFilePath>\\n <MetaFileName>cl-1621353601000-360****.meta</MetaFileName>\\n <MetaFileOnOss>\\"https://cb-rm-bp1w9g06h560l****.oss-cn-hangzhou.aliyuncs.com/cl-1621353601000-360****.meta?OSSAccessKeyId=LTAI5tKj8B4wikkVtupK****&Expires=1622441372&Signature=Qsehg3tzeA57M%2BIixAbWPWAtvl****</MetaFileOnOss>\\n <UserId>1091411816252****</UserId>\\n <BenchCmd>java -jar /tmp/das/cloudbench/CloudBenchClient.jar --bench --rocksdb /tmp/das/cloudbench/rocksdb --meta /tmp/das/cloudbench/cl-1621353601000-360****.meta --task_name 2777bba9-a836-49e6-9f70-1c3822fc9239 --result_file /tmp/das/cloudbench/null.result --user cloudb**** --pwd \\\\\\"cloudbench@****\\\\\\" --host rm-bp1j5f8s5x26kq79216****.mysql.rds.aliyuncs.com --port 3306 --charset utf8mb4 --interval 1 --bench_time 3600 --rate_factor 1.0 --start_time 1621353601 --rt > /tmp/das/cloudbench/null.log</BenchCmd>\\n <SqlFileOnOss>https://cb-rm-bp1w9g06h560l****.oss-cn-hangzhou.aliyuncs.com/cl-1621353601000-360****.sc?OSSAccessKeyId=LTAI5tKj8B4wikkVtupK****&Expires=1622441372&Signature=LYMADwo%2BRrJeqR3e4d8OlIkVmw****</SqlFileOnOss>\\n <LoadCmd>java -jar /tmp/das/cloudbench/CloudBenchClient.jar --load --out /tmp/das/cloudbench/cl-1621353601000-360****.sc --meta /tmp/das/cloudbench/cl-1621353601000-360****.meta --task_name 2777bba9-****-49e6-9f70-1c3822fc**** --rocksdb /tmp/das/cloudbench/rocksdb</LoadCmd>\\n <RocksDbPath>/tmp/das/cloudbench/rocksdb</RocksDbPath>\\n <ParseCmd>cd /tmp/das/cloudbench && java -jar CloudBenchClient.jar --parse --threads 32 --file /tmp/das/cloudbench/2777bba9-a836-49e6-9f70-1c3822fc9239.archiveSql --meta /tmp/das/cloudbench/cl-1621353601000-360****.meta --out /tmp/das/cloudbench/cl-1621353601000-360****.sc --parent_patmp/das/cloudbench --source RDS --h /thost rm-bp1j5f8s5x266****.mysql.rds.aliyuncs.com --port 3306 --user cloudb**** --pwd \\\\\\"cloudbench@****\\\\\\" --cutSqlLen 8192 --db_black_list=information_schema,test,unknow,null</ParseCmd>\\n <SqlFileName>cl-1621353601000-360****.sc</SqlFileName>\\n <ClientJarPath>/tmp/das/cloudbench/CloudBenchClient.jar</ClientJarPath>\\n <SqlFilePath>/tmp/das/cloudbench/cl-1621353601000-360****.sc</SqlFilePath>\\n <ParseFilePath>/tmp/das/cloudbench/2777bba9-a836-49e6-9f70-1c3822fc****.archiveSql</ParseFilePath>\\n <JarOnOss>https://cloudbench-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/CloudBenchClient.jar?OSSAccessKeyId=LTAI5tKj8B4wikkVtupK****&Expires=1622441372&Signature=28p%2BCe4tNHpr9VPOcHc3Si9iOb****</JarOnOss>\\n <TaskId>e5cec704-0518-430f-8263-76f4dcds****</TaskId>\\n </Data>\\n</DescribeCloudbenchTaskConfigResponse>","errorExample":""}]', - 'title' => '查询压测任务配置', - 'description' => '数据库自治服务DAS提供智能压测功能,帮助您验证您的实例规格是否需要扩容,有效应对业务流量高峰。更多信息,请参见[智能压测](~~155068~~)。', - ], - 'DeleteCloudBenchTask' => [ - 'summary' => '调用DeleteCloudBenchTask接口,删除压测任务。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'GetAutoResourceOptimizeRules', + 'description' => '获取空间碎片自动回收规则', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'hdm:GetAutoResourceOptimizeRules', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ + [ + 'apiName' => 'DisableDasPro', + 'description' => '关闭DAS企业版 V1', 'operationType' => 'delete', - ], - 'parameters' => [ - [ - 'name' => 'TaskId', - 'in' => 'query', - 'schema' => [ - 'description' => '任务ID,您可通过[DescribeCloudBenchTasks](~~230670~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'e5cec704-0518-430f-8263-76f4dcds****', + 'ramAction' => [ + 'action' => 'hdm:DisableDasPro', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6D17591-B48B-4D31-9CD6-9B9796B2****', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - .'>请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'Data' => [ - 'description' => '备用参数。', - 'type' => 'string', - 'example' => 'None', - ], - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], - ], + [ + 'apiName' => 'GetDeadLockDetailList', + 'description' => '查询RDS SQL Server实例的死锁列表', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'hdm:GetDeadLockDetailList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', + [ + 'apiName' => 'ModifySecurityIPGroupRelation', + 'description' => '跨产品白名单模板绑定/解绑接口', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'hdm:ModifySecurityIPGroupRelation', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', + ], + [ + 'apiName' => 'GetPfsSqlSummaries', + 'description' => '查询按照SQL ID维度统计的全量请求数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetPfsSqlSummaries', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B6D17591-B48B-4D31-9CD6-9B9796B2****\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": \\"None\\",\\n \\"Code\\": \\"200\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteCloudBenchTaskResponse>\\n <RequestId>B6D17591-B48B-4D31-9CD6-9B9796B2****</RequestId>\\n <Message>Successful</Message>\\n <Code>200</Code>\\n <Success>true</Success>\\n</DeleteCloudBenchTaskResponse>","errorExample":""}]', - 'title' => '删除压测任务', - 'description' => '数据库自治服务DAS提供智能压测功能,帮助您验证您的实例规格是否需要扩容,有效应对业务流量高峰。更多信息,请参见[智能压测](~~155068~~)。', - ], - 'DeleteStopGateway' => [ - 'summary' => '调用DeleteStopGateway接口,删除已停止的DBGateway元数据。', - 'methods' => [ - 'get', - 'post', + [ + 'apiName' => 'EnableSqlConcurrencyControl', + 'description' => '启用SQL限流', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'hdm:EnableSqlConcurrencyControl', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'SetEventSubscription', + 'description' => '配置事件订阅设置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'hdm:SetEventSubscription', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DisableAllSqlConcurrencyControlRules', + 'description' => ' 关闭全部正在执行的限流规则', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'hdm:DisableAllSqlConcurrencyControlRules', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [ + [ + 'apiName' => 'DeleteSecurityIPGroup', + 'description' => '跨产品白名单模板删除接口', 'operationType' => 'delete', - ], - 'parameters' => [ - [ - 'name' => 'GatewayId', - 'in' => 'query', - 'schema' => [ - 'description' => 'DBGateway的ID,是DBGateway的唯一标识。可通过[DescribeCloudbenchTask](~~230669~~)接口获取,返回的**ClientGatewayId**字段值即为DBGateway的ID。', - 'type' => 'string', - 'required' => true, - 'example' => '22938c83fcfbced4b4869b9695e3****', + 'ramAction' => [ + 'action' => 'hdm:DeleteSecurityIPGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '返回的状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => '请求返回消息。'."\n" - ."\n" - .'> 请求成功时该参数返回**Successful**,请求失败时会返回请求异常信息(如错误码等)。', - 'type' => 'string', - 'example' => 'Successful', - ], - 'Data' => [ - 'description' => 'DBGateway元数据删除结果:'."\n" - ."\n" - .'- **0**:执行成功。'."\n" - .'- **-1**:系统错误。'."\n" - .'- **-2**:DBGateway不存在。'."\n" - .'- **-3**:DBGateway未停止,无法删除元数据。'."\n" - .'- **-4**:删除元数据信息失败。'."\n", - 'type' => 'string', - 'example' => '0', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'FC6C0929-29E1-59FD-8DFE-70D9D41E****', - ], - 'Success' => [ - 'description' => '请求是否执行成功:'."\n" - ."\n" - .'- **true**:执行成功。'."\n" - .'- **false**:执行失败。', - 'type' => 'string', - 'example' => 'true', - ], - ], + [ + 'apiName' => 'DescribeSqlLogTask', + 'description' => '查询DAS企业版离线任务详情', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:DescribeSqlLogTask', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'The request parameters are invalid.', + [ + 'apiName' => 'GetPfsSqlSample', + 'description' => '获取SQL样本数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetPfsSqlSample', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'You are not authorized to do this action.', + ], + [ + 'apiName' => 'GetQueryOptimizeDataTop', + 'description' => '获取查询治理实例红榜和实例黑榜的数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'hdm:GetQueryOptimizeDataTop', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DAS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Successful\\",\\n \\"Data\\": \\"0\\",\\n \\"RequestId\\": \\"FC6C0929-29E1-59FD-8DFE-70D9D41E****\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteStopGatewayResponse>\\n <Code>200</Code>\\n <Message>Successful</Message>\\n <Data>0</Data>\\n <RequestId>FC6C0929-29E1-59FD-8DFE-70D9D41E****</RequestId>\\n <Success>true</Success>\\n</DeleteStopGatewayResponse>","errorExample":""}]', - 'title' => '删除已停止的DBGateway元数据', - 'description' => '- 本接口用于删除[CreateCloudBenchTasks](~~230665~~)接口创建的智能压测任务中已释放的DBgateway元数据。'."\n" - .'- 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。'."\n" - ."\n" - .'> 当DBGateway与接入点超过20秒无心跳时,此DBGateway为停止状态。', ], - ], - 'endpoints' => [ - [ - 'regionId' => 'cn-shanghai', - 'endpoint' => 'das.cn-shanghai.aliyuncs.com', - ], - [ - 'regionId' => 'ap-northeast-2-pop', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-beijing-finance-pop', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-beijing-gov-1', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-beijing-nu16-b01', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-edge-1', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-fujian', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-haidian-cm12-c01', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-hangzhou-bj-b01', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-hangzhou-internal-prod-1', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-hangzhou-internal-test-1', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-hangzhou-internal-test-2', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-hangzhou-internal-test-3', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-hangzhou-test-306', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-hongkong-finance-pop', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-huhehaote-nebula-1', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-north-2-gov-1', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-qingdao-nebula', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shanghai-et15-b01', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shanghai-et2-b01', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shanghai-inner', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shanghai-internal-test-1', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shenzhen-inner', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shenzhen-st4-d01', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shenzhen-su18-b01', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-wuhan', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-yushanfang', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-zhangbei', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-zhangbei-na61-b01', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-zhangjiakou-na62-a01', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'cn-zhengzhou-nebula-1', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'eu-west-1-oxs', - 'endpoint' => 'das.aliyuncs.com', - ], - [ - 'regionId' => 'rus-west-1-pop', - 'endpoint' => 'das.aliyuncs.com', + 'resourceTypes' => [ + ['validationType' => 'conditional', 'resourceType' => 'DBInstance', 'arn' => 'acs:rds:{#regionId}:{#accountId}:dbinstance/{#DbInstanceId}'], + ['validationType' => 'conditional', 'resourceType' => 'DBCluster', 'arn' => 'acs:polardb:{#regionId}:{#accountId}:dbcluster/{#DbClusterId}'], + ['validationType' => 'conditional', 'resourceType' => 'DBInstance', 'arn' => 'acs:drds:{#regionId}:{#accountId}:dbinstance/{#DBInstanceId}'], + ['validationType' => 'conditional', 'resourceType' => 'DBInstance', 'arn' => 'acs:kvstore:{#regionId}:{#accountId}:dbinstance/{#DBInstanceId}'], + ['validationType' => 'conditional', 'resourceType' => 'Instance', 'arn' => 'acs:mongodb:{#regionId}:{#accountId}:instance/{#InstanceId}'], + ['validationType' => 'conditional', 'resourceType' => 'PolarDBXInstance', 'arn' => 'acs:polardbx:{#RegionId}:{#accountId}:polardbxinstance/{#PolarDBXInstanceId}'], + ['validationType' => 'conditional', 'resourceType' => 'HDMInstance', 'arn' => 'acs:hdm::{#accountId}:hdminstance/*'], + ['validationType' => 'always', 'resourceType' => 'SwitchDasPro', 'arn' => 'acs:hdm::{#accountId}:switchdaspro/{#InstanceId}'], + ['validationType' => 'always', 'resourceType' => 'CloudbenchTask', 'arn' => 'acs:hdm:*:{#accountId}:cloudbenchtask/{#TaskId}'], + ['validationType' => 'always', 'resourceType' => 'SwitchDasPro', 'arn' => 'acs:hdm:*:{#accountId}:switchdaspro/{#InstanceId}'], + ['validationType' => 'always', 'resourceType' => 'InstanceMonitoringData', 'arn' => 'acs:hdm:*:{#accountId}:instancemonitoringdata/{#InstanceId}'], + ['validationType' => 'always', 'resourceType' => 'DBInstance', 'arn' => 'acs:hdm:{#regionId}:{#accountId}:dbinstance/*'], + ['validationType' => 'always', 'resourceType' => 'DBCluster', 'arn' => 'acs:hdm:{#regionId}:{#accountId}:dbcluster/*'], + ['validationType' => 'always', 'resourceType' => 'Instance', 'arn' => 'acs:hdm:{#regionId}:{#accountId}:instance/*'], ], ], ]; |
