Hoppa till innehåll

Övervaka pipelinekörningar

Den här sidan handlar om allt som händer efter att en körning har startat: att hitta den, läsa vad varje steg gjorde och få en misslyckad körning att rulla igen. Se Kör en pipeline manuellt om du vill starta en.

  1. Klicka på Pipelines i arbetsytans sidopanel. Skärmen är arbetsytans körningskö – varje körning, nyaste först.
  2. Använd den vänstra listen för att filtrera. Det finns exakt tre filter, var och ett med en aktuell räknare: Alla, Körs, Misslyckades.
  3. Gå igenom tabellen med ↑/↓ (eller j/k) och tryck på Enter för att öppna den fokuserade körningen. Att klicka på en rad gör samma sak.

Varje rad visar en symbol för hur körningen startade (uppspelningssymbol för manuell; en filsymbol för en kodgrafsbevakning; annars den automatiska triggern). Verktygstipset anger triggern – Manuell, PR publicerad, Filändring och så vidare – och, för en bevakningskörning, vilka filer som ändrades. Sedan pipelinenamnet, ett statusmärke, den aktiva varaktigheten (eller köpositionen för en queued-körning) och hur länge sedan det här försöket startade. Aktiv varaktighet utesluter overksamma luckor för stopp och omstart, så det är inte hela klocktiden.

Det finns inget filter för slutförda, pausade eller avbrutna körningar, inget filter per mall, inget tidsfönster och ingen körningshistorik per mall. Att jämföra körningar av en mall innebär att skanna kön efter dess namn.

En körnings sida har tre staplade delar.

Metaraden innehåller starttiden, aktiv varaktighet, stegförloppet (“3 av 7 steg”), en felsammanfattning som namnger steget som gick sönder och varför, samt åtgärderna Försök igen och Ta bort.

Tidslinjen ger en stapel per steg, med dess varaktighet och – för agentsteg – dess kostnad i cent. Ett steg som gjordes om visar suffixet ×N efter sin varaktighet; det suffixet är det enda stället där antalet försök syns.

Grafduken ritar mallen med varje nods aktuella status. Att välja en nod öppnar dess stegpanel.

Status Betydelse
Väntar Skapad, inte startad ännu
I kö Antagen men hållen: mallens tak för max parallella körningar är nått; inga stegrader ännu
Körs Körs
Pausad Väntar på något externt – normalt, inte fastnat
Slutförd Slutfördes utan fel
Misslyckades Avslutades med ett fel
Avbruten Stoppad av en användare eller av systemet

Steg har samma statusar utom I kö, plus Hoppad över, för en gren som en router inte tog (och dess nu oåtkomliga ättlingar).

Pausad är där ett agentsteg tillbringar större delen av sitt liv: en utskickad agent eller en godkännandegrind håller steget tills dess arbete landar. Två skyddsnät i motorn låter hela körningen misslyckas i stället för att återuppta: ett steg som varit pausat längre än 24 timmar (extras.awaitApproval – kroppen orchestration.awaitApproval – är undantaget; human.gate är det inte) och ett icke-idempotent steg som var mitt i körningen när servern stoppades.

Välj en nod på duken. Stegpanelen visar, i ordning:

  • En Fel-ruta när steget misslyckades, eller en Hoppad över-ruta med orsaken när det hoppades över.
  • Startad, Avslutad och varaktighet.
  • Gren – grenindexet, för parallella grenar.
  • Visa samtal – hoppar till samtalet som steget körde i. Pipelinesamtal är dolda i sidopanelen, så det här är den enda vägen in.
  • Indata och Utdata, som ihopfällbar JSON.
  • Agentaktivitet – en ruta per agentkörning som steget skickade ut, med dess status, sammanfattning, varaktighet och kostnad.

För ett agentsteg är Utdata den strukturerade nyttolast som agenten skickade in med submit_output, inte dess prosa. Resonemangsspåret finns i Agentaktivitet och i samtalet bakom Visa samtal.

För ett bash-steg är Utdata den trimmade stdout som skriptet skrev vid exit 0. En icke-noll-exit gör att steget misslyckas, med slutet av stderr som felmeddelande.

  1. Läs felsammanfattningen i metaraden; den namnger steget som misslyckades. Stegpanelens Fel-ruta har meddelandet.
  2. Kontrollera stegets Indata – en saknad eller felstavad tillståndsnyckel är den vanligaste orsaken. Ett prompt-agent-steg misslyckas direkt och namnger de olösta platshållarna; ett bash-steg renderar dem som tomma strängar och kör ändå, vilket oftast visar sig ett steg senare.
  3. För ett agentsteg, öppna Visa samtal och läs vad agenten faktiskt gjorde.
  4. Tryck på Försök igen i metaraden. Slutförda och överhoppade steg behåller sina utdata; allt annat tas bort och körs igen, och körningen växlar tillbaka till Körs. Varaktighetsklockan startar om för det här försöket.

Vanliga orsaker som är värda att kontrollera först:

  • Timeout – steget överskred sin Timeout (ms). Kom ihåg att fältet är i millisekunder.
  • Skriptfel – bash-kommandot avslutades med icke-noll, eller så finns inte bash i PATH på servervärden.
  • Schemavalidering – agentens submit_output-nyttolast uppfyllde inte stegets utdataschema.
  • Olöst platshållare – en {{key}} som ett prompt-agent-steg refererade till skrevs aldrig uppströms. Felet namnger varje olöst nyckel.
  • Oregistrerad kropp – ett steg vars kroppsnyckel inte är registrerad varnar vid inläsning av mallen och körs sedan helt enkelt aldrig.

Välj det körande steget och tryck på knappen Avsluta körning i stegpanelens sidhuvud. Detta dödar stegets process, markerar steget som misslyckat och låter därför hela körningen misslyckas – varje öppen syskongren avslutas tillsammans med den.

Det finns ingen kontroll för att avbryta körningen på den här skärmen. pipeline.cancel finns som en RPC-operation och motorn implementerar den, men inget i pipelines-gränssnittet anropar den; Avsluta körning på ett steg, eller Ta bort på körningen, är de enda stoppgester som finns.

Kostnaden rapporteras per steg, i tidslinjens högerspalte och på varje ruta under Agentaktivitet. Det finns ingen körningstotal på detaljsidan och ingen kostnadskolumn i körningskön, så att jämföra kostnaden för två körningar innebär att summera deras steg.