கிராஃபனாவுக்கான சொருகி உருவாக்கம்: பெரிய காட்சிகளின் வரலாறு

அனைவருக்கும் வணக்கம்! சில மாதங்களுக்கு முன்பு, நாங்கள் எங்கள் புதிய திறந்த மூல திட்டத்தை தயாரிப்பில் தொடங்கினோம் - குபெர்னெட்களை கண்காணிப்பதற்கான கிராஃபானா செருகுநிரல், இதை நாங்கள் அழைத்தோம். DevOpsProdigy KubeGraf. செருகுநிரல் மூலக் குறியீடு இங்கு கிடைக்கிறது GitHub இல் பொது களஞ்சியம். இந்த கட்டுரையில், நாங்கள் எவ்வாறு செருகுநிரலை உருவாக்கினோம், என்ன கருவிகளைப் பயன்படுத்தினோம் மற்றும் வளர்ச்சி செயல்பாட்டின் போது என்ன ஆபத்துகளை சந்தித்தோம் என்ற கதையை உங்களுடன் பகிர்ந்து கொள்ள விரும்புகிறோம். போகலாம்!

பகுதி 0 - அறிமுகம்: நாம் எப்படி இந்த நிலைக்கு வந்தோம்?

கிராஃபனுக்கு எங்கள் சொந்த செருகுநிரலை எழுதும் எண்ணம் தற்செயலாக எங்களுக்கு வந்தது. எங்கள் நிறுவனம் 10 ஆண்டுகளுக்கும் மேலாக பல்வேறு சிக்கலான வலைத் திட்டங்களைக் கண்காணித்து வருகிறது. இந்த நேரத்தில், பல்வேறு கண்காணிப்பு அமைப்புகளைப் பயன்படுத்துவதில் அதிக அளவு நிபுணத்துவம், சுவாரஸ்யமான வழக்குகள் மற்றும் அனுபவத்தை நாங்கள் குவித்துள்ளோம். சில சமயங்களில் நாங்கள் நம்மை நாமே கேட்டுக்கொண்டோம்: "குபெர்னெட்ஸைக் கண்காணிப்பதற்கு ஒரு மாயக் கருவி உள்ளதா, அதனால் அவர்கள் சொல்வது போல், "அதை அமைத்து மறந்து விடுங்கள்"?" ப்ரோமிதியஸ் + கிராஃபானா கலவை. இந்த அடுக்கிற்கான ஆயத்த தீர்வுகளாக, பல்வேறு வகையான கருவிகளின் பெரிய தொகுப்பு உள்ளது: ப்ரோமிதியஸ்-ஆபரேட்டர், குபெர்னெட்ஸ்-மிக்சின் டாஷ்போர்டுகளின் தொகுப்பு, கிராஃபானா-குபெர்னெட்ஸ்-ஆப்.

Grafana-kubernetes-app செருகுநிரல் எங்களுக்கு மிகவும் சுவாரஸ்யமான விருப்பமாகத் தோன்றியது, ஆனால் இது ஒரு வருடத்திற்கும் மேலாக ஆதரிக்கப்படவில்லை, மேலும், node-exporter மற்றும் kube-state-metrics இன் புதிய பதிப்புகளுடன் வேலை செய்ய முடியாது. ஒரு கட்டத்தில் நாங்கள் முடிவு செய்தோம்: "நாம் சொந்த முடிவை எடுக்க வேண்டாமா?"

எங்கள் செருகுநிரலில் என்ன யோசனைகளை செயல்படுத்த முடிவு செய்தோம்:

  • "பயன்பாட்டு வரைபடத்தின்" காட்சிப்படுத்தல்: க்ளஸ்டரில் உள்ள பயன்பாடுகளின் வசதியான விளக்கக்காட்சி, பெயர்வெளிகள், வரிசைப்படுத்தல்கள்...
  • "வரிசைப்படுத்தல் - சேவை (+போர்ட்கள்)" போன்ற இணைப்புகளின் காட்சிப்படுத்தல்.
  • கிளஸ்டர் முனைகளில் கிளஸ்டர் பயன்பாடுகளின் விநியோகத்தின் காட்சிப்படுத்தல்.
  • பல ஆதாரங்களில் இருந்து அளவீடுகள் மற்றும் தகவல்களின் தொகுப்பு: Prometheus மற்றும் k8s api சர்வர்.
  • உள்கட்டமைப்பு பகுதி (CPU நேரம், நினைவகம், வட்டு துணை அமைப்பு, நெட்வொர்க் ஆகியவற்றின் பயன்பாடு) மற்றும் பயன்பாட்டு தர்க்கம் - சுகாதார நிலை காய்கள், கிடைக்கக்கூடிய பிரதிகளின் எண்ணிக்கை, உயிரோட்டம் / தயார்நிலை சோதனைகளில் தேர்ச்சி பெறுவது பற்றிய தகவல் ஆகிய இரண்டையும் கண்காணித்தல்.

பகுதி 1: "கிராஃபானா செருகுநிரல்" என்றால் என்ன?

தொழில்நுட்பக் கண்ணோட்டத்தில், கிராஃபானாவுக்கான செருகுநிரல் ஒரு கோணக் கட்டுப்படுத்தி ஆகும், இது கிராஃபானா தரவு கோப்பகத்தில் சேமிக்கப்படுகிறது (/var/grafana/plugins/ /dist/module.js) மற்றும் SystemJS தொகுதியாக ஏற்றப்படலாம். இந்த கோப்பகத்தில் உங்கள் செருகுநிரலைப் பற்றிய அனைத்து மெட்டா தகவல்களையும் கொண்ட plugin.json கோப்பு இருக்க வேண்டும்: பெயர், பதிப்பு, செருகுநிரல் வகை, களஞ்சியத்திற்கான இணைப்புகள்/தளம்/உரிமம், சார்புகள் மற்றும் பல.

கிராஃபனாவுக்கான சொருகி உருவாக்கம்: பெரிய காட்சிகளின் வரலாறு
தொகுதி.டி.எஸ்

கிராஃபனாவுக்கான சொருகி உருவாக்கம்: பெரிய காட்சிகளின் வரலாறு
plugin.json

ஸ்கிரீன்ஷாட்டில் நீங்கள் பார்க்க முடியும் என, நாங்கள் plugin.type = பயன்பாட்டைக் குறிப்பிட்டோம். ஏனெனில் கிராஃபனாவுக்கான செருகுநிரல்கள் மூன்று வகைகளாக இருக்கலாம்:

குழு: மிகவும் பொதுவான வகை செருகுநிரல் - இது பல்வேறு டேஷ்போர்டுகளை உருவாக்கப் பயன்படும் எந்த அளவீடுகளையும் காட்சிப்படுத்துவதற்கான பேனல் ஆகும்.
தரவு மூலம்: சில தரவு மூலத்திற்கான சொருகி இணைப்பான் (உதாரணமாக, Prometheus-datasource, ClickHouse-datasource, ElasticSearch-datasource).
பயன்பாட்டை: கிராஃபனாவுக்குள் உங்கள் சொந்த முன்பக்க பயன்பாட்டை உருவாக்கவும், உங்கள் சொந்த html பக்கங்களை உருவாக்கவும் மற்றும் பல்வேறு தரவைக் காட்சிப்படுத்த தரவுமூலத்தை கைமுறையாக அணுகவும் அனுமதிக்கும் ஒரு செருகுநிரல். மேலும், பிற வகைகளின் செருகுநிரல்கள் (தரவுமூலம், குழு) மற்றும் பல்வேறு டாஷ்போர்டுகள் சார்புகளாகப் பயன்படுத்தப்படலாம்.

கிராஃபனாவுக்கான சொருகி உருவாக்கம்: பெரிய காட்சிகளின் வரலாறு
type=app உடன் எடுத்துக்காட்டு செருகுநிரல் சார்புகள்.

நீங்கள் ஜாவாஸ்கிரிப்ட் மற்றும் டைப்ஸ்கிரிப்ட் இரண்டையும் நிரலாக்க மொழியாகப் பயன்படுத்தலாம் (நாங்கள் அதைத் தேர்ந்தெடுத்தோம்). உங்களால் முடிந்த எந்த வகையிலும் ஹலோ-வேர்ல்ட் செருகுநிரல்களுக்கான தயாரிப்புகள் இணைப்பைக் கண்டறியவும்: இந்த களஞ்சியத்தில் முன்பே நிறுவப்பட்ட மற்றும் கட்டமைக்கப்பட்ட பில்டர்களுடன் கூடிய அதிக எண்ணிக்கையிலான ஸ்டார்டர்-பேக்குகள் (ரியாக்டில் ஒரு செருகுநிரலுக்கு ஒரு சோதனை உதாரணம் உள்ளது) உள்ளது.

பகுதி 2: உள்ளூர் சூழலை தயார்படுத்துதல்

செருகுநிரலில் வேலை செய்ய, முன்பே நிறுவப்பட்ட அனைத்து கருவிகளையும் கொண்ட குபெர்னெட்ஸ் கிளஸ்டர் நமக்குத் தேவை: ப்ரோமிதியஸ், நோட்-எக்ஸ்போர்ட்டர், க்யூப்-ஸ்டேட்-மெட்ரிக்ஸ், கிராஃபானா. சூழல் விரைவாகவும், எளிதாகவும், இயற்கையாகவும் அமைக்கப்பட வேண்டும், மேலும் ஹாட்-ரீலோட் செய்வதை உறுதிசெய்ய, கிராஃபானா தரவுக் கோப்பகம் டெவலப்பரின் இயந்திரத்திலிருந்து நேரடியாக ஏற்றப்பட வேண்டும்.

எங்கள் கருத்துப்படி, குபெர்னெட்டுடன் உள்நாட்டில் வேலை செய்வது மிகவும் வசதியான வழி minikube. அடுத்த கட்டமாக, ப்ரோமிதியஸ்-ஆபரேட்டரைப் பயன்படுத்தி ப்ரோமிதியஸ் + கிராஃபானா கலவையை நிறுவ வேண்டும். IN இந்த கட்டுரை minikube இல் prometheus-operator ஐ நிறுவும் செயல்முறை விரிவாக விவரிக்கப்பட்டுள்ளது. நிலைத்தன்மையை இயக்க, நீங்கள் அளவுருவை அமைக்க வேண்டும் நிலைப்பாடு: உண்மை charts/grafana/values.yaml கோப்பில், உங்களுடைய சொந்த PV மற்றும் PVC ஐச் சேர்த்து, persistence.existingClaim அளவுருவில் குறிப்பிடவும்

எங்களின் இறுதி minikube வெளியீட்டு ஸ்கிரிப்ட் இதுபோல் தெரிகிறது:

minikube start --kubernetes-version=v1.13.4 --memory=4096 --bootstrapper=kubeadm --extra-config=scheduler.address=0.0.0.0 --extra-config=controller-manager.address=0.0.0.0
minikube mount 
/home/sergeisporyshev/Projects/Grafana:/var/grafana --gid=472 --uid=472 --9p-version=9p2000.L

பகுதி 3: உண்மையான வளர்ச்சி

பொருள் மாதிரி

செருகுநிரலைச் செயல்படுத்துவதற்கான தயாரிப்பில், அனைத்து அடிப்படை குபெர்னெட்ஸ் நிறுவனங்களையும் நாங்கள் டைப்ஸ்கிரிப்ட் வகுப்புகள் வடிவில் விவரிக்க முடிவு செய்தோம்: பாட், வரிசைப்படுத்தல், டெமான்செட், ஸ்டேட்ஃபுல்செட், வேலை, க்ரோன்ஜாப், சேவை, முனை, பெயர்வெளி. இந்த வகுப்புகள் ஒவ்வொன்றும் பொதுவான BaseModel வகுப்பிலிருந்து பெறுகிறது, இது கட்டமைப்பாளர், அழிப்பான், தெரிவுநிலையைப் புதுப்பித்தல் மற்றும் மாற்றுவதற்கான முறைகள் ஆகியவற்றை விவரிக்கிறது. வகுப்புகள் ஒவ்வொன்றும் மற்ற நிறுவனங்களுடனான உள்ளமை உறவுகளை விவரிக்கிறது, எடுத்துக்காட்டாக, வகை வரிசைப்படுத்தல் நிறுவனத்திற்கான காய்களின் பட்டியல்.

import {Pod} from "./pod";
import {Service} from "./service";
import {BaseModel} from './traits/baseModel';

export class Deployment extends BaseModel{
   pods: Array<Pod>;
   services: Array<Service>;

   constructor(data: any){
       super(data);
       this.pods = [];
       this.services = [];
   }
}

பெறுபவர்கள் மற்றும் அமைப்பாளர்களின் உதவியுடன், நமக்குத் தேவையான நிறுவன அளவீடுகளை வசதியான மற்றும் படிக்கக்கூடிய வடிவத்தில் காண்பிக்கலாம் அல்லது அமைக்கலாம். எடுத்துக்காட்டாக, ஒதுக்கக்கூடிய cpu முனைகளின் வடிவமைக்கப்பட்ட வெளியீடு:

get cpuAllocatableFormatted(){
   let cpu = this.data.status.allocatable.cpu;
   if(cpu.indexOf('m') > -1){
       cpu = parseInt(cpu)/1000;
   }
   return cpu;
}

பக்கங்கள்

எங்கள் அனைத்து செருகுநிரல் பக்கங்களின் பட்டியலையும் ஆரம்பத்தில் எங்கள் pluing.json இல் சார்புகள் பிரிவில் விவரிக்கப்பட்டுள்ளது:

கிராஃபனாவுக்கான சொருகி உருவாக்கம்: பெரிய காட்சிகளின் வரலாறு

ஒவ்வொரு பக்கத்திற்கான தொகுதியிலும் நாம் பக்கம் NAME ஐக் குறிப்பிட வேண்டும் (பின்னர் அது இந்தப் பக்கத்தை அணுகக்கூடிய ஒரு ஸ்லக்காக மாற்றப்படும்); இந்தப் பக்கத்தின் செயல்பாட்டிற்குப் பொறுப்பான கூறுகளின் பெயர் (கூறுகளின் பட்டியல் module.ts க்கு ஏற்றுமதி செய்யப்படுகிறது); இந்தப் பக்கத்துடன் பணிபுரியும் பயனரின் பங்கு மற்றும் பக்கப்பட்டிக்கான வழிசெலுத்தல் அமைப்புகளைக் குறிக்கிறது.

பக்கத்தின் செயல்பாட்டிற்கு பொறுப்பான கூறுகளில், நாம் templateUrl ஐ அமைக்க வேண்டும், மார்க்அப் மூலம் html கோப்பிற்கான பாதையை அங்கு அனுப்ப வேண்டும். கட்டுப்படுத்தியின் உள்ளே, சார்பு ஊசி மூலம், நாம் 2 முக்கியமான கோண சேவைகள் வரை அணுகலாம்:

  • backendSrv - Grafana API சேவையகத்துடன் தொடர்பு கொள்ளும் சேவை;
  • datasourceSrv - உங்கள் கிராஃபனாவில் நிறுவப்பட்ட அனைத்து தரவு மூலங்களுடனும் உள்ளூர் தொடர்புகளை வழங்கும் ஒரு சேவை (உதாரணமாக, .getAll() முறை - நிறுவப்பட்ட அனைத்து தரவு மூலங்களின் பட்டியலை வழங்குகிறது; .get( ) - ஒரு குறிப்பிட்ட தரவு மூலத்தின் நிகழ்வுப் பொருளை வழங்குகிறது.

கிராஃபனாவுக்கான சொருகி உருவாக்கம்: பெரிய காட்சிகளின் வரலாறு

கிராஃபனாவுக்கான சொருகி உருவாக்கம்: பெரிய காட்சிகளின் வரலாறு

கிராஃபனாவுக்கான சொருகி உருவாக்கம்: பெரிய காட்சிகளின் வரலாறு

பகுதி 4: தரவு ஆதாரம்

கிராஃபனாவின் பார்வையில், டேட்டாசோர்ஸ் மற்ற எல்லாவற்றின் அதே செருகுநிரலாகும்: அதன் சொந்த நுழைவு புள்ளி module.js உள்ளது, மெட்டா தகவல் plugin.json உடன் ஒரு கோப்பு உள்ளது. வகை = பயன்பாட்டைக் கொண்டு ஒரு செருகுநிரலை உருவாக்கும்போது, ​​ஏற்கனவே உள்ள தரவுமூலங்கள் (உதாரணமாக, prometheus-datasource) மற்றும் நம்முடையது ஆகிய இரண்டையும் தொடர்பு கொள்ளலாம், அதை நாம் நேரடியாக செருகுநிரல் கோப்பகத்தில் (dist/datasource/*) சேமிக்கலாம் அல்லது சார்புநிலையாக நிறுவலாம். எங்கள் விஷயத்தில், தரவுமூலம் செருகுநிரல் குறியீட்டுடன் வருகிறது. ஒரு config.html டெம்ப்ளேட் மற்றும் ஒரு ConfigCtrl கட்டுப்படுத்தி இருப்பதும் அவசியம், இது தரவுமூல நிகழ்வு உள்ளமைவுப் பக்கத்திற்கும் உங்கள் தரவுமூலத்தின் தர்க்கத்தைச் செயல்படுத்தும் டேட்டாசோர்ஸ் கன்ட்ரோலருக்கும் பயன்படுத்தப்படும்.

KubeGraf செருகுநிரலில், பயனர் இடைமுகக் கண்ணோட்டத்தில், தரவுமூலம் என்பது பின்வரும் திறன்களைச் செயல்படுத்தும் குபெர்னெட்ஸ் கிளஸ்டரின் ஒரு எடுத்துக்காட்டு (மூலக் குறியீடு உள்ளது இணைப்பு):

  • k8s api-server இலிருந்து தரவைச் சேகரித்தல் (பெயர்வெளிகள், வரிசைப்படுத்துதல்களின் பட்டியலைப் பெறுதல்...)
  • ப்ரோமிதியஸ்-டேட்டாசோர்ஸிற்கான கோரிக்கைகளை ப்ராக்ஸிங் செய்வது (ஒவ்வொரு குறிப்பிட்ட கிளஸ்டருக்கான செருகுநிரல் அமைப்புகளில் தேர்ந்தெடுக்கப்பட்டது) மற்றும் நிலையான பக்கங்களிலும் டாஷ்போர்டுகளிலும் தரவைப் பயன்படுத்த மறுமொழிகளை வடிவமைத்தல்.
  • நிலையான செருகுநிரல் பக்கங்களில் தரவைப் புதுப்பித்தல் (ஒரு செட் புதுப்பிப்பு விகிதத்துடன்).
  • கிராஃபானா-டாஷ்போர்டுகளில் டெம்ப்ளேட் தாளை உருவாக்க வினவல்களைச் செயலாக்குகிறது (metriFindQuery() முறை)

கிராஃபனாவுக்கான சொருகி உருவாக்கம்: பெரிய காட்சிகளின் வரலாறு

கிராஃபனாவுக்கான சொருகி உருவாக்கம்: பெரிய காட்சிகளின் வரலாறு

கிராஃபனாவுக்கான சொருகி உருவாக்கம்: பெரிய காட்சிகளின் வரலாறு

  • இறுதி k8s கிளஸ்டருடன் இணைப்பு சோதனை.
testDatasource(){
   let url = '/api/v1/namespaces';
   let _url = this.url;
   if(this.accessViaToken)
       _url += '/__proxy';
   _url += url;
   return this.backendSrv.datasourceRequest({
       url: _url,
       method: "GET",
       headers: {"Content-Type": 'application/json'}
   })
       .then(response => {
           if (response.status === 200) {
               return {status: "success", message: "Data source is OK", title: "Success"};
           }else{
               return {status: "error", message: "Data source is not OK", title: "Error"};
           }
       }, error => {
           return {status: "error", message: "Data source is not OK", title: "Error"};
       })
}

ஒரு தனி சுவாரஸ்யமான விஷயம், எங்கள் கருத்துப்படி, தரவு மூலத்திற்கான அங்கீகாரம் மற்றும் அங்கீகார பொறிமுறையை செயல்படுத்துவதாகும். பொதுவாக, பெட்டிக்கு வெளியே, இறுதி தரவு மூலத்திற்கான அணுகலை உள்ளமைக்க உள்ளமைக்கப்பட்ட Grafana கூறு தரவுமூலம்HttpSettings ஐப் பயன்படுத்தலாம். இந்தக் கூறுகளைப் பயன்படுத்தி, url மற்றும் அடிப்படை அங்கீகாரம்/அங்கீகார அமைப்புகளைக் குறிப்பிடுவதன் மூலம் http தரவு மூலத்திற்கான அணுகலை உள்ளமைக்கலாம்: login-password, or client-cert/client-key. ஒரு தாங்கி டோக்கனைப் பயன்படுத்தி அணுகலை உள்ளமைக்கும் திறனைச் செயல்படுத்துவதற்கு (k8sக்கான நடைமுறை தரநிலை), நாங்கள் ஒரு சிறிய ட்வீக்கிங் செய்ய வேண்டியிருந்தது.

இந்தச் சிக்கலைத் தீர்க்க, நீங்கள் உள்ளமைக்கப்பட்ட கிராஃபானா “செருகுநிரல் வழிகள்” பொறிமுறையைப் பயன்படுத்தலாம் (மேலும் விவரங்கள் இல் அதிகாரப்பூர்வ ஆவணப் பக்கம்) எங்கள் தரவுமூலத்தின் அமைப்புகளில், கிராஃபானா ப்ராக்ஸி சேவையகத்தால் செயலாக்கப்படும் ரூட்டிங் விதிகளின் தொகுப்பை நாம் அறிவிக்கலாம். எடுத்துக்காட்டாக, ஒவ்வொரு தனிப்பட்ட இறுதிப்புள்ளிக்கும் வார்ப்புருவின் சாத்தியத்துடன் தலைப்புகள் அல்லது urlகளை அமைக்க முடியும், அதற்கான தரவு jsonData மற்றும் SecurityJsonData புலங்களில் இருந்து எடுக்கப்படலாம் (கடவுச்சொற்கள் அல்லது டோக்கன்களை மறைகுறியாக்கப்பட்ட வடிவத்தில் சேமிப்பதற்காக). எங்கள் எடுத்துக்காட்டில், போன்ற கேள்விகள் /__proxy/api/v1/namespaces படிவத்தின் url க்கு ப்ராக்ஸி செய்யப்படும்
அங்கீகாரத்துடன் /api/v8/namespaces: Bearer header.

கிராஃபனாவுக்கான சொருகி உருவாக்கம்: பெரிய காட்சிகளின் வரலாறு

கிராஃபனாவுக்கான சொருகி உருவாக்கம்: பெரிய காட்சிகளின் வரலாறு

இயற்கையாகவே, k8s api சேவையகத்துடன் பணிபுரிய, எங்களுக்கு படிக்க மட்டுமேயான அணுகலுடன் ஒரு பயனர் தேவை, அதை உருவாக்குவதற்கான மேனிஃபெஸ்ட்டை நீங்கள் காணலாம். சொருகி மூல குறியீடு.

பகுதி 5: வெளியீடு

கிராஃபனாவுக்கான சொருகி உருவாக்கம்: பெரிய காட்சிகளின் வரலாறு

உங்கள் சொந்த கிராஃபானா செருகுநிரலை நீங்கள் எழுதியவுடன், நீங்கள் இயல்பாகவே அதை பொதுவில் கிடைக்கச் செய்ய விரும்புவீர்கள். கிராஃபானாவில் இது இங்கே கிடைக்கும் செருகுநிரல்களின் நூலகமாகும் grafana.com/grafana/plugins

அதிகாரப்பூர்வ ஸ்டோரில் உங்கள் செருகுநிரல் கிடைக்க, நீங்கள் PR ஐ உருவாக்க வேண்டும் இந்த களஞ்சியம்repo.json கோப்பில் இது போன்ற உள்ளடக்கத்தைச் சேர்ப்பதன் மூலம்:

கிராஃபனாவுக்கான சொருகி உருவாக்கம்: பெரிய காட்சிகளின் வரலாறு

பதிப்பு என்பது உங்கள் செருகுநிரலின் பதிப்பாகும், url என்பது களஞ்சியத்திற்கான இணைப்பாகும், மேலும் கமிட் என்பது சொருகியின் குறிப்பிட்ட பதிப்பு கிடைக்கக்கூடிய கமிட்டின் ஹாஷ் ஆகும்.

வெளியீட்டில் நீங்கள் ஒரு அற்புதமான படத்தைப் பார்ப்பீர்கள்:

கிராஃபனாவுக்கான சொருகி உருவாக்கம்: பெரிய காட்சிகளின் வரலாறு

அதற்கான தரவு தானாகவே உங்கள் Readme.md, Changelog.md மற்றும் plugin.json கோப்பிலிருந்து சொருகி விளக்கத்துடன் எடுக்கப்படும்.

பகுதி 6: முடிவுகளுக்குப் பதிலாக

வெளியீட்டிற்குப் பிறகு எங்கள் செருகுநிரலை உருவாக்குவதை நாங்கள் நிறுத்தவில்லை. இப்போது நாங்கள் கிளஸ்டர் நோட்களின் வளங்களைப் பயன்படுத்துவதைச் சரியாகக் கண்காணித்து வருகிறோம், UXஐ மேம்படுத்த புதிய அம்சங்களை அறிமுகப்படுத்துகிறோம், மேலும் எங்கள் வாடிக்கையாளர்களாலும் GitHub இல் உள்ளவர்களிடமும் (நீங்கள் வெளியேறினால்) செருகுநிரலை நிறுவிய பின் பெறப்பட்ட பெரிய அளவிலான கருத்துக்களைப் பெறுகிறோம். உங்கள் பிரச்சினை அல்லது இழுக்க கோரிக்கை, நான் மிகவும் மகிழ்ச்சியாக இருப்பேன் :)

கிராஃபானா போன்ற ஒரு அற்புதமான கருவியைப் புரிந்துகொள்ளவும், ஒருவேளை, உங்கள் சொந்த செருகுநிரலை எழுதவும் இந்தக் கட்டுரை உதவும் என்று நம்புகிறோம்.

நன்றி!)

ஆதாரம்: www.habr.com

கருத்தைச் சேர்