Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Existují dva způsoby dotazování dat z více pracovních prostorů, aplikací a prostředků:
- Explicitně zadáním informací o pracovním prostoru, aplikaci nebo prostředku pomocí výrazů workspace(), app() nebo resource(), jak je popsáno v tomto článku.
- Implicitně pomocí dotazů na kontext prostředků. Když se dotazujete v kontextu konkrétního prostředku, skupiny prostředků nebo předplatného, dotaz načte relevantní data ze všech pracovních prostorů, které obsahují data pro tyto prostředky. Dotazy na kontext prostředků nezískávají data z klasických prostředků služby Application Insights.
Tento článek vysvětluje, jak pomocí workspace()
výrazů , app()
a resource()
výrazů dotazovat data z více pracovních prostorů, aplikací a prostředků služby Log Analytics.
Pokud spravujete předplatná v jiných tenantech Microsoft Entra 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íků.
Důležité
Pokud používáte prostředek Application Insights založený na pracovním prostoru, telemetrie se ukládá do pracovního prostoru služby Log Analytics se všemi ostatními daty protokolu. Pomocí výrazu workspace()
můžete dotazovat data z aplikací ve více pracovních prostorech. K dotazování dat z více aplikací ve stejném pracovním prostoru nepotřebujete dotaz mezi pracovními prostory.
Požadována oprávnění
Akce | Požadována oprávnění |
---|---|
Kontrola stavu pracovního prostoru |
Microsoft.OperationalInsights/workspaces/query/*/read oprávnění k pracovním prostorům služby Log Analytics, které dotazujete, poskytovaná například integrovanou rolí Log Analytics Reader. |
Uložení dotazu |
microsoft.operationalinsights/querypacks/queries/action oprávnění k sadě dotazů, do které chcete dotaz uložit, například jak je poskytuje vestavěná role přispěvatele Log Analytics. |
Omezení
- Dotazy mezi prostředky a mezi službami nepodporují parametrizované funkce a funkce, jejichž definice zahrnuje jiné výrazy mezi pracovními prostory nebo službami, včetně
adx()
,arg()
,resource()
,workspace()
aapp()
. - Do jednoho dotazu můžete zahrnout až 100 pracovních prostorů služby Log Analytics nebo klasických prostředků Application Insights.
- Dotazování na velký počet prostředků může výrazně zpomalit vyřízení dotazu.
- Dotazy napříč prostředky v upozorněních pro vyhledávání protokolu jsou podporovány pouze v aktuálním rozhraní API scheduledQueryRules. Pokud používáte starší rozhraní API upozornění Log Analytics, budete muset přepnout na aktuální rozhraní API.
- Odkazy na meziresursový odkaz, například jiný pracovní prostor, by měly být explicitní a nelze je parametrizovat.
Dotazování mezi pracovními prostory, aplikacemi a prostředky pomocí funkcí
Tato část vysvětluje, jak dotazovat pracovní prostory, aplikace a prostředky pomocí funkcí i bez použití funkcí.
Dotazování bez použití funkce
Z kterékoliv instance zdrojů můžete dotazovat více zdrojů. Tyto prostředky mohou být kombinací pracovních prostorů a aplikací.
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
Další informace o operátorech sjednocení, where a sumarizace naleznete v tématech operátor sjednocení, operátor where a operátor sumarizace.
Dotazování pomocí funkce
Když použijete 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ý. Měli byste využít funkce v logických dotazech Azure Monitor protokolu k oddělení logiky dotazu od rozsahu prostředků dotazu. 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 obor komponent Application Insights. Příkaz withsource= SourceApp
přidá sloupec, který určuje název aplikace, který odeslal protokol.
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 vrací sjednocení tabulek požadavků ze všech definovaných aplikací. Dotaz pak filtruje neúspěšné požadavky a vizualizuje trendy podle aplikace. Operátor parse
je v tomto příkladu nepovinný. 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 prohledávání protokolu, protože při vytváření upozornění se provádí ověření přístupu k prostředkům pravidla upozornění, včetně pracovních prostorů a aplikací. 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 na prohledávání protokolu, musíte upravit pravidlo upozornění na portálu nebo pomocí šablony Azure Resource Manager pro aktualizaci rozsahu prostředků. Případně můžete do dotazu upozornění vyhledávání v protokolu zahrnout seznam prostředků.
Dotazování napříč pracovními prostory Log Analytics pomocí workspace()
Pomocí výrazu workspace()
můžete načíst data z konkrétního pracovního prostoru ve stejné skupině prostředků, jiné skupině prostředků nebo jiném předplatném. Tento výraz můžete použít k zahrnutí dat protokolu do dotazu v rámci Application Insights a ke křížovému dotazování dat napříč několika pracovními prostory v log dotazu.
Syntaxe
workspace(
Identifikátor)
Argumenty
*Identifier*
: Identifikuje pracovní prostor pomocí jednoho z formátů v následující tabulce.
Identifikátor | Popis | Příklad |
---|---|---|
Identifikátor | GUID pracovního prostoru | workspace("00000000-0000-0000-0000-000000000000") |
ID prostředku Azure | Identifikátor prostředku Azure | workspace("/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/Contoso/providers/Microsoft.OperationalInsights/workspaces/contosoretail") |
Příklady
workspace("00000000-0000-0000-0000-000000000000").Update | count
workspace("/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/Contoso/providers/Microsoft.OperationalInsights/workspaces/contosoretail").Event | count
union
( workspace("00000000-0000-0000-0000-000000000000").Heartbeat | where Computer == "myComputer"),
(app("00000000-0000-0000-0000-000000000000").requests | where cloud_RoleInstance == "myRoleInstance")
| count
union
(workspace("00000000-0000-0000-0000-000000000000").Heartbeat), (app("00000000-0000-0000-0000-000000000000").requests) | where TimeGenerated between(todatetime("2023-03-08 15:00:00") .. todatetime("2023-04-08 15:05:00"))
Dotazování napříč klasickými aplikacemi Application Insights pomocí app()
Pomocí výrazu app
můžete načíst data z konkrétního klasického prostředku Application Insights ve stejné skupině prostředků, jiné skupině prostředků nebo jiném předplatném. Pokud používáte prostředek Application Insights založený na pracovním prostoru, telemetrie se ukládá do pracovního prostoru služby Log Analytics se všemi ostatními daty protokolu. Pomocí výrazu workspace()
můžete dotazovat data z aplikací ve více pracovních prostorech. K dotazování dat z více aplikací ve stejném pracovním prostoru nepotřebujete dotaz mezi pracovními prostory.
Syntaxe
app(
Identifikátor)
Argumenty
*Identifier*
: Identifikuje aplikaci pomocí jednoho z formátů v následující tabulce.
Identifikátor | Popis | Příklad |
---|---|---|
Identifikátor | Pokyny GUID aplikace | app("00000000-0000-0000-0000-000000000000") |
ID prostředku Azure | Identifikátor prostředku Azure | app("/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/Fabrikam/providers/microsoft.insights/components/fabrikamapp") |
Příklady
app("00000000-0000-0000-0000-000000000000").requests | count
app("/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/Fabrikam/providers/microsoft.insights/components/fabrikamapp").requests | count
union
(workspace("00000000-0000-0000-0000-000000000000").Heartbeat | where Computer == "myComputer"),
(app("00000000-0000-0000-0000-000000000000").requests | where cloud_RoleInstance == "myColumnInstance")
| count
union
(workspace("00000000-0000-0000-0000-000000000000").Heartbeat), (app("00000000-0000-0000-0000-000000000000").requests)
| where TimeGenerated between(todatetime("2023-03-08 15:00:00") .. todatetime("2023-04-08 15:05:00"))
Korelujte data mezi prostředky pomocí resource()
Výraz resource
se používá v dotazu služby Azure Monitor vztahující se k prostředku k načtení dat z jiných prostředků.
Syntaxe
resource(
Identifikátor)
Argumenty
*Identifier*
: Identifikuje prostředek, skupinu prostředků nebo předplatné, ze kterého se mají data korelovat.
Identifikátor | Popis | Příklad |
---|---|---|
Prostředek | Zahrnuje data pro zdroj. | resource("/subscriptions/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx/resourcegroups/myresourcegroup/providers/microsoft.compute/virtualmachines/myvm") |
Skupina prostředků nebo předplatné | Zahrnuje data pro zdroj a všechny zdroje, které obsahuje. | resource("/subscriptions/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcesgroups/myresourcegroup) |
Příklady
union (Heartbeat),(resource("/subscriptions/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcesgroups/myresourcegroup/providers/microsoft.compute/virtualmachines/myvm").Heartbeat) | summarize count() by _ResourceId, TenantId
union (Heartbeat),(resource("/subscriptions/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcesgroups/myresourcegroup").Heartbeat) | summarize count() by _ResourceId, TenantId
Další kroky
Přehled dotazů na protokoly a strukturování dat protokolů služby Azure Monitor najdete v tématu Analýza dat protokolu ve službě Azure Monitor .