"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

రోమన్ ఖవ్రోనెంకో "ఎక్స్‌టెండెడ్‌ప్రోమ్‌క్యూఎల్" ద్వారా రిపోర్టు యొక్క లిప్యంతరీకరణను చదవాలని నేను ప్రతిపాదించాను

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

నా గురించి క్లుప్తంగా. నా పేరు రోమన్. నేను CloudFlare కోసం పని చేస్తున్నాను మరియు లండన్‌లో నివసిస్తున్నాను. కానీ నేను విక్టోరియామెట్రిక్స్ మెయింటెయినర్‌ని కూడా.
మరియు నేను రచయితను క్లిక్‌హౌస్ ప్లగిన్ గ్రాఫానా కోసం మరియు క్లిక్‌హౌస్-ప్రాక్సీ ClickHouse కోసం ఒక చిన్న ప్రాక్సీ.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

మేము మొదటి భాగంతో ప్రారంభిస్తాము, దీనిని "అనువాద కష్టాలు" అని పిలుస్తారు మరియు దానిలో నేను ఏదైనా భాష లేదా కమ్యూనికేషన్ యొక్క భాష కూడా చాలా ముఖ్యమైనది అనే వాస్తవం గురించి మాట్లాడతాను. ఎందుకంటే మీరు మీ ఆలోచనలను మరొక వ్యక్తికి లేదా సిస్టమ్‌కి ఈ విధంగా తెలియజేస్తారు, మీరు అభ్యర్థనను ఎలా రూపొందిస్తారు. ఇంటర్నెట్‌లోని వ్యక్తులు జావా లేదా మరేదైనా మంచి భాష గురించి వాదిస్తున్నారు. నా కోసం, ఒక పనిని ఎంచుకోవాల్సిన అవసరం ఉందని నేను నిర్ణయించుకున్నాను, ఎందుకంటే ఇవన్నీ నిర్దిష్టంగా ఉన్నాయి.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

చాలా మొదటి నుండి ప్రారంభిద్దాం. PromQL అంటే ఏమిటి? PromQL అనేది ప్రోమేతియస్ ప్రశ్న భాష. సమయ శ్రేణి డేటాను పొందడానికి మేము ప్రోమేథియస్‌లో ఈ విధంగా ప్రశ్నలను ఏర్పరుస్తాము.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

సమయ శ్రేణి డేటా అంటే ఏమిటి? సాహిత్యపరంగా, ఇవి మూడు పారామితులు.

ఇది:

  • మనం ఏమి చూస్తున్నాం?
  • మేము దానిని చూసినప్పుడు.
  • మరియు అది ఏ విలువను చూపుతుంది?

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

మీరు ఈ చార్ట్‌ను చూస్తే (ఈ చార్ట్ నా ఫోన్ నుండి వచ్చింది, ఇది నా దశల గణాంకాలను చూపుతుంది), ఇక్కడ మీరు ఈ ప్రశ్నలకు త్వరగా సమాధానం ఇవ్వవచ్చు.

మేము దశలను చూస్తున్నాము. మనం అర్థాన్ని చూస్తాము మరియు మనం దానిని చూసేటప్పుడు సమయాన్ని చూస్తాము. అంటే, ఈ రేఖాచిత్రాన్ని చూస్తే, ఆదివారం నేను సుమారు 15 అడుగులు నడిచాను అని మీరు సులభంగా చెప్పవచ్చు. ఇది సమయ శ్రేణి డేటా.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

ఇప్పుడు వాటిని టేబుల్ రూపంలో మరొక డేటా మోడల్‌గా "బ్రేక్" (రూపాంతరం) చేద్దాం. ఇక్కడ మనం చూస్తున్నది కూడా ఉంది. ఇక్కడ నేను కొంచెం అదనపు డేటాను జోడించాను, దానిని మేము మెటా-డేటా అని పిలుస్తాము, అంటే, నేను కాదు, ఇద్దరు వ్యక్తులు, ఉదాహరణకు, జే మరియు సైలెంట్ బాబ్. ఇది మనం చూస్తున్నది; అది ఏమి చూపిస్తుంది మరియు ఆ విలువను ఎప్పుడు చూపుతుంది.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్
ఇప్పుడు ఈ డేటా మొత్తాన్ని డేటాబేస్‌లో నిల్వ చేయడానికి ప్రయత్నిద్దాం. ఉదాహరణకు, నేను ClickHouse సింటాక్స్ తీసుకున్నాను. మరియు ఇక్కడ మనం "స్టెప్స్" అని పిలువబడే ఒక పట్టికను సృష్టిస్తాము, అంటే మనం చూస్తున్నది. మేము దానిని చూసేటప్పుడు ఒక సమయం ఉంది; ఇది ఏమి చూపిస్తుంది మరియు కొంత మెటా డేటాను మేము ఎక్కడ నిల్వ చేస్తాము: జే మరియు సైలెంట్ బాబ్.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

మరియు అన్నింటినీ దృశ్యమానం చేయడానికి ప్రయత్నించడానికి, మేము గ్రాఫానాను ఉపయోగిస్తాము, ఎందుకంటే, మొదట, ఇది అందంగా ఉంది.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

అలాగే మేము ఈ ప్లగ్ఇన్‌ని ఉపయోగిస్తాము. దీనికి రెండు కారణాలున్నాయి. మొదటిది నేను వ్రాసినందున. క్లిక్‌హౌస్ నుండి సమయ శ్రేణి డేటాను గ్రాఫానాలో చూపించడం ఎంత కష్టమో నాకు తెలుసు.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

మేము దానిని గ్రాఫ్ ప్యానెల్‌లో ప్రదర్శిస్తాము. ఇది గ్రాఫానాలో అత్యంత ప్రజాదరణ పొందిన ప్యానెల్, ఇది సమయానికి విలువపై ఆధారపడటాన్ని చూపుతుంది, కాబట్టి మనకు రెండు పారామితులు మాత్రమే అవసరం.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్
మేము సృష్టించిన పట్టికలో క్లిక్‌హౌస్‌లో ఈ డేటాను నిల్వ చేయడం, గ్రాఫానాలో దశల గణాంకాలను ఎలా చూపాలి - సరళమైన ప్రశ్నను వ్రాద్దాం. మరియు మేము అటువంటి సాధారణ ప్రశ్నను వ్రాస్తాము. మేము దశల నుండి ఎంచుకుంటాము. మేము ఒక విలువను ఎంచుకుని, ఈ విలువల సమయాన్ని ఎంచుకుంటాము, అనగా మనం మాట్లాడిన అదే మూడు పారామితులు.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

మరియు ఫలితంగా, మనకు ఇలాంటి గ్రాఫ్ లభిస్తుంది. అతను ఎందుకు వింతగా ఉన్నాడో ఎవరికి తెలుసు?

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

అది నిజం, మీరు సమయానుగుణంగా క్రమబద్ధీకరించాలి.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

మరియు చివరికి మేము మెరుగైన, కానీ ఇప్పటికీ విచిత్రమైన షెడ్యూల్‌ను పొందుతాము. ఎందుకో ఎవరికి తెలుసు? అది నిజం, ఇద్దరు భాగస్వాములు ఉన్నారు మరియు మేము గ్రాఫానాలో రెండు సమయ శ్రేణిని అందిస్తాము, ఎందుకంటే మేము డేటా మోడల్‌తో మళ్లీ వ్యవహరిస్తే, ప్రతి టైమ్ సిరీస్ పేరు మరియు అన్ని లేబుల్‌ల కీ-విలువలతో కూడిన ప్రత్యేక కలయిక.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

అందువల్ల, మేము ఒక నిర్దిష్ట వ్యక్తిని ఎంచుకోవాలి. మేము జైని ఎంచుకుంటాము.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

మరియు మళ్ళీ గీయండి. ఇప్పుడు గ్రాఫ్ సత్యంలా కనిపిస్తోంది. ఇప్పుడు ఇది సాధారణ షెడ్యూల్ మరియు ప్రతిదీ బాగా పని చేస్తుంది.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

మరియు మీరు బహుశా అదే పనిని ఎలా చేయాలో బహుశా తెలుసుకుంటారు, కానీ PromQL ద్వారా ప్రోమేతియస్‌లో. ఇలాంటిది ఏదైనా. కొంచెం సరళమైనది. మరియు అన్నింటినీ విచ్ఛిన్నం చేద్దాం. మేము చర్యలు తీసుకున్నాము. మరియు జై ద్వారా ఫిల్టర్ చేయండి. మేము విలువను పొందాలని ఇక్కడ పేర్కొనడం లేదు మరియు మేము సమయాన్ని ఎంచుకోవడం లేదు.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

ఇప్పుడు జే లేదా సైలెంట్ బాబ్ యొక్క కదలిక వేగాన్ని లెక్కించడానికి ప్రయత్నిద్దాం. ClickHouseలో, మేము రన్నింగ్‌డిఫరెన్స్‌ని చేయాల్సి ఉంటుంది, అనగా, పాయింట్ల జతల మధ్య వ్యత్యాసాన్ని లెక్కించి, ఖచ్చితమైన వేగాన్ని పొందడానికి వాటిని సమయానికి విభజించండి. అభ్యర్థన ఇలా కనిపిస్తుంది.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

మరియు ఇది సుమారుగా ఈ విలువలను చూపుతుంది, అంటే సైలెంట్ బాబ్ లేదా జే సెకనుకు దాదాపు 1,8 అడుగులు వేస్తారు.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

మరియు ప్రోమేతియస్‌లో దీన్ని ఎలా చేయాలో కూడా మీకు తెలుసు. మునుపటి కంటే చాలా సులభం.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్మరియు గ్రాఫానాలో చేయడం కూడా సులభతరం చేయడానికి, నేను ఈ రేపర్‌ని జోడించాను, ఇది PromQLని పోలి ఉంటుంది. దీన్ని రేట్ మాక్రోస్ అంటారు లేదా మీరు దీన్ని ఏదైనా పిలవాలనుకుంటున్నారు. గ్రాఫానాలో మీరు కేవలం "రేటు" అని వ్రాస్తారు, కానీ ఎక్కడో లోతుగా అది ఈ పెద్ద అభ్యర్థనగా మారుతుంది. మరియు మీరు దానిని చూడవలసిన అవసరం లేదు, అది ఎక్కడో ఉంది, కానీ మీరు చాలా సమయాన్ని ఆదా చేస్తారు, ఎందుకంటే అటువంటి భారీ SQL ప్రశ్నలను వ్రాయడం ఎల్లప్పుడూ ఖరీదైనది. మీరు సులభంగా పొరపాటు చేయవచ్చు మరియు ఎక్కువ కాలం ఏమి జరుగుతుందో అర్థం చేసుకోలేరు.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

మరియు ఇది ఒక స్లయిడ్‌లో కూడా సరిపోని ప్రశ్న, మరియు నేను దానిని రెండు నిలువు వరుసలుగా విభజించవలసి వచ్చింది. ఇది క్లిక్‌హౌస్‌లోని అభ్యర్థన, ఇది ఒకే రేట్‌ను చేస్తుంది, కానీ రెండు సమయ శ్రేణులకు: సైలెంట్ బాబ్ మరియు జే, తద్వారా మేము ప్యానెల్‌లో రెండు సమయ శ్రేణులను కలిగి ఉన్నాము. మరియు ఇది ఇప్పటికే చాలా కష్టం, నా అభిప్రాయం.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

మరియు ప్రోమేతియస్ ప్రకారం ఇది మొత్తం (రేటు) అవుతుంది. ClickHouse కోసం, నేను RateColumns అనే ప్రత్యేక స్థూలాన్ని తయారు చేసాను, ఇది ప్రోమేతియస్‌లో ఒక ప్రశ్న వలె కనిపిస్తుంది.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

మేము చూసాము మరియు PromQL చాలా బాగుంది, కానీ దీనికి పరిమితులు ఉన్నాయి.

ఇది:

  • పరిమిత SELECT.
  • ఎడ్జ్ జాయిన్‌లు.
  • మద్దతు లేదు.

మరియు మీరు దానితో ఎక్కువ కాలం పని చేసి ఉంటే, కొన్నిసార్లు PromQL లో ఏదైనా చేయడం చాలా కష్టమని మీకు తెలుసు, కానీ SQL లో మీరు దాదాపు ప్రతిదీ చేయగలరు, ఎందుకంటే మేము ఇప్పుడే మాట్లాడిన ఈ ఎంపికలన్నీ SQL లో చేయవచ్చు. . కానీ దానిని ఉపయోగించడం సౌకర్యంగా ఉంటుందా? మరియు ఇది అత్యంత శక్తివంతమైన భాష ఎల్లప్పుడూ అత్యంత సౌకర్యవంతంగా ఉండకపోవచ్చని నేను భావిస్తున్నాను.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

అందువల్ల, కొన్నిసార్లు మీరు పనుల కోసం భాషను ఎంచుకోవాలి. ఇది బ్యాట్‌మ్యాన్ మరియు సూపర్‌మ్యాన్ మధ్య యుద్ధం లాంటిది. సూపర్మ్యాన్ బలంగా ఉన్నాడని స్పష్టంగా తెలుస్తుంది, అయితే బాట్‌మాన్ అతనిని ఓడించగలిగాడు ఎందుకంటే అతను మరింత ఆచరణాత్మకంగా ఉన్నాడు మరియు అతను ఏమి చేస్తున్నాడో ఖచ్చితంగా తెలుసు.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

మరియు తదుపరి భాగం PromQLని విస్తరించడం.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

విక్టోరియామెట్రిక్స్ గురించి మరోసారి. విక్టోరియామెట్రిక్స్ అంటే ఏమిటి? ఇది టైమ్ సిరీస్ డేటాబేస్, ఇది ఓపెన్‌సోర్స్‌లో ఉంది, మేము దాని సింగిల్ మరియు క్లస్టర్ వెర్షన్‌లను పంపిణీ చేస్తాము. మా బెంచ్‌మార్క్‌ల ప్రకారం, ఇది ఇప్పుడు మార్కెట్లో ఉన్న అత్యంత వేగవంతమైనది మరియు ఇది కుదింపు పరంగా సమానంగా ఉంటుంది, అంటే జీవించే వ్యక్తులు ప్రోమేతియస్‌కు 0,4-1,2 ఉన్నప్పుడు ప్రతి పాయింట్‌కు 1,4 బైట్‌ల కంప్రెషన్‌ను నివేదిస్తారు.

మేము ప్రోమేతియస్ కంటే ఎక్కువ మద్దతు ఇస్తున్నాము. మేము InfluxDB, Graphite, OpenTSDBకి మద్దతిస్తాము.

మీరు మాకు "వ్రాయవచ్చు", అంటే, మీరు పాత డేటాను బదిలీ చేయవచ్చు.

మరియు మేము ప్రోమేతియస్ మరియు గ్రాఫానాతో కూడా సంపూర్ణంగా పని చేస్తాము, అంటే మేము PromQL ఇంజిన్‌కు మద్దతు ఇస్తాము. మరియు గ్రాఫానాలో మీరు ప్రోమేతియస్ ఎండ్‌పాయింట్‌ను విక్టోరియామెట్రిక్స్‌గా మార్చవచ్చు మరియు మీ అన్ని డాష్‌బోర్డ్‌లు అవి చేసినట్లుగానే పని చేస్తాయి.

కానీ మీరు VictoriaMetrics అందించే అదనపు ఫీచర్లను కూడా ఉపయోగించవచ్చు.

మేము జోడించిన ఫీచర్‌లను త్వరగా పరిశీలిస్తాము.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

విరామం పారామ్‌ను వదిలివేయండి - మీరు గ్రాఫానాలో పరామితి విరామాన్ని దాటవేయవచ్చు. ప్యానెల్‌లో జూమ్-ఇన్/అవుట్ చేసినప్పుడు మీరు వింత గ్రాఫ్‌లను పొందకూడదనుకుంటే, వేరియబుల్‌ని ఉపయోగించమని సిఫార్సు చేయబడింది $__interval. ఇది అంతర్గత గ్రాఫానా మార్పు మరియు ఇది డేటా పరిధిని ఎంచుకుంటుంది. మరియు విక్టోరియామెట్రిక్స్ ఈ రేంజ్ ఎలా ఉండాలో అర్థం చేసుకోవచ్చు. మరియు మీరు మీ అన్ని అభ్యర్థనలను నవీకరించాల్సిన అవసరం లేదు. ఇది చాలా సులభం అవుతుంది.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

రెండవ విధి విరామ సూచన. మీరు మీ వ్యక్తీకరణలలో ఈ అంతరాన్ని ఉపయోగించవచ్చు. మీరు దానిని గుణించవచ్చు, విభజించవచ్చు, బదిలీ చేయవచ్చు, సూచించవచ్చు.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

తదుపరిది రోల్అప్ ఫంక్షన్ కుటుంబం. రోల్అప్ ఫంక్షన్ మీ సమయ శ్రేణిలో దేనినైనా మూడు వేర్వేరు సమయ శ్రేణులుగా మారుస్తుంది. ఇవి కనిష్ట, గరిష్టం మరియు సగటు. నేను దీన్ని చాలా సౌకర్యవంతంగా భావిస్తున్నాను, ఎందుకంటే కొన్నిసార్లు ఇది కొన్ని అవుట్‌లియర్‌లను (క్రమరాహిత్యాలు) మరియు దోషాలను చూపుతుంది.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

మరియు మీరు కోపంగా లేదా రేట్ చేస్తున్నట్లయితే, మీరు ఊహించిన విధంగా సమయ శ్రేణి ప్రవర్తించని కొన్ని సందర్భాలను మీరు కోల్పోవచ్చు. ఈ ఫంక్షన్‌తో చూడటం చాలా సులభం, గరిష్టం సగటు నుండి చాలా ఎక్కువ అని చెప్పండి.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

తదుపరిది డిఫాల్ట్ వేరియబుల్. డిఫాల్ట్ - ప్రస్తుతం మనకు సమయ శ్రేణి లేకుంటే గ్రాఫానాలో మనం ఏ విలువను గీయాలి అని దీని అర్థం. అది ఎప్పుడు జరుగుతుంది? మీరు కొన్ని ఎర్రర్ మెట్రిక్‌లను ఎగుమతి చేశారనుకుందాం. మరియు మీకు చాలా మంచి అప్లికేషన్ ఉంది, మీరు ప్రారంభించినప్పుడు, మీకు ఎటువంటి లోపాలు లేవు మరియు తదుపరి మూడు గంటలు లేదా ఒక రోజు వరకు కూడా లోపాలు లేవు. మరియు మీరు విజయం నుండి లోపం వరకు సంబంధాలను చూపించే డ్యాష్‌బోర్డ్‌లను కలిగి ఉన్నారు. మరియు మీకు ఎర్రర్ మెట్రిక్ లేనందున వారు మీకు ఏమీ చూపించరు. మరియు డిఫాల్ట్‌గా మీరు ఏదైనా పేర్కొనవచ్చు.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

Keep_last_Value - మెట్రిక్ తప్పిపోయినట్లయితే చివరి విలువను సేవ్ చేస్తుంది. తదుపరి స్క్రాప్ తర్వాత ప్రోమేతియస్ దానిని 5 నిమిషాల్లో కనుగొనలేకపోతే, ఇక్కడ మేము దాని చివరి విలువను గుర్తుంచుకుంటాము మరియు మీ చార్ట్‌లు మళ్లీ విచ్ఛిన్నం కావు.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

Scrape_interval – ప్రోమేతియస్ మీ మెట్రిక్‌పై డేటాను ఎంత తరచుగా సేకరిస్తారో మరియు ఏ ఫ్రీక్వెన్సీతో చూపుతుంది. ఇక్కడ మీరు పాస్‌ను చూడవచ్చు, ఉదాహరణకు.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్
లేబుల్ రీప్లేస్ అనేది ఒక ప్రముఖ ఫీచర్. కానీ ఇది పూర్ణాంక ఆర్గ్యుమెంట్‌లను తీసుకుంటుంది కాబట్టి ఇది కొంచెం క్లిష్టంగా ఉందని మేము భావిస్తున్నాము. మరియు మీరు 5 వాదనలను మాత్రమే గుర్తుంచుకోవాలి, కానీ వారి క్రమాన్ని కూడా గుర్తుంచుకోవాలి.
"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్
అందువల్ల, వాటిని ఎందుకు సరళంగా చేయకూడదు? అంటే, స్పష్టమైన సింటాక్స్‌తో చిన్న ఫంక్షన్‌లుగా విభజించండి.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

మరియు ఇప్పుడు అత్యంత ఆసక్తికరమైన. ఇది పొడిగించిన PromQL అని మేము ఎందుకు అనుకుంటున్నాము? ఎందుకంటే మేము కామన్ టేబుల్ ఎక్స్‌ప్రెషన్‌లకు మద్దతిస్తాము. మీరు QR కోడ్‌ని అనుసరించవచ్చు (https://github.com/VictoriaMetrics/VictoriaMetrics/wiki/ExtendedPromQL), ప్లేగ్రౌండ్ నుండి ఉదాహరణలతో లింక్‌లను చూడండి, ఇక్కడ మీరు ప్రశ్నలను బ్రౌజర్‌లో ఇన్‌స్టాల్ చేయకుండా నేరుగా VictoriaMetricsలో అమలు చేయవచ్చు.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

మరియు ఇది ఏమిటి? ఎగువన ఉన్న ఈ అభ్యర్థన చాలా ప్రజాదరణ పొందిన అభ్యర్థన. చాలా కంపెనీల్లోని ఏదైనా డాష్‌బోర్డ్‌లో మీరు అన్నింటికీ ఒకే ఫిల్టర్‌ని ఉపయోగిస్తున్నారని నేను అనుకుంటున్నాను. సాధారణంగా అలా. కానీ మీరు కొన్ని కొత్త ఫిల్టర్‌లను జోడించాల్సిన అవసరం వచ్చినప్పుడు, మీరు ప్రతి ప్యానెల్‌ను అప్‌డేట్ చేయాలి లేదా డాష్‌బోర్డ్‌ను డౌన్‌లోడ్ చేసుకోవాలి, JSONలో తెరవండి, రీప్లేస్‌ని కనుగొనండి, దీనికి సమయం కూడా పడుతుంది. ఈ విలువను వేరియబుల్‌లో ఎందుకు నిల్వ చేసి దాన్ని మళ్లీ ఉపయోగించకూడదు? ఇది నా అభిప్రాయం ప్రకారం, చాలా సరళంగా మరియు స్పష్టంగా కనిపిస్తుంది.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

ఉదాహరణకు, నేను అన్ని అభ్యర్థనలలో గ్రాఫానాలో ఫిల్టర్‌లను అప్‌డేట్ చేయవలసి వచ్చినప్పుడు మరియు డాష్‌బోర్డ్ భారీగా ఉండవచ్చు లేదా వాటిలో చాలా వరకు ఉండవచ్చు. మరియు నేను గ్రాఫానాలో ఈ సమస్యను ఎలా పరిష్కరించాలనుకుంటున్నాను?

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

నేను ఈ సమస్యను ఇలా పరిష్కరిస్తాను: నేను ఒక కామన్‌ఫిల్టర్‌ని తయారు చేసి, దానిలో ఈ ఫిల్టర్‌ని నిర్వచించాను, ఆపై నేను ప్రశ్నలలో దాన్ని మళ్లీ ఉపయోగిస్తాను. కానీ మీరు ఇప్పుడు అదే చేస్తే, అది పని చేయదు ఎందుకంటే ప్రశ్న వేరియబుల్స్ లోపల వేరియబుల్స్ ఉపయోగించడానికి Grafana మిమ్మల్ని అనుమతించదు. మరియు ఇది కొద్దిగా విచిత్రమైనది.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

కాబట్టి నేను దీన్ని చేయడానికి మిమ్మల్ని అనుమతించే ఎంపికను చేసాను. మరియు మీకు ఆసక్తి ఉంటే లేదా అలాంటి ఫీచర్ కావాలనుకుంటే, ఈ ఆలోచన మీకు నచ్చకపోతే మద్దతు ఇవ్వండి లేదా ఇష్టపడకపోతే. https://github.com/grafana/grafana/pull/16694

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

PromQL గురించి మరింత పొడిగించబడింది. ఇక్కడ మనం వేరియబుల్‌ను మాత్రమే కాకుండా, నేరుగా మొత్తం ఫంక్షన్‌ను నిర్వచించాము. మరియు మేము దీనిని రు (వనరుల వినియోగం) అని పిలుస్తాము. మరియు ఈ ఫంక్షన్ ఉచిత వనరులు, వనరుల పరిమితి మరియు ఫిల్టర్‌ను అంగీకరిస్తుంది. వాక్యనిర్మాణం సరళంగా ఉన్నట్లు అనిపిస్తుంది. మరియు ఈ ఫంక్షన్‌ను ఉపయోగించడం మరియు మన వద్ద ఉన్న ఉచిత మెమరీ శాతాన్ని లెక్కించడం చాలా సులభం. అంటే మనకు ఎంత మెమరీ ఉంది, ఏ పరిమితి మరియు ఎలా ఫిల్టర్ చేయాలి. మీరు అవన్నీ ఒకే ఫిల్టర్‌లను ఉపయోగించి మళ్లీ వ్రాసినట్లయితే ఇది చాలా మెరుగ్గా కనిపిస్తుంది, ఎందుకంటే ఇది పెద్ద, పెద్ద ప్రశ్నగా మారుతుంది.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

మరియు ఇంత పెద్ద, పెద్ద అభ్యర్థనకు ఉదాహరణ ఇక్కడ ఉంది. ఇది గ్రాఫానా కోసం అధికారిక NodeExporter డాష్‌బోర్డ్ నుండి. కానీ ఇక్కడ ఏమి జరుగుతుందో నాకు అర్థం కాలేదు. అంటే, మీరు నిశితంగా పరిశీలిస్తే నేను అర్థం చేసుకున్నాను, కానీ కుండలీకరణాల సంఖ్య వెంటనే ఇక్కడ ఏమి జరుగుతుందో అర్థం చేసుకోవడానికి ప్రేరణను తగ్గిస్తుంది. మరియు దానిని ఎందుకు సరళంగా మరియు స్పష్టంగా చేయకూడదు?

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

ఉదాహరణకు, ఇలా, ముఖ్యమైన విషయాలు లేదా భాగాలను వేరియబుల్స్‌గా వేరు చేయడం. ఆపై మీ ప్రాథమిక గణితాన్ని చేయండి. ఇది ఇప్పటికే ప్రోగ్రామింగ్ లాగా ఉంది, భవిష్యత్తులో నేను గ్రాఫానాలో చూడాలనుకుంటున్నాను.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

మేము ఇప్పటికే ఈ ru ఫంక్షన్‌ని కలిగి ఉన్నట్లయితే మరియు ఇది ఇప్పటికే VictoriaMetricsలో నేరుగా ఉనికిలో ఉన్నట్లయితే దాన్ని మరింత సులభతరం చేయడానికి ఇక్కడ రెండవ ఉదాహరణ ఉంది. ఆపై మీరు CTEలో ప్రకటించిన కాష్ చేసిన విలువను పాస్ చేయండి.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

సరైన ప్రోగ్రామింగ్ భాషను ఉపయోగించడం ఎంత ముఖ్యమో నేను ఇప్పటికే మాట్లాడాను. మరియు, బహుశా, ప్రతి కంపెనీలో గ్రాఫానాలో ఏదో ఒక భిన్నమైనది జరుగుతోంది. మరియు, బహుశా, మీరు ఇప్పటికీ మీ డెవలపర్‌లకు గ్రాఫానాకు యాక్సెస్ ఇస్తారు మరియు డెవలపర్‌లు వారి స్వంతంగా ఏదైనా చేస్తారు. మరియు వారందరూ వేరే విధంగా చేస్తారు. కానీ నేను దానిని ఏదో ఒకవిధంగా కోరుకున్నాను, అంటే సాధారణ ప్రమాణానికి తగ్గించబడింది.

మీకు సిస్టమ్ ఇంజనీర్లు మాత్రమే లేరని అనుకుందాం, బహుశా మీకు నిపుణులు, డెవొప్‌లు లేదా SREలు కూడా ఉండవచ్చు. మీకు పర్యవేక్షణ అంటే ఏమిటో తెలిసిన నిపుణులు ఉండవచ్చు, గ్రాఫానా అంటే ఏమిటో తెలుసు, అంటే వారు దీనితో సంవత్సరాలుగా పని చేస్తున్నారు మరియు సరిగ్గా దీన్ని ఎలా చేయాలో వారికి తెలుసు. మరియు వారు ఇప్పటికే 100 సార్లు వ్రాసారు మరియు అందరికీ వివరించారు, కానీ కొన్ని కారణాల వల్ల ఎవరూ వినరు.

వారు ఈ జ్ఞానాన్ని నేరుగా గ్రాఫానాలో ఉంచగలిగితే, ఇతర వినియోగదారులు ఫీచర్‌లను మళ్లీ ఉపయోగించుకోవచ్చు? మరియు వారు ఉచిత మెమరీ శాతాన్ని లెక్కించాల్సిన అవసరం ఉంటే, వారు కేవలం ఫంక్షన్‌ను వర్తింపజేస్తారు. ఎగుమతిదారుల సృష్టికర్తలు, వారి ఉత్పత్తితో పాటు, వారి కొలమానాలతో ఎలా పని చేయాలనే దానిపై ఫంక్షన్ల సమితిని కూడా అందించినట్లయితే, ఈ కొలమానాలు ఏమిటో మరియు వాటిని సరిగ్గా ఎలా లెక్కించాలో వారికి ఖచ్చితంగా తెలుసు?

ఇది నిజంగా ఉనికిలో లేదు. ఇది నేనే చేసాను. ఇది గ్రాఫానాలోని లైబ్రరీ మద్దతు. నోడ్‌ఎక్స్‌పోర్టర్‌ని తయారు చేసిన కుర్రాళ్ళు నేను మాట్లాడినట్లు చేశారనుకుందాం. మరియు వారు ఫంక్షన్ల సమితిని కూడా అందించారు.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

అంటే, ఇది ఇలా కనిపిస్తుంది. మీరు ఈ లైబ్రరీని గ్రాఫానాకు కనెక్ట్ చేయండి, మీరు ఎడిటింగ్‌లోకి వెళతారు మరియు ఈ మెట్రిక్‌తో ఎలా పని చేయాలో JSONలో చాలా సరళంగా వ్రాయబడింది. అంటే, కొన్ని సెట్ ఫంక్షన్లు, వాటి వివరణ మరియు అవి ఏవిగా మారుతాయి.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

ఇది ఉపయోగకరంగా ఉంటుందని నేను భావిస్తున్నాను, ఎందుకంటే గ్రాఫానాలో మీరు అలానే వ్రాస్తారు. మరియు అటువంటి మరియు అటువంటి లైబ్రరీ నుండి అటువంటి మరియు అలాంటి ఫంక్షన్ ఉందని గ్రాఫానా మీకు "చెపుతుంది" - దానిని ఉపయోగించుకుందాం. ఇది చాలా బాగుంది అని నేను అనుకుంటున్నాను.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

విక్టోరియామెట్రిక్స్ గురించి కొంచెం. మేము చాలా ఆసక్తికరమైన విషయాలు చేస్తాము. కంప్రెషన్ గురించి, ఇతర సమయ శ్రేణి డేటా అప్లికేషన్‌లతో మా పోటీ గురించి, PromQLతో ఎలా పని చేయాలో మా వివరణ గురించి మా కథనాలను చదవండి, ఎందుకంటే ఇందులో ఇంకా చాలా మంది ప్రారంభకులు ఉన్నారు, అలాగే నిలువు స్కేలబిలిటీ గురించి మరియు థానోస్‌తో ఘర్షణ గురించి.

"ExtendedPromQL" - రోమన్ ఖవ్రోనెంకో యొక్క నివేదిక యొక్క ట్రాన్స్క్రిప్ట్

ప్రశ్నలు:

నేను నా ప్రశ్నను ఒక సాధారణ జీవిత కథతో ప్రారంభిస్తాను. నేను మొదట గ్రాఫానాను ఉపయోగించడం ప్రారంభించినప్పుడు, నేను 5 పంక్తుల పొడవు గల చాలా బలవంతపు ప్రశ్నను వ్రాసాను. తుది ఫలితం చాలా నమ్మదగిన గ్రాఫ్. ఈ షెడ్యూల్ దాదాపుగా ప్రొడక్షన్‌కు వెళ్లింది. కానీ నిశితంగా పరిశీలించిన తర్వాత, ఈ గ్రాఫ్ వాస్తవికతతో సంబంధం లేని సంపూర్ణ అర్ధంలేనిదిగా చూపిస్తుంది, అయినప్పటికీ సంఖ్యలు మనం చూడాలనుకున్న పరిధిలోకి వస్తాయి. మరియు నా ప్రశ్న. మనకు లైబ్రరీలు ఉన్నాయి, మాకు ఫంక్షన్‌లు ఉన్నాయి, అయితే గ్రాఫానాకు పరీక్షలు ఎలా రాయాలి? మీరు వ్యాపార నిర్ణయంపై ఆధారపడిన సంక్లిష్ట అభ్యర్థనను వ్రాసారు - సర్వర్‌ల యొక్క నిజమైన కంటైనర్‌ను ఆర్డర్ చేయడానికి లేదా ఆర్డర్ చేయకూడదని. మరియు మనకు తెలిసినట్లుగా, గ్రాఫ్ని గీసే ఈ ఫంక్షన్ సత్యాన్ని పోలి ఉంటుంది. ధన్యవాదాలు.

ప్రశ్నకు ధన్యవాదాలు. ఇక్కడ రెండు భాగాలు ఉన్నాయి. ముందుగా, చాలా మంది వినియోగదారులు తమ చార్ట్‌లను చూసినప్పుడు, వారికి ఏమి చూపిస్తున్నారో అర్థం కావడం లేదని నా అనుభవం ఆధారంగా నేను అభిప్రాయాన్ని పొందాను. ఏదో ఒకవిధంగా, చార్ట్‌లలో జరిగే ఏదైనా క్రమరాహిత్యానికి ఒక సాకుతో ముందుకు రావడంలో వ్యక్తులు చాలా మంచివారు, అది ఫంక్షన్‌లో బగ్ అయినప్పటికీ. మరియు రెండవ భాగం - మీ డెవలపర్‌లలో ప్రతి ఒక్కరు వారి స్వంత సామర్థ్యాన్ని ప్లాన్ చేయడం మరియు కొంత సంభావ్యతతో తప్పులు చేయడం కంటే, అటువంటి ఫంక్షన్‌లను ఉపయోగించడం మీ సమస్యను పరిష్కరించడానికి చాలా బాగా సరిపోతుందని నాకు అనిపిస్తోంది.

ఎలా తనిఖీ చేయాలి?

ఎలా తనిఖీ చేయాలి? బహుశా కాకపోవచ్చు.

గ్రాఫానాలో పరీక్షగా.

మరియు గ్రాఫానా గురించి ఏమిటి? గ్రాఫానా ఈ అభ్యర్థనను నేరుగా డేటాసోర్స్‌కి అనువదిస్తుంది.

పారామితులకు కొద్దిగా జోడించడం ద్వారా.

లేదు, Grafanaకి ఏదీ జోడించబడలేదు. దశ వంటి GET పారామీటర్‌లు ఉండవచ్చు. ఇది స్పష్టంగా పేర్కొనబడలేదు, కానీ మీరు దానిని భర్తీ చేయవచ్చు, మీరు దానిని భర్తీ చేయలేరు, కానీ ఇది స్వయంచాలకంగా జోడించబడుతుంది. మీరు ఇక్కడ పరీక్షలు రాయరు. మీరు ఇక్కడ గ్రాఫానాపై ఆధారపడాలని నేను అనుకోను.

నివేదికకు ధన్యవాదాలు! కుదింపు కోసం ధన్యవాదాలు! గ్రాఫ్‌లో వేరియబుల్‌ను మ్యాపింగ్ చేయడం గురించి మీరు గుర్తు చేసుకున్నారు, గ్రాఫానాలో మీరు వేరియబుల్‌లో వేరియబుల్‌ని ఉపయోగించలేరు. నా ఉద్దేశ్యం మీకు అర్థమైందా?

అవును.

నేను గ్రాఫానాలో అలర్ట్ చేయాలనుకున్నప్పుడు ఇది మొదట్లో తలనొప్పిగా ఉండేది. మరియు అక్కడ మీరు ప్రతి హోస్ట్ కోసం విడిగా హెచ్చరికను చేయాలి. ఇదిగో మీరు చేసిన పని, గ్రాఫానాలో అలర్ట్‌ల కోసం ఇది పని చేస్తుందా?

గ్రాఫానా వేరియబుల్స్‌ని విభిన్నంగా యాక్సెస్ చేయకపోతే, అవును, అది పని చేస్తుంది. కానీ గ్రాఫానాలో అలర్ట్‌ని అస్సలు ఉపయోగించకూడదని నా సలహా, మీరు అలర్ట్‌మేనేజర్‌ని ఉపయోగించడం మంచిది.

అవును, నేను దీన్ని ఉపయోగిస్తున్నాను, కానీ గ్రాఫానాలో సెటప్ చేయడం చాలా తేలికగా అనిపించింది, కానీ చిట్కాకు ధన్యవాదాలు!

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి