You need to enable JavaScript to run this app.
文档中心
日志服务

日志服务

复制全文
下载 pdf
告警管理
DescribeAlarms
复制全文
下载 pdf
DescribeAlarms
调用 DescribeAlarms 接口获取告警策略。​
使用说明​
  • 此接口的调用频率限制为 20 次/s,超出频率限制会报错 ExceedQPSLimit。​
  • 如果配置了 TriggerConditions 参数,则 Condition 和 Severity参数的返回值将为空。​
请求说明​
  • 请求方式:GET​
  • 请求地址:https://{tls-endpoint}/DescribeAlarms​
请求参数​
下表仅列出该接口特有的请求参数和部分公共参数。更多信息请见公共参数。​
Query​
​
参数​
类型​
是否必选​
示例值​
描述​
ProjectId​
String​
否​
p*****​
告警策略所属的日志项目的 ID。​
PageNumber​
Integer​
否​
1​
分页查询时的页码。默认为 1,即从第一页数据开始返回。​
PageSize​
Integer​
否​
20​
分页大小。默认为 20,最大为 100。​
AlarmName​
String​
否​
test-alarm-nofify​
告警策略名称。​
AlarmId​
String​
否​
a*****​
告警策略 ID。​
TopicId​
String​
否​
t******​
监控对象的日志主题 ID。​
TopicName​
String​
否​
newtopic​
监控对象的日志主题名称。​
Status​
String​
否​
true​
是否开启告警策略。​
​
返回参数​
下表仅列出本接口特有的返回参数。更多信息请参见返回结构。​
​
参数​
类型​
示例值​
描述​
Alarms​
Array of Alarms​
/​
告警策略列表。​
Total​
Integer​
5​
符合条件的告警策略总数。​
​
Alarms​
​
参数​
类型​
示例值​
描述​
Status​
Boolean​
true​
是否开启告警策略。默认值为 true,即开启告警策略。​
AlarmId​
String​
a******​
告警策略的 ID。​
Severity​
String​
notice​
告警通知的级别,即告警的严重程度。枚举值包括 notice、warning 或 critical。​
AlarmName​
String​
test-alarm​
告警策略名称。​
Condition​
String​
$1.errNum>0​
告警触发条件。​
ProjectId​
String​
p********​
告警策略所属的日志项目 ID。​
CreateTime​
String​
2021-08-19 11:41:29​
创建告警策略的时间。​
ModifyTime​
String​
2021-08-19 11:41:32​
告警策略最近修改的时间。​
AlarmPeriod​
Integer​
60​
所有渠道的告警通知发送周期。单位为分钟。​
QueryRequest​
Array of QueryRequest​
/​
执行语句。​
RequestCycle​
Object of RequestCycle​
/​
告警任务的执行周期。​
TriggerPeriod​
Integer​
1​
持续周期。持续满足触发条件 TriggerPeriod 个周期后,再进行告警。​
UserDefineMsg​
String​
test​
告警通知的内容。​
AlarmNotifyGroup​
Array of NotifyGroupsInfo​
/​
告警对应的通知列表。​
AlarmPeriodDetail​
Object of AlarmPeriodSetting​
/​
各渠道的告警发送周期。单位为分钟。​
SendResolved​
Boolean​
true​
是否发送恢复通知。​
TriggerConditions​
Array of TriggerCondition​
/​
告警触发条件列表。​
JoinConfigurations​
Array of JoinConfig​
/​
告警检索分析结果集合操作的相关配置。​
​
QueryRequest​
​
参数​
类型​
示例值​
描述​
Query​
String​
Failed | select count(*) as errNum​
检索分析语句,支持的最大长度为 1024 字符。​
Number​
Integer​
1​
告警对象序号,从 1 开始递增。​
TopicId​
String​
864*********​
告警策略所要监控的日志主题 ID。​
TopicName​
String​
yrdt​
告警策略所要监控的日志主题名称。​
EndTimeOffset​
Integer​
-15​
查询的终止时间,相对当前的历史时间,单位为分钟,取值为非正整数,须大于 StartTimeOffset,最大值为 0,最小值为 -1440。​
StartTimeOffset​
Integer​
-15​
查询的起始时间,相对当前的历史时间,单位为分钟,取值为非正整数,最大值为 0,最小值为 -1440。​
TimeSpanType​
String​
Relative​
查询是否使用整点时间,空白时默认为 Relative。​
TruncatedTime​
String​
Minute​
对时间进行取整,即对分钟、小时取整(Second,Minute,Hour)。​
EndTimeOffsetUnit​
String​
Minute​
查询结束时间范围单位, 默认值为分钟,支持秒/分钟/小时(Second,Minute,Hour)。​
StartTimeOffsetUnit​
String​
Minute​
查询开始时间范围单位, 默认值为分钟,支持秒/分钟/小时(Second,Minute,Hour)。​
​
RequestCycle​
​
参数​
类型​
示例值​
描述​
Time​
Integer​
10​
调度的周期或者定期执行的时间点(距离 00:00 的分钟数),取值范围为 1~1440,单位为分钟。​
Type​
String​
Period​
调度周期类型。可选值:​
  • Period:按照周期进行调度,即每隔一段时间调度一次。​
  • Fixed:定期调度,即每天固定时间点调度一次。​
  • Cron:使用 Cron 表达式。​
CronTab​
String​
0 18 * * *​
Cron表达式,日志服务通过 Cron 表达式指定告警任务定时执行。Cron 表达式的最小粒度为分钟,24 小时制。例如 0 18 * * *表示每天 18 点整执行一次告警任务。​
​
NotifyGroupsInfo​
​
参数​
类型​
示例值​
描述​
Receivers​
Array of Receiver​
/​
接收告警的 IAM 用户列表。可设置 1~10 个 IAM 用户。​
CreateTime​
String​
2024-07-23 11:41:29​
告警通知组创建的时间。​
ModifyTime​
String​
2024-07-23 11:41:32​
告警通知组修改的时间。​
NotifyType​
Array of String​
Trigger​
告警通知的类型。可选值,选择一个或者多个:​
  • Trigger - 告警触发​
  • Recovery - 告警恢复​
NoticeRules​
Array of NoticeRule​
/​
通知组规则。​
IamProjectName​
String​
default​
告警组所属的 IAM 项目。​
AlarmNotifyGroupId​
String​
t****​
告警通知组 ID。​
AlarmNotifyGroupName​
String​
test-alarm-nofify​
告警通知组名称。​
​
AlarmPeriodSetting​
​
参数​
类型​
示例值​
描述​
SMS​
Integer​
10​
短信告警周期,单位为分钟,取值范围为 10~1440。​
Email​
Integer​
10​
邮件告警周期,单位为分钟,取值范围为 1~1440。​
Phone​
Integer​
10​
电话告警周期,单位为分钟,取值范围为 10~1440。​
GeneralWebhook​
Integer​
10​
自定义 Webhook 告警周期,单位为分钟,取值范围为 1~1440。​
​
TriggerCondition​
​
参数​
类型​
示例值​
描述​
Severity​
String​
notice​
告警通知的级别,即告警的严重程度。支持设置为 notice、warning 或 critical,严重程度递增。默认为 notice。​
Condition​
String​
$1.cnt == 5​
告警触发条件表达式。​
CountCondition​
String​
__count__ == 10​
有数据、有特定条数据场景下的数值表达式,通过 __count__来实现。​
NoData​
Boolean​
true​
开启后,集合操作后结果为空集时,触发一条独立的无数据告警。​
​
JoinConfig​
​
参数​
类型​
示例值​
描述​
Condition​
String​
$1.uid==$2.uid​
使用左联或右联时的表达式。​
SetOperationType​
String​
CrossJoin​
集合操作类型。可选值:​
  • CrossJoin:笛卡尔积。​
  • LeftJoin:左联。​
  • RightJoin:右联。​
  • InnerJoin:内联。​
  • FullJoin:全联。​
​
Receiver​
​
参数​
类型​
示例值​
描述​
EndTime​
String​
23:59:59​
可接收告警通知的结束时间。24 小时制,格式为 HH:mm:ss,时间范围为 00:00:00~23:59:59。 StartTime 不能大于 EndTime。​
StartTime​
String​
00:00:00​
可接收告警通知的开始时间。24 小时制,格式为HH:mm:ss,时间范围为 00:00:00~23:59:59。 StartTime 不能大于 EndTime。​
ReceiverType​
String​
User​
接收对象类型。可设置为:​
  • User:IAM 用户。​
  • UserGroup:IAM 用户组。​
ReceiverNames​
Array of String​
["Andy"]​
IAM 用户或用户组名称。​
ReceiverChannels​
Array of String​
["Sms"]​
通知接收渠道。支持设置一个或多个渠道。可设置为:​
  • Email:邮件。​
  • 日志服务使用的告警邮箱的域名为 mail.tls.volcengine.com ,您可以将该域名添加到目标邮箱的白名单中,以免告警邮件被拦截。​
  • Sms:短信。​
  • Phone:电话。​
  • 如果电话未接通,不会重复拨打,将免费发送一次短信通知。​
  • 日志服务使用 02132222528、02132222527 号码发送告警通知,您可将上述号码添加到手机白名单中,以免告警电话被拦截。​
  • GeneralWebhook:自定义 Webhook 地址。​
  • Lark:飞书。​
  • DingTalk:钉钉。​
  • WeChat:企业微信。​
说明​
  • ReceiverChannels 中包含 Lark、DingTalk​
  • 或 WeChat 时,必须配置 AlarmWebhookIntegrationId、AlarmWebhookIntegrationName、AlarmContentTemplateId 参数,且将以 GeneralWebhook 开头的各个参数留空。​
  • ReceiverChannels 中包含 GeneralWebhook 且不包含 Lark、DingTalk 和 WeChat 时,配置说明如下:​
  • (推荐)配置 AlarmWebhookIntegrationId、AlarmWebhookIntegrationName、AlarmContentTemplateId 参数,且将以 GeneralWebhook 开头的各个参数留空。​
  • 配置以 GeneralWebhook 开头的各个参数,且将以 AlarmWebhook 开头和以 AlarmContent开头的参数留空。​
GeneralWebhookUrl​
String​
https://xxxx.feushu.com/xxxx​
自定义接口回调地址。​
GeneralWebhookBody​
String​
/​
自定义 WebHook 请求体。建议根据对应服务的回调接口格式要求设置请求体内容。​
AlarmWebhookAtUsers​
Array of String​
user1​
通过 Webhook 集成配置发送通知到飞书、钉钉或企业微信时,需要提醒的用户名。​
说明​
  • 设置 ReceiverChannels 参数为 DingTalk 或 WeChat 时,才支持指定提醒人。​
  • 配置了以 AlarmWebhook 开头的参数时,表示您选择使用 Webhook 集成配置方式管理 Webhook 地址,此时请将 GeneralWebhook 开头的参数留空,无需配置。​
  • 指定提醒人后,企业微信的通知内容为普通文本格式,不支持 Markdown 格式。​
  • 指定提醒人后,IAM 用户的手机号码必须为中国内地号码。​
AlarmWebhookIsAtAll​
Boolean​
true​
通过 Webhook 集成配置发送通知到飞书、钉钉或企业微信时,是否提醒所有人。​
true:提醒所有人。​
false:不提醒所有人。​
说明​
  • 配置了以 AlarmWebhook 开头的参数时,表示您选择使用 Webhook 集成配置方式管理 Webhook 地址,此时请将 GeneralWebhook 开头的参数留空,无需配置。​
  • 指定提醒所有人后,企业微信的通知内容为普通文本格式,不支持 Markdown 格式。​
AlarmWebhookAtGroups​
Array of String​
group1​
通过 Webhook 集成配置发送通知到飞书、钉钉或企业微信时,需要提醒的用户组名称。​
说明​
配置了以 AlarmWebhook 开头的参数时,表示您选择使用 Webhook 集成配置方式管理 Webhook 地址,此时请将 GeneralWebhook开头的参数留空,无需配置。​
GeneralWebhookMethod​
String​
POST​
自定义接口回调方法,仅支持设置为 POST 或 PUT。​
GeneralWebhookHeaders​
/​
自定义接口回调请求头。​
AlarmContentTemplateId​
String​
al****​
告警内容模版 ID。​
AlarmWebhookIntegrationId​
String​
1f4a9e21****​
告警 Webhook 集成配置的 ID。​
说明​
配置了以 AlarmWebhook 开头的参数时,表示您选择使用 Webhook 集成配置方式管理 Webhook 地址,此时请将 GeneralWebhook开头的参数留空,无需配置。​
AlarmWebhookIntegrationName​
String​
test​
告警 Webhook 集成配置的名称。​
说明​
配置了以 AlarmWebhook 开头的参数时,表示您选择使用 Webhook 集成配置方式管理 Webhook 地址,此时请将 GeneralWebhook开头的参数留空,无需配置。​
​
NoticeRule​
​
参数​
类型​
示例值​
描述​
HasNext​
Boolean​
true​
是否继续进入下一层的条件判断。​
RuleNode​
Object of RuleNode​
/​
规则节点。​
HasEndNode​
Boolean​
true​
后面是否存在结束节点。​
ReceiverInfos​
Array of Receiver​
/​
通知渠道相关信息。​
​
GeneralWebhookHeaderKV​
​
参数​
类型​
示例值​
描述​
key​
String​
Content-Type​
自定义请求头的 Key。​
value​
String​
application/json​
自定义请求头的 Value。​
​
RuleNode​
​
参数​
类型​
示例值​
描述​
Type​
String​
Operation​
当前节点类型。可选值:​
  • Operation:操作节点。​
  • Condition:条件节点​
Value​
Array of String​
/​
节点值。​
Children​
Array of RuleNode​
[ "AND"]​
子节点。​
​
请求示例​
​
GET https://{tls-endpoint}/DescribeAlarms?ProjectId=e4**** HTTP/1.1​
​
返回示例​
​
HTTP/1.1 200 OK​
Content-Type: application/json; charset=utf-8​
{​
"Total": 2,​
"Alarms": [​
{​
"AlarmId": "47c5e05a****",​
"AlarmName": "yyj-test",​
"ProjectId": "a8345bfc****",​
"ProjectName": "yyj-da171",​
"Status": true,​
"Severity": "",​
"QueryRequest": [​
{​
"Query": "* | SELECT COUNT(*) AS cnt",​
"Number": 1,​
"TopicId": "c14ef1c0****",​
"TopicName": "fc4bc2d7****",​
"StartTimeOffset": -15,​
"EndTimeOffset": 0​
},​
{​
"Query": "* | SELECT *",​
"Number": 2,​
"TopicId": "c14ef1c0****",​
"TopicName": "fc4bc2d7****",​
"StartTimeOffset": -15,​
"EndTimeOffset": 0​
}​
],​
"RequestCycle": {​
"Type": "CronTab",​
"Time": 0,​
"CronTab": "0/1 * * * *"​
},​
"Condition": "",​
"TriggerConditions": [​
{​
"CountCondition": "__count__ == 10",​
"Severity": "notice"​
},​
{​
"Condition": "$1.cnt == 5",​
"Severity": "notice"​
},​
{​
"CountCondition": "__count__ == 1",​
"Severity": "notice"​
}​
],​
"JoinConfigurations": [​
{​
"SetOperationType": "LeftJoin",​
"Condition": "$1.cnt == $2.count"​
}​
],​
"TriggerPeriod": 1,​
"AlarmPeriod": 30,​
"AlarmPeriodDetail": {​
"SMS": 10,​
"Phone": 10,​
"Email": 10,​
"GeneralWebhook": 1​
},​
"AlarmNotifyGroup": [​
{​
"AlarmNotifyGroupName": "yyj-test001",​
"AlarmNotifyGroupId": "7456eb3e****",​
"NotifyType": [​
"Trigger",​
"Recovery"​
],​
"Receivers": [​
{​
"ReceiverType": "User",​
"ReceiverNames": [],​
"ReceiverChannels": [​
"Lark"​
],​
"StartTime": "00:00:00",​
"EndTime": "23:59:59",​
"Webhook": "",​
"TemplateIDs": null,​
"GeneralWebhookUrl": "",​
"GeneralWebhookMethod": "",​
"GeneralWebhookHeaders": null,​
"GeneralWebhookBody": "",​
"AlarmContentTemplateId": "default-template",​
"AlarmContentTemplateName": "默认模版",​
"AlarmWebhookIntegrationId": "ca2eb341****",​
"AlarmWebhookIntegrationName": "yyj-test",​
"AlarmWebhookIsAtAll": false,​
"AlarmWebhookAtUsers": null,​
"AlarmWebhookAtGroups": null,​
"IamProjectName": null​
},​
{​
"ReceiverType": "User",​
"ReceiverNames": [],​
"ReceiverChannels": [​
"Lark"​
],​
"StartTime": "00:00:00",​
"EndTime": "23:59:59",​
"Webhook": "",​
"TemplateIDs": null,​
"GeneralWebhookUrl": "",​
"GeneralWebhookMethod": "",​
"GeneralWebhookHeaders": null,​
"GeneralWebhookBody": "",​
"AlarmContentTemplateId": "default-template",​
"AlarmContentTemplateName": "默认模版",​
"AlarmWebhookIntegrationId": "40959044****",​
"AlarmWebhookIntegrationName": "alarm-001",​
"AlarmWebhookIsAtAll": false,​
"AlarmWebhookAtUsers": null,​
"AlarmWebhookAtGroups": null,​
"IamProjectName": null​
}​
],​
"NoticeRules": [​
{​
"RuleNode": null,​
"ReceiverInfos": [​
{​
"ReceiverType": "User",​
"ReceiverNames": [],​
"ReceiverChannels": [​
"Lark"​
],​
"StartTime": "00:00:00",​
"EndTime": "23:59:59",​
"Webhook": "",​
"TemplateIDs": null,​
"GeneralWebhookUrl": "",​
"GeneralWebhookMethod": "",​
"GeneralWebhookHeaders": null,​
"GeneralWebhookBody": "",​
"AlarmContentTemplateId": "default-template",​
"AlarmContentTemplateName": "默认模版",​
"AlarmWebhookIntegrationId": "ca2eb341****",​
"AlarmWebhookIntegrationName": "yyj-test",​
"AlarmWebhookIsAtAll": false,​
"AlarmWebhookAtUsers": null,​
"AlarmWebhookAtGroups": null,​
"IamProjectName": null​
}​
],​
"HasNext": true,​
"HasEndNode": true​
},​
{​
"RuleNode": {​
"Type": "Operation",​
"Value": [​
"OR"​
],​
"Children": [​
{​
"Type": "Condition",​
"Value": [​
"NotifyType",​
"in",​
"[\"1\"]"​
],​
"Children": []​
},​
{​
"Type": "Condition",​
"Value": [​
"Severity",​
"in",​
"[\"notice\",\"critical\",\"warning\"]"​
],​
"Children": []​
}​
]​
},​
"ReceiverInfos": [​
{​
"ReceiverType": "User",​
"ReceiverNames": [],​
"ReceiverChannels": [​
"Lark"​
],​
"StartTime": "00:00:00",​
"EndTime": "23:59:59",​
"Webhook": "",​
"TemplateIDs": null,​
"GeneralWebhookUrl": "",​
"GeneralWebhookMethod": "",​
"GeneralWebhookHeaders": null,​
"GeneralWebhookBody": "",​
"AlarmContentTemplateId": "default-template",​
"AlarmContentTemplateName": "默认模版",​
"AlarmWebhookIntegrationId": "40959044****",​
"AlarmWebhookIntegrationName": "alarm-001",​
"AlarmWebhookIsAtAll": false,​
"AlarmWebhookAtUsers": null,​
"AlarmWebhookAtGroups": null,​
"IamProjectName": null​
}​
],​
"HasNext": false,​
"HasEndNode": false​
}​
],​
"CreateTime": "2024-07-23 10:24:22",​
"ModifyTime": "2024-07-23 10:26:06",​
"IamProjectName": "default"​
}​
],​
"UserDefineMsg": "",​
"CreateTime": "2024-07-23 10:29:20",​
"ModifyTime": "2024-07-23 10:30:16",​
"DashboardId": "8e5d4921****",​
"alarmDisabled": false​
},​
{​
"AlarmId": "9228cf0f****",​
"AlarmName": "aaa",​
"ProjectId": "a8345bfc****",​
"ProjectName": "yyj-da171",​
"Status": false,​
"Severity": "",​
"QueryRequest": [​
{​
"Query": "* | select count(*) as cnt",​
"Number": 1,​
"TopicId": "c14ef1c0****",​
"TopicName": "fc4bc2d7****",​
"StartTimeOffset": -15,​
"EndTimeOffset": 0​
},​
{​
"Query": "* | select count(*) as cnt",​
"Number": 2,​
"TopicId": "c14ef1c0****",​
"TopicName": "fc4bc2d7****",​
"StartTimeOffset": -15,​
"EndTimeOffset": 0​
},​
{​
"Query": "* | select count(*) as cnt",​
"Number": 3,​
"TopicId": "c14ef1c0****",​
"TopicName": "fc4bc2d7****",​
"StartTimeOffset": -15,​
"EndTimeOffset": 0​
}​
],​
"RequestCycle": {​
"Type": "Period",​
"Time": 10,​
"CronTab": ""​
},​
"Condition": "",​
"TriggerConditions": [​
{​
"Severity": "notice"​
}​
],​
"JoinConfigurations": [​
{​
"SetOperationType": "CrossJoin",​
"Condition": ""​
},​
{​
"SetOperationType": "CrossJoin",​
"Condition": ""​
}​
],​
"TriggerPeriod": 1,​
"AlarmPeriod": 30,​
"AlarmPeriodDetail": {},​
"AlarmNotifyGroup": [​
{​
"AlarmNotifyGroupName": "aaa2",​
"AlarmNotifyGroupId": "e308b604****",​
"NotifyType": [​
"Trigger",​
"Recovery"​
],​
"Receivers": [​
{​
"ReceiverType": "User",​
"ReceiverNames": [],​
"ReceiverChannels": [​
"WeChat"​
],​
"StartTime": "00:00:00",​
"EndTime": "23:59:59",​
"Webhook": "",​
"TemplateIDs": null,​
"GeneralWebhookUrl": "",​
"GeneralWebhookMethod": "",​
"GeneralWebhookHeaders": null,​
"GeneralWebhookBody": "",​
"AlarmContentTemplateId": "default-template",​
"AlarmContentTemplateName": "默认模版",​
"AlarmWebhookIntegrationId": "0721bde9****",​
"AlarmWebhookIntegrationName": "yyj-wei",​
"AlarmWebhookIsAtAll": false,​
"AlarmWebhookAtUsers": [​
"test1"​
],​
"AlarmWebhookAtGroups": null,​
"IamProjectName": null​
}​
],​
"NoticeRules": [​
{​
"RuleNode": {​
"Type": "Operation",​
"Value": [​
"AND"​
],​
"Children": [​
{​
"Type": "Condition",​
"Value": [​
"NotifyType",​
"in",​
"[\"1\",\"2\"]"​
],​
"Children": []​
}​
]​
},​
"ReceiverInfos": [​
{​
"ReceiverType": "User",​
"ReceiverNames": [],​
"ReceiverChannels": [​
"WeChat"​
],​
"StartTime": "00:00:00",​
"EndTime": "23:59:59",​
"Webhook": "",​
"TemplateIDs": null,​
"GeneralWebhookUrl": "",​
"GeneralWebhookMethod": "",​
"GeneralWebhookHeaders": null,​
"GeneralWebhookBody": "",​
"AlarmContentTemplateId": "default-template",​
"AlarmContentTemplateName": "默认模版",​
"AlarmWebhookIntegrationId": "0721bde9****",​
"AlarmWebhookIntegrationName": "yyj-wei",​
"AlarmWebhookIsAtAll": false,​
"AlarmWebhookAtUsers": [​
"test1"​
],​
"AlarmWebhookAtGroups": null,​
"IamProjectName": null​
}​
],​
"HasNext": false,​
"HasEndNode": true​
}​
],​
"CreateTime": "2024-03-01 18:12:29",​
"ModifyTime": "2024-07-16 12:01:41",​
"IamProjectName": "default"​
}​
],​
"UserDefineMsg": "",​
"CreateTime": "2024-04-25 16:07:18",​
"ModifyTime": "2024-07-23 10:27:49",​
"DashboardId": "8e5d4921****",​
"alarmDisabled": false​
}​
]​
}​
​
错误码​
下表为您列举了该接口与业务逻辑相关的错误码。公共错误码请参见公共错误码文档。​
​
HTTP 状态码​
错误码​
错误信息​
说明​
400​
InvalidArgument​
Invalid argument key %s, value %s, please check argument.​
参数不合法。​
404​
AlarmNotExist​
Alarm xxx does not exist​
告警策略不存在。​
500​
InternalServerError​
We encountered an unexpected server error . Please try again later.​
服务器内部错误。​
​
最近更新时间:2025.10.14 14:28:14
这个页面对您有帮助吗?
有用
有用
无用
无用