ข้ามไปยังเนื้อหา

ติดตามรันไปป์ไลน์

หน้านี้ครอบคลุมทุกอย่างหลังจากรันเริ่มขึ้นแล้ว: การหามันให้เจอ การอ่านว่าขั้นตอน แต่ละตัวทำอะไรไป และการทำให้รันที่ล้มเหลวเดินหน้าต่อได้อีกครั้ง หากต้องการเริ่มรัน ดู รันไปป์ไลน์ด้วยตนเอง

  1. คลิก ไปป์ไลน์ ในแถบข้างของเวิร์กสเปซ หน้าจอนี้คือคิวรันของเวิร์กสเปซ — ทุกรัน เรียงจากใหม่ไปเก่า
  2. ใช้แถบด้านซ้ายในการกรอง มีตัวกรองสามตัวพอดี แต่ละตัวมีตัวเลขนับแบบสด: ทั้งหมด, กำลังรัน, ล้มเหลว
  3. เดินดูตารางด้วย ↑/↓ (หรือ j/k) แล้วกด Enter เพื่อเปิดรันที่โฟกัสอยู่ การคลิกแถวก็ทำแบบเดียวกัน

แต่ละแถวแสดงสัญลักษณ์ว่ารันเริ่มขึ้นอย่างไร (สัญลักษณ์เล่นสำหรับการรันด้วยตนเอง สัญลักษณ์ไฟล์สำหรับการเฝ้าดูกราฟโค้ด และสัญลักษณ์ทริกเกอร์อัตโนมัติในกรณีอื่น) ทูลทิปจะบอกชื่อทริกเกอร์ — ด้วยตนเอง, เผยแพร่ PR, ไฟล์เปลี่ยน และอื่น ๆ — และสำหรับรันจากการเฝ้าดู จะบอกว่าไฟล์ใดเปลี่ยนไปบ้าง จากนั้นจึงเป็นชื่อไปป์ไลน์ ป้ายสถานะ ระยะเวลาทำงานจริง (หรือตำแหน่งในคิวสำหรับรันที่อยู่ในสถานะ queued) และการลองครั้งนี้เริ่มไปนานเท่าใด ระยะเวลาทำงานจริงไม่รวมช่วงว่างจากการหยุดแล้ว เริ่มใหม่ จึงไม่ใช่ช่วงเวลาตามนาฬิกาจริง

ไม่มีตัวกรองสำหรับรันที่เสร็จแล้ว ถูกระงับ หรือถูกยกเลิก ไม่มีตัวกรองรายเทมเพลต ไม่มีช่วงเวลา และไม่มีมุมมองประวัติรันรายเทมเพลต การเทียบรันของเทมเพลตเดียวกัน ทำได้โดยกวาดสายตาหาชื่อของมันในคิว

หน้ารันหนึ่ง ๆ มีสามส่วนซ้อนกัน

แถบเมตา บอกเวลาเริ่ม ระยะเวลาทำงานจริง ความคืบหน้าของขั้นตอน (“3 จาก 7 ขั้นตอน”) สรุปความล้มเหลวที่ระบุขั้นตอนที่พังและสาเหตุ และการกระทำ ลองใหม่ กับ ลบ

แผนภาพน้ำตกเวลา ให้แท่งหนึ่งแท่งต่อหนึ่งขั้นตอน พร้อมระยะเวลา และสำหรับ ขั้นตอนเอเจนต์ จะมีต้นทุนเป็นเซนต์ ขั้นตอนที่ถูกลองใหม่จะแสดงส่วนต่อท้าย ×N ต่อจากระยะเวลา ส่วนต่อท้ายนี้เป็นที่เดียวที่จำนวนครั้งที่ลองปรากฏออกมา

แคนวาสกราฟ วาดเทมเพลตพร้อมสถานะสดของแต่ละโหนด การเลือกโหนดจะเปิด แผงขั้นตอนของมัน

สถานะ ความหมาย
รอดำเนินการ สร้างแล้ว ยังไม่เริ่ม
อยู่ในคิว รับเข้าแล้วแต่ถูกกักไว้: เพดานรันขนานสูงสุดของเทมเพลตนี้เต็มแล้ว; ยังไม่มีแถวขั้นตอน
กำลังรัน กำลังทำงาน
ระงับ รออะไรบางอย่างจากภายนอก — ปกติ ไม่ได้ค้าง
เสร็จแล้ว จบลงอย่างสำเร็จ
ล้มเหลว จบลงด้วยข้อผิดพลาด
ยกเลิกแล้ว ถูกหยุดโดยผู้ใช้หรือโดยระบบ

ขั้นตอนมีสถานะเหล่านั้นยกเว้น อยู่ในคิว และเพิ่ม ข้ามแล้ว สำหรับสาขาที่ เราเตอร์ไม่ได้เลือกไป (รวมถึงโหนดสืบทอดที่ไปไม่ถึงแล้วในตอนนี้)

ระงับ คือสถานะที่ขั้นตอนเอเจนต์ใช้เวลาส่วนใหญ่: เอเจนต์ที่ถูกสั่งงานหรือ เกตการอนุมัติจะกักขั้นตอนไว้จนกว่างานของมันจะเสร็จลง กลไกกันพลาดสองข้อของเอนจิน ทำให้ทั้งรันล้มเหลวแทนที่จะรันต่อ: ขั้นตอนที่ถูกระงับนานกว่า 24 ชั่วโมง (extras.awaitApproval — บอดี orchestration.awaitApproval — ได้รับยกเว้น; human.gate ไม่ได้รับ) และขั้นตอนที่ไม่เป็น idempotent ซึ่งกำลังทำงานอยู่ ตอนเซิร์ฟเวอร์หยุด

เลือกโหนดบนแคนวาส แผงขั้นตอนจะแสดงตามลำดับ:

  • กล่องข้อความ ข้อผิดพลาด เมื่อขั้นตอนล้มเหลว หรือกล่องข้อความ ข้ามแล้ว พร้อมเหตุผลเมื่อขั้นตอนถูกข้าม
  • เริ่มแล้ว, จบแล้ว และระยะเวลา
  • สาขา — ดัชนีสาขา สำหรับสาขาที่รันขนานกัน
  • ดูการสนทนา — กระโดดไปยังการสนทนาที่ขั้นตอนรันอยู่ การสนทนาของไปป์ไลน์ ถูกซ่อนจากแถบข้าง นี่จึงเป็นทางเข้าเดียว
  • อินพุต และ เอาต์พุต เป็น JSON ที่พับเก็บได้
  • กิจกรรมของเอเจนต์ — การ์ดหนึ่งใบต่อการรันเอเจนต์หนึ่งครั้งที่ขั้นตอน สั่งงาน พร้อมสถานะ สรุป ระยะเวลา และต้นทุน

สำหรับขั้นตอนเอเจนต์ เอาต์พุต คือเพย์โหลดแบบมีโครงสร้างที่เอเจนต์ส่งมาด้วย submit_output ไม่ใช่ข้อความบรรยายของมัน ร่องรอยการให้เหตุผลอยู่ใน กิจกรรมของเอเจนต์ และในการสนทนาที่อยู่หลัง ดูการสนทนา

สำหรับขั้นตอน bash เอาต์พุต คือ stdout ที่ถูกตัดช่องว่างหัวท้าย ซึ่งสคริปต์ เขียนไว้ตอนออกด้วยรหัส 0 การออกด้วยรหัสที่ไม่ใช่ศูนย์ทำให้ขั้นตอนล้มเหลว โดยใช้ ส่วนท้ายของ stderr เป็นข้อความข้อผิดพลาด

  1. อ่านสรุปความล้มเหลวบนแถบเมตา มันจะระบุขั้นตอนที่ล้มเหลว กล่องข้อความ ข้อผิดพลาด ในแผงขั้นตอนมีข้อความนั้น
  2. ตรวจ อินพุต ของขั้นตอน — คีย์สถานะที่หายไปหรือพิมพ์ผิดคือสาเหตุที่พบบ่อย ที่สุด ขั้นตอนพรอมป์ต์เอเจนต์จะล้มเหลวทันทีและระบุชื่อตัวยึดตำแหน่งที่ยังแก้ ไม่ได้ ส่วนขั้นตอน bash จะแทนที่ด้วยสตริงว่างแล้วรันต่อไป ซึ่งมักปรากฏให้เห็น ในอีกหนึ่งขั้นตอนถัดมา
  3. สำหรับขั้นตอนเอเจนต์ ให้เปิด ดูการสนทนา แล้วอ่านว่าเอเจนต์ทำอะไรไปจริง ๆ
  4. กด ลองใหม่ บนแถบเมตา ขั้นตอนที่เสร็จแล้วและที่ถูกข้ามจะเก็บเอาต์พุตไว้ ส่วนที่เหลือจะถูกลบและรันใหม่ และรันจะกลับไปเป็นกำลังรัน นาฬิกาจับระยะเวลา จะเริ่มนับใหม่สำหรับการลองครั้งนี้

สาเหตุที่พบบ่อยซึ่งควรตรวจก่อน:

  • หมดเวลา — ขั้นตอนเกิน หมดเวลา (ms) ของมัน อย่าลืมว่าช่องนี้เป็น มิลลิวินาที
  • สคริปต์ผิดพลาด — คำสั่ง bash ออกด้วยรหัสที่ไม่ใช่ศูนย์ หรือ bash ไม่ได้ อยู่บน PATH ของโฮสต์เซิร์ฟเวอร์
  • การตรวจสอบสคีมา — เพย์โหลด submit_output ของเอเจนต์ไม่เป็นไปตามสคีมา เอาต์พุตของขั้นตอน
  • ตัวยึดตำแหน่งที่แก้ไม่ได้ — {{key}} ที่ขั้นตอนพรอมป์ต์เอเจนต์อ้างถึง ไม่เคยถูกเขียนขึ้นในต้นทาง ข้อผิดพลาดจะระบุทุกคีย์ที่แก้ไม่ได้
  • บอดีที่ไม่ได้ลงทะเบียน — ขั้นตอนที่คีย์บอดีไม่ได้ลงทะเบียนจะเตือนตอนโหลด เทมเพลต แล้วก็ไม่ทำงานเลย

เลือกขั้นตอนที่กำลังรัน แล้วกดปุ่ม ฆ่าที่กำลังรัน ในส่วนหัวของแผงขั้นตอน การทำเช่นนี้จะฆ่ากระบวนการของขั้นตอน ทำเครื่องหมายว่าขั้นตอนล้มเหลว และทำให้ ทั้งรันล้มเหลวตามไปด้วย — ทุกสาขาพี่น้องที่ยังเปิดอยู่จะถูกปิดไปพร้อมกัน

ไม่มีตัวควบคุมสำหรับยกเลิกรันบนหน้าจอนี้ pipeline.cancel มีอยู่เป็นปฏิบัติการ RPC และเอนจินรองรับมัน แต่ไม่มีส่วนใดใน UI ของไปป์ไลน์เรียกใช้มัน ฆ่าที่กำลังรัน บนขั้นตอน หรือ ลบ บนรัน คือท่าหยุดเดียวเท่านั้นที่มีให้ใช้

ต้นทุนรายงานแยกตามขั้นตอน ในคอลัมน์ขวาของแผนภาพน้ำตกเวลา และบนการ์ดแต่ละใบ ใต้ กิจกรรมของเอเจนต์ ไม่มีผลรวมระดับรันบนหน้ารายละเอียด และไม่มีคอลัมน์ ต้นทุนในคิวรัน ดังนั้นการเทียบต้นทุนของสองรันจึงต้องบวกต้นทุนของขั้นตอนทั้งหมด เข้าด้วยกัน