పంపిణీ చేయబడిన ట్రేసింగ్: మేము అన్నింటినీ తప్పు చేసాము
గమనిక. అనువాదం.: ఈ మెటీరియల్ రచయిత సిండి శ్రీధరన్, imgixలో ఇంజనీర్, అతను API డెవలప్మెంట్ మరియు ముఖ్యంగా మైక్రోసర్వీస్ టెస్టింగ్లో నైపుణ్యం కలిగి ఉన్నాడు. ఈ మెటీరియల్లో, పంపిణీ చేయబడిన ట్రేసింగ్ రంగంలో ప్రస్తుత సమస్యల గురించి ఆమె తన వివరణాత్మక దృష్టిని పంచుకుంటుంది, ఇక్కడ, ఆమె అభిప్రాయం ప్రకారం, నొక్కే సమస్యలను పరిష్కరించడానికి నిజంగా సమర్థవంతమైన సాధనాల కొరత ఉంది.
[ఇలస్ట్రేషన్ నుండి తీసుకోబడింది ఇతర పదార్థం పంపిణీ ట్రేసింగ్ గురించి.]
అని నమ్ముతారు పంపిణీ ట్రేసింగ్ అమలు చేయడం కష్టం, మరియు దానిపై రాబడి ఉత్తమంగా సందేహాస్పదమైనది. ట్రేసింగ్ సమస్యాత్మకంగా ఉండటానికి అనేక కారణాలు ఉన్నాయి, ప్రతి అభ్యర్థనతో తగిన హెడర్లను ప్రసారం చేయడానికి ప్రతి సిస్టమ్ కాంపోనెంట్ను కాన్ఫిగర్ చేయడంలో పాల్గొన్న శ్రమను తరచుగా పేర్కొంటారు. ఈ సమస్య ఉన్నప్పటికీ, ఇది ఏ విధంగానూ అధిగమించలేనిది. మార్గం ద్వారా, డెవలపర్లు నిజంగా ట్రేసింగ్ను ఎందుకు ఇష్టపడరు (ఇది ఇప్పటికే పని చేస్తున్నప్పుడు కూడా) ఇది వివరించలేదు.
పంపిణీ చేయబడిన ట్రేసింగ్లో ప్రధాన సవాలు ఏమిటంటే డేటాను సేకరించడం, ఫలితాలను పంపిణీ చేయడం మరియు ప్రదర్శించడం కోసం ఫార్మాట్లను ప్రామాణీకరించడం లేదా ఎప్పుడు, ఎక్కడ మరియు ఎలా నమూనా చేయాలో నిర్ణయించడం. నేను ఊహించుకోవడానికి ప్రయత్నించడం లేదు అల్పమైన ఈ "అవగాహన సమస్యలు", వాస్తవానికి, చాలా ముఖ్యమైన సాంకేతిక మరియు (మేము నిజంగా ఓపెన్ సోర్స్ను పరిశీలిస్తున్నట్లయితే) ప్రమాణాలు మరియు ప్రోటోకాల్లు) ఈ సమస్యలను పరిష్కరించాలని భావించాలంటే అధిగమించాల్సిన రాజకీయ సవాళ్లు.
అయినప్పటికీ, ఈ సమస్యలన్నీ పరిష్కరించబడతాయని మేము ఊహించినట్లయితే, పరంగా ఏదీ గణనీయంగా మారదు అనే అధిక సంభావ్యత ఉంది. తుది వినియోగదారు అనుభవం. అత్యంత సాధారణ డీబగ్గింగ్ దృశ్యాలలో ట్రేసింగ్ ఇప్పటికీ ఆచరణాత్మకంగా ఉపయోగించబడకపోవచ్చు-ఇది అమలు చేయబడిన తర్వాత కూడా.
అటువంటి భిన్నమైన జాడ
పంపిణీ చేయబడిన ట్రేసింగ్ అనేక విభిన్న భాగాలను కలిగి ఉంటుంది:
నియంత్రణ సాధనాలతో అప్లికేషన్లు మరియు మిడిల్వేర్ను సన్నద్ధం చేయడం;
పంపిణీ సందర్భ బదిలీ;
జాడల సేకరణ;
జాడ నిల్వ;
వారి వెలికితీత మరియు విజువలైజేషన్.
పంపిణీ చేయబడిన ట్రేసింగ్ గురించి చాలా చర్చలు దీనిని ఒక రకమైన యునారీ ఆపరేషన్గా పరిగణిస్తాయి, దీని ఏకైక ఉద్దేశ్యం సిస్టమ్ను పూర్తిగా నిర్ధారించడంలో సహాయపడటం. డిస్ట్రిబ్యూట్ ట్రేసింగ్ గురించిన ఆలోచనలు చారిత్రాత్మకంగా ఎలా ఏర్పడ్డాయి అనే దాని వల్ల ఇది ఎక్కువగా జరుగుతుంది. IN బ్లాగ్ పోస్ట్లు, జిప్కిన్ మూలాలను తెరిచినప్పుడు తయారు చేయబడింది, అని పేర్కొన్నారు ఇది [జిప్కిన్] ట్విట్టర్ని వేగవంతం చేస్తుంది. ట్రేసింగ్ కోసం మొదటి వాణిజ్య ఆఫర్లు కూడా ప్రచారం చేయబడ్డాయి APM సాధనాలు.
గమనిక. అనువాదం.: మరింత టెక్స్ట్ను సులభంగా అర్థం చేసుకోవడానికి, దాని ప్రకారం రెండు ప్రాథమిక పదాలను నిర్వచిద్దాం OpenTracing ప్రాజెక్ట్ డాక్యుమెంటేషన్:
ఆద్యంతం - పంపిణీ ట్రేసింగ్ యొక్క ప్రాథమిక అంశం. ఇది పేరు, ప్రారంభ మరియు ముగింపు సమయాలు, ట్యాగ్లు, లాగ్లు మరియు సందర్భంతో కూడిన నిర్దిష్ట వర్క్ఫ్లో (ఉదాహరణకు, డేటాబేస్ ప్రశ్న) యొక్క వివరణ.
స్పాన్లు సాధారణంగా ఇతర స్పాన్లకు లింక్లను కలిగి ఉంటాయి, బహుళ స్పాన్లను కలపడానికి అనుమతిస్తుంది ట్రేస్ - డిస్ట్రిబ్యూటెడ్ సిస్టమ్ ద్వారా కదులుతున్నప్పుడు అభ్యర్థన యొక్క జీవితాన్ని విజువలైజేషన్ చేస్తుంది.
ట్రేస్లు ప్రొడక్షన్ టెస్టింగ్, డిజాస్టర్ రికవరీ టెస్టింగ్, ఎర్రర్ ఇంజెక్షన్ టెస్టింగ్ మొదలైన పనులలో సహాయపడగల చాలా విలువైన డేటాను కలిగి ఉంటాయి. నిజానికి, కొన్ని కంపెనీలు ఇప్పటికే సారూప్య ప్రయోజనాల కోసం ట్రేసింగ్ని ఉపయోగిస్తున్నాయి. దీనితో ప్రారంభిద్దాం సార్వత్రిక సందర్భ బదిలీ స్టోరేజీ సిస్టమ్కు స్పాన్లను తరలించడమే కాకుండా ఇతర ఉపయోగాలు ఉన్నాయి:
ఉదాహరణకు, Uber ఉపయోగాలు పరీక్ష ట్రాఫిక్ మరియు ఉత్పత్తి ట్రాఫిక్ మధ్య తేడాను గుర్తించడానికి ఫలితాలను గుర్తించడం.
<span style="font-family: Mandali; ">ఫేస్బుక్ </span> ఉపయోగాలు సాధారణ విపత్తు పునరుద్ధరణ పరీక్షల సమయంలో క్లిష్టమైన మార్గం విశ్లేషణ మరియు ట్రాఫిక్ మారడం కోసం డేటాను కనుగొనండి.
సోషల్ నెట్వర్క్ కూడా వర్తిస్తుంది ట్రేస్ ఫలితాలపై ఏకపక్ష ప్రశ్నలను అమలు చేయడానికి డెవలపర్లను అనుమతించే జూపిటర్ నోట్బుక్లు.
అనుచరులు LDFI (లీనేజ్ డ్రైవెన్ ఫెయిల్యూర్ ఇంజెక్షన్) వా డు లోపం ఇంజెక్షన్తో పరీక్ష కోసం ట్రేస్లను పంపిణీ చేసింది.
పైన జాబితా చేయబడిన ఎంపికలు ఏవీ పూర్తిగా దృష్టాంతానికి వర్తించవు డీబగ్, ఆ సమయంలో ఇంజనీర్ ట్రేస్ని చూడటం ద్వారా సమస్యను పరిష్కరించడానికి ప్రయత్నిస్తాడు.
అది వచ్చినప్పుడు ఇంకా డీబగ్గింగ్ స్క్రిప్ట్ను చేరుకుంటుంది, ప్రాథమిక ఇంటర్ఫేస్ రేఖాచిత్రంగా ఉంటుంది ట్రేస్వ్యూ (కొందరు దీనిని కూడా పిలుస్తారు "గాంట్ చార్ట్" లేదా "జలపాతం రేఖాచిత్రం") కింద ట్రేస్వ్యూ я నేనేమంటానంటే అన్ని పరిధులు మరియు దానితో కూడిన మెటాడేటా కలిసి ట్రేస్ను తయారు చేస్తాయి. ప్రతి ఓపెన్ సోర్స్ ట్రేసింగ్ సిస్టమ్, అలాగే ప్రతి కమర్షియల్ ట్రేసింగ్ సొల్యూషన్, అందిస్తుంది ట్రేస్వ్యూ జాడలను దృశ్యమానం చేయడం, వివరించడం మరియు ఫిల్టర్ చేయడం కోసం వినియోగదారు ఇంటర్ఫేస్.
నేను ఇప్పటివరకు చూసిన అన్ని ట్రేసింగ్ సిస్టమ్ల సమస్య ఫలితంగా ఏర్పడింది విజువలైజేషన్ (ట్రేస్వ్యూ) ట్రేస్ జనరేషన్ ప్రక్రియ యొక్క లక్షణాలను దాదాపు పూర్తిగా ప్రతిబింబిస్తుంది. ప్రత్యామ్నాయ విజువలైజేషన్లు ప్రతిపాదించబడినప్పటికీ: హీట్మ్యాప్లు, సర్వీస్ టోపోలాజీలు, లేటెన్సీ హిస్టోగ్రామ్లు, అవి ఇప్పటికీ అంతిమంగా క్రిందికి వస్తాయి ట్రేస్వ్యూ.
గతంలో ఐ ఫిర్యాదు చేసింది UI/UX ట్రేసింగ్లో చాలా "ఆవిష్కరణలు" వీటికే పరిమితం అయినట్లు అనిపిస్తుంది ఆన్ చేస్తోంది ట్రేస్లో అదనపు మెటాడేటా, అధిక కార్డినాలిటీతో సమాచారాన్ని వాటిలో పెట్టుబడి పెట్టడం (అధిక కార్డినాలిటీ) లేదా నిర్దిష్ట పరిధుల్లోకి డ్రిల్ చేసే సామర్థ్యాన్ని అందించడం లేదా ప్రశ్నలను అమలు చేయడం ఇంటర్ మరియు ఇంట్రా ట్రేస్... ఇందులో ట్రేస్వ్యూ ప్రాథమిక విజువలైజేషన్ సాధనంగా మిగిలిపోయింది. ఈ పరిస్థితి కొనసాగినంత కాలం, కొలమానాలు, లాగ్లు మరియు స్టాక్ ట్రేస్ల తర్వాత, పంపిణీ చేయబడిన ట్రేసింగ్ (ఉత్తమంగా) డీబగ్గింగ్ సాధనంగా 4వ స్థానంలో ఉంటుంది మరియు చెత్తగా అది డబ్బు మరియు సమయాన్ని వృధా చేస్తుంది.
ట్రేస్వ్యూతో సమస్య
గమ్యం ట్రేస్వ్యూ — పంపిణీ చేయబడిన సిస్టమ్ యొక్క అన్ని భాగాలలో ఒకే అభ్యర్థన యొక్క కదలిక యొక్క పూర్తి చిత్రాన్ని అందించండి. మరికొన్ని అధునాతన ట్రేసింగ్ సిస్టమ్లు వ్యక్తిగత పరిధుల్లోకి డ్రిల్ చేయడానికి మరియు కాలక్రమేణా విచ్ఛిన్నతను వీక్షించడానికి మిమ్మల్ని అనుమతిస్తాయి లోపల ఒక ప్రక్రియ (పరిధులు ఫంక్షనల్ సరిహద్దులను కలిగి ఉన్నప్పుడు).
మైక్రోసర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రాథమిక ఆవరణ సంస్థ యొక్క అవసరాలకు అనుగుణంగా సంస్థాగత నిర్మాణం పెరుగుతుందనే ఆలోచన. మైక్రో సర్వీసెస్ యొక్క ప్రతిపాదకులు వాదిస్తూ, వివిధ వ్యాపార పనులను వ్యక్తిగత సేవలలో పంపిణీ చేయడం వలన చిన్న, స్వయంప్రతిపత్తి కలిగిన అభివృద్ధి బృందాలు అటువంటి సేవల యొక్క మొత్తం జీవితచక్రాన్ని నియంత్రించగలవు, ఆ సేవలను స్వతంత్రంగా నిర్మించడానికి, పరీక్షించడానికి మరియు అమలు చేయడానికి వారికి సామర్థ్యాన్ని ఇస్తాయి. అయితే, ఈ పంపిణీ యొక్క ప్రతికూలత ఏమిటంటే, ప్రతి సేవ ఇతరులతో ఎలా పరస్పర చర్య చేస్తుందనే దాని గురించి సమాచారాన్ని కోల్పోవడం. అటువంటి పరిస్థితులలో, పంపిణీ చేయబడిన ట్రేసింగ్ క్లెయిమ్లకు ఒక అనివార్య సాధనం డీబగ్ సేవల మధ్య సంక్లిష్ట పరస్పర చర్యలు.
మీరు నిజంగా ఉంటే అస్థిరమైన సంక్లిష్ట పంపిణీ వ్యవస్థ, అప్పుడు ఒక్క వ్యక్తి కూడా దానిని తన తలలో ఉంచుకోలేడు పూర్తయింది చిత్రం. వాస్తవానికి, అది కూడా సాధ్యమే అనే ఊహ ఆధారంగా ఒక సాధనాన్ని అభివృద్ధి చేయడం అనేది వ్యతిరేక నమూనా (ఒక అసమర్థమైన మరియు ఉత్పాదకత లేని విధానం). ఆదర్శవంతంగా, డీబగ్గింగ్కు సహాయపడే సాధనం అవసరం మీ శోధన ప్రాంతాన్ని తగ్గించండి, ఇంజనీర్లు పరిగణించబడుతున్న సమస్య దృష్టాంతానికి సంబంధించిన కొలతలు (సేవలు/వినియోగదారులు/హోస్ట్లు మొదలైనవి) ఉపసమితిపై దృష్టి పెట్టగలరు. వైఫల్యానికి కారణాన్ని గుర్తించేటప్పుడు, ఇంజనీర్లు ఆ సమయంలో ఏమి జరిగిందో అర్థం చేసుకోవలసిన అవసరం లేదు అన్ని సేవలు ఒకేసారి, అటువంటి అవసరం మైక్రోసర్వీస్ ఆర్కిటెక్చర్ ఆలోచనకు విరుద్ధంగా ఉంటుంది కాబట్టి.
అయితే, ట్రేస్వ్యూ ఉంది అవి ఈ. అవును, కొన్ని ట్రేసింగ్ సిస్టమ్లు ట్రేస్లోని స్పాన్ల సంఖ్య చాలా పెద్దగా ఉన్నప్పుడు అవి ఒక విజువలైజేషన్లో ప్రదర్శించబడనప్పుడు కంప్రెస్డ్ ట్రేస్వ్యూలను అందిస్తాయి. అయినప్పటికీ, అటువంటి స్ట్రిప్డ్-డౌన్ విజువలైజేషన్లో కూడా పెద్ద మొత్తంలో సమాచారం ఉన్నందున, ఇంజనీర్లు ఇప్పటికీ బలవంతంగా దానిని "జల్లెడ", మాన్యువల్గా సమస్యల మూలాలైన సేవల సమితికి ఎంపికను కుదించండి. దురదృష్టవశాత్తూ, ఈ రంగంలో, యంత్రాలు మానవుల కంటే చాలా వేగంగా ఉంటాయి, లోపాలు తక్కువగా ఉంటాయి మరియు వాటి ఫలితాలు మరింత పునరావృతమవుతాయి.
ట్రేస్వ్యూ తప్పు అని నేను భావించే మరో కారణం ఏమిటంటే ఇది పరికల్పనతో నడిచే డీబగ్గింగ్కు మంచిది కాదు. దాని ప్రధాన అంశంగా, డీబగ్గింగ్ ఉంది పునరావృతం ఒక పరికల్పనతో ప్రారంభమయ్యే ప్రక్రియ, వివిధ వెక్టర్లతో పాటు సిస్టమ్ నుండి పొందిన వివిధ పరిశీలనలు మరియు వాస్తవాల ధృవీకరణ, ముగింపులు/సాధారణీకరణలు మరియు పరికల్పన యొక్క నిజం యొక్క తదుపరి అంచనా.
అవకాశం వేగవంతమైన మరియు చౌక పరికల్పనలను పరీక్షించడం మరియు తదనుగుణంగా మానసిక నమూనాను మెరుగుపరచడం మూలస్తంభం డీబగ్గింగ్ ఏదైనా డీబగ్గింగ్ సాధనం ఉండాలి పరస్పర మరియు శోధన స్థలాన్ని తగ్గించండి లేదా, తప్పు దారితీసిన సందర్భంలో, వినియోగదారుని వెనక్కి వెళ్లి సిస్టమ్లోని వేరే ప్రాంతంపై దృష్టి పెట్టడానికి అనుమతించండి. పరిపూర్ణ సాధనం దీన్ని చేస్తుంది క్రియాశీలంగా, వెంటనే సంభావ్య సమస్య ప్రాంతాలకు వినియోగదారు దృష్టిని ఆకర్షించడం.
అయ్యో, ట్రేస్వ్యూ ఇంటరాక్టివ్ ఇంటర్ఫేస్తో సాధనంగా పిలవబడదు. దీన్ని ఉపయోగిస్తున్నప్పుడు మీరు ఆశించదగినది ఏమిటంటే, పెరిగిన జాప్యం యొక్క మూలాన్ని కనుగొనడం మరియు దానితో అనుబంధించబడిన అన్ని ట్యాగ్లు మరియు లాగ్లను చూడటం. ఇది గుర్తించడానికి ఇంజనీర్కు సహాయం చేయదు నమూనాలు ట్రాఫిక్లో, ఆలస్యం పంపిణీ యొక్క ప్రత్యేకతలు లేదా వివిధ కొలతల మధ్య సహసంబంధాలను గుర్తించడం వంటివి. సాధారణీకరించిన ట్రేస్ విశ్లేషణ ఈ సమస్యలలో కొన్నింటిని అధిగమించడంలో సహాయపడవచ్చు. నిజంగా, ఉదాహరణలు ఉన్నాయి క్రమరహిత పరిధులను గుర్తించడానికి మరియు క్రమరహిత ప్రవర్తనతో అనుబంధించబడిన ట్యాగ్ల ఉపసమితిని గుర్తించడానికి యంత్ర అభ్యాసాన్ని ఉపయోగించి విజయవంతమైన విశ్లేషణ. అయినప్పటికీ, ట్రేస్వ్యూ లేదా DAG (డైరెక్టెడ్ ఎసిక్లిక్ గ్రాఫ్) నుండి గణనీయంగా భిన్నమైన మెషీన్ లెర్నింగ్ లేదా డేటా మైనింగ్ అన్వేషణల యొక్క బలవంతపు విజువలైజేషన్లను నేను ఇంకా చూడలేదు.
పరిధులు చాలా తక్కువ స్థాయిలో ఉన్నాయి
ట్రేస్వ్యూలో ఉన్న ప్రాథమిక సమస్య ఏమిటంటే పరిధులు జాప్యం విశ్లేషణ మరియు మూలకారణ విశ్లేషణ రెండింటికీ చాలా తక్కువ-స్థాయి ఆదిమాంశాలు. ఇది ఒక మినహాయింపును పరిష్కరించడానికి ప్రయత్నించడానికి వ్యక్తిగత ప్రాసెసర్ ఆదేశాలను అన్వయించడం లాంటిది, బ్యాక్ట్రేస్ వంటి చాలా ఉన్నత-స్థాయి సాధనాలు పని చేయడానికి మరింత సౌకర్యవంతంగా ఉంటాయి.
అంతేకాకుండా, నేను ఈ క్రింది వాటిని నొక్కి చెప్పే స్వేచ్ఛను తీసుకుంటాను: ఆదర్శంగా, మాకు అవసరం లేదు పూర్తి చిత్రం అభ్యర్థన జీవితచక్రం సమయంలో సంభవించింది, ఇది ఆధునిక ట్రేసింగ్ సాధనాల ద్వారా సూచించబడుతుంది. బదులుగా, దేనికి సంబంధించిన సమాచారాన్ని కలిగి ఉండే కొన్ని రకాల ఉన్నత-స్థాయి సంగ్రహణ అవసరం తప్పు జరిగింది (బ్యాక్ట్రేస్ లాగా), కొంత సందర్భంతో పాటు. మొత్తం ట్రేస్ని చూసే బదులు, నేను దానిని చూడాలనుకుంటున్నాను часть, ఎక్కడ ఆసక్తికరమైన లేదా అసాధారణమైన ఏదో జరుగుతుంది. ప్రస్తుతం, శోధన మాన్యువల్గా నిర్వహించబడుతుంది: ఇంజనీర్ ట్రేస్ను స్వీకరిస్తాడు మరియు ఆసక్తికరమైన వాటి కోసం అన్వేషణలో స్వతంత్రంగా పరిధులను విశ్లేషిస్తాడు. అనుమానాస్పద కార్యకలాపాన్ని గుర్తించాలనే ఆశతో వ్యక్తులు వ్యక్తిగత ట్రేస్లను చూసే విధానం అస్సలు స్కేల్ చేయదు (ముఖ్యంగా స్పాన్ ID, RPC పద్ధతి పేరు, వ్యవధి వ్యవధి వంటి వివిధ స్పాన్లలో ఎన్కోడ్ చేయబడిన మొత్తం మెటాడేటాను వారు అర్థం చేసుకోవలసి వచ్చినప్పుడు. 'a, లాగ్లు, ట్యాగ్లు మొదలైనవి).
ట్రేస్వ్యూకి ప్రత్యామ్నాయాలు
ట్రేస్ ఫలితాలు సిస్టమ్లోని ఒకదానితో ఒకటి అనుసంధానించబడిన భాగాలలో ఏమి జరుగుతోందనే దానిపై అల్పమైన అంతర్దృష్టిని అందించే విధంగా దృశ్యమానం చేయబడినప్పుడు చాలా ఉపయోగకరంగా ఉంటాయి. ఇది జరిగే వరకు, డీబగ్గింగ్ ప్రక్రియ ఎక్కువగా ఉంటుంది జడ మరియు సరైన సహసంబంధాలను గమనించడం, సిస్టమ్ యొక్క సరైన భాగాలను తనిఖీ చేయడం లేదా పజిల్ ముక్కలను కలిపి ఉంచడం వంటి వినియోగదారు సామర్థ్యంపై ఆధారపడి ఉంటుంది. వాయిద్యం, ఈ పరికల్పనలను రూపొందించడంలో వినియోగదారుకు సహాయం చేస్తుంది.
నేను విజువల్ డిజైనర్ లేదా UX నిపుణుడిని కాదు, కానీ తదుపరి విభాగంలో ఈ విజువలైజేషన్లు ఎలా ఉండవచ్చనే దానిపై కొన్ని ఆలోచనలను పంచుకోవాలనుకుంటున్నాను.
నిర్దిష్ట సేవలపై దృష్టి పెట్టండి
ఇండస్ట్రీ ఆలోచనల చుట్టూ కన్సాలిడేట్ అవుతున్న తరుణంలో SLO (సేవా స్థాయి లక్ష్యాలు) మరియు SLI (సేవా స్థాయి సూచికలు), వ్యక్తిగత బృందాలు తమ సేవలను ఈ లక్ష్యాలకు అనుగుణంగా ఉండేలా చూసుకోవడానికి ప్రాధాన్యత ఇవ్వడం సమంజసంగా కనిపిస్తోంది. ఇది దాన్ని అనుసరిస్తుంది సేవా ఆధారిత అటువంటి బృందాలకు విజువలైజేషన్ ఉత్తమంగా సరిపోతుంది.
ట్రేస్లు, ప్రత్యేకించి నమూనా లేకుండా, పంపిణీ చేయబడిన సిస్టమ్లోని ప్రతి భాగం గురించిన సమాచారం యొక్క నిధి. ఈ సమాచారాన్ని వినియోగదారులకు సరఫరా చేసే మోసపూరిత ప్రాసెసర్కు అందించవచ్చు సేవా ఆధారిత అన్వేషణలు. వాటిని ముందుగానే గుర్తించవచ్చు - వినియోగదారు జాడలను చూసే ముందు కూడా:
అత్యంత ప్రముఖ అభ్యర్థనల కోసం మాత్రమే జాప్యం పంపిణీ రేఖాచిత్రాలు (బయటి అభ్యర్థనలు);
సేవా SLO లక్ష్యాలను సాధించనప్పుడు కేసుల కోసం ఆలస్యం పంపిణీ యొక్క రేఖాచిత్రాలు;
చాలా తరచుగా ఉండే ప్రశ్నలలో అత్యంత "సాధారణ", "ఆసక్తికరమైన" మరియు "విచిత్రమైన" ట్యాగ్లు పునరావృతమవుతాయి;
కేసుల కోసం జాప్యం విచ్ఛిన్నం зависимости సేవలు వారి SLO లక్ష్యాలను సాధించలేవు;
వివిధ దిగువ సేవల కోసం జాప్యం బ్రేక్డౌన్.
ఈ ప్రశ్నలలో కొన్ని అంతర్నిర్మిత మెట్రిక్ల ద్వారా సమాధానం ఇవ్వబడవు, వినియోగదారులు పరిధులను పరిశీలించవలసి వస్తుంది. ఫలితంగా, మేము చాలా వినియోగదారు-శత్రువు యంత్రాంగాన్ని కలిగి ఉన్నాము.
ఇది ప్రశ్నను లేవనెత్తుతుంది: విభిన్న బృందాలచే నియంత్రించబడే విభిన్న సేవల మధ్య సంక్లిష్ట పరస్పర చర్యల గురించి ఏమిటి? అది కాదు ట్రేస్వ్యూ అటువంటి పరిస్థితిని హైలైట్ చేయడానికి అత్యంత సరైన సాధనంగా పరిగణించబడలేదా?
మొబైల్ డెవలపర్లు, స్థితిలేని సేవల యజమానులు, నిర్వహించబడే స్టేట్ఫుల్ సేవల యజమానులు (డేటాబేస్ల వంటివి) మరియు ప్లాట్ఫారమ్ యజమానులు వేరొకదానిపై ఆసక్తి కలిగి ఉండవచ్చు ప్రదర్శన పంపిణీ వ్యవస్థ; ట్రేస్వ్యూ ఈ ప్రాథమికంగా భిన్నమైన అవసరాలకు చాలా సాధారణ పరిష్కారం. చాలా క్లిష్టమైన మైక్రోసర్వీస్ ఆర్కిటెక్చర్లో కూడా, సర్వీస్ ఓనర్లకు రెండు లేదా మూడు కంటే ఎక్కువ అప్స్ట్రీమ్ మరియు డౌన్స్ట్రీమ్ సేవల గురించి లోతైన జ్ఞానం అవసరం లేదు. ముఖ్యంగా, చాలా సందర్భాలలో, వినియోగదారులు సంబంధించిన ప్రశ్నలకు మాత్రమే సమాధానం ఇవ్వాలి పరిమిత సేవల సెట్.
ఇది నిశితంగా పరిశీలించడం కోసం సేవల యొక్క చిన్న ఉపసమితిని భూతద్దంలో చూడటం లాంటిది. ఈ సేవలు మరియు వాటి తక్షణ డిపెండెన్సీల మధ్య సంక్లిష్ట పరస్పర చర్యలకు సంబంధించి మరింత ముఖ్యమైన ప్రశ్నలను అడగడానికి ఇది వినియోగదారుని అనుమతిస్తుంది. ఇది ఇంజనీర్కు తెలిసిన సేవల ప్రపంచంలో బ్యాక్ట్రేస్ను పోలి ఉంటుంది ఆ తప్పు, మరియు అర్థం చేసుకోవడానికి పరిసర సేవలలో ఏమి జరుగుతుందో కూడా కొంత అవగాహన ఉంది ఎందుకు.
నేను ప్రమోట్ చేస్తున్న విధానం టాప్-డౌన్, ట్రేస్వ్యూ-ఆధారిత విధానానికి ఖచ్చితమైన వ్యతిరేకం, ఇక్కడ విశ్లేషణ మొత్తం ట్రేస్తో ప్రారంభమవుతుంది మరియు క్రమంగా వ్యక్తిగత పరిధుల వరకు పని చేస్తుంది. దీనికి విరుద్ధంగా, బాటమ్-అప్ విధానం సంఘటన యొక్క సంభావ్య కారణానికి దగ్గరగా ఉన్న చిన్న ప్రాంతాన్ని విశ్లేషించడం ద్వారా ప్రారంభమవుతుంది, ఆపై శోధన స్థలాన్ని అవసరమైన విధంగా విస్తరిస్తుంది (విస్తృత శ్రేణి సేవలను విశ్లేషించడానికి ఇతర బృందాలను తీసుకురావడానికి అవకాశం ఉంది). ప్రారంభ పరికల్పనలను త్వరగా పరీక్షించడానికి రెండవ విధానం బాగా సరిపోతుంది. నిర్దిష్ట ఫలితాలు పొందిన తర్వాత, మరింత లక్ష్యంగా మరియు వివరణాత్మక విశ్లేషణకు వెళ్లడం సాధ్యమవుతుంది.
టోపోలాజీని నిర్మించడం
వినియోగదారుకు తెలిస్తే సేవ-నిర్దిష్ట వీక్షణలు చాలా ఉపయోగకరంగా ఉంటాయి ఇది ఒకటి ఒక సేవ లేదా సేవల సమూహం జాప్యాన్ని పెంచడానికి లేదా లోపాలను కలిగించడానికి బాధ్యత వహిస్తుంది. ఏదేమైనప్పటికీ, సంక్లిష్టమైన వ్యవస్థలో, విఫలమైనప్పుడు ఆక్షేపణీయ సేవను గుర్తించడం అనేది సామాన్యమైన పని కాదు, ప్రత్యేకించి సేవల నుండి ఎటువంటి దోష సందేశాలు నివేదించబడనట్లయితే.
సర్వీస్ టోపోలాజీని రూపొందించడం అనేది ఏ సర్వీస్లో ఎర్రర్ రేట్లలో స్పైక్ లేదా లేటెన్సీ పెరుగుదల కారణంగా సర్వీస్ గమనించదగ్గ స్థాయిలో క్షీణించబడుతుందో గుర్తించడంలో పెద్ద సహాయంగా ఉంటుంది. నేను టోపోలాజీని నిర్మించడం గురించి మాట్లాడేటప్పుడు, నా ఉద్దేశ్యం కాదు సేవల మ్యాప్, సిస్టమ్లో అందుబాటులో ఉన్న ప్రతి సేవను ప్రదర్శిస్తుంది మరియు దాని కోసం ప్రసిద్ధి చెందింది డెత్ స్టార్ ఆకారంలో నిర్మాణ పటాలు. ఈ వీక్షణ దర్శకత్వం వహించిన ఎసిక్లిక్ గ్రాఫ్ ఆధారంగా ట్రేస్వ్యూ కంటే మెరుగైనది కాదు. బదులుగా నేను చూడాలనుకుంటున్నాను డైనమిక్గా రూపొందించబడిన సేవా టోపోలాజీ, లోపం రేటు, ప్రతిస్పందన సమయం లేదా నిర్దిష్ట అనుమానాస్పద సేవలతో పరిస్థితిని స్పష్టం చేయడంలో సహాయపడే ఏదైనా వినియోగదారు నిర్వచించిన పరామితి వంటి నిర్దిష్ట లక్షణాల ఆధారంగా.
ఒక ఉదాహరణ తీసుకుందాం. ఊహాజనిత వార్తల సైట్ని ఊహించుకుందాం. హోమ్ పేజీ సేవ (మొదటి పత్రం) రెడిస్తో, సిఫార్సు సేవతో, ప్రకటనల సేవ మరియు వీడియో సేవతో డేటాను మార్పిడి చేస్తుంది. వీడియో సేవ S3 నుండి వీడియోలను మరియు DynamoDB నుండి మెటాడేటాను తీసుకుంటుంది. సిఫార్సు సేవ DynamoDB నుండి మెటాడేటాను అందుకుంటుంది, Redis మరియు MySQL నుండి డేటాను లోడ్ చేస్తుంది మరియు కాఫ్కాకు సందేశాలను వ్రాస్తుంది. ప్రకటనల సేవ MySQL నుండి డేటాను అందుకుంటుంది మరియు కాఫ్కాకు సందేశాలను వ్రాస్తుంది.
క్రింద ఈ టోపోలాజీ యొక్క స్కీమాటిక్ ప్రాతినిధ్యం ఉంది (అనేక వాణిజ్య రౌటింగ్ ప్రోగ్రామ్లు టోపోలాజీని నిర్మిస్తాయి). మీరు సర్వీస్ డిపెండెన్సీలను అర్థం చేసుకోవాలంటే ఇది ఉపయోగకరంగా ఉంటుంది. అయితే, సమయంలో డీబగ్, ఒక నిర్దిష్ట సేవ (చెప్పండి, వీడియో సేవ) పెరిగిన ప్రతిస్పందన సమయాన్ని ప్రదర్శిస్తున్నప్పుడు, అటువంటి టోపోలాజీ చాలా ఉపయోగకరంగా ఉండదు.
ఊహాజనిత వార్తల సైట్ యొక్క సేవా రేఖాచిత్రం
దిగువ రేఖాచిత్రం బాగా సరిపోతుంది. సేవలో సమస్య ఉంది (వీడియో) కుడివైపు మధ్యలో చిత్రీకరించబడింది. వినియోగదారు దానిని వెంటనే గమనిస్తాడు. ఈ విజువలైజేషన్ నుండి, S3 ప్రతిస్పందన సమయం పెరుగుదల కారణంగా వీడియో సేవ అసాధారణంగా పని చేస్తుందని స్పష్టమవుతుంది, ఇది ప్రధాన పేజీలో కొంత భాగం లోడింగ్ వేగాన్ని ప్రభావితం చేస్తుంది.
"ఆసక్తికరమైన" సేవలను మాత్రమే ప్రదర్శించే డైనమిక్ టోపోలాజీ
డైనమిక్గా రూపొందించబడిన టోపోలాజీలు స్టాటిక్ సర్వీస్ మ్యాప్ల కంటే ముఖ్యంగా సాగే, ఆటో-స్కేలింగ్ ఇన్ఫ్రాస్ట్రక్చర్లలో మరింత సమర్థవంతంగా ఉంటాయి. సర్వీస్ టోపోలాజీలను పోల్చి మరియు కాంట్రాస్ట్ చేసే సామర్థ్యం వినియోగదారుని మరింత సంబంధిత ప్రశ్నలను అడగడానికి అనుమతిస్తుంది. సిస్టమ్ గురించి మరింత ఖచ్చితమైన ప్రశ్నలు సిస్టమ్ ఎలా పనిచేస్తుందో బాగా అర్థం చేసుకోవడానికి దారితీసే అవకాశం ఉంది.
తులనాత్మక ప్రదర్శన
మరొక ఉపయోగకరమైన విజువలైజేషన్ తులనాత్మక ప్రదర్శన. ప్రస్తుతం ట్రేస్లు పక్కపక్కనే పోలికలకు చాలా అనుకూలంగా లేవు, కాబట్టి పోలికలు సాధారణంగా ఉంటాయి పరిధులు. మరియు ఈ వ్యాసం యొక్క ప్రధాన ఆలోచన ఏమిటంటే, ట్రేస్ ఫలితాల నుండి అత్యంత విలువైన సమాచారాన్ని సేకరించేందుకు స్పాన్లు చాలా తక్కువ స్థాయిలో ఉన్నాయి.
రెండు జాడలను పోల్చడానికి ప్రాథమికంగా కొత్త విజువలైజేషన్లు అవసరం లేదు. వాస్తవానికి, అదే సమాచారాన్ని ట్రేస్వ్యూగా సూచించే హిస్టోగ్రాం లాంటిది సరిపోతుంది. ఆశ్చర్యకరంగా, ఈ సరళమైన పద్ధతి కూడా రెండు జాడలను విడిగా అధ్యయనం చేయడం కంటే చాలా ఎక్కువ ఫలాలను తెస్తుంది. మరింత శక్తివంతమైన అవకాశం ఉంటుంది దృశ్యమానం చేయండి జాడల పోలిక మొత్తంగా. GC (చెత్త సేకరణ) ఎనేబుల్ చేయడానికి ఇటీవల అమలు చేయబడిన డేటాబేస్ కాన్ఫిగరేషన్ మార్పు అనేక గంటల స్కేల్లో దిగువ సేవ యొక్క ప్రతిస్పందన సమయాన్ని ఎలా ప్రభావితం చేస్తుందో చూడటం చాలా ఉపయోగకరంగా ఉంటుంది. నేను ఇక్కడ వివరిస్తున్నది మౌలిక మార్పుల ప్రభావం యొక్క A/B విశ్లేషణ లాగా అనిపిస్తే అనేక సేవల్లో ట్రేస్ ఫలితాలను ఉపయోగించి, మీరు సత్యానికి చాలా దూరంగా లేరు.
తీర్మానం
ట్రేసింగ్ యొక్క ఉపయోగాన్ని నేను ప్రశ్నించను. ఒక ట్రేస్లో ఉన్నంత రిచ్, కారణ మరియు సందర్భోచితంగా డేటాను సేకరించడానికి వేరే పద్ధతి లేదని నేను హృదయపూర్వకంగా నమ్ముతున్నాను. అయినప్పటికీ, అన్ని ట్రేసింగ్ సొల్యూషన్లు ఈ డేటాను చాలా అసమర్థంగా ఉపయోగిస్తాయని నేను నమ్ముతున్నాను. ట్రేస్వ్యూ ప్రాతినిధ్యంపై ట్రేసింగ్ సాధనాలు నిలిచిపోయినంత కాలం, ట్రేస్లలో ఉన్న డేటా నుండి సంగ్రహించగల విలువైన సమాచారాన్ని ఎక్కువగా ఉపయోగించుకునే సామర్థ్యంలో అవి పరిమితం చేయబడతాయి. అదనంగా, అప్లికేషన్లోని లోపాలను పరిష్కరించే వినియోగదారు సామర్థ్యాన్ని తీవ్రంగా పరిమితం చేసే పూర్తిగా స్నేహపూర్వకమైన మరియు అస్పష్టమైన దృశ్య ఇంటర్ఫేస్ను మరింత అభివృద్ధి చేసే ప్రమాదం ఉంది.
సంక్లిష్ట వ్యవస్థలను డీబగ్గింగ్ చేయడం, తాజా సాధనాలతో కూడా చాలా కష్టం. పరికల్పనను రూపొందించడానికి మరియు పరీక్షించడానికి సాధనాలు డెవలపర్కు సహాయపడాలి, చురుకుగా అందించడం సంబంధిత సమాచారం, అవుట్లైయర్లను గుర్తించడం మరియు జాప్యాల పంపిణీలో లక్షణాలను గుర్తించడం. ఉత్పత్తి వైఫల్యాలను పరిష్కరించేటప్పుడు లేదా బహుళ సేవలను విస్తరించే సమస్యలను పరిష్కరించేటప్పుడు డెవలపర్ల ఎంపిక సాధనంగా ట్రేసింగ్ చేయడానికి, ఆ సేవలను సృష్టించే మరియు నిర్వహించే డెవలపర్ల మానసిక నమూనాతో మరింత స్థిరంగా ఉండే అసలైన వినియోగదారు ఇంటర్ఫేస్లు మరియు విజువలైజేషన్లు అవసరం.
విశ్లేషణ మరియు అనుమితి సౌలభ్యం కోసం ఆప్టిమైజ్ చేయబడిన విధంగా ట్రేస్ ఫలితాలలో అందుబాటులో ఉన్న వివిధ సంకేతాలను సూచించే వ్యవస్థను రూపొందించడానికి ఇది గణనీయమైన మానసిక కృషిని తీసుకుంటుంది. వ్యక్తిగత జాడలు లేదా పరిధులను చూడకుండా వినియోగదారు బ్లైండ్ స్పాట్లను అధిగమించడంలో సహాయపడే విధంగా డీబగ్గింగ్ సమయంలో సిస్టమ్ టోపోలాజీని ఎలా సంగ్రహించాలో మీరు ఆలోచించాలి.
మాకు మంచి సంగ్రహణ మరియు లేయరింగ్ సామర్థ్యాలు (ముఖ్యంగా UIలో) అవసరం. పరికల్పన-ఆధారిత డీబగ్గింగ్ ప్రక్రియకు బాగా సరిపోయేవి, మీరు మళ్లీ మళ్లీ ప్రశ్నలు అడగవచ్చు మరియు పరికల్పనలను పరీక్షించవచ్చు. అవి అన్ని పరిశీలనా సమస్యలను స్వయంచాలకంగా పరిష్కరించవు, కానీ అవి వినియోగదారులు తమ అంతర్ దృష్టికి పదును పెట్టడానికి మరియు తెలివైన ప్రశ్నలను రూపొందించడంలో సహాయపడతాయి. నేను విజువలైజేషన్కు మరింత ఆలోచనాత్మకమైన మరియు వినూత్నమైన విధానాన్ని కోరుతున్నాను. క్షితిజాలను విస్తరించడానికి ఇక్కడ నిజమైన అవకాశం ఉంది.