本文介绍颜色函数的基本语法及示例。
日志服务支持如下颜色函数。
在日志服务分析语句中,表示字符串的字符必须使用单引号('')包裹,无符号包裹或被双引号("")包裹的字符表示字段名或列名。例如:'status'表示字符串status,status或"status"表示日志字段status。
在日志服务控制台上使用颜色函数时,查询和分析结果的可视化效果并不理想,推荐您在终端服务器上展示查询和分析结果。
控制台展示效果
终端展示效果
函数名称 | 语法 | 说明 | 支持SQL | 支持SPL |
bar(x, width) | 通过width指定整条ANSI条形图的宽度,其中该ANSI条形图的起始颜色为红色(low_color),结束颜色为绿色(high_color)。然后通过x截取其中一段ANSI条形图并返回。 | √ | × | |
bar(x, width, low_color, high_color) | 通过width指定整条ANSI条形图的宽度,其中该ANSI条形图的起始颜色和结束颜色为自定义颜色。然后通过x截取其中一段ANSI条形图并返回。 | √ | × | |
color(string) | 将颜色字符串转换为color类型。 | √ | × | |
color(x, low, high, low_color, high_color) | 通过判断x在low和high之间的占比指定low_color和high_color的份量,然后返回处于low_color和high_color之间的一个颜色。 | √ | × | |
color(y, low_color, high_color) | 通过y指定low_color和high_color的份量,然后返回处于low_color和high_color之间的一个颜色。 | √ | × | |
render(boolean expression) | 通过颜色渲染返回结果。布尔表达式为真时,返回绿色勾;否则返回红色叉。 | √ | × | |
render(x, color) | 通过自定义的颜色渲染返回结果。 | √ | × | |
rgb(red, green, blue) | 通过RGB值返回一个颜色值。 | √ | × |
bar函数
bar函数用于绘制一条ANSI条形图。
语法
通过width指定整条ANSI条形图的宽度,其中该ANSI条形图的起始颜色为红色(low_color),结束颜色为绿色(high_color)。然后通过x截取其中一段ANSI条形图并返回。
bar(x, width)
通过width指定整条ANSI条形图的宽度,其中该ANSI条形图的起始颜色和结束颜色为自定义颜色。然后通过x截取其中一段ANSI条形图并返回。
bar(x, width, low_color, high_color)
参数说明
参数 | 说明 |
x | 用于指定返回的条形图占整条ANSI条形图的比例。参数值为double类型,取值范围为[0,1]。 |
width | 整条ANSI条形图的宽度。 |
low_color | 颜色梯度中起始颜色的RGB值。 |
high_color | 颜色梯度中结束颜色的RGB值。 |
返回值类型
varchar类型。
示例
示例1:计算1小时PV占总PV的比值,然后通过ANSI条形图表示计算结果。
查询和分析语句
* | SELECT Method, bar(pv/m,100) FROM( SELECT *, max(pv) over() AS m FROM( SELECT Method, count(1) AS pv FROM internal-operation_log WHERE __date__ > '2021-09-10 00:00:00' AND __date__ < '2021-09-10 01:00:00' GROUP BY Method ) )
查询和分析结果(控制台)
查询和分析结果(终端)
示例2:使用白色和红色绘制一条ANSI条形图,宽度为50。
查询和分析语句
* | SELECT bar(1,50,rgb(255,255,255),rgb(255,0,0))
查询和分析结果(控制台)
查询和分析结果(终端)
color函数
color函数用于获取目标值对应的颜色。
语法
将颜色字符串转换为color类型。
color(string)
通过判断x在low和high之间的占比指定low_color和high_color的份量,然后返回处于low_color和high_color之间的一个颜色。
color(x, low, high, low_color, high_color)
通过y指定low_color和high_color的份量,然后返回处于low_color和high_color之间的一个颜色。
color(y, low_color, high_color)
参数说明
参数 | 说明 |
x | 参数值为double类型。 |
y | 参数值为double类型,取值范围为[0,1]。 |
low | 最小值,参数值为double类型。 |
high | 最大值,参数值为double类型。 |
low_color | 颜色梯度中起始颜色的RGB值。 |
high_color | 颜色梯度中结束颜色的RGB值。 |
string | 字符串,可选值为black、red、green、yellow、blue、magenta、cyan、white或CSS样式的RGB值(例如#000)。 |
返回值类型
color类型。
示例
示例1:将颜色字符串转换为color类型。
查询和分析语句
* | SELECT color('#000')
查询和分析结果(控制台)
查询和分析结果(终端)
示例2:对request_length字段值进行取余计算并将计算结果传递给color函数,color函数根据该计算结果返回一个颜色,然后将该颜色传递给bar函数,最后通过bar函数绘制出相应的ANSI条形图。
查询和分析语句
*|SELECT x,bar(10,10, color(x, 0,10, rgb(255,0,0), rgb(0,255,0)), rgb(0,255,0)) FROM(SELECT *FROM (SELECT request_length%10 x FROM log))
查询和分析结果(控制台)
查询和分析结果(终端)
示例3:通过color函数返回一种颜色,然后传递给bar函数,绘制出相应的ANSI条形图。
查询和分析语句
*|SELECT bar(10,10, color(0.3, rgb(255,255,255), rgb(255,0,0)), rgb(0,255,0))
查询和分析结果(控制台)
查询和分析结果(终端)
render函数
render函数通过颜色渲染返回结果。
语法
通过颜色渲染返回结果。布尔表达式为真时,返回绿色勾;否则返回红色叉。
render(boolean expression)
通过自定义的颜色渲染返回结果。
render(x, color)
参数说明
参数 | 说明 |
boolean expression | 布尔表达式。 |
x | X坐标,参数值为integer类型。 |
color | 颜色,参数值为color类型。 |
返回值类型
varchar类型。
示例
示例1:通过count函数统计网站访问PV,然后通过render函数判断PV是否小于1000。如果小于,则返回绿色勾。
查询和分析语句
* | SELECT render(count(*)<1000)
查询和分析结果(控制台)
查询和分析结果(终端)
示例2:通过count函数统计日志总数,然后使用绿色渲染计算结果。
查询和分析语句
* | SELECT render(count(*),rgb(48,169,16))
查询和分析结果(控制台)
查询和分析结果(终端)
rgb函数
rgb函数会根据RGB值返回一个颜色。
语法
rgb(red, green, blue)
参数说明
参数 | 说明 |
red | 颜色中的红色份量,取值范围为[0,255],参数值为integer类型。 |
green | 颜色中的绿色份量,取值范围为[0,255],参数值为integer类型。 |
blue | 颜色中的蓝色份量,取值范围为[0,255],参数值为integer类型。 |
返回值类型
color类型。
示例
根据RGB值返回一个颜色。
查询和分析语句
*|SELECT rgb(255,0,0)
查询和分析结果(控制台)
查询和分析结果(终端)