AppLogs 查询语言
使用Site24x7 AppLogs收集、整合、索引和搜索日志以获得可行的见解。添加 日志配置文件 和 日志类型以立即开始管理您的日志。运行易于理解的语言搜索以过滤掉无效值并快速获得可操作的结果。从此文档中了解有关查询语法、结构和类型的更多信息。
概述
语法
支持的运营商
distinct只返回不同的(不同的)值。
操作 | 描述 |
logtype | 搜索特定框架类型的日志。 |
monitor_name | 搜索来自特定监视器的日志。 |
monitor_group | 搜索来自特定监视器组的日志。 |
tags | 从具有公共标签的监视器中搜索日志。 |
and | 添加一个包含上一个查询的查询约束。 |
or | 添加排除前一个查询的查询约束。 |
groupby | 查找指定字段中重复值的计数。 |
timeslice | 根据指定的时间间隔显示日志的时间。 |
is empty | 指定关联字段具有空值。 |
is not empty | 指定关联字段不具有空值。 |
sum | 返回字段中选定值的总和。 |
min | 返回字段中的最小值。 |
max | 返回字段中的最大值。 |
avg | 返回字段中值的平均值。 |
sd | 返回标准偏差值。 |
count_distinct | 返回不同值的计数。 |
count | 返回与查询匹配的日志消息数。 |
include | 仅显示搜索输出中的选定字段。 |
exclude | 从搜索输出中排除并显示给定字段以外的值。 |
before | 返回一个小时、一天或一周前同一时间的查询结果。 |
having | 对 groupby 查询应用条件并获得所需的输出。 |
sort | 返回基于某些字段的排序值。 |
STARTSWITH | 给出以给定搜索条件开头的值。 |
LIKE | 允许在值中使用带有星号的搜索条件 |
in | 类似于使用多个 'or' 和 '='。 |
notin | 类似于使用多个 'and' 和 '!='。 |
histo | 给出数值字段的直方图。 |
range | 返回直方图的自定义范围。 |
range interval | 返回直方图的恒定间隔输出。 |
数值运算符
如果字段是数字字段,您可以包含运算符(>、<、=、!=、<= 或 >=)以将其与其值匹配。
操作 | 描述 |
> | 大于。 |
< | 小于。 |
= | 等于。 |
>= | 大于等于。 |
<= | 小于等于。 |
注意:
字段值的单位也可以在查询条件中作为转换单位而不是原始单位给出。
例如,timetaken 字段的单位是毫秒。所以,不要把这个查询写成,
也可以写成,
字符串运算符
如果字段是字符串字段或任何非数字字段,则它可以具有以下运算符:=、!= 和 CONTAINS。
操作员 | 描述 |
= | 等于。 |
!= | 不等于。 不含。 |
包含 | 返回包含首选值的值。 |
不含 | 返回不包含首选值的值。 |
查询模板
查询的一般格式如下:
查询约束的限制
- 时间片和 计数 约束后面不能有任何其他约束。
- 一个 groupby约束只能跟一个 时间片约束。
- 计数和计数不同的 约束不能共存。
- Count约束只能在查询结束时使用,并且查询中不应包含groupby 、 timeslice和聚合约束。
查询语言
要使用查询语言进行搜索,请遵循以下格式:
以这种格式:
- (日志类型的名称)应该是任何先前添加的日志类型的显示名称。
- (其他条件)可以是任何条件。您可以对每个条件使用以下运算符:and、or、or !。
示例查询:
在这个例子中:
- (日志类型的名称)是 SysLogs。
- (其他条件)是应用程序包含“systemd”。
结果:此查询获取日志类型为“SysLogs”且应用程序字段包含“systemd”的日志条目。
组合查询
您还可以将多个条件组合在一起,如下例所示。
-
带有监视器名称的简单查询
在此查询中,监视器名称和应用程序字段值都将用于搜索日志。结果将显示监视器名称为“Zylker-server”的值和包含“kernel”的应用程序。
在此查询中,括号内的条件组合在一起。结果将显示应用程序字段包含“kernel”或“systemd”的任何日志条目。
在查询结束时添加 时间片 (时间段)会生成一个表格,其中包含查询的选定总时间段,除以查询中指定的时间片与日志条目计数。可能的时间片值使用单位 d(天)、h(小时)或 m(分钟)。
-
或者
返回与提供的任一条件匹配的值。
此查询获取所有 GET、POST 和 PUT 方法请求。
-
通过...分组
Groupby(字段名称)显示所提供字段具有相同值的条目数。
在此查询中,将显示字段“应用程序”具有相同值的条目数。
-
总和(),最小(),最大(),平均()
使用它,您可以在日志中找到数字字段的最小值、最大值、平均值和总和。
例如,您可以将其用于您希望获取汇总数据的日志中的数值。
此查询获取汇总的耗时值。
-
标准差
使用它,您可以找到一组数据的 sd 值。这可以帮助您确定给定数据集中的可变性。您可以使用sd从平均值中查找指标的变化,例如 responsesize 和 timetaken。
例如,以下查询,
返回日志中响应大小的 sd 值。
-
distinct
通过在查询中使用 distinct ,您可以获取仅包含不同值的表。
例如,当有多个重复值但您希望仅获取表中的不同值作为搜索结果时,您可以使用 distinct。
结果,显示了不同的线程名称及其计数。
-
计数不同
查询中的不同计数仅获取不同值的计数。
例如,当您想知道日志中指定的 distinct 值的总数时,可以使用 count distinct 。
结果显示不同值的计数。
-
计数
在查询结束时使用 Count 将为您提供与查询中的约束匹配的日志消息总数。
结果获取符合上述条件的日志消息数。
-
将groupby和aggregation结合在一起
下面的搜索会生成一个 groupby表,其中包含用于聚合 值 的附加列 。
例如,当您想要在 groupby 表中分组的值的聚合结果时,这种组合会很有帮助。
在此查询中, 显示了唯一stemuri 的Min、 Max、 Avg和 Count 。
-
将时间片和聚合结合在一起
下面的搜索会生成一个 时间片表,其中包含用于聚合 值 的附加列 。
例如,当您希望及时汇总结果时,可以使用此组合。
在此查询中, 显示按一小时时间切片的Min、 Max、 Avg和 Count 。
-
将groupby和timeslice结合在一起
下面的搜索会生成一个 时间片表,其中包含一个用于 groupby 值的附加列。从左到右,这些列分别为: timeslice、 count和 value(s)。
例如,当您希望结果按时间切片并同时根据给定约束进行分组时,您可以在查询中同时使用 groupby 和 timeslice。
在此查询中,将显示按一天时间分片且在“应用程序”字段中具有相同值的日志条目数。
-
多个groupby
下面的搜索会生成一个包含多个 groupby选项的表。
例如,当您有多个 groupby 选项时,您可以使用以逗号分隔的 groupby,以便您可以在单个表中合并和查看多级 groupby。
在此查询中,多个 groupby 条件组合在一起。
-
包括
在搜索查询中使用Include会获取显示指定字段的结果。
在此查询中,搜索输出将与 应用程序、消息一起显示。
-
排除
在搜索查询中使用Exclude会获取省略了指定字段的结果。
在此查询中,将显示搜索输出而不显示消息pid。
-
before
使用此运算符,您可以查看同一时间、一小时、一天或一周前的查询结果。
例如,当您想要某个时间之前可用的给定查询的结果时,请使用before。
此查询将获取一周前同一时间的 avg(responsesize)。
-
这会根据某些字段对请求进行排序。
例如,当您想根据某些值对结果进行组织或分类时,可以使用 sort。
注意:这只能用于组查询。
此查询获取按avg(responsesize) 值排序的 requesturi 的输出。
这会根据某些字段对请求进行排序。
例如,当您想根据某些值对结果进行组织或分类时,可以使用 sort。
logtype="Apache Access Logs" groupby requesturi sort avg(responsesize)
此查询获取按avg(responsesize) 值排序的 requesturi 的输出。
给出以给定搜索条件开头的值。这获取的结果类似于在末尾使用 带有 *的LIKE 。即,搜索STARTSWITH "Log"将类似于搜索LIKE "Log*"
这将为所有以 Micro 开头的源获取结果。
这是区分大小写的,并允许在值中使用带有星号的搜索条件。
例如,LIKE "Log*n"将匹配Logon和Login。
这会使用 Microsoft 安全审核、Microsoft Windows 审核等获取任何来源的结果。
例如:source LIKE "*" 或 SOURCE LIKE "*Windows" 将不起作用。
类似于使用多个 'or' 和 '='。将比较集合中的所有值。
例如,Status in("200","404","500")将与(status="200" or status="404" or status="500") 相同。
这会获取类似于(referer="Refer 2" 或 referer="Refer 1")的结果
类似于使用多个 'and' 和 '!='。将比较集合中的所有值。
例如,status notin("200","404","500")将与(status!="200" and status!="404" and status!="500") 相同。
这会获取类似于(referer!="Refer 2" 或 referer!="Refer 1")的结果
给出数值字段的直方图。这类似于groupby,但不是返回一个公共值,而是返回一个值范围。
这会根据响应大小获取直方图。
Note:
您还可以使用histogram 和 groupby来进一步分区和分析日志数据。
例如,
这用于从直方图中获取自定义范围。Range 只能在histo之后使用。
例如,status notin("200","404","500")将与(status!="200" and status!="404" and status!="500") 相同。
这将获取提到的自定义范围值的直方图。
-
范围间隔
这用于从直方图中获取具有自定义时间间隔的结果。Range intreval 只能在 histo 之后使用。
例如,当在直方图字段之后指定范围间隔时,它会获取自定义时间间隔的直方图。
这将获取自定义时间间隔为 1 秒的直方图。
最近的搜索:
您可以重复使用我们最近搜索历史中的最近搜索,而不是每次都输入它。您可以按照以下步骤查看它们
- 单击 搜索框中的图标。
- 您可以在已保存的搜索下方查看您最近的搜索查询。您还可以 保存搜索查询以供将来使用。