Ga naar inhoud

Pipeline-runs monitoren

Deze pagina gaat over alles wat er na de start van een run gebeurt: hem vinden, lezen wat elke stap heeft gedaan en een mislukte run weer op gang krijgen. Zie Een pipeline handmatig uitvoeren om er een te starten.

  1. Klik in de zijbalk van de werkruimte op Pipelines. Het scherm is de runwachtrij van de werkruimte — elke run, de nieuwste eerst.
  2. Gebruik de linkerbalk om te filteren. Er zijn precies drie filters, elk met een live teller: Alle, Running, Failed.
  3. Loop de tabel door met ↑/↓ (of j/k) en druk op Enter om de gefocuste run te openen. Op een rij klikken doet hetzelfde.

Elke rij toont een symbool voor hoe de run is gestart (play bij handmatig; een bestandssymbool bij een codegraaf-watcher; anders de automatische trigger). De tooltip noemt de trigger — Handmatig, PR gepubliceerd, Bestandswijziging, enzovoort — en bij een watcher-run welke bestanden er zijn gewijzigd. Dan de naam van de pipeline, een statusbadge, de actieve duur (of de positie in de wachtrij bij een queued-run) en hoe lang geleden deze poging is gestart. De actieve duur laat de inactieve gaten tussen stoppen en herstarten buiten beschouwing, dus het is niet de verstreken kloktijd.

Er is geen filter voor afgeronde, opgeschorte of geannuleerde runs, geen filter per sjabloon, geen tijdvenster en geen uitvoeringsgeschiedenis per sjabloon. Runs van één sjabloon vergelijken betekent de wachtrij afspeuren naar de naam ervan.

De pagina van een run heeft drie delen onder elkaar.

De metastrook bevat de starttijd, de actieve duur, de stapvoortgang (“3 van 7 stappen”), een foutsamenvatting die de stap noemt die is stukgelopen en waarom, en de acties Opnieuw proberen en Verwijderen.

De tijdlijn geeft één balk per stap, met de duur en — bij agentstappen — de kosten in centen. Een stap die opnieuw is geprobeerd, toont na de duur een suffix ×N; dat suffix is de enige plek waar het aantal pogingen opduikt.

Het graafcanvas tekent het sjabloon met de actuele status van elke node. Als je een node selecteert, opent het bijbehorende stappenpaneel.

Status Betekenis
Pending Aangemaakt, nog niet gestart
In wachtrij Toegelaten maar vastgehouden: de limiet voor het maximaal aantal parallelle runs van dit sjabloon is vol; nog geen rijen per stap
Running Wordt uitgevoerd
Suspended Wacht op iets externs — normaal, niet vastgelopen
Completed Succesvol afgerond
Failed Beëindigd met een fout
Cancelled Gestopt door een gebruiker of door het systeem

Stappen hebben die statussen zonder In wachtrij, plus Skipped, voor een tak die een router niet heeft genomen (en de nu onbereikbare afstammelingen daarvan).

Suspended is de status waarin een agentstap het grootste deel van zijn leven doorbrengt: een gedispatchte agent of een goedkeuringspoort houdt de stap vast tot zijn werk binnenkomt. Twee vangnetten van de engine laten de hele run mislukken in plaats van hem te hervatten: een stap die langer dan 24 uur suspended is (extras.awaitApproval — de body orchestration.awaitApproval — is uitgezonderd; human.gate niet) en een niet-idempotente stap die nog liep toen de server stopte.

Selecteer een node op het canvas. Het stappenpaneel toont, in deze volgorde:

  • Een melding Fout wanneer de stap is mislukt, of een melding Overgeslagen met de reden wanneer hij is overgeslagen.
  • Gestart, Voltooid en de duur.
  • Tak — de takindex, bij parallelle takken.
  • Gesprek tonen — springt naar het gesprek waarin de stap heeft gelopen. Pipelinegesprekken zijn verborgen in de zijbalk, dus dit is de enige manier om erin te komen.
  • Invoer en Uitvoer, als inklapbare JSON.
  • Agentactiviteit — één tegel per agentrun die de stap heeft gedispatcht, met de status, samenvatting, duur en kosten.

Bij een agentstap is Uitvoer de gestructureerde payload die de agent met submit_output heeft ingediend, niet zijn proza. Het redeneerspoor staat in Agentactiviteit en in het gesprek achter Gesprek tonen.

Bij een bash-stap is Uitvoer de getrimde stdout die het script bij exit 0 heeft geschreven. Een exitcode die niet nul is, laat de stap mislukken met de staart van stderr als foutmelding.

  1. Lees de foutsamenvatting op de metastrook; die noemt de stap die is mislukt. De melding Fout in het stappenpaneel bevat het bericht.
  2. Controleer de Invoer van de stap — een ontbrekende of verkeerd gespelde statussleutel is de meest voorkomende oorzaak. Een prompt-agentstap mislukt meteen en noemt de onopgeloste placeholders; een bash-stap zet ze om in lege strings en loopt toch door, wat zich meestal een stap later openbaart.
  3. Open bij een agentstap Gesprek tonen en lees wat de agent daadwerkelijk heeft gedaan.
  4. Druk op de metastrook op Opnieuw proberen. Stappen met de status Completed of Skipped behouden hun uitvoer; al het andere wordt verwijderd en opnieuw uitgevoerd en de run springt terug naar Running. De duurklok begint opnieuw voor deze poging.

Veelvoorkomende oorzaken die je eerst moet controleren:

  • Time-out — de stap heeft zijn Time-out (ms) overschreden. Onthoud dat het veld in milliseconden rekent.
  • Scriptfout — het bash-commando is afgesloten met een exitcode die niet nul is, of bash staat niet in de PATH van de serverhost.
  • Schemavalidatie — de submit_output-payload van de agent voldeed niet aan het uitvoerschema van de stap.
  • Onopgeloste placeholder — een {{key}} waarnaar een prompt-agentstap verwees, is nooit stroomopwaarts geschreven. De fout noemt elke onopgeloste sleutel.
  • Niet-geregistreerde body — een stap waarvan de bodysleutel niet is geregistreerd, waarschuwt bij het laden van het sjabloon en wordt daarna simpelweg nooit uitgevoerd.

Selecteer de lopende stap en druk op de knop Actieve stoppen in de kop van het stappenpaneel. Dat beëindigt het proces van de stap, markeert de stap als mislukt en laat daarmee de hele run mislukken — elke open zustertak wordt mee afgesloten.

Er is op dit scherm geen bediening om een run te annuleren. pipeline.cancel bestaat als RPC-operatie en de engine implementeert hem, maar niets in de pipeline-interface roept hem aan; Actieve stoppen op een stap, of Verwijderen op de run, zijn de enige manieren om iets te stoppen.

Kosten worden per stap gerapporteerd, in de rechterkolom van de tijdlijn en op elke tegel onder Agentactiviteit. Er is geen totaal per run op de detailpagina en geen kostenkolom in de runwachtrij, dus de kosten van twee runs vergelijken betekent hun stappen bij elkaar optellen.