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.