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

गो-रेडिस, अपस्टैश और ओपनटेलीमेट्री के साथ वितरित ट्रेसिंग

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

go-redis क्या है?

गो-रेडिस गोलंग के लिए एक लोकप्रिय रेडिस क्लाइंट है। लीक से हटकर, यह रेडिस सर्वर, सेंटिनल और क्लस्टर का समर्थन करता है।

Upstash Redis डेटाबेस से जुड़ने के लिए, निम्न कोड का उपयोग करें:

package main

import (
	"context"
	"fmt"

	"github.com/go-redis/redis/v8"
)

func main() {
	ctx := context.Background()

	opt, _ := redis.ParseURL("<connection-string-from-Upstash>")
	client := redis.NewClient(opt)

	if err := client.Set(ctx, "foo", "bar", 0); err != nil {
		panic(err)
	}
	fmt.Println(client.Get(ctx, "foo").Result())
}

मनमाना आदेश निष्पादित करने के लिए, आप एक वैकल्पिक API का भी उपयोग कर सकते हैं:

val, err := rdb.Do(ctx, "get", "key").Result()
if err != nil {
	if err == redis.Nil {
		fmt.Println("key does not exists")
		return
	}
	panic(err)
}

आप अपने एपीआई में डेटा या दर-सीमा अनुरोधों को कैश करने के लिए गो-रेडिस का उपयोग कर सकते हैं। क्लाइंट के बारे में अधिक जानने के लिए, Redis Golang दस्तावेज़ीकरण देखें।

वितरित ट्रेसिंग क्या है?

वितरित अनुरेखण अनुरोधों को देखने की अनुमति देता है क्योंकि वे वितरित प्रणालियों के माध्यम से प्रचारित करते हैं, विशेष रूप से वे जो एक माइक्रोसर्विस आर्किटेक्चर का उपयोग करके बनाए गए हैं।

ट्रेसिंग अनुरोधों का पालन करने की अनुमति देता है क्योंकि वे वितरित सिस्टम के माध्यम से यात्रा करते हैं। आपको इस बात का पूरा संदर्भ मिलता है कि क्या अलग है, क्या टूटा हुआ है, और कौन से लॉग और त्रुटियां प्रासंगिक हैं।

गो-रेडिस, अपस्टैश और ओपनटेलीमेट्री के साथ वितरित ट्रेसिंग

OpenTelemetry क्या है?

OpenTelemetry एक विक्रेता-तटस्थ मानक है जो आपको ट्रेस, लॉग और मीट्रिक एकत्र करने और निर्यात करने की अनुमति देता है।

ओटेल डेवलपर्स को एक विक्रेता अज्ञेय तरीके से टेलीमेट्री डेटा एकत्र और निर्यात करने की अनुमति देता है। OpenTelemetry के साथ, आप एक बार अपने एप्लिकेशन को लिख सकते हैं और फिर इंस्ट्रूमेंटेशन को बदले बिना विक्रेताओं को जोड़ या बदल सकते हैं, उदाहरण के लिए, यहां एक लोकप्रिय डेटाडॉग विकल्पों की सूची है जो OpenTelemetry का समर्थन करते हैं।

OpenTelemetry अधिकांश प्रोग्रामिंग भाषाओं के लिए उपलब्ध है और विभिन्न भाषाओं और परिवेशों में अंतरसंचालनीयता प्रदान करता है।

ट्रेसिंग और गो-रेडिस

go-redis एक OpenTelemetry इंस्ट्रूमेंटेशन के साथ आता है जिसे redisotel कहा जाता है जिसे एक अलग मॉड्यूल के रूप में वितरित किया जाता है:

go get github.com/go-redis/redis/extra/redisotel/v8

रेडिस क्लाइंट को साधने के लिए, आपको रेडिसोटेल द्वारा प्रदान किया गया हुक जोड़ना होगा:

import (
    "github.com/go-redis/redis/v8"
    "github.com/go-redis/redis/extra/redisotel/v8"
)

rdb := redis.NewClient(&redis.Options{...})

rdb.AddHook(redisotel.NewTracingHook())

ट्रेसिंग कार्य करने के लिए, आपको सक्रिय ट्रेस संदर्भ को गो-रेडिस कमांड में पास करना होगा, उदाहरण के लिए:

ctx := req.Context()
val, err := rdb.Get(ctx, "key").Result()

रेडिसोटेल के बारे में अधिक जानने के लिए, गो रेडिस के प्रदर्शन और त्रुटियों की निगरानी करना देखें।

अपट्रेस

अपट्रेस एक ओपन सोर्स डेटाडॉग प्रतियोगी है जिसमें एक सहज क्वेरी बिल्डर, समृद्ध डैशबोर्ड, स्वचालित अलर्ट और अधिकांश भाषाओं और ढांचे के लिए एकीकरण है।

आप डीईबी/आरपीएम पैकेज या पूर्व-संकलित बाइनरी डाउनलोड करके अपट्रेस स्थापित कर सकते हैं।

जैसा कि अपेक्षित था, रेडिसोटेल संसाधित रेडिस कमांड के लिए स्पैन बनाता है और किसी भी त्रुटि के होने पर रिकॉर्ड करता है। यहां बताया गया है कि कैसे एकत्रित जानकारी Uptrace पर प्रदर्शित होती है:

गो-रेडिस, अपस्टैश और ओपनटेलीमेट्री के साथ वितरित ट्रेसिंग

आप GitHub पर एक रन करने योग्य उदाहरण पा सकते हैं।

आगे क्या है?

इसके बाद, आप ऐप के अन्य पहलुओं, उदाहरण के लिए, जिन या गो जीआरपीसी की निगरानी के लिए और अधिक ओपनटेलीमेट्री इंस्ट्रूमेंटेशन स्थापित कर सकते हैं।

आप अपना खुद का उपकरण बनाने के लिए OpenTelemetry ट्रेसिंग एपीआई और मेट्रिक्स एपीआई के बारे में भी जान सकते हैं।


  1. Nuxt 3 और Serverless Redis के साथ शुरुआत करना

    परिचय यदि आपको कभी ऐसा ऐप बनाना पड़े जो एप्लिकेशन के उपयोग को ट्रैक करता हो, संसाधनों के उपयोग को प्रतिबंधित करता हो या ऐप के प्रदर्शन को बढ़ाने के लिए कैश से डेटा प्राप्त करता हो, तो आपको पता होगा कि रेडिस इन आवश्यकताओं का उत्तर है! रेडिस इन-मेमोरी, की-वैल्यू डेटाबेस है। यह ओपन सोर्स है और इसका मत

  1. फ़्लटर, सर्वरलेस फ्रेमवर्क और अपस्टैश (रेडिस) के साथ फुलस्टैक सर्वरलेस ऐप - भाग 2

    इस ट्यूटोरियल श्रृंखला के भाग 2 में आपका स्वागत है। पहले भाग में, हमने देखा कि Upstash, Serverless Framework और Redis का उपयोग करके REST API कैसे बनाया जाता है। इस भाग में, हम अपने REST API समापन बिंदुओं का उपभोग करने के लिए, Flutter का उपयोग करके एक मोबाइल एप्लिकेशन बनाएंगे। आइए शुरू करें 🙃 सबस

  1. फ़्लटर, सर्वरलेस फ्रेमवर्क और अपस्टैश (REDIS) के साथ फुलस्टैक सर्वर रहित ऐप - भाग 1

    इस पोस्ट में, हम डेटा स्टोर करने के लिए फ़्लटर, सर्वरलेस फ्रेमवर्क, अपस्टैश और रेडिस के साथ एक सर्वर रहित मोबाइल एप्लिकेशन का निर्माण करेंगे। अपस्टैश क्या है? Upstash Redis के लिए एक सर्वर रहित डेटाबेस है। Upstash के साथ, आप प्रति-अनुरोध का भुगतान करते हैं। इसका मतलब है कि जब डेटाबेस उपयोग में नहीं