繪製 SQL 查詢結果圖表

本文說明如何繪製記錄檔分析查詢結果的圖表,這類查詢會發出 SQL 查詢。使用 SQL 分析記錄檔和追蹤資料,有助於找出模式和趨勢。您可以將查詢結果顯示為表格,也可以建立圖表來呈現查詢結果。您也可以將圖表儲存至自訂資訊主頁

以下螢幕截圖顯示追蹤範例查詢的結果,該查詢稍後會顯示在本文中。螢幕截圖顯示匯總回應 (依時間和 service_name) 後,範圍回報的狀態:

範例圖表:依服務名稱細分。

事前準備

  1. 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 啟用 Observability API。

    啟用 API 時所需的角色

    如要啟用 API,您需要服務使用情形管理員 IAM 角色 (roles/serviceusage.serviceUsageAdmin),其中包含 serviceusage.services.enable 權限。瞭解如何授予角色

    啟用 API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. 啟用 Observability API。

    啟用 API 時所需的角色

    如要啟用 API,您需要服務使用情形管理員 IAM 角色 (roles/serviceusage.serviceUsageAdmin),其中包含 serviceusage.services.enable 權限。瞭解如何授予角色

    啟用 API

  8. 如要取得載入「記錄分析」頁面、對記錄和追蹤資料編寫及執行查詢,以及在自訂資訊主頁上儲存圖表所需的權限,請要求管理員授予您下列 IAM 角色:

    • Monitoring 編輯者 (roles/monitoring.editor) 專案
    • 觀測檢視畫面存取者 (roles/observability.viewAccessor) 在您要查詢的觀測檢視畫面中,這個角色支援 IAM 條件,可讓您將授權限制在特定檢視區塊。如果未在角色授予作業中附加條件,主體就能存取所有可觀測性檢視畫面。可觀測性檢視畫面為公開測試版。
    • 記錄檢視器 (roles/logging.viewer) 專案
    • 記錄檔檢視存取者 (roles/logging.viewAccessor) 在儲存要查詢記錄檢視的專案中。

    如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

    您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

選取要繪製圖表的資料

如要設定要在圖表上顯示的資料,請使用 SQL 建構查詢。選取「圖表」分頁後,系統會顯示查詢結果圖表。查詢執行完畢並產生圖表後,您可以變更圖表類型和選取要查看的資料欄,自訂圖表設定。

如要以圖表形式查看查詢結果,請執行下列查詢:

  1. 在 Google Cloud 控制台中,前往 「Log Analytics」(記錄檔分析) 頁面:

    前往「Log Analytics」(記錄檔分析)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果

  2. 在「查詢」窗格中輸入查詢,然後點選「執行」

  3. 查詢完成後,在「結果」分頁中,選取要如何查看查詢結果:

    • 表格:僅限表格格式。

    • 圖表:僅限圖表格式

    • 兩者:圖表和表格格式。

      選取查詢結果的顯示方式後,您可以為所選的視覺化效果設定任何欄位,然後將查詢和結果儲存至自訂資訊主頁。選取「表格」選項後,儲存的格式會是表格。否則格式為圖表。

      如果是圖表,您可以透過視覺化選項選取圖表類型,以及要繪製圖表的資料列和資料欄。如要進一步瞭解圖表設定,請參閱「自訂圖表設定」。

自訂圖表設定

您可以變更圖表類型、選取要繪製圖表的維度和指標,以及套用細分,藉此自訂圖表設定。「維度」用於分組或分類資料列,也是 X 軸的值。「指標」或 Y 軸值是根據 Y 軸繪製的資料序列。

變更圖表類型

您可以根據選為維度和指標的資料列和資料欄類型,以及想以何種方式呈現資料,選取下列圖表類型。

  • 長條圖 (預設): 長條圖會繪製兩個軸上的資料。如果圖表使用類別或字串做為維度,您可以將長條圖的圖表設定設為水平或垂直,維度和指標軸會隨之互換。

  • 折線圖: 折線圖可用來顯示資料隨時間的變化。使用折線圖時,每個時間序列會以不同的折線顯示,對應您選取的指標。

    如果 X 軸是以時間為準,每個資料點都會放在時間間隔的開頭。每個資料點都以線性內插法連接。

  • 堆疊面積圖: 面積圖是以折線圖為基礎,每條線下方的區域都會加上陰影。在面積圖中,資料序列會堆疊在一起。舉例來說,如果您有兩個相同的數列,折線圖中的數列會重疊,但面積圖中的陰影區域會堆疊。

  • 圓餅圖或環圈圖: 圓餅圖會使用圓圈代表整個資料集,並以圓圈中的扇形代表資料集中的類別, 顯示資料集中的類別與整個資料集的關係。圓餅圖中的每個扇形代表一個類別,扇形大小通常以百分比表示,代表該類別在整體中所占的比例。

  • 表格: 表格會針對查詢結果中的每一列顯示一列。資料表中的資料欄是由 SELECT 子句定義。如果您打算在資訊主頁上以表格形式顯示資料,請使用 LIMIT 子句,將結果中的資料列數限制在幾百筆以下。

  • 量表或計分卡: 量表和計分卡會提供最新值,並根據該值與一組門檻的比較結果,以綠色、琥珀色或紅色表示。 與只顯示最新值的指標不同,計分卡還能包含過去的值。

    只有在查詢結果至少包含一列,且該列包含時間戳記資料欄和數值資料欄時,指標和評量表才能顯示查詢結果。查詢結果可以包含多列和兩欄以上的資料。

    如要在查詢中執行時間型匯總,請按照下列步驟操作:

    • 設定查詢,在時間間隔內匯總資料、依時間戳記降序排列結果,並限制結果中的資料列數。您可以使用 LIMIT 子句或時間範圍選取器,限制查詢結果中的資料列數。

      記錄資料

      舉例來說,下列查詢會查詢記錄檢視畫面,並依小時匯總資料、套用限制,以及排序結果:

      SELECT TIMESTAMP_TRUNC(timestamp, HOUR) AS hour, severity, COUNT(*) AS count
      FROM `PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
      WHERE severity IS NOT NULL AND severity = "DEFAULT"
      GROUP BY hour,severity
      ORDER BY hour DESC
      LIMIT 10
      

      以下說明上一個運算式中各個欄位的意義:

      • PROJECT_ID:專案的 ID。
      • LOCATION:記錄檢視畫面或分析資料檢視畫面的位置。
      • BUCKET_ID:記錄 bucket 的名稱或 ID。
      • LOG_VIEW_ID:記錄檢視的 ID,最多 100 個字元,只能包含英文字母、數字、底線和連字號。

      追蹤資料

      舉例來說,下列查詢會查詢追蹤記錄資料,並以一小時為間隔匯總資料、套用限制,以及排序結果:

      SELECT TIMESTAMP_TRUNC(start_time, HOUR) AS hour,
         COALESCE(
            JSON_VALUE(resource.attributes, '$."service.name"'),
            JSON_VALUE(attributes, '$."service.name"'),
            JSON_VALUE(attributes, '$."g.co/gae/app/module"')) AS service_name,
         status.code AS status,
         COUNT(*) AS count
      FROM `PROJECT_ID.LOCATION._Trace.Spans._AllSpans`
      GROUP BY hour, service_name, status
      ORDER BY hour DESC
      LIMIT 1000
      

      以下說明上一個運算式中各個欄位的意義:

      先前的查詢用於產生本文件開頭顯示的圖表。該圖也顯示了圖表設定。

    • 將「維度」設為與回報時間單位的資料欄相符。 舉例來說,如果查詢會依據一小時彙整資料,並建立名為 hour 的資料欄,請將「維度」選單設為 hour

    • 選取「停用間隔」,因為查詢已指定匯總間隔。在本範例中,間隔為一小時。

    • 將「測量」設為數值資料欄,並將函式設為「無」

    如要透過記錄檔分析執行時間型匯總,請按照下列步驟操作:

    • 設定時間範圍選取器,這會影響查詢結果中的資料列數。
    • 將「維度」設為與回報時間單位的資料欄相符。 舉例來說,您可以將這個選單設為 timestamp
    • 將「間隔」選單的匯總間隔設為特定間隔。舉例來說,請將這個欄位的值設為 1 hour。請勿選取「自動間隔」
    • 將「度量」設為數值資料欄,然後選取「加總」等函式。

變更維度和指標

選取維度和指標欄位,即可選擇要繪製哪些資料列和資料欄。

  • 維度

    維度必須是時間戳記、數字或字串資料欄。根據預設,維度會設為結構定義中第一個以時間戳記為準的資料欄。如果查詢中沒有時間戳記,系統會選取第一個字串資料欄做為維度。您也可以在「圖表顯示」面板中自訂維度。如果選取時間戳記欄做為維度,圖表就會顯示資料隨時間變化的情形。如果選取字串資料欄做為長條圖的維度,您可以遞增或遞減排序資料,維度會依字典順序排序。您也可以保留 `default` 排序順序,根據相應指標的值,以遞減順序排序維度。

    根據預設,時間戳記間隔會自動設定,但你也可以選取自訂間隔。自動間隔會根據時間範圍選擇器變更值,以維持大小相近的群組。

    您也可以停用間隔,在查詢中指定自己的匯總和時間範圍,進行更複雜的分析。停用間隔會將測量指標的匯總函式設為 none。維度間隔停用時,只能使用數值指標。

  • 評估

    您可以在「圖表顯示」面板中選取多項指標。選取指標時,您也必須選取要對其分組值執行的匯總函式,例如 countsumaveragepercentile-99。舉例來說,count-distinct 會傳回指定資料欄中的不重複值數量。

    如果選取維度的「停用間隔」核取方塊,即可使用匯總函式選項。none如果維度是字串值,系統不會顯示「停用間隔」核取方塊。不過,將指標的匯總函式設為 none 也會停用間隔。

新增明細

如要根據其他資料欄將單一資料序列分割為多個資料序列,請新增細分。

選取細分項目時,請選擇包含少量簡短且有意義標籤的資料欄 (例如 region_name),而非可能包含大量字串或長字串的欄位 (例如 textPayload)。

記錄資料

舉例來說,請參閱下列圖表設定,其中「維度」欄位設為「type」、「測量指標」欄位設為「Count rows」,「細目」欄位設為「severity」

範例圖表,內含依嚴重程度細分的資料。

從上一個螢幕截圖中,您可以看到堆疊資料序列,其中資源類型 k8s_container 會分成不同 severity 類型。這有助於您瞭解特定資源產生了多少個各嚴重程度類型的記錄。

追蹤資料

舉例來說,下圖顯示各項服務建立的範圍數量,以及依範圍名稱細分的資料:

資訊主頁範例,顯示 Cloud Storage bucket 的用量。

將圖表儲存至自訂資訊主頁

查詢產生圖表後,您可以將圖表儲存至自訂資訊主頁。自訂資訊主頁可讓您使用各種小工具類型,顯示及整理對您有用的資訊。您也可以在這些資訊主頁中定義變數,這些變數是資訊主頁層級的篩選器,只會套用至特定小工具。如要將變數套用至小工具,請修改查詢。詳情請參閱「將變數套用至小工具」。

如果小工具包含 SQL 查詢,且查詢在 BigQuery 引擎上執行,但查詢的資源不在同一個擁有權界線內,資訊主頁就會顯示警告訊息。擁有權界線取決於多項因素,其中一項是查詢使用的資源階層。如要避免收到這些警告,請設定服務周邊

如要將圖表儲存至資訊主頁,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往 「Log Analytics」(記錄檔分析) 頁面:

    前往「Log Analytics」(記錄檔分析)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果

  2. 執行查詢來產生圖表,然後按一下「圖表」分頁中的「儲存圖表」

  3. 在「Save to dashboard」(儲存至資訊主頁) 對話方塊中,輸入圖表的標題,然後選取要儲存圖表的資訊主頁。

  4. 選用:如要查看自訂資訊主頁,請在祝賀訊息中按一下「查看資訊主頁」

如要查看含有 SQL 查詢所產生圖表的自訂資訊主頁清單,請前往「儲存圖表」按鈕,然後點選 「選單」

編輯儲存至自訂資訊主頁的圖表

圖表儲存至資訊主頁後,您仍可修改。詳情請參閱「修改小工具的設定」。在「設定小工具」對話方塊中,您可以執行下列操作:

  • 變更查詢的資料。
  • 編輯用於生成圖表的查詢。
  • 自訂圖表設定,以視覺化方式呈現不同資料。

限制

  • 如果您的 Google Cloud 專案位於使用 Assured Workloads 的資料夾中,則產生的圖表無法顯示在自訂資訊主頁上。

  • 資訊主頁層級的篩選器不適用於透過 SQL 查詢產生的圖表。

  • 所選資料欄至少須有一列含有非空值。

  • 如果您儲存查詢並自訂圖表設定,系統不會儲存自訂圖表設定。

  • 如果查詢已包含匯總函式,記錄檔分析自動套用的額外匯總函式可能會導致產生的圖表有所不同。

  • JSON 路徑必須轉換為字串或數字,才能繪製圖表。

後續步驟