本文介紹顏色函數的基本文法及樣本。
Log Service支援如下顏色函數。
在Log Service分析語句中,表示字串的字元必須使用單引號('')包裹,無符號包裹或被雙引號("")包裹的字元表示欄位名或列名。例如:'status'表示字串status,status或"status"表示日誌欄位status。
在Log Service控制台上使用顏色函數時,查詢和分析結果的視覺效果並不理想,推薦您在終端伺服器上展示查詢和分析結果。
控制台展示效果
終端展示效果
函數名稱 | 文法 | 說明 | 支援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)
查詢和分析結果(控制台)
查詢和分析結果(終端)