কম্পিউটার টিউটোরিয়াল

Go-Redis, Upstash এবং OpenTelemetry দিয়ে ডিস্ট্রিবিউটেড ট্রেসিং দক্ষতার সাথে করুন

এই টিউটোরিয়ালে, আপনি শিখবেন কিভাবে go-redis ক্লায়েন্ট ব্যবহার করে Upstash Redis ডাটাবেসের সাথে সংযোগ স্থাপন করবেন এবং ডিস্ট্রিবিউটেড ট্রেসিং ব্যবহার করে আপনার অ্যাপ্লিকেশনের পারফরম্যান্স মনিটর করবেন।

go-redis কী?

go-redis হল Golang-এর জন্য একটি জনপ্রিয় Redis ক্লায়েন্ট। এটি বক্সের বাইরে Redis Server, Sentinel এবং Cluster-কে সমর্থন করে।

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) }

আপনি go-redis ব্যবহার করে ডেটা ক্যাশ করতে পারেন বা আপনার API-এ রেট-লিমিট রিকোয়েস্ট করতে পারেন। ক্লায়েন্ট সম্পর্কে আরও জানতে, Redis Golang ডকুমেন্টেশন দেখুন।

ডিস্ট্রিবিউটেড ট্রেসিং কী?

ডিস্ট্রিবিউটেড ট্রেসিং আপনাকে ডিস্ট্রিবিউটেড সিস্টেমের মাধ্যমে রিকোয়েস্টগুলি পর্যবেক্ষণ করতে দেয়, বিশেষ করে যেগুলি মাইক্রোসার্ভিসেস আর্কিটেকচার ব্যবহার করে তৈরি করা হয়েছে।

ট্রেসিং আপনাকে ডিস্ট্রিবিউটেড সিস্টেমের মাধ্যমে রিকোয়েস্টগুলি ফলো করতে দেয়। আপনি পান পুরো কনটেক্স্ট যে কী আলাদা, কী ভাঙলো, এবং কোন লগ ও এররগুলো প্রাসঙ্গিক।

Go-Redis, Upstash এবং OpenTelemetry দিয়ে ডিস্ট্রিবিউটেড ট্রেসিং দক্ষতার সাথে করুন

OpenTelemetry কী?

OpenTelemetry হল একটি ভেন্ডার-নিরপেক্ষ স্ট্যান্ডার্ড যা আপনাকে ট্রেস, লগ এবং মেট্রিক্স সংগ্রহ এবং এক্সপোর্ট করতে দেয়।

Otel ডেভেলপারদের ভেন্ডার-অগностиক উপায়ে টেলিমেট্রি ডেটা সংগ্রহ এবং এক্সপোর্ট করতে দেয়। OpenTelemetry-এর সাথে, আপনি একবার আপনার অ্যাপ্লিকেশন ইনস্ট্রুমেন্ট করতে পারেন এবং তারপর ইনস্ট্রুমেন্টেশন পরিবর্তন किए বিনাই ভেন্ডার যোগ বা পরিবর্তন করতে পারেন, উদাহরণস্বরূপ, এখানে OpenTelemetry সমর্থনকারী জনপ্রিয় DataDog বিকল্পগুলির তালিকা রয়েছে।

OpenTelemetry অধিকাংশ প্রোগ্রামিং ভাষার জন্য উপলব্ধ এবং বিভিন্ন ভাষা ও পরিবেশে ইন্টারঅপারেবিলিটি প্রদান করে।

ট্রেসিং এবং go-redis

go-redis-এ একটি OpenTelemetry ইনস্ট্রুমেন্টেশন আছে যাকে redisotel বলা হয়, যা একটি আলাদা মডিউল হিসেবে বিতরণ করা হয়:

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

Redis ক্লায়েন্টকে ইনস্ট্রুমেন্ট করতে, আপনাকে redisotel-এর প্রদত্ত হুকটি যোগ করতে হবে:

import ( "github.com/go-redis/redis/v8" "github.com/go-redis/redis/extra/redisotel/v8" ) rdb := redis.NewClient(&redis.Options{...}) rdb.AddHook(redisotel.NewTracingHook())

ট্রেসিং কাজ করতে, আপনাকে go-redis কমান্ডগুলিতে সক্রিয় trace context পাস করতে হবে, উদাহরণস্বরূপ:

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

redisotel সম্পর্কে আরও জানতে, Monitoring Go Redis Performance and Errors দেখুন।

Uptrace

Uptrace হল একটি ওপেন সোর্স DataDog প্রতিযোগী যা একটি ইন্টিউইটিভ কোয়েরি বিল্ডার, সমৃদ্ধ ড্যাশবোর্ড, অটোম্যাটিক অ্যালার্ট এবং অধিকাংশ ভাষা ও ফ্রেমওয়ার্কের জন্য ইন্টিগ্রেশন প্রদান করে।

আপনি DEB/RPM প্যাকেজ বা প্রি-কম্পাইল্ড বাইনারি ডাউনলোড করে Uptrace ইনস্টল করতে পারেন।

আশা অনুযায়ী, redisotel প্রসেস করা Redis কমান্ডের জন্য স্প্যান তৈরি করে এবং যেকোনো এরর রেকর্ড করে। এখানে সংগৃহীত তথ্যটি Uptrace-এ কীভাবে প্রদর্শিত হয়:

Go-Redis, Upstash এবং OpenTelemetry দিয়ে ডিস্ট্রিবিউটেড ট্রেসিং দক্ষতার সাথে করুন

আপনি GitHub-এ একটি রানেবল উদাহরণ খুঁজে পাবেন।

পরাবর্তী কী?

পরবর্তীতে, আপনি আরও OpenTelemetry ইনস্ট্রুমেন্টেশন ইনস্টল করে অ্যাপের অন্যান্য দিকগুলো মনিটর করতে পারেন, উদাহরণস্বরূপ, Gin বা Go gRPC।

আপনি OpenTelemetry Tracing API এবং Metrics API সম্পর্কেও শিখতে পারেন যাতে আপনার নিজস্ব ইনস্ট্রুমেন্টেশন তৈরি করতে পারেন।

  1. React Native, AWS Lambda এবং সার্ভারলেস রেডিস দিয়ে হাই-পারফরম্যান্স মোবাইল লিডারবোর্ড তৈরি করুন

  2. নাক্স ৩ অ্যাপস সার্ভারলেস রেডিস দিয়ে লঞ্চ করুন দ্রুত পারফরম্যান্সের জন্য

  3. ফ্লাটার, সার্ভারলেস ফ্রেমওয়ার্ক এবং আপস্ট্যাশ রেডিস দিয়ে ফুল-স্ট্যাক সার্ভারলেস মোবাইল অ্যাপ তৈরি করুন – পার্ট ২

  4. ফ্লাটার, সার্ভারলেস ফ্রেমওয়ার্ক এবং আপস্ট্যাশ রেডিস দিয়ে ফুল-স্ট্যাক সার্ভারলেস ফ্লাটার অ্যাপ বানান – পার্ট ১