Nastavení centra monitorování Prostředků infrastruktury
Centrum monitorování v sadě Microsoft Fabric Workload Development Kit je centralizované monitorovací centrum. Centrum monitorování je určené pro uživatele fabric ke sledování úloh na pozadí položek. Další informace najdete v tématu Použití centra monitorování.
Back-end
Tato část popisuje, jak nastavit back-endovou implementaci pro centrum monitorování.
JobScheduler
Definování vlastnosti v manifestu položky
Pokud chcete povolit podporu úloh, musí položka zadat typy úloh, které podporuje. JobScheduler
Přidejte vlastnost do souboru manifestu položky. Tato JobScheduler
vlastnost umožňuje úlohám spravovaným prostředky infrastruktury pro vaše položky.
Následující tabulka obsahuje přehled podporovaných JobScheduler
vlastností definice:
Vlastnost | Popis | Možné hodnoty |
---|---|---|
OnDemandJobDeduplicateOptions |
Nastaví možnost odstranění duplicitních dat pro úlohy položek na vyžádání. | - None : Neodstraňujte úlohu. - PerArtifact : Ujistěte se, že pro stejnou položku a typ úlohy běží jenom jedna aktivní úloha. - PerUser : Ujistěte se, že pro stejného uživatele a položku běží jenom jedna aktivní úloha. |
ScheduledJobDeduplicateOptions |
Nastaví možnost odstranění duplicitních dat pro úlohy položek na vyžádání. | - None : Neodstraňujte úlohu. - PerArtifact : Ujistěte se, že pro stejnou položku a typ úlohy běží jenom jedna aktivní úloha. - PerUser : Ujistěte se, že pro stejného uživatele a položku běží jenom jedna aktivní úloha. |
ItemJobTypes |
Seznam typů úloh se zadanými vlastnostmi. | - Name : Název typu úlohy, který je plně přizpůsobitelný nezávislým dodavatelem softwaru (ISV). |
Implementace rozhraní API úloh
Aby se úlohy integrovaly s úlohami, musí implementovat rozhraní API úloh definovaná ve specifikaci Swaggeru.
Tři rozhraní API fabric se vztahují k úlohám:
Spuštění instance úlohy
Koncový bod: POST /workspaces/{workspaceId}/items/{itemType}/{itemId}/jobTypes/{jobType}/instances/{jobInstanceId}
Toto rozhraní API se volá k zahájení provádění úlohy.
- Odpověď: Rozhraní API by mělo vrátit
202 Accepted
stav, který značí, že systém úspěšně naplánoval úlohu.
Získání stavu instance úlohy
Koncový bod: GET /workspaces/{workspaceId}/items/{itemType}/{itemId}/jobTypes/{jobType}/instances/{jobInstanceId}
Prostředky infrastruktury používají mechanismus dotazování ke sledování stavu instance úlohy. Toto rozhraní API se volá každou minutu, zatímco instance úlohy probíhá a kontroluje její stav. Dotazování se zastaví po dokončení úlohy, ať už úspěšně, nebo kvůli selhání.
Odpověď: Rozhraní API by mělo vrátit
200 OK
stav spolu s aktuálním stavem instance úlohy. Odpověď by měla obsahovat stav úlohy, časy spuštění a koncové časy a podrobnosti o chybě, pokud úloha selhala.Podporované stavy úloh:
NotStarted
InProgress
Completed
Failed
Cancelled
Důležité: I když úloha selže, mělo by toto rozhraní API vrátit
200 OK
stav aFailed
stav úlohy.
Zrušení instance úlohy
Koncový bod: POST /workspaces/{workspaceId}/items/{itemType}/{itemId}/jobTypes/{jobType}/instances/{jobInstanceId}/cancel
Voláním tohoto rozhraní API zrušíte probíhající instanci úlohy.
- Odpověď: Rozhraní API by mělo vrátit
200 OK
stav spolu s aktuálním stavem instance úlohy. Odpověď by měla obsahovat stav úlohy, čas zahájení a ukončení a podrobnosti o chybě, pokud úloha selhala.
Více informací
Počet mrtvýchletter úloh:
Pokud se úloha nespustí do 2 hodin, označí se platformou Fabric jako nedoručené písmeno.
Příklad implementace
Příklad implementace těchto rozhraní API najdete v JobsControllerImpl.cs v úložišti ukázek.
Front-end
Tato část popisuje, jak nastavit front-endovou implementaci centra monitorování.
Spuštění úlohy v uživatelském rozhraní Fabric
Po integraci úloh do položek v back-endu můžou uživatelé začít spouštět úlohy.
Uživatelé mají dvě možnosti spouštění úloh v prostředcích infrastruktury:
- Bezobslužná naplánovaná úloha. Tuto možnost definuje uživatel, aby se spouštět v pravidelných intervalech prostřednictvím sdíleného prostředí plánovače prostředků infrastruktury.
- Na vyžádání pomocí uživatelského rozhraní úloh s klientskou sadou SDK rozšíření.
Prostředí plánovače prostředků infrastruktury z uživatelského rozhraní
Možnosti vstupního bodu:
Použijte plán místní nabídky.
Použijte
workloadClient.itemSettings.open
, kde jeSchedule
vybrané ID nastavení .
Rozložení
- Čas poslední úspěšné aktualizace a čas příští aktualizace.
- Tlačítko Aktualizovat
- Nastavení plánu položek.
Připojování
Krok 1: Přidání položky místní nabídky plánu
Pokud chcete zobrazit tlačítko Plán v místní nabídce položky, přidejte novou položku do contextMenuItems
vlastnosti v front-endovém manifestu položky:
{
"name": "schedule"
}
Krok 2: Přidání nastavení plánu položek
Přidejte novou schedule
položku do vlastnosti nastavení položky v manifestu front-endu:
"schedule": {
"itemJobType": "ScheduledJob",
"refreshType": "Refresh"
}
itemJobType
: Typ úlohy položky, který je definován v souboru XML definice úlohy položky.refreshType
: Určuje zobrazení tlačítka Aktualizovat . Vyberte si ze tří možností: PoužijteRefresh
aRun
povolte tlačítko aktualizovat a zobrazovaný název nebo nastavteNone
, aby se tlačítko Aktualizovat zakázalo.
Úlohy javascriptových rozhraní API
Kromě bezobslužných plánovaných úloh může úloha spustit úlohu na vyžádání nebo dokonce spustit naplánovanou úlohu na vyžádání. Jako součást našeho klienta rozšíření poskytujeme sadu rozhraní API:
Rozhraní API naplánovaných úloh:
getItemScheduledJobs(objectId: string): Promise<ItemSchedule>
createItemScheduledJobs(createItemScheduledJobs: CreateItemScheduleParams): Promise<ItemSchedule>
updateItemScheduledJobs(updateItemScheduleParams: UpdateItemScheduleParams): Promise<ItemSchedule>
Konkrétní rozhraní API instance úlohy:
runItemJob(jobParams: RunItemJobParams): Promise<ItemJobInstance>
cancelItemJob(jobParams: CancelItemJobParams): Promise<CancelItemJobResult>
getItemJobHistory(getHistoryParams: GetItemJobHistoryParams): Promise<ItemJobHistory>
Poznámka:
getItemJobHistory
vrátí úlohu se stavem, který je aktuálně uložený v prostředcích infrastruktury. Vzhledem k tomu, že prostředky infrastruktury aktuálně spoléhají výhradně na dotazování, mějte na paměti, že stav nemusí být nejaktuálnější. Pokud potřebujete, aby uživatelské rozhraní co nejdříve odráželo nejpřesnější stav, doporučujeme, abyste stav získali přímo z back-endu.
Integrace s centrem monitorování
Jakmile jsou data připravená, úlohy položek se automaticky zobrazí v centru monitorování. Dalším krokem je přidání typu položky do podokna filtru a konfigurace a implementace dostupných akcí, které může uživatel s úlohami provést.
Povolení položky v podokně filtru centra monitorování
Chcete-li přidat položku do podokna filtru, definujte novou vlastnost v manifestu front-end položky a nastavte supportedInMonitoringHub
na true
.
Integrace s rychlými akcemi úloh
Uživatel může spouštět sadu operací s úlohou, včetně zrušení, opakování a získání podrobností.
Tým úloh rozhodne, který z nich chce povolit, nastavením itemJobConfig
vlastnosti v manifestu front-endu položky. Pokud není nastavená, ikona není viditelná.
Například konfigurace, kterou jsme přidali do ukázkové položky, která podporuje všechny akce úlohy, se zobrazí dále v této části.
Když uživatel vybere ikonu Zrušit ukázkovou úlohu položky, zavoláme zadanou akci item.job.cancel
. Kontext související s úlohou Fabric.WorkloadSample
rozšíření je implementovaný úlohou, aby úloha skutečně zrušila úlohu.
Platforma Fabric také očekává od této akce odpověď, která uživatele upozorní na výsledky.
"itemJobActionConfig": {
"registeredActions": {
"detail": {
"extensionName": "Fabric.WorkloadSample",
"action": "item.job.detail"
},
"cancel": {
"extensionName": "Fabric.WorkloadSample",
"action": "item.job.cancel"
},
"retry": {
"extensionName": "Fabric.WorkloadSample",
"action": "item.job.retry"
}
}
}
Podokno Podrobnosti úlohy
Když tým úloh zaregistruje akci pro podrobné informace, Fabric očekává, že akce úlohy vrátí data v určitém formátu, aby prostředky Infrastruktury mohly zobrazit informace na bočním panelu.
V současné době se podporují páry klíč/hodnota ve formátu prostého textu nebo hypertextového odkazu.
- Příklad zpracování akcí úlohy najdete v index.worker.ts v ukázkovém úložišti. V souboru vyhledejte akce, které začínají
item.job
.
Poslední spuštění
Kromě zobrazení stavu úlohy v centru monitorování nabízí Fabric sdílené uživatelské prostředí pro zobrazení nedávných spuštění konkrétní položky.
Vstupní body:
Místní nabídka>Poslední spuštění
Pomocí nástroje
workloadClient.itemRecentRuns.open
Připojování
Krok 1: Přidání recentRuns
položky místní nabídky
Chcete-li zobrazit tlačítko Poslední spuštění v nabídce položky, přidejte novou položku do contextMenuItems
vlastnosti v manifestu položky front-endu.
Příklad:
{
"name": "recentruns"
}
Krok 2: Přidání nastavení položky recentRun
Přidejte novou recentRun
položku do vlastnosti nastavení položky v manifestu front-endu.
Příklad:
"recentRun": {
"useRecentRunsComponent": true,
}
Integrace úloh na pásu karet s ukázkovou položkou
Jako součást ukázky úloh uživatelského rozhraní jsme přidali oddíl vyhrazený pro úlohy na pásu karet položky.
Příklad implementace tohoto pásu karet naleznete v tématu ItemTabToolbar.tsx v ukázkovém úložišti.