Error Tracking ด้วย Sentry.io

เกริน เกริ่น เกริ้น …

ว่าด้วยเรื่องของ Error tracking แล้วเนี่ยก็มี Tool มากมาย หรือในบางภาษา หรือเฟรมเวิร์คที่ใช่ ก็อาจจะมี Library ให้ใช้อยู่แล้วก็ได้ ซึ่งบางตัวที่ใช้เมื่อมี Error มาก็จะส่งไปที่อีเมล อีเมล แล้วก็อีเมล ​แล้วถ้ามีหลายโปรเจคล่ะ ก็ส่งไปที่อีเมล อีเมล อีเมลๆ โอ้นี่ยังไม่รวม อีเมลอื่นๆ อีกนะ ถ้าไม่จัดกลุ่มของอีเมลนี่หากันไม่เจอเลยว่า อันไหนเป็น Error

วันนี้เลยมี Tool อันนึงมาแนะนำ นั่นคือ Sentry.io ที่มีฟีเจอร์การทำงานที่เรียกได้ว่าครบเลยรองรับหลาย Platform และติดตั้งง่ายมากกก แล้ว Sentry.io มีฟีเจอร์ อะไรบ้างไปดูกัน

Platforms

ปล. ใน Blog นี่ยกมาแค่บางฟีเจอร์เท่านั้นนะ (https://sentry.io/features/)

Issues List

Error tracking list

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

Issue Detail

พอกดเข้ามาจากหน้ารายการ ก็จะเจอรายละเอียดต่างๆ ที่ละเอียดมาก เช่น เกิด Issue จากบราวเซอร์อะไร เวอร์ชันไหน ไฟล์ไหน บรรทัดที่เท่าไหร่ URL ไหน บลาๆ นี่แค่เป็นค่าตั้งต้นที่ Sentry กำหนดมาให้นะ

นั่นหมายความว่าเราสามารถ Custom ค่าจะส่งมาบอก Sentry ได้ว่าเราอยากรู้อะไรบ้าง จากรูปข้างต้นจะเห็นว่ามี user id: 1 อยู่ (อยู่ในส่วนของ TAGS) คือเราจะรู้ได้ว่าเกิด Issue กับ User ที่ id เท่ากับ 1

Issue detail
นี่ไง user id: 1 ที่พูดถึง

User Feedback

นอกจากจะ Error Tracking แล้วผู้ใช้สามารถส่ง Feedback มาที่ Sentry ได้ ซึ่งทาง Sentry จะมี javaScript ให้แปะบนเว็บของเรา (กรณี Web platform) แล้วก็เขียน Click Event นิดหน่อย ส่วนนี้ก็ใช้งานได้แล้ว

Release

จากรูปด้านบนนี้กำหนดไว้ว่า เป็น Release v0.5 ซึ่งสามารถกำหนดได้ในโค้ด แต่ถ้าไม่กำหนด จะใช้เลข Commit แทน

ซึ่งส่วนนี้ถือว่าดีเลยทีเดียว จะทำให้เรารู้ได้ว่าแต่ละ Release เรามี Issue มากน้อยแค่ไหน

Slack Integration

ตามหัวข้อเลยก็คือนำไปใช้ร่วมกับ Slack เมื่อมี Issue ก็จะ push ไปที่ Slack แต่เราก็สามารถกำหนดได้ว่า จะให้ push ไปที่ Slack เมื่อเป็น Issue แบบไหน และกำหนด Channel ที่จะ push ไปได้เช่นกัน

ตัวอย่างการ Push ไปที่ Slack ซึ่งสามารถ กด Resolve หรือ Ignore ได้ด้วย และสามารถ Assign ให้กับคน หรือทีมได้

Github Integration

เมื่อมาใช้ร่วมกับ Github แล้วก็ไม่พ้นว่าต้องเกี่ยวกับ Code หรือ Commit แน่นอน ซึ่ง ณ ปัจจุบันยัง Resolve Issue จากการแก้โค้ดไม่ได้ แต่ Resolve ได้จาก Commit message ว่าต้องมี fixes ISSUE_ID ใน Commit message เช่น [fixes SAMPLE-PROJECT-1] เมื่อ Push ขึ้นไป Issue ก็จะ Resolve ให้โดยเองอัตโนมัติ ซึ่งก็ถือว่าสะดวกสบายพอสมควรเลยแหละ

รีวิวการฝึกงานกับบานาน่า โคดดิ้ง โดย อั๋น (วิทยาการคอมพิวเตอร์ มหาวิทยาลัยแม่โจ้)

“สวัสดีครับ ก่อนอื่นผมขอแนะนำตัวเองก่อนเลยละกันนะครับผมชื่อ อั๋น เพิ่งจบปี 3 คณะวิทยาศาสตร์ สาขาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยแม่โจ้ จ.เชียงใหม่” ซึ่งหลังจากจบปีที่ 3 ก่อนจะขึ้นปีที่ 4 นั้นก็จะต้องผ่านการฝึกงานกับบริษัทก่อน 2 เดือน ผมเลยได้ยื่นสมัครฝึกงานไปกับบริษัทประมาณ 2-3 ที่ได้ แต่ที่แรกที่ติดต่อผมกลับมาคือ Banana Coding ที่นี่ นี่เองครับ ผมจำเหตุการณ์วันที่พี่เค้าติดต่อกลับมาวันนั้นได้เลย เป็นช่วงสาย อยู่ๆ ก็มีคนโทรศัพท์เข้ามา”

ผม : ฮัลโหลครับ สวัสดีครับผม
!@#$ : สวัสดีครับ พี่โทรมาจากบริษัทบานาน่าโค๊ดดิ่งนะครับ ไม่ทราบว่าน้องยังสนใจที่จะฝึกงานบริษัทพี่อยู่รึเปล่าครับ
ด้วยความดีใจตอนนั้นผมรีบตอบกลับไปทันทีเลยว่า
ผม : ครับยังสนใจอยู่ครับ
!@#$ : ได้ครับผมเป็นอันยืนยันเน้อะ งั้นเจอกันเดือนเมษานะครับเดี๋ยวพี่จะส่งอีเมล์ให้เรื่องการเตรียมตัวต่าง ๆ
ผม : ได้ครับผม ขอบคุณมากครับ

หลังจากวางโทรศัพท์ไปเพิ่งมานั่งคิดได้ เดี๋ยวนะบริษัทนี้จำได้ว่าอยู่ไกล ไอ่เราก็ไม่แน่ใจเลยเปิดแผนที่ดู แม่เจ้า !!! 19 โล ไปกลับนี่ 38 โลเลยนะ โอ้โหหหห แย่ละ จะขับรถไหวไหมเนี่ย จะเช่าหอก็คงไม่คุ้มเพราะเราก็อยู่แค่ 2 เดือนมันไม่มีหรอกมั้งที่หอไหนจะประกันหอแค่ 2 เดือนออกได้เลย จะเอาเงินค่าประกันไปทิ้งก็ไม่น่าจะคุ้มอีก เรื่องเช่าหออยู่ใกล้ ๆ ก็ตัดไปได้เลย แถวนั้นเขตของ มช. ด้วยส่วนมากคนในบริษัทเขาน่าจะเป็นเด็ก มช. มีแต่คนเก่งๆทั้งนั้นแน่เลย ตอนนั้นคือแบบกลัวไปหมดคิดไปต่าง ๆ นา ๆ กดดันตัวเองมาก จนสุดท้ายแล้วเราก็ตัดสินใจว่า เอาว่ะ !! ไหน ๆ เราก็เลือกแล้วจะยังไงสุดท้ายแล้วเราจบเราก็ต้องทำงาน เราต้องเจออะไรอีกหลายอย่างอยู่ดี ถือว่าซ้อมละกันก่อนจะจบไปเจอของจริง หลังจากคิดไปต่าง ๆ นาแล้วสุดท้ายพอมาเจอเข้าให้จริง ๆ นี่เรียกได้ว่าคนละเรื่องเลยเริ่มจากการฝึกงานในช่วงเดือนแรกจะเป็นการเข้า Bootcamp คือการปูพื้นฐานต่าง ๆ เพื่อให้พร้อมทำงานจริง โดยพี่ ๆ จะมีเนื้อหามาสอนทุกวันเป็นเวลา 1 เดือนเต็มตัวอย่างคร่าวๆก็คือ Git, Trello, HTML, CSS, Bootstrap, Ruby, RubyOnRails , JavaScript, Typescipt, Angular 2 หรือแม้กระทั่งการเขียน Test โดยการสอนแต่ละหัวข้อก็จะมีการบ้านให้มาฝึกทำ เพื่อให้เข้าใจสิ่งที่เรียนในวันนั้น ๆ ได้ดียิ่งขึ้น แถมหัวข้อในแต่ละวันยังเปลี่ยนคนสอนด้วยนะทำให้เป็นการทำความรู้จักกับพี่ ๆ ไปในตัว

หลังจากที่ผ่าน Bootcamp แล้วจะเป็นการได้ร่วมทำ Project ต่าง ๆ ของบริษัทโดยจะมี Mentors หรือพี่เลี้ยงคอยดูแลเราหากเราติดปัญหาอะไร สามารถสอบถามพี่เค้าได้เลย ตอนแรกที่เราได้จับงานก็แบบ “เอ่อออ เราจะทำงานเค้าพังไหม เราจะทำได้ไหมเนี่ย” สุดท้ายก็ค่อย ๆ ผ่านมันไปได้ด้วยดี ด้วยความช่วยเหลือของพี่ๆ คอยแนะนำเวลาเราติดปัญหาอะไร
การมาฝึกงานของผมนั้นเหมือนเป็นการพิสูจน์อะไรหลาย ๆ อย่างในใจที่คิดเอาไว้ตอนแรกเลยก็ว่าได้ เริ่มแรกจากการเดินทาง 19 กิโลเมตรก็ไม่ได้ไกลแบบที่คิดเท่าไหร่ ขับไปกลับ 38 กิโลเมตรนี่ก็ไม่ได้โหดร้ายอะไรขนาดนั้น อย่างที่สองที่ว่า “แถวนั้นเขตของ มช. ด้วยคนในบริษัทเขาน่าจะเป็นเด็ก มช. มีแต่คนเก่งๆทั้งนั้นแน่เลย” อันนี้เรื่องจริงแหะ มีครั้งนึงได้งานมาให้เขียนฟังก์ชั่นมาเพื่อดักสิ่งที่ลูกค้าเขาไม่ต้องการ ไอ่เราก็นั่งทำ ๆไป พอเสร็จเอาไปส่งให้พี่เค้าดูเพื่อรีวิวโค๊ด เชื่อไหมฮะฟังก์ชั่นที่ผมทำพี่แกย่อให้เหลือแค่บรรทัดเดียวเองแถมยังทำงานได้เหมือนเดิมอีกต่างหาก เค้าเก่งกันจริง ๆ แต่เค้าไม่ได้แค่เก่งอย่างเดียวนะครับ พี่เค้าทุกคนที่นี่เฟรนด์ลี่เข้าหาง่าย สงสัยอะไรสามารถถามหรือคุยกันได้ทุกเรื่องเลย ไม่ว่าจะเป็นเรื่องโปรแกรม หรืออะไรต่าง ๆ นู่นนั่นนี่ ปรึกษาการลงทุนบิทคอยยังได้เลย 5555 คือคุยได้ทุกอย่างจริง ๆ ทำให้บรรยากาศในการทำงานไม่ได้ตึงเครียดเลยดูเป็นกันเองสุด ๆ
ผมได้รับประโยชน์จากการฝึกงานมากมาย  ผมได้ประสบการณ์ในการทำงานจริงกับลูกค้า  ได้เรียนรู้การทำงานเป็นทีม ได้เพิ่มความรับผิดชอบกับงานที่ตัวเองได้รับมอบหมาย ได้เจอกับสภาพแวดล้อมในการทำงานที่สบายและเป็นกันเอง ได้อะไรจากที่นี่อีกเยอะแยะเลยครับ

สุดท้ายนี้ก็อยากจะขอบคุณพี่ ๆ ทุกคนที่คอยดูแลเราตลอดถึงแม้จะเจองานยากบ้าง แต่ก็ไม่รู้สึกเสียใจเลยที่ได้เข้ามาฝึกงานที่นี่ถือว่าได้ประสบการณ์ดีๆ กลับไปเยอะเลย ขอบคุณตัวเองเหมือนกันที่วันนั้นตอบตกลงฝึกงานกับที่นี่ไปแบบมึน ๆ (ทั้งที่ยังไม่ได้คิดเลยด้วยซ้ำมัวแต่ดีใจ) ทำให้ได้เจอบรรยากาศในการทำงานดีๆแบบนี้ ความเป็นกันเองของที่นี่ทำให้เรากล้าที่จะทำอะไรหลายๆอย่างเพิ่มขึ้นเยอะเลย ขอบคุณจากใจจริงครับผม