Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

AppSignal ปรับปรุงการติดตาม Ruby ด้วยการรองรับ Long-Running Streaming Rack Response

เราตื่นเต้นที่จะประกาศว่า AppSignal ตอนนี้เสนอการติดตามที่ปรับปรุงแล้วสำหรับ long-running streaming Rack responses การติดตาม Rack response ที่ปรับปรุงนี้หมายความว่าคุณสามารถได้รับความสามารถมองเห็น (visibility) ลึกซึ้งยิ่งขึ้นเกี่ยวกับสุขภาพของ long-running responses ของแอปพลิเคชัน Ruby ของคุณ ทำให้คุณจับข้อผิดพลาดที่อาจเกิดขึ้นหลังจากนาทีหรือแม้แต่ชั่วโมงหลังจากที่ response body ถูกส่งเสิร์ฟแล้ว

ชั้น observability ใหม่นี้มาจากการมีส่วนร่วมที่มีค่าจาก Julik Tarkhanov, Director of Engineering ที่ Cheddar Payments งานของเขาทำให้เราสามารถติดตาม long-running responses ภายใน Ruby gem ของเราได้ เพิ่มการรองรับ real-time performance monitoring

ในโพสต์บล็อกนี้ เราจะอธิบายว่าการเพิ่มเติมนี้หมายความว่าอะไรเมื่อติดตามแอป Ruby ของคุณ และอภิปรายว่าแนวทาง open-source ของเราส่งเสริมการร่วมมือกับลูกค้าเพื่อให้ข้อมูลเชิงลึกที่可操作และมีผลกระทบสูง

ทำไมต้องติดตาม Long-Running Rack Responses?

โดยปกติ เมื่อติดตาม Rack responses AppSignal สามารถ trace เวลาที่ใช้ในการ render response body:

AppSignal ปรับปรุงการติดตาม Ruby ด้วยการรองรับ Long-Running Streaming Rack Response
Standard Rack Response Monitoring

อย่างไรก็ตาม AppSignal ก่อนหน้านี้ไม่สามารถติดตาม long-running responses ได้ เช่น เมื่อดาวน์โหลดไฟล์ขนาดใหญ่ หมายความว่าไม่สามารถรู้ได้ว่า response ใช้เวลานานเท่าไรในการ render หรือมี exception ใดๆ เกิดขึ้นขณะที่มันกำลังถูก render

แม้ปัญหานี้จะเป็น niche และไม่ค่อยน่าจะใช้กับประสบการณ์ response monitoring ของลูกค้าส่วนใหญ่ แต่มันเป็นปัญหาสำหรับ Cheddar Payments สำหรับ use case ของพวกเขา ความไม่สามารถติดตาม long-running responses ทำให้เกิดความท้าทายในการติดตามประสิทธิภาพและวินิจฉัยความล้มเหลวที่อาจเกิดขึ้นระหว่างกระบวนการที่ยาวนาน

ที่ Cheddar Payments เรามีการดาวน์โหลดรายงานสำคัญที่ส่งมอบในรูปแบบ streaming ภายใน zip files จาก Rails ฉันสังเกตว่าการเสิร์ฟรายงานเหล่านี้ถูก排除ออกจากการติดตาม AppSignal — เพราะ AppSignal tracing จะหยุดเมื่อ "main" ส่วนของ HTTP interaction ในแอปเสร็จสิ้น การ trace responses เหล่านี้เป็นกุญแจสำคัญเพราะมีข้อผิดพลาดในการสร้างรายงานเหล่านั้น ซึ่งเราไม่สามารถเห็นได้ใน AppSignal

Julik Tarkhanov, Director of Engineering at Cheddar Payments

โซลูชันจากการมีส่วนร่วม (Contribution-Driven Solution) สำหรับการติดตาม Long-Running Rack Responses

เนื่องจากประสบการณ์ของเขากับ long-running responses ใน Rack จากยุคที่เขาอยู่ที่ WeTransfer Julik ตัดสินใจมีส่วนร่วมกับ Ruby gem ของเรา นำโซลูชันการติดตาม long-running responses มาใช้

เรามี APM (AppSignal) อยู่แล้ว มีบางฟังก์ชันที่สามารถนำไปใช้ได้ง่าย ทำไมไม่ทำ?

แทนที่จะสำรวจทางเลือกอื่น Pull request เริ่มต้นของ Julik นำเสนอวิธีการติดตาม long-running Rack responses ภายใน traces ของ AppSignal ขอบคุณความพยายามของ Tom จากทีม AppSignal Integrations เราได้นำโซลูชันไปใช้งานอย่างเต็มที่ใน PR #1140 และเผยแพร่ใน version 3.10 ของ Ruby gem ของเรา แก้ไข edge cases และปรับปรุงความน่าเชื่อถือ

โซลูชันของ Julik ช่วยให้ทีมของเขาสามารถใช้ AppSignal ติดตามต่อไปได้ ตอบสนองความต้องการในการติดตาม longer-running responses โดยไม่ต้องนำไปใช้หรือสลับไปใช้เครื่องมือทางเลือก

AppSignal ตอนนี้สามารถจับระยะเวลาของ long-running responses และแจ้งเตือนลูกค้าหากมีปัญหาเกิดขึ้นที่จุดใดจุดหนึ่งระหว่างการ render response ให้ลูกค้าของเราชั้น observability เพิ่มเติม

AppSignal ปรับปรุงการติดตาม Ruby ด้วยการรองรับ Long-Running Streaming Rack Response
Long-Running Response Monitoring

ทำไมเราถึงให้คุณค่ากับ Open-Source Contributions

ที่ AppSignal เราได้ให้คุณค่ากับ customer feedback และ feature requests เสมอ แม้ไม่ทุก request จะสามารถไปสู่ production ได้ แต่เราเปิดรับการสำรวจความต้องการของลูกค้า

เมื่อเราระบุความต้องการที่อาจประโยชน์ต่อทุกคน เราจะพยายามดูว่าเราสามารถเปลี่ยนมันเป็นโซลูชันที่ทำงานได้หรือไม่ ในการทำงานของหลายคนในชุมชน Rails เราเชื่อในพลังของ open-source collaboration ซึ่งช่วยให้เราอยู่ได้ยืดหยุ่นและตอบสนองต่อความต้องการของลูกค้าที่พัฒนาไป

ในฐานะทีมเล็กที่ bootstrap เราไม่สามารถนำฟีเจอร์ทุกอย่างใน wishlist ของทุก client ไปใช้ได้ นี่คือที่ที่ contributions ให้ gem ของเราเข้ามาช่วย: พวกเขาช่วยให้เราขยายความสามารถของผลิตภัณฑ์และจัดการฟีเจอร์สำคัญได้เร็วขึ้น ด้วยความช่วยเหลือจากชุมชน

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

Thijs Cadier, AppSignal's CTO

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

  • Free expert support (การสนับสนุนจากผู้เชี่ยวชาญฟรี)
  • Transparent pricing (ราคาโปร่งใส)
  • Flexible upgrade policy (นโยบายอัปเกรดที่ยืดหยุ่น)
  • Easy-to-use interface (อินเตอร์เฟซใช้งานง่าย)

ยังไม่เชื่อ? นี่คือสิ่งที่ Julik กล่าว:

AppSignal เป็นผลิตภัณฑ์ที่ยอดเยี่ยม และการลองใช้ไม่ใช่การ commit ที่ใหญ่โตในแง่ของ tooling และด้วยการเริ่มต้นของ OpenTelemetry มันจะดีขึ้นไปอีก

ด้วย installation wizard ของเรา คุณสามารถเริ่ม free trial และทำให้ AppSignal ทำงานได้ในเวลาน้อยกว่าการดื่มกาแฟหนึ่งแก้ว โอ้ และเราบอกไว้หรือยังว่าเราส่ง stroopwafels (ตามคำขอ) ให้ลูกค้าใหม่?

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

AppSignal ปรับปรุงการติดตาม Ruby ด้วยการรองรับ Long-Running Streaming Rack Response
AppSignal Team

Connor James

Developer Marketing Manager ที่ AppSignal ผู้ติดพอดแคสต์ที่รัก cannoli จนคิดจะเปลี่ยนชื่อเป็น Connoli เขาคิดว่ามี 'u' ใน color คุณอาจพบเขาบนไมค์ บนเวที หรือนอนบนโซฟาเมื่อเขาออฟดูตี้

บทความทั้งหมดโดย Connor James