Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Redis

नए Redis डेटा स्रोत प्लग-इन को Grafana के लिए मास्टर करें: एक चरण-दर-चरण गाइड

इस महीने की शुरुआत में, Redis ने Grafana के लिए नया Redis डेटा स्रोत जारी किया, जो व्यापक रूप से उपयोग किए जाने वाले ओपन सोर्स एप्लिकेशन मॉनिटरिंग टूल को Redis से जोड़ता है। यह कैसे काम करता है इसका अंदाजा लगाने के लिए, आइए एक सेल्फ-रेफरेंशियल उदाहरण देखें: प्लग-इन का उपयोग करके यह देखने के लिए कि इसे समय के साथ कितनी बार डाउनलोड किया गया है। (Grafana प्लग-इन रिपॉजिटरी स्वयं बॉक्स से बाहर ऐसी आंकड़े प्रदान नहीं करती है।)

अधिक जानना चाहते हैं? पढ़ें Grafana के लिए Redis डेटा स्रोत प्लग-इन का परिचय

Grafana के लिए Redis डेटा स्रोत क्या है?

यदि आप Grafana से परिचित नहीं हैं, तो यह एप्लिकेशन, इंफ्रास्ट्रक्चर, और सॉफ़्टवेयर घटकों की निगरानी के लिए डैशबोर्ड बनाने के लिए उपयोग किया जाने वाला एक बहुत लोकप्रिय टूल है। Grafana के लिए Redis डेटा स्रोत एक प्लग-इन है जो उपयोगकर्ताओं को Redis डेटाबेस से कनेक्ट करने और Grafana में डैशबोर्ड बनाने की अनुमति देता है ताकि Redis डेटा को आसानी से मॉनिटर किया जा सके। यह एक आउट-ऑफ-द-बॉक्स पूर्वनिर्धारित डैशबोर्ड प्रदान करता है, लेकिन आपको अपनी विशिष्ट आवश्यकताओं के अनुरूप अनुकूलित डैशबोर्ड बनाने की भी अनुमति देता है।

नए Redis डेटा स्रोत प्लग-इन को Grafana के लिए मास्टर करें: एक चरण-दर-चरण गाइड

Grafana के लिए Redis डेटा स्रोत प्लग-इन को grafana-cli, Docker, या Grafana Cloud में उपयोग करके इंस्टॉल किया जा सकता है। वैकल्पिक रूप से, प्लग-इन को GitHub पर निर्देशों का पालन करके स्क्रैच से बनाया जा सकता है।

grafana-cli plugins install redis-datasource

पूर्वापेक्षाएँ

यह डेमो उपयोग करता है:

  • Node.js 10.x Node पैकेज मैनेजर (npm) के साथ
  • Docker
  • Docker Compose
  • Redis 5.0.x या बाद में RedisTimeSeries के साथ (यह डेमो Redis Docker कंटेनर का उपयोग करता है)
  • Grafana 7.0 या बाद में Redis डेटा स्रोत के साथ (यह डेमो Grafana Docker कंटेनर का उपयोग करता है)

Grafana प्लग-इन जानकारी कैसे प्राप्त करें

Grafana रिपॉजिटरी में किसी भी पंजीकृत प्लग-इन के बारे में जानकारी JSON प्रारूप में API का उपयोग करके प्राप्त की जा सकती है:

GET 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/", ... "downloads": 1153, "verified": false, "status": "active", "packages": { "any": { "md5": "ea0a2c9cb11c9fad66703ba4291e61cb", "packageName": "any", "downloadUrl": "/api/plugins/undefined/versions/1.1.2/download" } },

इस उदाहरण के लिए, मैं यह पता लगाना चाहता था कि Redis डेटा स्रोत Grafana प्लग-इन प्रति दिन कितनी बार डाउनलोड किया गया था, और हमारे ट्वीट या Redis ब्लॉग पर पोस्ट करने के बाद स्पाइक्स की तलाश करना चाहता था। मैंने RedisTimeSeries (एक Redis मॉड्यूल जो Redis में टाइम-सीरीज़ डेटा संरचना जोड़ता है) का उपयोग करके हर घंटे डाउनलोड की संख्या को ट्रैक करने का फैसला किया।

डेटा को पॉप्युलेट करने के लिए मैंने `plugin` और `version` लेबल के साथ एक स्वचालित टाइमस्टैम्प के साथ TS.ADD कमांड का उपयोग किया। X डाउनलोड की संख्या है और API से प्राप्त नवीनतम संस्करण `1.1.2` है। लेबल का उपयोग बाद में टाइम सीरीज़ को क्वेरी करने के लिए किया जाएगा।

127.0.0.1:6379> ts.add redis-datasource * X LABELS plugin redis-datasource version 1.1.2

मैंने ioredis और Axios लाइब्रेरी का उपयोग करके API को कॉल करने और प्लग-इन जानकारी का उपयोग करके टाइम-सीरीज़ नमूने जोड़ने के लिए एक साधारण स्क्रिप्ट लिखी:

/** * Node.js के लिए एक मजबूत, प्रदर्शन-केंद्रित और पूर्ण-विशेषताओं वाला Redis क्लाइंट। * * @see https://github.com/luin/ioredis */ const Redis = require("ioredis"); /** * ब्राउज़र और node.js के लिए Promise आधारित HTTP क्लाइंट * * @see https://github.com/axios/axios */ const axios = require("axios"); /** * आप कनेक्शन विकल्प को redis:// URL या rediss:// URL के रूप में भी निर्दिष्ट कर सकते हैं जब TLS एन्क्रिप्शन का उपयोग कर रहे हों */ const redis = new Redis("redis://localhost:6379"); /** * मुख्य * * @async * @param {string} plugin प्लगइन नाम */ async function main(plugin) { /** * प्लगइन का डेटा प्राप्त करें * * @see https://grafana.com/api/plugins/redis-datasource/versions/latest */ const response = await axios.get( `https://grafana.com/api/plugins/${plugin}/versions/latest` ); /** * प्रतिक्रिया */ const data = response.data; if (!data) { console.log("Where is the data?"); return; } /** * प्लगइन और संस्करण लेबल के साथ टाइम-सीरीज़ नमूना जोड़ें */ await redis.send_command( "TS.ADD", data.pluginSlug, "*", data.downloads, "LABELS", "plugin", data.pluginSlug, "version", data.version ); /** * Redis कनेक्शन बंद करें */ await redis.quit(); } /** * शुरू करें */ main("redis-datasource");

मेरा स्क्रिप्ट वातावरण

मैंने निर्भरता इंस्टॉल करने के लिए package.json फ़ाइल का उपयोग किया और `npm` का उपयोग करके कमांड चलाए जैसा कि यहां दिखाया गया है:

{ "author": "Mikhail Volkov", "dependencies": { "axios": "^0.19.2", "ioredis": "^4.17.3" }, "description": "Get statistics for Grafana Plugin", "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" }, "version": "1.0.0" }

Docker कंटेनर को व्यवस्थित करने के लिए, मैंने docker-compose का उपयोग किया:

  • Redis सेवा redis/redistimeseries इमेज पर आधारित है, जिसमें RedisTimeSeries मॉड्यूल सक्षम है।
  • Grafana सेवा रिपॉजिटरी से स्थापित Redis डेटा स्रोत प्लग-इन के साथ नवीनतम Grafana रिलीज का उपयोग करती है।
version: "3.4" services: redis: container_name: redistimeseries image: redis/redistimeseries:latest ports: - 6379:6379 grafana: container_name: grafana image: grafana/grafana:latest ports: - "3000:3000" environment: - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin - GF_AUTH_ANONYMOUS_ENABLED=true - GF_AUTH_BASIC_ENABLED=false - GF_ENABLE_GZIP=true - GF_INSTALL_PLUGINS=redis-datasource

Linux सर्वर पर क्लाउड में crontab का उपयोग करके हर घंटे स्क्रिप्ट चलाने और डाउनलोड डेटा एकत्र करने के लिए:

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

Grafana के लिए Redis डेटा स्रोत प्लग-इन का परीक्षण

स्क्रिप्ट चलाने और डेटा एकत्र करने के लिए, आपको Node.js, Docker, और Docker Compose इंस्टॉल करने की आवश्यकता है, अपने ऑपरेटिंग सिस्टम के लिए निर्देशों का पालन करते हुए:

> docker-compose up -d Starting grafana ... done Starting redistimeseries ... done ... redistimeseries | 1:M 08 Aug 2020 21:13:20.405 * <timeseries> Redis version found by RedisTimeSeries : 6.0.1 - oss ... grafana | installing redis-datasource @ 1.1.2 grafana | from: https://grafana.com/api/plugins/redis-datasource/versions/1.1.2/download ... grafana | t=2020-08-08T21:13:23+0000 lvl=info msg="Registering plugin" logger=plugins name=Redis grafana | t=2020-08-08T21:13:23+0000 lvl=info msg="HTTP Server Listen" logger=http.server address=[::]:3000 protocol=http subUrl= socket=

स्क्रिप्ट चलाने के बाद, हम TS.MRANGE कमांड का उपयोग करके RedisTimeSeries डेटा की जांच कर सकते हैं। आप फॉरवर्ड या रिवर्स दिशाओं में फिल्टर का उपयोग करके कई टाइम-सीरीज़ में एक रेंज क्वेरी कर सकते हैं:

127.0.0.1:6379> ts.mrange - + withlabels filter plugin=redis-datasource 1) 1) "diff:redis-datasource" 2) 1) 1) "value" 2) "diff" 2) 1) "type" 2) "datasource" 3) 1) "plugin" 2) "redis-datasource" 4) 1) "version" 2) "1.1.2" 3) 1) 1) (integer) 1597125602559 2) 0 2) 1) (integer) 1597129202847 2) 1 3) 1) (integer) 1597132802738 2) 10

TS.MRANGE कमांड `plugin` फिल्टर के साथ केवल `redis-datasource` प्लग-इन के लिए नमूने पुनर्प्राप्त करता है। लेबल वापस करने के लिए `WITHLABELS` विकल्प का उपयोग करें।

Grafana में RedisTimeSeries डेटा कैसे प्रदर्शित करें

Grafana को वेब ब्राउज़र में `https://localhost:3000` का उपयोग करके खोलें और Configuration -> Data Sources का चयन करके डेटा स्रोत बनाएं। Grafana के लिए Redis डेटा स्रोत ट्रांसपोर्ट लेयर सिक्योरिटी (TLS) का समर्थन करता है और डायरेक्ट कनेक्शन का उपयोग करके कहीं भी ओपन सोर्स Redis OSS, Redis Enterprise, और Redis Enterprise Cloud डेटाबेस से कनेक्ट कर सकता है।

नए Redis डेटा स्रोत प्लग-इन को Grafana के लिए मास्टर करें: एक चरण-दर-चरण गाइड

अगला कदम डेटा को विज़ुअलाइज़ करने के लिए ग्राफ पैनल के साथ एक डैशबोर्ड बनाना है। क्वेरी संपादक में "Redis Datasource" और "RedisTimeSeries कमांड" चुनें। प्लग-इन नाम फिल्टर के साथ TS.MRANGE कमांड का उपयोग करें।

नए Redis डेटा स्रोत प्लग-इन को Grafana के लिए मास्टर करें: एक चरण-दर-चरण गाइड

अंत में, मैंने प्लग-इन लीजेंड लेबल्स का नाम दिया और संस्करण को वैल्यू लेबल के रूप में सेट किया, जो बाद में Redis डेटा स्रोत Grafana के बाद के संस्करणों के लिए श्रृंखला प्रदर्शित करना आसान बना देगा।

परिणामों की जांच

TS.INFO कमांड का उपयोग करके टाइम सीरीज़ के लिए जानकारी और आंकड़े देखें। अब तक मैंने 250 घंटों के लिए डाउनलोड डेटा एकत्र किया है और देख सकता हूं कि टाइम-सीरीज़ और अन्य जानकारी संग्रहीत करने के लिए कितनी मेमोरी (बाइट्स में) आवंटित की गई थी।

127.0.0.1:6379> ts.info diff:redis-datasource 1) totalSamples 2) (integer) 250 3) memoryUsage 4) (integer) 4313 5) firstTimestamp 6) (integer) 1597125602559 7) lastTimestamp 8) (integer) 1598022003033 9) retentionTime 10) (integer) 0 11) chunkCount 12) (integer) 1 13) maxSamplesPerChunk 14) (integer) 256 15) labels 16) 1) 1) "value" 2) "diff" 2) 1) "type" 2) "datasource" 3) 1) "plugin" 2) "redis-datasource" 4) 1) "version" 2) "1.1.2" 17) sourceKey 18) (nil) 19) rules 20) (empty list or set)

प्रकाशन के समय, Grafana के लिए Redis डेटा स्रोत प्लग-इन 3500 से अधिक बार डाउनलोड किया गया है! हमने समुदाय से मूल्यवान प्रतिक्रिया प्राप्त की है और डेटा स्रोत के लिए नई सुविधाओं का विकास जारी रख रहे हैं।

अधिक जानकारी के लिए, प्रोजेक्ट के लिए GitHub रिपॉजिटरी देखें और यदि आपके पास कोई प्रश्न हैं तो हमें इश्यू में बताएं।

निष्कर्ष

मुझे उम्मीद है कि यह पोस्ट, और समय के साथ प्लग-इन के डाउनलोड को ट्रैक करने के लिए Grafana के लिए Redis डेटा स्रोत का उपयोग करने का मेरा उदाहरण, इस नए टूल की शक्ति और उपयोग में आसानी को प्रदर्शित करता है और आपको अपने एप्लिकेशन डेटा (लेनदेन, स्ट्रीम, कतारें, आदि) को RedisTimeSeries का उपयोग करके मॉनिटर करने के लिए प्रेरित करता है। Grafana के लिए Redis डेटा स्रोत प्लग-इन का उपयोग कैसे और क्यों करें, इस पर अधिक पोस्ट के लिए बने रहें।


  1. विंडोज़ 11 में नए फोटोज़ ऐप का उपयोग कैसे करें विंडोज़ 11 में नए फोटोज़ ऐप का उपयोग कैसे करें

    विंडोज़ 11 अपने UI और सुविधाओं के साथ सुर्खियाँ बटोर रहा है जो PC के लिए नई हैं। माइक्रोसॉफ्ट ने फोटोज़ ऐप के कुछ पहलुओं को भी बदल दिया है। इस गाइड में, हम आपको दिखाते हैं कि नए विंडोज़ 11 फोटोज़ ऐप का उपयोग कैसे करें। फोटोज़ ऐप एक अच्छा ऐप है जो आपको तस्वीरें देखने, उनमें बुनियादी संपादन करने, और

  1. Redis डेटा स्रोत द्वारा संचालित तीन सिद्ध Grafana ऐप्स Redis डेटा स्रोत द्वारा संचालित तीन सिद्ध Grafana ऐप्स

    अपडेट 3/29/21: https://coronavirusapi.com/ ने हाल ही में अपने डेटा तक मुफ्त पहुंच बंद कर दी है, जिससे यह केवल पंजीकृत प्रथम-उत्तरदाताओं के लिए उपलब्ध है। हालांकि इसका दुर्भाग्य से मतलब है कि कोरोनावायरस केस विज़ुअलाइज़ेशन प्रोजेक्ट डेमो अब काम नहीं करेगा, लेकिन जब आपको Grafana वर्ल्डमैप पैनल पर Redi

  1. ग्राफाना अब रेडिस का समर्थन करता है: नया डेटा सोर्स प्लग-इन पेश ग्राफाना अब रेडिस का समर्थन करता है: नया डेटा सोर्स प्लग-इन पेश

    ग्राफाना एक प्रसिद्ध और व्यापक रूप से उपयोग किया जाने वाला ओपन सोर्स एप्लिकेशन मॉनिटरिंग टूल है। और अब, नए रेडिस डेटा सोर्स फॉर ग्राफाना प्लग-इन के लिए धन्यवाद, यह रेडिस के साथ काम करता है! इस नई क्षमता के साथ, DevOps चिकित्सक और डेटाबेस एडमिन एक ऐसे टूल का उपयोग कर सकते हैं जिससे वे पहले से परिचित