Vytvoření dotazu na protokol napříč několika pracovními prostory a aplikacemi ve službě Azure Monitor

Protokoly Azure Monitoru podporují dotazování napříč několika pracovními prostory služby Log Analytics a aplikacemi Application Insights ve stejné skupině prostředků, jiné skupině prostředků nebo jiném předplatném. Tato funkce poskytuje zobrazení dat v celém systému.

Pokud spravujete předplatná v jiných tenantech Azure Active Directory (Azure AD) prostřednictvím služby Azure Lighthouse, můžete do dotazů zahrnout pracovní prostory služby Log Analytics vytvořené v těchto tenantech zákazníka.

Existují dvě metody dotazování na data uložená ve více pracovních prostorech a aplikacích:

  • Explicitně zadáním informací o pracovním prostoru a aplikaci. Tato technika se používá v tomto článku.
  • Implicitně pomocí dotazů na kontext prostředků. Při dotazování v kontextu konkrétního prostředku, skupiny prostředků nebo předplatného se příslušná data načítají ze všech pracovních prostorů, které obsahují data pro tyto prostředky. Data Application Insights uložená v aplikacích se nenačítají.

Důležité

Pokud používáte prostředek Application Insights založený na pracovním prostoru, telemetrická data se ukládají v pracovním prostoru služby Log Analytics se všemi ostatními daty protokolu. Pomocí výrazu workspace() můžete napsat dotaz, který zahrnuje aplikace ve více pracovních prostorech. Pro více aplikací ve stejném pracovním prostoru nepotřebujete dotaz mezi pracovními prostory.

Omezení dotazů mezi prostředky

  • Počet komponent Application Insights a pracovních prostorů služby Log Analytics, které můžete zahrnout do jednoho dotazu, je omezený na 100.
  • Dotazy mezi prostředky ve upozorněních protokolu se podporují jenom v aktuálním rozhraní API scheduledQueryRules. Pokud používáte starší verzi rozhraní API upozornění Log Analytics, budete muset přepnout na aktuální rozhraní API.
  • Odkazy na více prostředků, například na jiný pracovní prostor, by měly být explicitní a nedají se parametrizovat. Příklady najdete v tématu Identifikace prostředků pracovního prostoru .

Dotazování napříč pracovními prostory Služby Log Analytics a z Application Insights

Pokud chcete v dotazu odkazovat na jiný pracovní prostor, použijte identifikátor pracovního prostoru . Pro aplikaci z Application Insights použijte identifikátor aplikace .

Identifikace prostředků pracovního prostoru

Pracovní prostor můžete identifikovat pomocí jednoho z těchto ID:

  • ID pracovního prostoru: ID pracovního prostoru je jedinečný neměnný identifikátor přiřazený každému pracovnímu prostoru reprezentovaný globálně jedinečným identifikátorem (GUID).

    workspace("00000000-0000-0000-0000-000000000000").Update | count

  • ID prostředku Azure: Toto ID je jedinečná identita pracovního prostoru definovaná v Azure. U pracovních prostorů je formát /subscriptions/subscriptionId/resourcegroups/resourceGroup/providers/microsoft. OperationalInsights/workspaces/workspaceName.

    Například:

    workspace("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/ContosoAzureHQ/providers/Microsoft.OperationalInsights/workspaces/contosoretail-it").Update | count
    

Identifikace aplikace

Následující příklady vrátí souhrnný počet požadavků provedených na aplikaci s názvem fabrikamapp v Application Insights.

Aplikaci můžete identifikovat pomocí jednoho z těchto ID:

  • ID: Toto ID je identifikátor GUID aplikace.

    app("00000000-0000-0000-0000-000000000000").requests | count

  • ID prostředku Azure: Toto ID je jedinečná identita aplikace definovaná v Azure. Formát je /subscriptions/subscriptionId/resourcegroups/resourceGroup/providers/microsoft. OperationalInsights/components/componentName.

    Například:

    app("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/Fabrikam/providers/microsoft.insights/components/fabrikamapp").requests | count
    

Provedení dotazu na více prostředků

Z libovolné instance prostředků se můžete dotazovat na více prostředků. Tyto prostředky můžou být pracovní prostory a aplikace kombinovány.

Příklad dotazu napříč třemi pracovními prostory:

union 
  Update, 
  workspace("00000000-0000-0000-0000-000000000001").Update, 
  workspace("00000000-0000-0000-0000-000000000002").Update
| where TimeGenerated >= ago(1h)
| where UpdateState == "Needed"
| summarize dcount(Computer) by Classification

Použití dotazu mezi prostředky pro více prostředků

Pokud používáte dotazy mezi prostředky ke korelaci dat z více pracovních prostorů služby Log Analytics a komponent Application Insights, může být dotaz složitý a obtížně udržovatelné. K oddělení logiky dotazu od rozsahu prostředků dotazu byste měli použít funkce v dotazech protokolu služby Azure Monitor . Tato metoda zjednodušuje strukturu dotazu. Následující příklad ukazuje, jak můžete monitorovat více komponent Application Insights a vizualizovat počet neúspěšných požadavků podle názvu aplikace.

Vytvořte dotaz podobný následujícímu příkladu, který odkazuje na rozsah komponent Application Insights. Příkaz withsource= SourceApp přidá sloupec, který určuje název aplikace, která protokol odeslala. Uložte dotaz jako funkci s aliasem applicationsScoping.

// crossResource function that scopes my Application Insights components
union withsource= SourceApp
app('00000000-0000-0000-0000-000000000000').requests, 
app('00000000-0000-0000-0000-000000000001').requests,
app('00000000-0000-0000-0000-000000000002').requests,
app('00000000-0000-0000-0000-000000000003').requests,
app('00000000-0000-0000-0000-000000000004').requests

Tuto funkci teď můžete použít v dotazu mezi prostředky, jako je následující příklad. Alias applicationsScoping funkce vrátí sjednocení tabulky požadavků ze všech definovaných aplikací. Dotaz pak vyfiltruje neúspěšné požadavky a vizualizuje trendy podle aplikace. Operátor parse je v tomto příkladu volitelný. Extrahuje název aplikace z SourceApp vlastnosti.

applicationsScoping 
| where timestamp > ago(12h)
| where success == 'False'
| parse SourceApp with * '(' applicationId ')' * 
| summarize count() by applicationId, bin(timestamp, 1h) 
| render timechart

Poznámka

Tuto metodu nelze použít s upozorněními protokolu, protože ověření přístupu k prostředkům pravidla upozornění, včetně pracovních prostorů a aplikací, se provádí při vytváření upozornění. Přidání nových prostředků do funkce po vytvoření upozornění se nepodporuje. Pokud dáváte přednost použití funkce pro vymezení rozsahu prostředků v upozorněních protokolu, musíte upravit pravidlo upozornění na portálu nebo pomocí šablony Azure Resource Manager a aktualizovat vymezené prostředky. Případně můžete zahrnout seznam prostředků do dotazu upozornění protokolu.

Další kroky

V tématu Analýza dat protokolu ve službě Azure Monitor najdete přehled dotazů na protokoly a strukturu dat protokolu služby Azure Monitor.