儲存及共用 SQL 查詢

Observability Analytics 可讓您儲存及共用 SQL 查詢,以便重新執行頻繁的 Cloud Logging 調查,並與專案中的團隊成員協作。您可以將已儲存的查詢設為私人,僅供自己使用,也可以與其他專案成員共用。

如果您尚未在 Observability Analytics 中編寫查詢,請先參閱「查詢及分析記錄」。如要瞭解如何繪製查詢結果圖表,並將這些圖表儲存至自訂資訊主頁,請參閱「繪製 SQL 查詢結果圖表」。

已儲存的查詢與分析檢視表有何不同

已儲存的查詢是指您透過「Observability Analytics」頁面執行,然後儲存為查詢的查詢。儲存後,您就能在方便時重新執行這項查詢。儲存查詢時,您可以選擇設為私人,或開放給具備 Observability Analytics 使用權限的使用者查看。您無法編寫 FROM 子句指定已儲存查詢的 SQL 查詢。

分析檢視表包含查詢,您可以視需要重新執行。如要建立分析檢視表,請對記錄檢視表編寫 SQL 查詢,然後將結果儲存為檢視表。與已儲存的查詢不同,您無法將分析檢視表設為私人。您可以查詢分析檢視表。這項功能可讓您將記錄資料從 LogEntry 格式轉換為更適合您的其他格式。接著,您不必針對記錄檢視表編寫查詢,而是直接查詢分析檢視表。

您可以儲存查詢記錄檢視表或分析檢視表的查詢。

事前準備

本節說明使用 Observability Analytics 前必須完成的步驟。

設定記錄檔 bucket

確認記錄檔 bucket 已升級為使用 Observability Analytics:

  1. 在 Google Cloud 控制台中,前往「Logs Storage」(記錄檔儲存空間) 頁面:

    前往「Logs Storage」(記錄檔儲存空間)

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

  2. 針對要查詢記錄檔檢視表的每個記錄檔 bucket,確認「可使用 Observability Analytics」欄顯示「開啟」。如果畫面上顯示「Upgrade」(升級),請按一下「Upgrade」(升級),然後完成對話方塊。

設定 IAM 角色和權限

本節說明使用 Observability Analytics 所需的 IAM 角色或權限:

  • 如要取得使用 Observability Analytics 和查詢記錄檢視表所需的權限,請要求管理員在專案中授予您下列 IAM 角色:

    • 如要查詢 _Required 和 _Default 記錄檔 bucket,請按照下列步驟操作: 記錄檢視器 (roles/logging.viewer)
    • 如要查詢專案中的所有記錄檢視表:記錄檢視表存取子 (roles/logging.viewAccessor)

    如要限制主體只能存取特定記錄檢視,您可以在專案層級授予「記錄檢視存取子」角色時,新增 IAM 條件,或是在記錄檢視的政策檔案中新增 IAM 繫結。詳情請參閱「控管記錄檔檢視畫面的存取權」。

    這些權限與在「Logs Explorer」頁面查看記錄項目所需的權限相同。如要瞭解查詢使用者定義 bucket 上的檢視表,或查詢 _Default 記錄檔 bucket 的 _AllLogs 檢視表時,需要哪些其他角色,請參閱「Cloud Logging 角色」。

  • 如要取得查詢分析檢視表所需的權限,請要求管理員授予您專案的 Observability Analytics 使用者 (roles/observability.analyticsUser) IAM 角色。

選取要使用的介面

控制台

使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,您不需要設定驗證機制。

gcloud

在 Google Cloud 控制台啟用 Cloud Shell。

啟用 Cloud Shell

Google Cloud 控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已設定適用於您目前專案的值。工作階段可能要幾秒鐘的時間才能初始化。

REST

如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

    安裝 Google Cloud CLI。

    若您採用的是外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。

詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」一節。

儲存查詢

您執行的所有查詢都會自動儲存 30 天,只要選取「Observability Analytics」頁面上的「Recent」(近期) 分頁標籤,即可存取這些查詢。您可以搜尋、查看、執行及分享「Recent」(近期) 分頁中列出的查詢。

如要重複使用查詢、新增自訂說明,或與團隊成員共用,請儲存查詢。您可以依名稱、說明和瀏覽權限標籤,搜尋及排序已儲存的查詢。您也可以編輯和刪除這些查詢。儲存的查詢會保留到您刪除為止。

每個 Google Cloud 專案可儲存 10,000 項查詢。

控制台

如要儲存查詢,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往 「Observability Analytics」(觀測能力分析) 頁面:

    前往「Observability Analytics」(觀測能力分析) 頁面

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

  2. 在「查詢」窗格中填入查詢。

    如要填入「Query」(查詢) 窗格,可以輸入新查詢,或從「Recent」(近期) 分頁或「Saved」(已儲存) 分頁選取查詢。

    查詢可以包含任何有效的檢視表、多個檢視表和分析檢視表。

    如果「Query」(查詢) 窗格中的查詢有效,系統會啟用「Save」(儲存) 按鈕 。

  3. 按一下「儲存」圖示 ,選取「儲存查詢」,然後填寫「名稱」和「說明」欄位。您為這些欄位設定的值會顯示在「已儲存」分頁中。

  4. 選用:如要讓有權存取 Google Cloud 專案「Observability Analytics」頁面的使用者查看及執行已儲存的查詢,請啟用「Share with project」(與專案共用) 切換鈕。

    根據預設,這個切換鈕會停用,且只有您能看到。

  5. 按一下「儲存查詢」。

  6. 選用:如要查看、排序及執行您可查看的已儲存的查詢,請選取「Saved」(已儲存) 分頁標籤。

    您可以依名稱、說明和瀏覽權限標籤,排序及篩選已儲存的查詢。你也可以依查詢內容篩選。

您可以使用「Saved」(已儲存) 分頁中的選項,編輯及刪除您建立的查詢:

  • 如要編輯查詢,請按一下「 更多選項」,然後選取「編輯」。您可以修改「Name」(名稱) 和「Description」(說明) 欄位的值,但無法修改查詢本身。

  • 如要刪除已儲存的查詢,請按一下 「More Options」(更多選項),然後選取「Delete」(刪除)。

gcloud

如要建立並儲存查詢,請按照下列步驟操作:

  1. 使用下列任何指令資料前,請先替換以下項目:

    • DISPLAY_NAME:已儲存的查詢的顯示名稱。
    • LOCATION:已儲存的查詢位置。
    • VISIBILITY:設為 private 或 shared。
    • SQL_QUERY:SQL 查詢。如果路徑或路徑中的欄位以單一反引號 (`) 包裹,則必須逸出這些反引號:
          "SELECT * FROM \`PROJECT_ID.LOCATION.my-log-bucket._AllLogs\`"
          

      或

          "SELECT * FROM \`PROJECT_ID.LOCATION._Trace.Spans._AllSpans\`"
          

      如果路徑元素包含句號 (.) 字元,則必須使用反引號 (`)。

    • ID:已儲存的查詢 ID。如要執行描述、更新或刪除已儲存的查詢的指令,就必須輸入這個 ID。如果在建立已儲存的查詢時未提供 ID,系統會產生數字 ID。
    • DESCRIPTION:查詢的文字說明。選填。
    • PROJECT_ID:專案 ID。

    執行 gcloud logging saved-queries create 指令:

    Linux、macOS 或 Cloud Shell

    gcloud logging saved-queries create --display-name=DISPLAY_NAME \
     --location=LOCATION --visibility=VISIBILITY --sql-query-text=SQL_QUERY \
     --id=ID --description=DESCRIPTION --project=PROJECT_ID

    Windows (PowerShell)

    gcloud logging saved-queries create --display-name=DISPLAY_NAME `
     --location=LOCATION --visibility=VISIBILITY --sql-query-text=SQL_QUERY `
     --id=ID --description=DESCRIPTION --project=PROJECT_ID

    Windows (cmd.exe)

    gcloud logging saved-queries create --display-name=DISPLAY_NAME ^
     --location=LOCATION --visibility=VISIBILITY --sql-query-text=SQL_QUERY ^
     --id=ID --description=DESCRIPTION --project=PROJECT_ID

    以下是指令中提供的 ID 為 my-saved-query 時的回應範例:

    Created saved query [projects/PROJECT_ID/locations/LOCATION/savedQueries/my-saved-query].
    

    create 指令的回應會列出查詢的全名,包括查詢 ID。查詢 ID (在本例中為 my-saved-query) 是 Google Cloud CLI 指令的必要輸入內容,用於說明、刪除或更新已儲存的查詢。

  2. 執行下列指令,檢查已儲存的查詢:

     gcloud logging saved-queries list --location=- --project=PROJECT_ID
    

    在上述運算式中,位置的值是連字號 (-),可做為萬用字元。也可以提供特定位置。

您可以使用 Google Cloud CLI 指令刪除、列出、描述及更新已儲存的查詢。詳情請參閱「gcloud logging saved-queries總覽」。

REST

您可以使用 Cloud Logging API 儲存查詢。如要儲存查詢,請使用 savedQueries.create 方法。

如要執行這個方法,請按照下列步驟操作:

  1. 選取 savedQueries.create。
  2. 在參考頁面上,使用 APIs Explorer 發出指令。您必須指定 opsAnalyticsQuery 欄位。

以下範例說明要求主體範例,其中包含 SavedQuery 的例項:

{
   "parent": "projects/my-project/locations/global"
   "saved_query":
   {
      "ops_analytics_query":
      {
         "sql_query_text" :
            "SELECT
            timestamp, log_name, severity, json_payload, resource, labels
            FROM
            `VIEW`
            WHERE
            timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR)
            ORDER BY timestamp ASC
            LIMIT 100"
      }
   "visibility": "PRIVATE"
   }
}

分享查詢

您可以與有權存取Google Cloud 專案的所有人共用已儲存的查詢。不過,主體的 IAM 角色會決定是否能執行查詢,以及查詢傳回的資料。

控制台

排解問題或看到異常結果時,您可能想與團隊成員分享查詢和結果。在「Observability Analytics」頁面查看查詢結果時,您可以複製網址,開啟後即可顯示您執行的查詢和結果。

如要與團隊成員共用查詢和結果,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往 「Observability Analytics」(觀測能力分析) 頁面:

    前往「Observability Analytics」(觀測能力分析) 頁面

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

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

    如要填入「Query」(查詢) 窗格,可以輸入新查詢,或從「Recent」(近期) 分頁或「Saved」(已儲存) 分頁選取查詢。

  3. 按一下「分享連結」圖示 。

  4. 將連結傳送給團隊成員。

    團隊成員開啟連結後,「Observability Analytics」頁面會開啟並顯示查詢,但不會執行。團隊成員必須手動執行查詢。

    如果查詢是在 BigQuery 引擎上執行,且查詢的資源不在相同的擁有權邊界內,「Observability Analytics」頁面會顯示警告對話方塊。擁有權界線取決於多項因素,其中一項是查詢使用的資源階層。

    如要成功開啟網址,團隊成員在 Google Cloud 專案中的 IAM 角色必須具備查看「Observability Analytics」頁面所需的權限。

gcloud

如要建立可由他人執行的已儲存的查詢,請將 visibility 欄位的值設為 shared:

--visibility=shared

如要變更現有已儲存的查詢的瀏覽權限,請使用 update 指令。如要進一步瞭解可用指令,請參閱「gcloud logging saved-queries 總覽」。

REST

您可以使用 Logging API 建立共用查詢,方法是使用 savedQueries.create 方法,並在 visibility 欄位中指定 SHARED 值。詳情請參閱 savedQueries.create 的參考頁面。

查看及執行近期或已儲存的查詢

如要查看或重新執行查詢,請在「Observability Analytics」頁面上選取「Recent」(近期) 分頁標籤,然後找出查詢:

  • 點選「執行」執行查詢。
  • 如要查看查詢,請使用 「More Options」(更多選項) 選單中的選項。

如要查看、編輯或執行已儲存的查詢,請選取「Observability Analytics」頁面上的「Saved」(已儲存) 分頁標籤,然後找出查詢:

  • 點選「執行」執行查詢。
  • 如要編輯、查看或刪除查詢,請使用 「More Options」(更多選項) 選單中的選項。

後續步驟