কম্পিউটার

Grafana প্লাগ-ইন-এর জন্য নতুন রেডিস ডেটা উৎস কীভাবে ব্যবহার করবেন

এই মাসের শুরুর দিকে, Redis Grafana প্লাগ-ইন-এর জন্য নতুন Redis ডেটা উৎস প্রকাশ করেছে, যা Redis-এর সাথে বহুল ব্যবহৃত ওপেন সোর্স অ্যাপ্লিকেশন মনিটরিং টুলকে সংযুক্ত করে। এটি কীভাবে কাজ করে সে সম্পর্কে আপনাকে একটি ধারণা দিতে, আসুন একটি স্ব-রেফারেন্সিয়াল উদাহরণ দেখি:সময়ের সাথে কতবার এটি ডাউনলোড করা হয়েছে তা দেখতে প্লাগ-ইন ব্যবহার করে। (Grafana প্লাগ-ইন সংগ্রহস্থল নিজেই বাক্সের বাইরে এই ধরনের পরিসংখ্যান প্রদান করে না।)

আরো জানতে চান? পড়ুন Grafana-এর জন্য Redis ডেটা সোর্স প্লাগ-ইন চালু করা হচ্ছে

Grafana এর জন্য Redis ডেটা উৎস কি?

আপনি যদি Grafana এর সাথে পরিচিত না হন তবে এটি একটি খুব জনপ্রিয় টুল যা অ্যাপ্লিকেশন, অবকাঠামো এবং সফ্টওয়্যার উপাদানগুলি নিরীক্ষণ করতে ড্যাশবোর্ড তৈরি করতে ব্যবহৃত হয়। Grafana-এর জন্য Redis ডেটা সোর্স হল একটি প্লাগ-ইন যা ব্যবহারকারীদের Redis ডাটাবেসের সাথে সংযোগ করতে এবং সহজেই Redis ডেটা নিরীক্ষণ করতে Grafana-এ ড্যাশবোর্ড তৈরি করতে দেয়। এটি একটি আউট-অফ-দ্য-বক্স পূর্বনির্ধারিত ড্যাশবোর্ড প্রদান করে, তবে আপনাকে আপনার নির্দিষ্ট প্রয়োজন অনুসারে কাস্টমাইজড ড্যাশবোর্ড তৈরি করতে দেয়।

Grafana প্লাগ-ইন-এর জন্য নতুন রেডিস ডেটা উৎস কীভাবে ব্যবহার করবেন

Grafana প্লাগ-ইন-এর জন্য Redis ডেটা উৎস grafana-cli, Docker ব্যবহার করে বা Grafana ক্লাউডে ব্যবহার করে ইনস্টল করা যেতে পারে। বিকল্পভাবে GitHub-এর নির্দেশাবলী অনুসরণ করে স্ক্র্যাচ থেকে প্লাগ-ইন তৈরি করা যেতে পারে।

grafana-cli plugins install redis-datasource

পূর্বশর্ত

এই ডেমো ব্যবহার করে:

  • নোড প্যাকেজ ম্যানেজার (এনপিএম) সহ Node.js 10.x
  • ডকার
  • ডকার কম্পোজ
  • Redis 5.0.x বা তার পরে RedisTimeSeries সহ (এই ডেমোটি Redis ডকার কন্টেইনার ব্যবহার করে)
  • Grafana 7.0 বা তার পরে রেডিস ডেটা সোর্স সহ (এই ডেমোটি Grafana ডকার কন্টেইনার ব্যবহার করে)

কিভাবে Grafana প্লাগ-ইন তথ্য পুনরুদ্ধার করবেন

একটি Grafana সংগ্রহস্থলে যে কোনো নিবন্ধিত প্লাগ-ইন সম্পর্কে তথ্য JSON ফর্ম্যাটে API ব্যবহার করে পুনরুদ্ধার করা যেতে পারে:

পান https://grafana.com/api/plugins/redis-datasource/versions/latest{  "id":2613,  "pluginId":639,  "pluginSlug":"redis-datasource",  "version":"1.1.2",  "url":"https://github.com/RedisTimeSeries/grafana-redis-datasource/",...  "ডাউনলোডস":1153,  "যাচাইকৃত":মিথ্যা,  "স্থিতি":"সক্রিয় ",  "প্যাকেজগুলি":{    "any":{             "md5":"ea0a2c9cb11c9fad66703ba4291e61cb",       "packageName":"any",       "downloadUrl":"/api/plugins/undefined/versions"2}    ডাউনলোড। , 

এই উদাহরণের জন্য, আমি জানতে চেয়েছিলাম রেডিস ডেটা সোর্স Grafana প্লাগ-ইনের জন্য প্রতিদিন কতবার ডাউনলোড করা হয়েছিল এবং আমরা এটি সম্পর্কে Redis ব্লগে টুইট বা পোস্ট করার পরে স্পাইকগুলি দেখতে চেয়েছিলাম। প্রতি ঘণ্টায় ডাউনলোডের সংখ্যা ট্র্যাক করতে আমি RedisTimeSeries (একটি Redis মডিউল যা Redis-এ একটি টাইম-সিরিজ ডেটা স্ট্রাকচার যোগ করে) ব্যবহার করার সিদ্ধান্ত নিয়েছি।

ডেটা পপুলেট করতে আমি TS.ADD ব্যবহার করেছি একটি স্বয়ংক্রিয় টাইমস্ট্যাম্প এবং লেবেল `প্লাগইন সহ কমান্ড ` এবং `সংস্করণ `। X হল অনেকগুলি ডাউনলোড এবং সর্বশেষ সংস্করণ `1.1.2` API থেকে পুনরুদ্ধার করা হয়েছে। লেবেলগুলি পরে টাইম সিরিজ জিজ্ঞাসা করতে ব্যবহার করা হবে৷

127.0.0.1:6379> ts.add redis-datasource * X LABELS প্লাগইন redis-datasource সংস্করণ 1.1.2

আমি API কল করার জন্য ioredis এবং Axios লাইব্রেরি ব্যবহার করে একটি সাধারণ স্ক্রিপ্ট লিখেছি এবং টাইম-সিরিজ নমুনা যোগ করতে প্লাগ-ইন তথ্য ব্যবহার করেছি:

/** * Node.js-এর জন্য একটি শক্তিশালী, কর্মক্ষমতা-কেন্দ্রিক এবং সম্পূর্ণ বৈশিষ্ট্যযুক্ত Redis ক্লায়েন্ট। * * @see https://github.com/luin/ioredis */const Redis =require("ioredis");/** * ব্রাউজার এবং node.js এর জন্য প্রতিশ্রুতি ভিত্তিক HTTP ক্লায়েন্ট * * @see https:// github.com/axios/axios */const axios =require("axios");/** * TLS এনক্রিপশন */const redis ব্যবহার করার সময় আপনি একটি redis:// URL বা rediss:// URL হিসাবে সংযোগের বিকল্পগুলিও নির্দিষ্ট করতে পারেন =নতুন রেডিস("redis://localhost:6379");/** * প্রধান * * @async * @param {string} প্লাগইন প্লাগইন নাম */async ফাংশন main(প্লাগইন) {  /**   * প্লাগইনের ডেটা পান    * * @https://grafana.com/api/plugins/redis-datasource/versions/latest  */  const প্রতিক্রিয়া =await axios.get(    `https://grafana.com/api/plugins/${plugin}/ দেখুন সংস্করণ/সর্বশেষ`; /**    * প্রতিক্রিয়া  */  const ডেটা =প্রতিক্রিয়া.ডেটা; if (!data) {    console.log("ডেটা কোথায়?"); প্রত্যাবর্তন }  /**    * প্লাগইন এবং সংস্করণ লেবেল সহ টাইম-সিরিজ নমুনা যোগ করুন  */  await redis.send_command(    "TS.ADD",    data.pluginSlug,    "*",    data.downloads,    "LABELS",    "প্লাগইন",    ডেটা। pluginSlug,    "সংস্করণ",    data.version  ); /**    * Redis সংযোগ বন্ধ করুন  */  await redis.quit();}/** * Start */main("redis-datasource");

আমার স্ক্রিপ্ট পরিবেশ 

আমি নির্ভরতা ইনস্টল করতে একটি package.json ফাইল ব্যবহার করেছি এবং `npm ব্যবহার করে কমান্ড চালাচ্ছি ` এখানে দেখানো হয়েছে:

{  "লেখক":"মিখাইল ভলকভ",   "নির্ভরতা":{    "axios":"^0.19.2",    "ioredis":"^4.17.3"  },  "description":"Grafana-এর পরিসংখ্যান পান প্লাগইন",  "devDependencies":{    "@types/node":"^14.0.27"  },  "license":"ISC",  "name":"grafana-plugin-stats",  "scripts":{    "redis -cli":"docker exec -it redistimeseries redis-cli",    "start":"docker-compose up",    "start:app":"node grafana-plugin-stats.ts"  },  "সংস্করণ":"1.0 .0"}

ডকার পাত্রে অর্কেস্ট্রেট করতে, আমি ডকার-কম্পোজ ব্যবহার করেছি:

  • Redis পরিষেবাটি একটি redis/redistimeseries ইমেজের উপর ভিত্তি করে, যেটিতে RedisTimeSeries মডিউল সক্ষম করা আছে।
  • Grafana পরিষেবা রিপোজিটরি থেকে ইনস্টল করা Redis ডেটা সোর্স প্লাগ-ইন সহ সর্বশেষ Grafana রিলিজ ব্যবহার করে৷
সংস্করণ:"3.4"পরিষেবাগুলি:  redis:    container_name:redistimeseries    image:redis/redistimeseries:latest    ports:       - 6379:6379  grafana:    container_name:grafana       image:grafana/grafana  0  03st:0-0-0 পোর্ট:- GF_AUTH_ANONYMOUS_ORG_ROLE=অ্যাডমিন      - GF_AUTH_ANONYMOUS_ENABLED=সত্য      - GF_AUTH_BASIC_ENABLED=false      - GF_ENABLE_GZIP=সত্য      - GF_INSTALL_PLUGINS=redis-redis> 

প্রতি ঘণ্টায় স্ক্রিপ্ট চালানোর জন্য এবং ডাউনলোড ডেটা সংগ্রহ করতে, আমি ক্লাউডে লিনাক্স সার্ভারে ক্রন্টাব ব্যবহার করেছি:

root@grafana:~# crontab -l5 * * * * node /root/grafana-plugin-stats/stats.ts

Grafana প্লাগ-ইন-এর জন্য Redis ডেটা উৎস পরীক্ষা করা হচ্ছে

স্ক্রিপ্ট চালাতে এবং ডেটা সংগ্রহ করতে, আপনাকে আপনার অপারেটিং সিস্টেমের নির্দেশাবলী অনুসরণ করে Node.js, Docker এবং Docker Compose ইনস্টল করতে হবে: 

> ডকার-কম্পোজ আপ -dStarting grafana         ... সম্পন্ন করা শুরু হচ্ছে পুনঃনির্মাণ... সম্পন্ন... পুনঃনির্মাণ সিরিজ | 1:M 08 আগস্ট 2020 21:13:20.405 *  RedisTimeSeries দ্বারা পাওয়া সংস্করণ :6.0.1 - oss...grafana    | redis-datasource @ 1.1.2grafana    ইনস্টল করা হচ্ছে থেকে:https://grafana.com/api/plugins/redis-datasource/versions/1.1.2/download...grafana    | t=2020-08-08T21:13:23+0000 lvl=info msg="রেজিস্টারিং প্লাগইন" logger=plugins name=Redisgrafana    | t=2020-08-08T21:13:23+0000 lvl=info msg="HTTP সার্ভার লিসেন" logger=http.server address=[::]:3000 protocol=http subUrl=socket=

স্ক্রিপ্ট চালানোর পরে, আমরা TS.MRANGE ব্যবহার করে RedisTimeSeries ডেটা পরীক্ষা করতে পারি আদেশ আপনি ফরোয়ার্ড বা বিপরীত দিকনির্দেশে ফিল্টার ব্যবহার করে একাধিক টাইম-সিরিজ জুড়ে একটি ব্যাপ্তি অনুসন্ধান করতে পারেন:

127.0.0.1:6379> ts.mrange - + withlabels filter plugin=redis-datasource1) 1) "diff:redis-datasource"   2) 1) "value"         2) "diff"       2) 1) " টাইপ করুন"         2) "ডেটাসোর্স"       3) 1) "প্লাগইন"         2) "রিডিস-ডেটাসোর্স"       1) "সংস্করণ"         2) "1.1.2"   3)   1) 1) (পূর্ণসংখ্যা) 1597125602559         2) 0        2) 1) (পূর্ণসংখ্যা) 1597129202847           2) 1        3) 1) (পূর্ণসংখ্যা) 1597132802738           2) 10

কমান্ড TS.MRANGE ফিল্টার দিয়ে `প্লাগইন ` শুধুমাত্র `redis-datasource এর জন্য নমুনা পুনরুদ্ধার করে ` প্লাগ-ইন। <মার্ক>ওয়াইথলেবলস বিকল্পটি ব্যবহার করুন লেবেল ফেরত দিতে।

Grafana-এ RedisTimeSeries ডেটা কীভাবে প্রদর্শন করবেন

`https://localhost:3000 ব্যবহার করে একটি ওয়েব ব্রাউজারে Grafana খুলুন ` এবং কনফিগারেশন -> ডেটা উত্স নির্বাচন করে ডেটা উত্স তৈরি করুন। Grafana-এর জন্য Redis ডেটা সোর্স ট্রান্সপোর্ট লেয়ার সিকিউরিটি (TLS) সমর্থন করে এবং সরাসরি সংযোগ ব্যবহার করে ওপেন সোর্স Redis OSS, Redis Enterprise, এবং Redis Enterprise ক্লাউড ডেটাবেসের সাথে সংযোগ করতে পারে৷

Grafana প্লাগ-ইন-এর জন্য নতুন রেডিস ডেটা উৎস কীভাবে ব্যবহার করবেন

পরবর্তী ধাপ হল ডেটা কল্পনা করার জন্য একটি গ্রাফ প্যানেল সহ একটি ড্যাশবোর্ড তৈরি করা। ক্যোয়ারী এডিটরে "Redis Datasource" এবং "RedisTimeSeries কমান্ড" নির্বাচন করুন। TS.MRANGE কমান্ডটি ব্যবহার করুন একটি প্লাগ-ইন নামের ফিল্টার সহ।

Grafana প্লাগ-ইন-এর জন্য নতুন রেডিস ডেটা উৎস কীভাবে ব্যবহার করবেন

অবশেষে, আমি প্লাগ-ইন লেজেন্ড লেবেল নাম দিয়েছি এবং সংস্করণটিকে মান লেবেল হিসাবে সেট করেছি, যা Grafana-এর জন্য Redis ডেটা উৎসের পরবর্তী সংস্করণগুলির জন্য সিরিজটি প্রদর্শন করা সহজ করে তুলবে৷

ফলাফল পরীক্ষা করা হচ্ছে

TS.INFO কমান্ডটি ব্যবহার করুন সময় সিরিজের তথ্য এবং পরিসংখ্যান দেখতে। এখন পর্যন্ত আমি 250 ঘন্টার জন্য ডাউনলোড ডেটা সংগ্রহ করেছি এবং দেখতে পাচ্ছি কত মেমরি (বাইটে) সময়-সিরিজ এবং অন্যান্য তথ্য সঞ্চয় করার জন্য বরাদ্দ করা হয়েছিল৷

127.0.0.1:6379> ts.info diff:redis-datasource 1) মোট নমুনা 2) (পূর্ণসংখ্যা) 250 3) মেমরির ব্যবহার 4) (পূর্ণসংখ্যা) 4313 5) ফার্স্টটাইমস্ট্যাম্প 6) (পূর্ণসংখ্যা) 1597129560 শেষ 5 টি এমএএমপি পূর্ণসংখ্যা) 1598022003033 9) retentionTime10) (পূর্ণসংখ্যা) 011) chunkCount12) (পূর্ণসংখ্যা) 113) maxSamplesPerChunk14) (পূর্ণসংখ্যা) 25615) লেবেল16) 1) 1) "2         ) "মান") "2         ) "মান ডেটাসোর্স"    3) 1) "প্লাগইন"       2) "রিডিস-ডেটাসোর্স"    4) 1) "সংস্করণ"       2) "1.1.2"17) sourceKey18) (nil)19) নিয়ম20) (খালি তালিকা বা সেট)

প্রকাশের সময়, Grafana প্লাগ-ইন-এর জন্য রেডিস ডেটা সোর্স 3500 বারের বেশি ডাউনলোড করা হয়েছে! আমরা সম্প্রদায়ের কাছ থেকে মূল্যবান প্রতিক্রিয়া পেয়েছি এবং ডেটা উত্সের জন্য নতুন বৈশিষ্ট্যগুলি বিকাশ চালিয়ে যাচ্ছি৷

আরও তথ্যের জন্য, প্রকল্পের জন্য GitHub সংগ্রহস্থল দেখুন এবং সমস্যাগুলির বিষয়ে আপনার কোন প্রশ্ন থাকলে আমাদের জানান৷

উপসংহার

আমি আশা করি এই পোস্টটি এবং সময়ের সাথে সাথে প্লাগ-ইন ডাউনলোডগুলি ট্র্যাক করতে Grafana-এর জন্য Redis ডেটা উৎস ব্যবহার করে আমার উদাহরণ, এই নতুন টুলটির শক্তি এবং ব্যবহারের সহজতা প্রদর্শন করেছে এবং আপনাকে আপনার অ্যাপ্লিকেশন ডেটা (লেনদেন, স্ট্রিম) নিরীক্ষণ করতে অনুপ্রাণিত করেছে , সারি, ইত্যাদি) RedisTimeSeries ব্যবহার করে। কিভাবে এবং কেন Grafana প্লাগ-ইন এর জন্য Redis ডেটা উৎস ব্যবহার করবেন সে সম্পর্কে আরও পোস্টের জন্য সাথে থাকুন।


  1. উইন্ডোজ 11-এ নতুন মিডিয়া প্লেয়ার অ্যাপটি কীভাবে ব্যবহার করবেন

  2. উইন্ডোজ 11-এ নতুন ফটো অ্যাপ কীভাবে ব্যবহার করবেন

  3. Grafana-এর জন্য Redis ডেটা সোর্স দিয়ে তৈরি 3টি বাস্তব-জীবনের অ্যাপ

  4. Grafana-এর জন্য Redis ডেটা সোর্স প্লাগ-ইন চালু করা হচ্ছে