Azure 監視器 Log Analytics 中的記錄查詢範圍和時間範圍

當您在 Azure 入口網站 的 Log Analytics 中執行記錄查詢時,查詢評估的數據集取決於您選取的範圍和時間範圍。 本文說明範圍和時間範圍,以及如何根據需求來設定每個範圍。 它也會描述不同類型的範圍行為。

需要的權限

例如,您必須具有Microsoft.OperationalInsights/workspaces/query/*/read您查詢的Log Analytics工作區許可權,例如Log Analytics讀取器內建角色所提供的許可權。

查詢範圍

查詢範圍會定義查詢評估的記錄。 此定義通常會在單一 Log Analytics 工作區或 Application Insights 應用程式中包含所有記錄。 Log Analytics 也可讓您設定特定受監視 Azure 資源的範圍。 這可讓資源擁有者只專注於其數據,即使該資源寫入多個工作區也一樣。

範圍一律會顯示在Log Analytics視窗的左上方。 圖示指出範圍是Log Analytics工作區或Application Insights應用程式。 沒有圖示表示另一個 Azure 資源。

Screenshot of scope displayed in portal.

您用來啟動 Log Analytics 的方法會決定範圍,在某些情況下,您可以按下範圍來變更範圍。 下表列出所使用的不同範圍類型,以及每個範圍的不同詳細數據。

重要

如果您在 Application Insights 中使用工作區型應用程式,則其數據會與所有其他記錄數據一起儲存在 Log Analytics 工作區中。 為了獲得回溯相容性,當您選取應用程式作為範圍時,將會取得傳統Application Insights體驗。 若要查看 Log Analytics 工作區中的此數據,請將範圍設定為工作區。

查詢範圍 範圍中的記錄 如何選取 變更範圍
Log Analytics 工作區 Log Analytics 工作區中的所有記錄。 [Azure 監視器] 功能表或 [Log Analytics 工作區] 功能選取 [記錄]。 可以將範圍變更為任何其他資源類型。
Application Insights 應用程式 Application Insights 應用程式中的所有記錄。 應用程式的 [Application Insights] 功能選取 [記錄]。 只能將範圍變更為另一個 Application Insights 應用程式。
資源群組 資源群組中所有資源所建立的記錄。 可包含來自多個Log Analytics工作區的數據。 從資源群組功能表中選取 [ 記錄 ]。 無法變更範圍。
訂用帳戶 訂用帳戶中所有資源所建立的記錄。 可包含來自多個Log Analytics工作區的數據。 從訂用帳戶功能表中選取 [ 記錄 ]。 無法變更範圍。
其他 Azure 資源 資源所建立的記錄。 可包含來自多個Log Analytics工作區的數據。 從資源功能表中選取 [ 記錄 ]。
OR
[Azure 監視器] 功能選取 [記錄],然後選取新的範圍。
只能將範圍變更為相同的資源類型。

限定於資源的限制

當查詢範圍是Log Analytics工作區或Application Insights應用程式時,入口網站中的所有選項和所有查詢命令都可以使用。 不過,當範圍設定為資源時,入口網站中的下列選項無法使用,因為它們與單一工作區或應用程式相關聯:

  • 儲存​​
  • 查詢總管
  • 新增警示規則

當範圍設定為資源時,您無法在查詢中使用下列命令,因為查詢範圍已經包含該資源或一組資源數據的任何工作區:

查詢範圍限制

將範圍設定為資源或一組資源是Log Analytics的強大功能,因為它可讓您在單一查詢中自動合併分散式數據。 如果數據需要從多個 Azure 區域的工作區擷取,可能會大幅影響效能。

Log Analytics 可藉由在使用特定數目的區域時發出警告或錯誤,協助防止跨越多個區域中工作區的查詢過度額外負荷。 如果您的範圍包含5個以上的區域中的工作區,則您的查詢會收到警告。 它仍會執行,但可能需要太多時間才能完成。

Screenshot of query warning.

如果範圍包含20個以上的區域中的工作區,您的查詢將會遭到封鎖而無法執行。 在此情況下,系統會提示您減少工作區區域數目,並嘗試再次執行查詢。 下拉式清單會顯示查詢範圍中的所有區域,您應該先減少區域數目,再嘗試再次執行查詢。

Screenshot of query failed.

時間範圍

時間範圍會根據建立記錄的時間,指定查詢評估的記錄集。 這是由 工作區或應用程式中每個記錄上的 TimeGenerated 資料行所定義,如下表所指定。 對於傳統 Application Insights 應用程式, 時間戳 數據行會用於時間範圍。

從 Log Analytics 視窗頂端的時間選擇器選取時間範圍,以設定時間範圍。 您可以選取預先定義的期間,或選取 [ 自定義 ] 來指定特定時間範圍。

Screenshot of the time picker.

如果您在查詢中設定使用標準時間數據行的篩選,如上表所示,時間選擇器會變更為 [在查詢中設定],並停用時間選擇器。 在此情況下,將篩選放在查詢頂端最有效率,以便任何後續處理只需要使用篩選的記錄。

Screenshot of filtered query.

如果您使用工作區或應用程式命令從另一個工作區或傳統應用程式擷取數據,時間選擇器的行為可能會有所不同。 如果範圍是 Log Analytics 工作區,而您使用 應用程式,或範圍是傳統 Application Insights 應用程式,而您使用 工作區,則 Log Analytics 可能不了解篩選中使用的數據行應該決定時間篩選條件。

在下列範例中,範圍會設定為Log Analytics工作區。 查詢會使用 工作區 從另一個Log Analytics工作區擷取數據。 時間選擇器會變更為 [在查詢 中設定],因為它會看到使用預期的 TimeGenerated 數據行的篩選條件。

Screenshot of query with workspace.

不過,如果查詢使用 應用程式 從傳統 Application Insights 應用程式擷取數據,則 Log Analytics 無法辨識 篩選中的時間戳 數據行,而且時間選擇器保持不變。 在此情況下,會套用這兩個篩選。 在此範例中,查詢中只會包含過去 24 小時內建立的記錄,即使它在 where 子句中指定 7 天也一樣。

Screenshot of query with app.

下一步

  • 逐步解說在 Azure 入口網站 中使用Log Analytics的教學課程。
  • 逐步解說撰寫查詢教學課程。