Sdílet prostřednictvím


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 a Failed 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.

      Snímek obrazovky znázorňující možnost Plán v nabídce Plánovač prostředků infrastruktury

    • Použijte workloadClient.itemSettings.open, kde je Schedulevybrané ID nastavení .

  • Rozložení

    Snímek obrazovky s nastavením plánovače Fabric

    1. Čas poslední úspěšné aktualizace a čas příští aktualizace.
    2. Tlačítko Aktualizovat
    3. 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žijte Refresh a Run 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

Snímek obrazovky s tlačítky rychlých akcí úloh v centru monitorování

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

Snímek obrazovky s podoknem podrobností úlohy v centru monitorování

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í

    Snímek obrazovky s možností posledního spuštění v nabídce možností

  • 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.

Snímek obrazovky znázorňující kartu Položka v uživatelském rozhraní prostředků infrastruktury

Příklad implementace tohoto pásu karet naleznete v tématu ItemTabToolbar.tsx v ukázkovém úložišti.