39,585 ការអាន
39,585 ការអាន

តើអ្វីជា OpenTelemetry និងរបៀបដែលវាអាចធ្វើអោយគុណភាព Backend របស់អ្នកប្រសើរឡើង?

ដោយ Dmitrii Pakhomov8m2024/06/19
Read on Terminal Reader
Read this story w/o Javascript

យូរ​ពេក; អាន

OpenTelemetry គឺជាកញ្ចប់ឧបករណ៍ដ៏មានអានុភាពសម្រាប់ត្រួតពិនិត្យ និងបំបាត់កំហុសប្រព័ន្ធខាងក្រោយទំនើប។ វារួមបញ្ចូលការតាមដាន ការកត់ត្រា និងការប្រមូលម៉ែត្រ ដោយផ្តល់នូវទិដ្ឋភាពរួមនៃការអនុវត្តកម្មវិធី និងភាពជឿជាក់។ មគ្គុទ្ទេសក៍នេះស្វែងយល់ពីប្រវត្តិ គោលគំនិតសំខាន់ៗ និងការអនុវត្តរបស់វា ដែលធ្វើឱ្យវាមានសារៈសំខាន់សម្រាប់ការបង្កើនប្រសិទ្ធភាពសេវាកម្មខ្នាតតូច និងប្រព័ន្ធចែកចាយ។

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - តើអ្វីជា OpenTelemetry និងរបៀបដែលវាអាចធ្វើអោយគុណភាព Backend របស់អ្នកប្រសើរឡើង?
Dmitrii Pakhomov HackerNoon profile picture
0-item

កាលពីមុន នៅពេលដែលយើងនិយាយអំពីផ្នែកខាងក្រោយ ជាធម្មតាយើងសំដៅទៅលើកម្មវិធីធំមួយដែលមានមូលដ្ឋានទិន្នន័យធំតែមួយ ហើយការកត់ត្រាគឺគ្រប់គ្រាន់សម្រាប់ការត្រួតពិនិត្យ។ ឥឡូវនេះ ដោយសារបច្ចេកវិទ្យាដូចជា Kubernetes សេវាមីក្រូ បានក្លាយជាស្តង់ដារ។ កម្មវិធី​មាន​ច្រើន និង​ចែកចាយ ហើយ​ការ​កត់ត្រា​តាម​បែប​ប្រពៃណី​លែង​គ្រប់គ្រាន់​សម្រាប់ ​ការ​បំបាត់​កំហុស និង​ការ​វិភាគ​បញ្ហា​ក្នុង​កម្មវិធី​របស់​យើង​ទៀត​ហើយ។

ដំណោះស្រាយដ៏ល្អសម្រាប់ការរៀបចំការត្រួតពិនិត្យគឺ OpenTelemetry ដែលជាកញ្ចប់ឧបករណ៍ទំនើបដែលអាចត្រូវបានប្រើសម្រាប់ការបំបាត់កំហុស និងការវិភាគដំណើរការនៃប្រព័ន្ធចែកចាយ។


អត្ថបទនេះត្រូវបានបម្រុងទុកសម្រាប់អ្នកជំនាញផ្នែកព័ត៌មានវិទ្យាដែលស្វែងរកការពង្រីកចំណេះដឹងរបស់ពួកគេក្នុងការបង្កើនប្រសិទ្ធភាពផ្នែកខាងក្រោយ។ ខាងក្រោមនេះ យើងនឹងរៀបរាប់លម្អិតអំពីអ្វីដែល OpenTelemetry គឺជាអ្វី គំនិតសំខាន់ៗរបស់វា និងបញ្ហាដែលវាជួយដោះស្រាយ។ ប្រសិនបើអ្នកចាប់អារម្មណ៍អំពីរបៀបដែល OpenTelemetry អាចផ្លាស់ប្តូរវិធីសាស្រ្តរបស់អ្នកក្នុងការត្រួតពិនិត្យ និងបំបាត់កំហុសប្រព័ន្ធ backend បង្កើនភាពជឿជាក់ និងប្រសិទ្ធភាពរបស់ពួកគេ — អានបន្ត។


ប្រវត្តិសង្ខេបនៃ OpenTelemetry

ក្រុមហ៊ុនបច្ចេកវិទ្យាធំ ៗ ដំបូងបានប្រឈមមុខនឹងបញ្ហានៃការកាប់ឈើចែកចាយនិងតាមដាននៅចុងទសវត្សរ៍ឆ្នាំ 2000 ។ ក្នុងឆ្នាំ 2010 Google បានបោះពុម្ពក្រដាសមួយ Dapper ដែលជាប្រព័ន្ធចែកចាយខ្នាតធំ រចនាសម្ព័ន្ធតាមដាន ដែលបានដាក់មូលដ្ឋានគ្រឹះសម្រាប់ឧបករណ៍តាមដានរបស់ Twitter ឈ្មោះ Zipkin ដែលបានចេញផ្សាយក្នុងឆ្នាំ 2012។


ក្នុងឆ្នាំ 2014 Kubernetes បានលេចចេញជារូបរាងឡើង ដែលធ្វើអោយការវិវឌ្ឍន៍នៃសេវាកម្មមីក្រូ និងប្រព័ន្ធចែកចាយតាមពពកផ្សេងៗទៀតមានភាពសាមញ្ញ។ នេះនាំឱ្យក្រុមហ៊ុនជាច្រើនជួបប្រទះបញ្ហាជាមួយនឹងការចែកចាយការកាប់ឈើ និងការតាមដាននៅក្នុងសេវាមីក្រូ។ ដើម្បីកំណត់ស្តង់ដារការតាមដានការចែកចាយ ស្តង់ដារ OpenTracing ដែលអនុម័តដោយ CNCF និងគម្រោង OpenCensus របស់ Google ត្រូវបានបង្កើតឡើង។


នៅឆ្នាំ 2019 គម្រោង OpenTracing និង OpenCensus បានប្រកាសការរួមបញ្ចូលគ្នាក្រោមឈ្មោះ OpenTelemetry ។ វេទិកានេះរួមបញ្ចូលគ្នានូវការអនុវត្តល្អបំផុតដែលបានប្រមូលផ្តុំក្នុងរយៈពេលជាច្រើនឆ្នាំ ដែលអនុញ្ញាតឱ្យមានការរួមបញ្ចូលគ្នានៃការតាមដាន ការកត់ត្រា និងម៉ែត្រទៅក្នុងប្រព័ន្ធណាមួយដោយមិនគិតពីភាពស្មុគស្មាញរបស់វា។


សព្វថ្ងៃនេះ OpenTelemetry មិនមែនគ្រាន់តែជាគម្រោងមួយប៉ុណ្ណោះទេ។ វាជាស្តង់ដារឧស្សាហកម្មសម្រាប់ការប្រមូល និងបញ្ជូនទិន្នន័យទូរលេខ។ វាត្រូវបានបង្កើតឡើង និងគាំទ្រដោយសហគមន៍អ្នកឯកទេស និងក្រុមហ៊ុនឈានមុខគេក្នុងទីផ្សារដូចជា Google និង Microsoft ជាដើម។ គម្រោងនេះបន្តវិវឌ្ឍ ដោយទទួលបានសមត្ថភាពថ្មីៗ ដើម្បីសម្រួលដល់ការរួមបញ្ចូល និងដំណើរការប្រើប្រាស់។


តើមានអ្វីនៅខាងក្នុង?

OpenTelemetry គឺជាសំណុំនៃការអនុវត្ត និងឧបករណ៍ដ៏ទូលំទូលាយដែលកំណត់នូវសញ្ញាអ្វីដែលកម្មវិធីអាចបង្កើតដើម្បីធ្វើអន្តរកម្មជាមួយពិភពខាងក្រៅ និងរបៀបដែលសញ្ញាទាំងនេះអាចត្រូវបានប្រមូល និងមើលឃើញដើម្បីតាមដានស្ថានភាពនៃកម្មវិធី និងប្រព័ន្ធទាំងមូល។ ប្រភេទសញ្ញាសំខាន់ៗចំនួនបីគឺ ការតាមដាន ការកត់ត្រា និង ការប្រមូលម៉ែត្រ


**តោះមើលសមាសធាតុនីមួយៗឱ្យកាន់តែច្បាស់៖ \

បរិបទ

OpenTelemetry ណែនាំគំនិតនៃបរិបទប្រតិបត្តិការ។ បរិបទរួមបញ្ចូលជាចម្បងនូវគុណលក្ខណៈដូចជា `trace_id` (ឧបករណ៍កំណត់អត្តសញ្ញាណសម្រាប់ប្រតិបត្តិការបច្ចុប្បន្ន) និង `span_id` (ឧបករណ៍កំណត់អត្តសញ្ញាណសម្រាប់សំណើរង ដោយការព្យាយាមម្តងទៀតនៃសំណើរងនីមួយៗមាន `span_id` តែមួយគត់)។


លើសពីនេះ បរិបទអាចផ្ទុកព័ត៌មានឋិតិវន្ត ដូចជាឈ្មោះថ្នាំងដែលកម្មវិធីត្រូវបានដាក់ពង្រាយ ឬឈ្មោះបរិស្ថាន (prod/qa)។ វាលទាំងនេះដែលគេស្គាល់ថាជាធនធាននៅក្នុងពាក្យ OpenTelemetry ត្រូវបានភ្ជាប់ទៅរាល់កំណត់ហេតុ រង្វាស់ ឬដានសម្រាប់ភាពងាយស្រួលនៃការស្វែងរក។ បរិបទក៏អាចរួមបញ្ចូលទិន្នន័យថាមវន្តផងដែរ ដូចជាឧបករណ៍កំណត់អត្តសញ្ញាណនៃចំណុចបញ្ចប់បច្ចុប្បន្ន ( `http_path: "GET /user/:id/info"` ) ដែលអាចត្រូវបានភ្ជាប់ដោយជ្រើសរើសទៅក្រុមនៃកំណត់ហេតុ រង្វាស់ ឬដាន។


បរិបទ OpenTelemetry អាចត្រូវបានឆ្លងកាត់រវាងកម្មវិធីផ្សេងគ្នាដោយប្រើពិធីការផ្សព្វផ្សាយបរិបទ។ ពិធីការទាំងនេះមានសំណុំបឋមកថាដែលត្រូវបានបន្ថែមទៅរាល់សំណើ HTTP ឬ gRPC ឬបឋមកថានៃសារសម្រាប់ជួរ។ នេះអនុញ្ញាតឱ្យកម្មវិធីខាងក្រោមបង្កើតបរិបទប្រតិបត្តិការឡើងវិញពីបឋមកថាទាំងនេះ។


នេះគឺជាឧទាហរណ៍មួយចំនួននៃការផ្សព្វផ្សាយបរិបទ៖

  1. B3-Propagation នេះគឺជាសំណុំនៃបឋមកថា ( x-b3-* ) ដែលត្រូវបានបង្កើតឡើងដំបូងសម្រាប់ប្រព័ន្ធតាមដាន Zipkin ។ វាត្រូវបានកែសម្រួលទៅក្នុង OpenTracing និងប្រើប្រាស់ដោយឧបករណ៍ និងបណ្ណាល័យជាច្រើន។ B3-Propagation អនុវត្ត trace_id / span_id និងទង់ដែលចង្អុលបង្ហាញថាតើការយកគំរូគឺជាការចាំបាច់។


  2. បរិបទតាមដាន W3C បង្កើតឡើងដោយក្រុមការងារ W3C ស្តង់ដារនេះបង្រួបបង្រួមវិធីសាស្រ្តផ្សព្វផ្សាយបរិបទផ្សេងៗទៅជាស្តង់ដារតែមួយ និងជាលំនាំដើមនៅក្នុង OpenTelemetry ។ ឧទាហរណ៍ដ៏ល្អនៃការអនុវត្តស្តង់ដារទាំងនេះគឺការតាមដានការអនុវត្តសំណើដែលឆ្លងកាត់សេវាកម្មខ្នាតតូចដែលត្រូវបានអនុវត្តជាមួយនឹងបច្ចេកវិទ្យាផ្សេងៗគ្នាដោយមិនធ្វើឱ្យប៉ះពាល់ដល់ការត្រួតពិនិត្យ និងភាពត្រឹមត្រូវនៃការកែកំហុសឡើយ។

ការតាមដាន

ការតាមដានគឺជាដំណើរការនៃការថត និងមើលឃើញជាបន្តបន្ទាប់នូវបន្ទាត់ពេលវេលានៃផ្លូវនៃសំណើតាមរយៈសេវាកម្មមីក្រូជាច្រើន។


[ប្រភពរូបភាព៖ https://opentelemetry.io/docs/demo/screenshots/]


នៅក្នុងការមើលឃើញ របារនីមួយៗត្រូវបានគេហៅថា "span" និងមាន "span_id" តែមួយគត់។ វិសាលភាព​ឫស​ត្រូវ​បាន​គេ​ហៅ​ថា​ជា "ដាន" ហើយ​មាន "ដាន_id" ដែល​បម្រើ​ជា​ឧបករណ៍​សម្គាល់​សម្រាប់​សំណើ​ទាំងមូល។


ប្រភេទនៃការមើលឃើញនេះអនុញ្ញាតឱ្យអ្នក:

  • វិភាគពេលវេលាប្រតិបត្តិនៃសំណើនៅទូទាំងប្រព័ន្ធ និងមូលដ្ឋានទិន្នន័យផ្សេងៗគ្នា ដើម្បីកំណត់អត្តសញ្ញាណឧបសគ្គដែលត្រូវការការបង្កើនប្រសិទ្ធភាព។
  • រកឃើញភាពអាស្រ័យវដ្តរវាងសេវាកម្ម។
  • ស្វែងរកសំណើស្ទួន។ ដោយប្រើទិន្នន័យតាមដាន អ្នកក៏អាចបង្កើតការវិភាគបន្ថែមបានផងដែរ ដូចជាការបង្កើតផែនទីសេវាមីក្រូ ឬចែកចាយពេលវេលាតាមប្រព័ន្ធផ្សេងៗកំឡុងពេលដំណើរការប្រតិបត្តិការ។ ទោះបីជាអ្នកមិនប្រើទិន្នន័យតាមដានដើម្បីមើលឃើញបន្ទាត់ពេលវេលាក៏ដោយ OpenTelemetry នៅតែបង្កើត trace_id និង span_id សម្រាប់ប្រើក្នុងសញ្ញាផ្សេងទៀត។


កំណត់ហេតុ

ទោះបីជាមានភាពសាមញ្ញជាក់ស្តែងក៏ដោយ ការកាប់ឈើនៅតែជាឧបករណ៍ដ៏មានឥទ្ធិពលបំផុតមួយសម្រាប់ការធ្វើរោគវិនិច្ឆ័យបញ្ហា។ OpenTelemetry បង្កើនការកត់ត្រាបែបប្រពៃណីដោយបន្ថែមព័ត៌មានបរិបទ។ ជាពិសេស ប្រសិនបើដានសកម្មមានវត្តមាន គុណលក្ខណៈ `trace_id` និង `span_id` ត្រូវបានបន្ថែមដោយស្វ័យប្រវត្តិទៅក្នុងកំណត់ហេតុ ដោយភ្ជាប់ពួកវាទៅបន្ទាត់ពេលវេលាតាមដាន។ លើសពីនេះទៅទៀត គុណលក្ខណៈកំណត់ហេតុអាចរួមបញ្ចូលព័ត៌មានឋិតិវន្តពីបរិបទ OpenTelemetry ដូចជាឧបករណ៍កំណត់ថ្នាំង ក៏ដូចជាព័ត៌មានថាមវន្ត ដូចជាឧបករណ៍កំណត់ចំណុចចុងក្រោយ HTTP បច្ចុប្បន្ន (`http_path: "GET /user/:id"`) ។


ដោយប្រើ `trace_id` អ្នកអាចស្វែងរកកំណត់ហេតុពី microservices ទាំងអស់ដែលទាក់ទងនឹងសំណើបច្ចុប្បន្ន ខណៈដែល `span_id` អនុញ្ញាតឱ្យអ្នកបែងចែករវាងសំណើរង។ ឧទាហរណ៍ នៅក្នុងករណីនៃការព្យាយាមឡើងវិញ កំណត់ហេតុពីការប៉ុនប៉ងផ្សេងគ្នានឹងមាន `span_id` ផ្សេងគ្នា។ ការប្រើប្រាស់ឧបករណ៍កំណត់អត្តសញ្ញាណទាំងនេះអាចឱ្យការវិភាគរហ័សនៃឥរិយាបទនៃប្រព័ន្ធទាំងមូលក្នុងពេលជាក់ស្តែង បង្កើនល្បឿនការវិនិច្ឆ័យបញ្ហា និងបង្កើនស្ថេរភាព និងភាពជឿជាក់។


ម៉ែត្រ

ការប្រមូល​ម៉ែត្រ​ផ្ដល់​នូវ​ទិន្នន័យ​បរិមាណ​លើ​ដំណើរការ​របស់​ប្រព័ន្ធ​ដូចជា ភាពយឺតយ៉ាវ អត្រា​កំហុស ការប្រើប្រាស់​ធនធាន និង​ច្រើន​ទៀត។ ការត្រួតពិនិត្យតាមពេលវេលាជាក់ស្តែងនៃម៉ែត្រអនុញ្ញាតឱ្យអ្នកឆ្លើយតបភ្លាមៗចំពោះការផ្លាស់ប្តូរការអនុវត្ត ការពារការបរាជ័យ និងការហត់នឿយធនធាន និងធានានូវភាពអាចរកបានខ្ពស់ និងភាពជឿជាក់នៃកម្មវិធីសម្រាប់អ្នកប្រើប្រាស់។


ការរួមបញ្ចូលជាមួយប្រព័ន្ធផ្ទុកម៉ែត្រ និងរូបភាពដូចជា Prometheus និង Grafana ធ្វើឱ្យវាកាន់តែងាយស្រួលក្នុងការមើលឃើញទិន្នន័យនេះ ធ្វើឱ្យការត្រួតពិនិត្យកាន់តែងាយស្រួល។


[ប្រភពរូបភាព៖ https://grafana.com/blog/2021/06/22/grafana-dashboard-showcase-visualizations-for-prometheus-home-energy-usage-github-and-more/]


អ្នកប្រមូលម៉ែត្រ

ឧបករណ៍ប្រមូលម៉ែត្រ OpenTelemetry គឺត្រូវគ្នាជាមួយស្តង់ដារ Prometheus និង OpenMetrics ដែលអនុញ្ញាតឱ្យមានការផ្លាស់ប្តូរដ៏ងាយស្រួលទៅកាន់ដំណោះស្រាយ OpenTelemetry ដោយមិនមានការផ្លាស់ប្តូរសំខាន់ៗ។ OpenTelemetry SDK អនុញ្ញាតឱ្យឧទាហរណ៍ trace_id ត្រូវបាននាំចេញរួមជាមួយនឹងម៉ែត្រ ដែលធ្វើឱ្យវាអាចទាក់ទងម៉ែត្រជាមួយនឹងឧទាហរណ៍កំណត់ហេតុ និងដាន។


ទំនាក់ទំនងសញ្ញា

រួមគ្នា កំណត់ហេតុ រង្វាស់ និងការតាមដានបង្កើតទិដ្ឋភាពដ៏ទូលំទូលាយនៃស្ថានភាពនៃប្រព័ន្ធ៖

  • កំណត់ហេតុផ្តល់ព័ត៌មានអំពីព្រឹត្តិការណ៍ប្រព័ន្ធ ដែលអនុញ្ញាតឱ្យកំណត់អត្តសញ្ញាណរហ័ស និងការដោះស្រាយកំហុស។
  • ម៉ែត្រឆ្លុះបញ្ចាំងពីសូចនាករការអនុវត្តប្រកបដោយគុណភាព និងបរិមាណនៃប្រព័ន្ធ ដូចជាពេលវេលាឆ្លើយតប ឬអត្រាកំហុស។
  • ការតាមដានបំពេញបន្ថែមទិដ្ឋភាពនេះដោយបង្ហាញផ្លូវនៃការអនុវត្តសំណើតាមរយៈសមាសធាតុប្រព័ន្ធផ្សេងៗ ជួយឱ្យយល់អំពីទំនាក់ទំនងរវាងគ្នា។ ការជាប់ទាក់ទងគ្នាយ៉ាងច្បាស់លាស់រវាងកំណត់ហេតុ ដាន និងម៉ែត្រគឺជាលក្ខណៈពិសេសប្លែកនៃ OpenTelemetry ។ ឧទាហរណ៍ Grafana អនុញ្ញាតឱ្យអ្នកប្រើប្រាស់មើលឃើញដានដែលត្រូវគ្នា និងស្នើសុំម៉ែត្រនៅពេលមើលកំណត់ហេតុ បង្កើនលទ្ធភាពប្រើប្រាស់ និងប្រសិទ្ធភាពរបស់វេទិកាយ៉ាងខ្លាំង។



[ប្រភពរូបភាព៖ https://grafana.com/blog/2020/03/31/how-to-successfully-correlate-metrics-logs-and-traces-in-grafana/]


បន្ថែមពីលើសមាសភាគស្នូលទាំងបី OpenTelemetry រួមបញ្ចូលនូវគំនិតនៃគំរូ ឥវ៉ាន់ និងការគ្រប់គ្រងបរិបទប្រតិបត្តិការ។


គំរូ

នៅក្នុងប្រព័ន្ធផ្ទុកខ្ពស់ បរិមាណនៃកំណត់ហេតុ និងដានក្លាយជាធំសម្បើម ដែលទាមទារធនធានច្រើនសម្រាប់ហេដ្ឋារចនាសម្ព័ន្ធ និងការផ្ទុកទិន្នន័យ។ ដើម្បីដោះស្រាយបញ្ហានេះ ស្តង់ដារ OpenTelemetry រួមមានការយកគំរូតាមសញ្ញា — សមត្ថភាពក្នុងការនាំចេញតែផ្នែកមួយនៃដាន និងកំណត់ហេតុប៉ុណ្ណោះ។ ឧទាហរណ៍ អ្នកអាចនាំចេញសញ្ញាលម្អិតពីភាគរយនៃសំណើ សំណើរយៈពេលវែង ឬសំណើសុំកំហុស។ វិធីសាស្រ្តនេះអនុញ្ញាតឱ្យមានគំរូគ្រប់គ្រាន់ក្នុងការបង្កើតស្ថិតិខណៈពេលដែលការសន្សំធនធានសំខាន់ៗ។


ទោះយ៉ាងណាក៏ដោយ ប្រសិនបើប្រព័ន្ធនីមួយៗសម្រេចចិត្តដោយឯករាជ្យនូវសំណើណាមួយដើម្បីត្រួតពិនិត្យលម្អិត នោះយើងបញ្ចប់ដោយទិដ្ឋភាពបែងចែកនៃសំណើនីមួយៗ។ ប្រព័ន្ធមួយចំនួនអាចនាំចេញទិន្នន័យលម្អិត ខណៈដែលប្រព័ន្ធផ្សេងទៀតអាចនាំចេញបានតែផ្នែកខ្លះ ឬមិននាំចេញទាល់តែសោះ។


ដើម្បីដោះស្រាយបញ្ហានេះ យន្តការផ្សព្វផ្សាយបរិបទរបស់ OpenTelemetry បញ្ជូនទង់គំរូរួមជាមួយនឹង `trace_id`/`span_id`។ នេះធានាថា ប្រសិនបើសេវាកម្មដំបូងដែលទទួលបានសំណើរបស់អ្នកប្រើប្រាស់សម្រេចថាសំណើគួរតែត្រូវបានត្រួតពិនិត្យយ៉ាងលម្អិតនោះ ប្រព័ន្ធផ្សេងទៀតទាំងអស់នឹងអនុវត្តតាម។ បើមិនដូច្នោះទេ ប្រព័ន្ធទាំងអស់គួរតែជាផ្នែក ឬមិននាំចេញសញ្ញា ដើម្បីអភិរក្សធនធាន។ វិធីសាស្រ្តនេះត្រូវបានគេហៅថា "ការយកគំរូតាមក្បាល" — ការសម្រេចចិត្តធ្វើឡើងនៅដើមដំបូងនៃដំណើរការសំណើ ទាំងចៃដន្យ ឬផ្អែកលើលក្ខណៈបញ្ចូលមួយចំនួន។


ក្រៅពីនេះ OpenTelemetry គាំទ្រ "Tail Sampling" ដែលកម្មវិធីទាំងអស់តែងតែនាំចេញសញ្ញាទាំងអស់យ៉ាងលម្អិត ប៉ុន្តែមានសតិបណ្ដោះអាសន្នកម្រិតមធ្យម។ បន្ទាប់ពីប្រមូលទិន្នន័យទាំងអស់ សតិបណ្ដោះអាសន្ននេះសម្រេចចិត្តថាតើត្រូវរក្សាទិន្នន័យពេញលេញ ឬរក្សាទុកតែគំរូមួយផ្នែកប៉ុណ្ណោះ។ វិធីសាស្រ្តនេះអនុញ្ញាតឱ្យមានគំរូតំណាងបន្ថែមទៀតនៃប្រភេទសំណើនីមួយៗ (ជោគជ័យ/វែង/កំហុស) ប៉ុន្តែទាមទារការដំឡើងហេដ្ឋារចនាសម្ព័ន្ធបន្ថែម។


អីវ៉ាន់

យន្តការដាក់ឥវ៉ាន់អនុញ្ញាតឱ្យគូតម្លៃសោតាមអំពើចិត្តត្រូវបានបញ្ជូនរួមជាមួយ trace_id / span_id ឆ្លងកាត់ដោយស្វ័យប្រវត្តិរវាងសេវាកម្មមីក្រូទាំងអស់ក្នុងអំឡុងពេលដំណើរការសំណើ។ វាមានប្រយោជន៍សម្រាប់ការបញ្ជូនព័ត៌មានបន្ថែមដែលត្រូវការនៅទូទាំងផ្លូវស្នើសុំ - ដូចជាព័ត៌មានអ្នកប្រើប្រាស់ ឬការកំណត់បរិយាកាសពេលដំណើរការ។

ឧទាហរណ៍នៃបឋមកថាសម្រាប់ការបញ្ជូនឥវ៉ាន់ដោយយោងតាមស្តង់ដារ W3C៖ tracestate: rojo=00f067aa0ba902b7,congo=t61rcWkgMzE,userId=1c30032v5

នេះគឺជាឧទាហរណ៍មួយចំនួននៃការប្រើប្រាស់ឥវ៉ាន់៖

  • ការឆ្លងកាត់ព័ត៌មានបរិបទអាជីវកម្ម ដូចជា userId , productId , ឬ deviceId អាចត្រូវបានឆ្លងកាត់គ្រប់សេវាកម្មខ្នាតតូច។ កម្មវិធីអាចកត់ត្រាព័ត៌មាននេះដោយស្វ័យប្រវត្តិ ដោយអនុញ្ញាតឱ្យស្វែងរកកំណត់ហេតុដោយបរិបទអ្នកប្រើប្រាស់សម្រាប់សំណើដើម។

  • ការកំណត់ ការកំណត់រចនាសម្ព័ន្ធជាក់លាក់ សម្រាប់ SDKs ឬហេដ្ឋារចនាសម្ព័ន្ធ។

  • ទង់កំណត់ផ្លូវ ទង់ដែលជួយផ្ទុកតុល្យភាពធ្វើការសម្រេចចិត្តផ្លូវ។ កំឡុងពេលសាកល្បង សំណើមួយចំនួនអាចនឹងត្រូវបញ្ជូនបន្តទៅមើលរូបភាពខាងក្រោយ។ ដោយសារឥវ៉ាន់ត្រូវបានបញ្ជូនដោយស្វ័យប្រវត្តិតាមរយៈសេវាកម្មទាំងអស់ នោះមិនចាំបាច់បង្កើតពិធីការបន្ថែមទេ គ្រាន់តែបង្កើតច្បាប់នៅលើឧបករណ៍ផ្ទុកតុល្យភាព។


សូមចំណាំថា ខណៈពេលដែលផលប៉ះពាល់នៃដំណើរការនៃឥវ៉ាន់មានតិចតួច ការប្រើប្រាស់ច្រើនហួសប្រមាណអាចបង្កើនការផ្ទុកបណ្តាញ និងសេវាកម្មយ៉ាងច្រើន។ ជ្រើសរើសដោយប្រុងប្រយ័ត្ននូវទិន្នន័យណាមួយដែលអ្នកពិតជាត្រូវឆ្លងកាត់ឥវ៉ាន់ ដើម្បីជៀសវាងបញ្ហាដំណើរការ។

ការអនុវត្តហេដ្ឋារចនាសម្ព័ន្ធ

ការអនុវត្ត OpenTelemetry នៅកម្រិតហេដ្ឋារចនាសម្ព័ន្ធពាក់ព័ន្ធនឹងការរួមបញ្ចូលផ្នែកខាងក្រោយ OpenTelemetry ទៅក្នុងស្ថាបត្យកម្មកម្មវិធី និងកំណត់រចនាសម្ព័ន្ធហេដ្ឋារចនាសម្ព័ន្ធសម្រាប់ការប្រមូលផ្តុំទិន្នន័យ។


ដំណើរការនេះមានបួនដំណាក់កាល៖


  1. ការរួមបញ្ចូលកម្មវិធី នៅក្នុងដំណាក់កាលដំបូង OpenTelemetry SDKs ត្រូវបានរួមបញ្ចូលដោយផ្ទាល់ទៅក្នុងកម្មវិធីដើម្បីប្រមូលម៉ែត្រ កំណត់ហេតុ និងដាន ដោយធានានូវលំហូរជាបន្តបន្ទាប់នៃទិន្នន័យអំពីដំណើរការរបស់សមាសធាតុប្រព័ន្ធនីមួយៗ។


  2. ការកំណត់រចនាសម្ព័ន្ធអ្នកនាំចេញ ទិន្នន័យដែលប្រមូលបានត្រូវបានបញ្ជូនពីកម្មវិធីតាមរយៈអ្នកនាំចេញទៅកាន់ប្រព័ន្ធខាងក្រៅសម្រាប់ដំណើរការបន្ថែមទៀត ដូចជាការកត់ត្រា ការត្រួតពិនិត្យ ការតាមដាន ឬប្រព័ន្ធវិភាគ អាស្រ័យលើតម្រូវការរបស់អ្នក។


  3. ការប្រមូលផ្តុំ និងការផ្ទុក ដំណាក់កាលនេះអាចពាក់ព័ន្ធនឹងការធ្វើឱ្យទិន្នន័យមានលក្ខណៈធម្មតា បង្កើនវាជាមួយនឹងព័ត៌មានបន្ថែម និងការបញ្ចូលទិន្នន័យពីប្រភពផ្សេងៗគ្នាដើម្បីបង្កើតទិដ្ឋភាពរួមនៃស្ថានភាពនៃប្រព័ន្ធ។


  4. Data Visualization ជាចុងក្រោយ ទិន្នន័យដែលបានដំណើរការត្រូវបានបង្ហាញជាផ្ទាំងគ្រប់គ្រងនៅក្នុងប្រព័ន្ធដូចជា Grafana (សម្រាប់ម៉ែត្រ និងដាន) ឬ Kibana (សម្រាប់កំណត់ហេតុ)។ នេះអនុញ្ញាតឱ្យក្រុមវាយតម្លៃសុខភាពរបស់ប្រព័ន្ធយ៉ាងឆាប់រហ័ស កំណត់បញ្ហា និងនិន្នាការ និងរៀបចំការជូនដំណឹងដោយផ្អែកលើសញ្ញាដែលបានបង្កើត។


ការអនុវត្តកម្មវិធី

ដើម្បីរួមបញ្ចូលជាមួយកម្មវិធី អ្នកត្រូវភ្ជាប់ OpenTelemetry SDK ដែលសមស្របសម្រាប់ភាសាសរសេរកម្មវិធីដែលកំពុងប្រើប្រាស់ ឬប្រើប្រាស់បណ្ណាល័យ និងក្របខ័ណ្ឌដែលគាំទ្រ OpenTelemetry ដោយផ្ទាល់។ OpenTelemetry ជារឿយៗអនុវត្តចំណុចប្រទាក់ដែលប្រើយ៉ាងទូលំទូលាយពីបណ្ណាល័យដែលគេស្គាល់ ដែលអនុញ្ញាតឱ្យមានការជំនួសការទម្លាក់។ ឧទាហរណ៍ បណ្ណាល័យមីក្រូម៉ែត្រត្រូវបានប្រើជាទូទៅសម្រាប់ការប្រមូលម៉ែត្រនៅក្នុងប្រព័ន្ធអេកូ Java ។ OpenTelemetry SDK ផ្តល់នូវការអនុវត្តរបស់វានៃចំណុចប្រទាក់ Micrometer ដែលអនុញ្ញាតឱ្យនាំចេញម៉ែត្រដោយមិនផ្លាស់ប្តូរកូដកម្មវិធីសំខាន់។ ជាងនេះទៅទៀត OpenTelemetry ផ្តល់នូវការអនុវត្តនូវចំណុចប្រទាក់ OpenTracing និង OpenCensus ចាស់ៗ ដែលជួយសម្រួលដល់ការធ្វើចំណាកស្រុកដោយរលូនទៅកាន់ OpenTelemetry ។

សេចក្តីសន្និដ្ឋាន

នៅក្នុងប្រព័ន្ធ IT OpenTelemetry អាចក្លាយជាគន្លឹះសម្រាប់អនាគតនៃកម្មវិធីខាងក្រោយដែលអាចទុកចិត្តបាន និងមានប្រសិទ្ធភាព។ ឧបករណ៍នេះជួយសម្រួលការកែកំហុស និងការត្រួតពិនិត្យ ហើយក៏បើកឱកាសសម្រាប់ការយល់ដឹងស៊ីជម្រៅអំពីការអនុវត្តកម្មវិធី និងការបង្កើនប្រសិទ្ធភាពនៅកម្រិតថ្មីមួយ។ ចូលរួមសហគមន៍ OpenTelemetry ដើម្បីជួយរៀបចំអនាគតដែលការអភិវឌ្ឍន៍ផ្នែកខាងក្រោយកាន់តែសាមញ្ញ និងមានប្រសិទ្ធភាពជាងមុន!

L O A D I N G
. . . comments & more!

About Author

Dmitrii Pakhomov HackerNoon profile picture
Dmitrii Pakhomov@ymatigoosa
10 yeas of experience of building mission critical Fintech system handling extremely high load

ព្យួរស្លាក

អត្ថបទនេះត្រូវបានបង្ហាញនៅក្នុង...

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks