主要查询使您能够从受监视的服务器中检索数据。
定义查询时,以下限制适用:
查询必须在
<![CDATA[]]>
容器内定义。例如:<![CDATA[SELECT X FROM Y AS FOO]]>
。不要在 CDATA 和后面的 [ 之间输入任何字符,也不要在 [ 和查询开头之间输入任何字符。同样的规则适用于结束]]。只有 SELECT 语句是可能的。无法使用 INSERT、UPDATE、DELETE 等。
不可能为每个类定义多个查询。
代理必须具有足够的权限才能运行查询。
不要定义比顾问程序上定义的计划运行时间更长的查询。例如,如果查询需要 2 分钟才能运行,但顾问定义的计划要求查询每 1 分钟运行一次,则不会返回任何结果。为避免这种情况,请在受监控的服务器上彻底测试您的查询。如果自定义数据收集部署在多个代理上,则必须在每个受监视的服务器上对其进行测试,并相应地修改计划。
查询只能返回一行,除非使用结果类型
CLASS_TYPE_1STCOL_ATTRIBUTES
。有关详细信息,请参阅第 30.2.3.2 节,“返回多行”。
对于从服务器检索到的每个值,您必须指定一个名称。也就是说,您必须使用以下格式,其中 NAME 是应用于数据集合的名称:
SELECT X AS NAME FROM Y
这些项目显示在新 Advisor 页面的Variable Assignment
框架上的Data Item
下拉菜单中。它们采用以下格式:
. 例如,
mysql:status:open_files_limit。
namespace:classname:name
本节中使用的示例取自随 MySQL Enterprise Monitor 安装提供的默认顾问程序。
Server Has Anonymous Accounts顾问 使用以下示例:
<class>
<namespace>mysql</namespace>
<classname>anonymous_user</classname>
<query><![CDATA[SELECT COUNT(*) AS user_count FROM mysql.user WHERE user='']]></query>
</class>
在此顾问程序中,变量%user_count%
映射到查询中定义
的数据项。
mysql:anonymous_user:user_count