Dela via


Konfigurera övervakningshubben för infrastrukturresurser

Övervakningshubben i Microsoft Fabric Workload Development Kit är det centraliserade övervakningscentret. Övervakningshubben är utformad för att fabric-användare ska kunna spåra objektbakgrundsjobb. Mer information finns i Använda övervakningshubben.

Serverdel

I det här avsnittet beskrivs hur du konfigurerar en serverdelsimplementering för övervakningshubben.

JobScheduler Definiera egenskapen i objektmanifestet

Om du vill aktivera jobbstöd måste objektet ange vilka typer av jobb som det stöder. Lägg till egenskapen JobScheduler i objektmanifestfilen. Egenskapen JobScheduler aktiverar Infrastrukturhanterade jobb för dina objekt.

Följande tabell innehåller en översikt över definitionsegenskaperna som stöds JobScheduler :

Property beskrivning Möjliga värden
OnDemandJobDeduplicateOptions Anger dedupliceringsalternativet för objektjobb på begäran. - None: Deduplicera inte jobbet.
- PerArtifact: Kontrollera att det bara finns en aktiv jobbkörning för samma objekt och jobbtyp.
- PerUser: Se till att det bara finns en aktiv jobbkörning för samma användare och objekt.
ScheduledJobDeduplicateOptions Anger dedupliceringsalternativet för objektjobb på begäran. - None: Deduplicera inte jobbet.
- PerArtifact: Se till att det bara finns en aktiv jobbkörning för samma objekt och jobbtyp.
- PerUser: Se till att det bara finns en aktiv jobbkörning för samma användare och objekt.
ItemJobTypes En lista över jobbtyper med de angivna egenskaperna. - Name: Namnet på jobbtypen, som är helt anpassningsbar av den oberoende programvaruleverantören (ISV).

Implementera API:er för jobbarbetsbelastning

För att integrera med jobb måste en arbetsbelastning implementera jobb-API:erna enligt definitionen i Swagger-specifikationen.

Tre Infrastruktur-API:er är relaterade till jobb:


Starta jobbinstansen

Slutpunkt: POST /workspaces/{workspaceId}/items/{itemType}/{itemId}/jobTypes/{jobType}/instances/{jobInstanceId}

Det här API:et anropas för att initiera körningen av ett jobb.

  • Svar: API:et ska returnera en 202 Accepted status som anger att jobbet har schemalagts av systemet.

Hämta jobbinstanstillståndet

Slutpunkt: GET /workspaces/{workspaceId}/items/{itemType}/{itemId}/jobTypes/{jobType}/instances/{jobInstanceId}

Fabric använder en avsökningsmekanism för att spåra status för jobbinstansen. Det här API:et anropas varje minut medan jobbinstansen pågår för att kontrollera dess status. Avsökningen stoppas när jobbet har slutförts, oavsett om det lyckas eller på grund av ett fel.

  • Svar: API:et ska returnera en 200 OK status tillsammans med det aktuella jobbinstanstillståndet. Svaret bör innehålla jobbstatus, starttider och sluttider samt felinformation om jobbet misslyckades.

    Jobbstatus som stöds:

    • NotStarted
    • InProgress
    • Completed
    • Failed
    • Cancelled

    Viktigt: Även om jobbet misslyckas bör det här API:et returnera status 200 OK och jobbstatus Failed .


Avbryta en jobbinstans

Slutpunkt: POST /workspaces/{workspaceId}/items/{itemType}/{itemId}/jobTypes/{jobType}/instances/{jobInstanceId}/cancel

Anropa det här API:et för att avbryta en pågående jobbinstans.

  • Svar: API:et ska returnera en 200 OK status tillsammans med det aktuella jobbinstanstillståndet. Svaret bör innehålla jobbstatus, start- och sluttider och felinformation om jobbet misslyckades.

Mer information

Antal döda jobb:

Ett jobb markeras som en "död bokstav" av Fabric-plattformen om det inte startar inom 2 timmar.

Exempelimplementering

Ett exempel på implementering av dessa API:er finns i JobsControllerImpl.cs i exempellagringsplatsen.

Klientdel

I det här avsnittet beskrivs hur du konfigurerar en klientdelsimplementering för övervakningshubben.

Köra ett jobb i användargränssnittet för infrastrukturresurser

När du har integrerat jobb i dina objekt på serverdelen kan användarna börja köra jobb.

Användare har två alternativ för att köra jobb i Infrastrukturresurser:

  • Ett obevakat schemalagt jobb. Det här alternativet definieras av användaren för att köras med jämna mellanrum via en delad Fabric-schemaläggare.
  • På begäran med hjälp av arbetsbelastningsgränssnittet med och tilläggets klient-SDK.

Infrastrukturschemaläggningsupplevelse från användargränssnittet

  • Startpunktsalternativ:

    • Använd snabbmenyschemat.

      Skärmbild som visar alternativet Schema i menyn Infrastrukturschemaläggare.

    • Använd workloadClient.itemSettings.open, där det valda inställnings-ID:t är Schedule.

  • Layout

    Skärmbild som visar inställningar för Infrastrukturschemaläggare.

    1. Den senaste lyckade uppdateringstiden och nästa uppdateringstid.
    2. Knappen Uppdatera .
    3. Inställningarna för objektschema.

Introduktion

Steg 1: Lägg till ett snabbmenyalternativ för schema

Om du vill visa knappen Schema i snabbmenyn för objekt lägger du till en ny post i contextMenuItems egenskapen i objektets klientdelsmanifest:

{
    "name": "schedule"
}

Steg 2: Lägg till inställningar för objektschema

Lägg till en ny schedule post i egenskapen objektinställningar i klientdelsmanifestet:

"schedule": {
    "itemJobType": "ScheduledJob",
    "refreshType": "Refresh"
}
  • itemJobType: Den objektjobbstyp som definieras i XML-filen för objektjobbsdefinitionen.
  • refreshType: Anger visningen av knappen Uppdatera . Välj mellan tre alternativ: Använd Refresh och Run för att aktivera uppdateringsknappen och visningsnamnet, eller ange None att knappen Uppdatera ska inaktiveras.

Jobb JavaScript-API:er

Förutom obevakade schemalagda jobb kan en arbetsbelastning köra ett jobb på begäran eller till och med starta ett schemalagt jobb på begäran. Vi tillhandahåller en uppsättning API:er som en del av vår tilläggsklient:

  • API:er för schemalagda jobb:

    • getItemScheduledJobs(objectId: string): Promise<ItemSchedule>
    • createItemScheduledJobs(createItemScheduledJobs: CreateItemScheduleParams): Promise<ItemSchedule>
    • updateItemScheduledJobs(updateItemScheduleParams: UpdateItemScheduleParams): Promise<ItemSchedule>
  • Specifika API:er för jobbinstans:

    • runItemJob(jobParams: RunItemJobParams): Promise<ItemJobInstance>
    • cancelItemJob(jobParams: CancelItemJobParams): Promise<CancelItemJobResult>
    • getItemJobHistory(getHistoryParams: GetItemJobHistoryParams): Promise<ItemJobHistory>

Kommentar

getItemJobHistory returnerar jobbet med den status som för närvarande lagras i Infrastrukturresurser. Eftersom Fabric för närvarande enbart förlitar sig på avsökning bör du vara medveten om att statusen kanske inte är den senaste. Om du behöver ditt användargränssnitt för att återspegla den mest exakta statusen så snart som möjligt rekommenderar vi att du får statusen direkt från serverdelen.

Integrera med övervakningshubben

När data är klara visas objektjobben automatiskt i övervakningshubben. Nästa steg är att lägga till din objekttyp i filterfönstret och konfigurera och implementera tillgängliga åtgärder som en användare kan vidta mot jobben.

Aktivera objektet i filterfönstret för övervakningshubben

Om du vill lägga till objektet i filterfönstret definierar du en ny egenskap i objektets klientdelsmanifest och anger supportedInMonitoringHub till true.

Integrera med snabbåtgärder för jobb

Skärmbild som visar snabbåtgärdsknappar för jobb i övervakningshubben.

En användare kan köra en uppsättning åtgärder mot ett jobb, inklusive avbryta, försöka igen och få information.

Arbetsbelastningsteamet bestämmer vilken de vill aktivera genom att ange itemJobConfig egenskapen i objektets klientdelsmanifest. Om den inte har angetts visas inte ikonen.

Till exempel visas konfigurationen som vi lade till i vårt exempelobjekt som stöder alla jobbåtgärder senare i det här avsnittet.

När en användare väljer ikonen Avbryt för exempelobjektjobbet anropar vi den angivna åtgärden item.job.cancel. Den jobbrelaterade kontexten till tillägget Fabric.WorkloadSample implementeras av arbetsbelastningen för att faktiskt avbryta jobbet.

Infrastrukturplattformen förväntar sig också ett svar från den här åtgärden för att meddela användaren resultatet.

"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"
        }
    }
}

Fönstret Jobbinformation

Skärmbild som visar fönstret med jobbinformation i övervakningshubben.

När arbetsbelastningsteamet registrerar åtgärden för detaljerad information förväntar sig Fabric att arbetsbelastningsåtgärden returnerar data i ett specifikt format så att Fabric kan visa den informationen på sidopanelen.

För närvarande stöds nyckel/värde-par i oformaterad text eller hyperlänk.

  • Ett exempel på hur du hanterar jobbåtgärderna finns i index.worker.ts i exempelrepoen. I filen söker du efter åtgärder som börjar med item.job.

Senaste körningar

Förutom att visa jobbstatus i övervakningshubben erbjuder Fabric en delad användarupplevelse för att visa de senaste körningarna av ett visst objekt.

Startpunkter:

  • Snabbmeny>Senaste körningar

    Skärmbild av det senaste körningsalternativet på alternativmenyn.

  • workloadClient.itemRecentRuns.open.

Introduktion

Steg 1: Lägg till recentRuns snabbmenyobjekt

Om du vill visa knappen Senaste körningar i objektmenyn lägger du till en ny post i contextMenuItems egenskapen i objektets klientdelsmanifest.

Exempel:

{
    "name": "recentruns"
}

Steg 2: Lägg till objektinställningar recentRun

Lägg till en ny recentRun post i egenskapen objektinställningar i klientdelsmanifestet.

Exempel:

"recentRun": {
     "useRecentRunsComponent": true,
}

Jobbintegrering i menyfliksområdet exempelobjekt

Som en del av vårt UI-arbetsbelastningsexempel har vi lagt till ett avsnitt som är dedikerat till jobb i menyfliksområdet objekt.

Skärmbild som visar fliken Objekt i användargränssnittet för infrastrukturresurser.

Ett exempel på hur det här menyfliksområdet implementerades finns i ItemTabToolbar.tsx i exempelrepoen.