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 jobbstatusFailed
.
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.
Använd
workloadClient.itemSettings.open
, där det valda inställnings-ID:t ärSchedule
.
Layout
- Den senaste lyckade uppdateringstiden och nästa uppdateringstid.
- Knappen Uppdatera .
- 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ändRefresh
ochRun
för att aktivera uppdateringsknappen och visningsnamnet, eller angeNone
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
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
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
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.
Ett exempel på hur det här menyfliksområdet implementerades finns i ItemTabToolbar.tsx i exempelrepoen.