Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

مراقبة مقاييس Redis باستخدام ClickStack

التكامل مع Redis الحالي

يتناول هذا القسم كيفية تهيئة مثيل Redis الحالي لديك لإرسال المقاييس إلى ClickStack، وذلك عبر تهيئة ClickStack OTel مجمّع لاستخدام Redis مستقبِل.

إذا كنت ترغب في اختبار تكامل Redis Metrics قبل تهيئة إعدادك الحالي، فيمكنك تجربته باستخدام مجموعة البيانات التجريبية المعدّة مسبقًا لدينا في القسم التالي.

المتطلبات الأساسية
  • مثيل ClickStack قيد التشغيل
  • تثبيت Redis موجود بالفعل (الإصدار 3.0 أو أحدث)
  • إمكانية وصول شبكي من ClickStack إلى Redis (المنفذ الافتراضي 6379)
  • كلمة مرور Redis إذا كانت المصادقة مفعّلة

تحقّق من الاتصال بـ Redis

أولًا، تحقّق من أنك تستطيع الاتصال بـ Redis وأن الأمر INFO يعمل:

# Test connection
redis-cli ping
# Expected output: PONG

# Test INFO command (used by metrics collector)
redis-cli INFO server
# Should display Redis server information

إذا كان Redis يتطلب المصادقة:

redis-cli -a <your-password> ping

عناوين Redis الشائعة:

  • التثبيت المحلي: localhost:6379
  • Docker: استخدم اسم الحاوية أو اسم الخدمة (مثلًا، redis:6379)
  • عن بُعد: <redis-host>:6379

أنشئ إعدادًا مخصصًا لـ OTel collector

يتيح لك ClickStack توسيع الإعداد الأساسي لـ OpenTelemetry collector من خلال تحميل ملف إعداد مخصص وتعيين متغير بيئة. ويُدمج الإعداد المخصص مع الإعداد الأساسي الذي يديره HyperDX عبر OpAMP.

أنشئ ملفًا باسم redis-metrics.yaml بالإعداد التالي:

redis-metrics.yamlyaml
receivers:
  redis:
    endpoint: "localhost:6379"
    collection_interval: 10s
    # Uncomment if Redis requires authentication
    # password: ${env:REDIS_PASSWORD}
    
    # Configure which metrics to collect
    metrics:
      redis.commands.processed:
        enabled: true
      redis.clients.connected:
        enabled: true
      redis.memory.used:
        enabled: true
      redis.keyspace.hits:
        enabled: true
      redis.keyspace.misses:
        enabled: true
      redis.keys.evicted:
        enabled: true
      redis.keys.expired:
        enabled: true

processors:
  resource:
    attributes:
      - key: service.name
        value: "redis"
        action: upsert

service:
  pipelines:
    metrics/redis:
      receivers: [redis]
      processors:
        - resource
        - memory_limiter
        - batch
      exporters:
        - clickhouse

هذا الإعداد:

  • يتصل بـ Redis على localhost:6379 (عدّل نقطة النهاية بما يناسب بيئتك)
  • يجمع المقاييس كل 10 ثوانٍ
  • يجمع مقاييس الأداء الرئيسية (الأوامر، والعملاء، والذاكرة، وإحصاءات مساحة المفاتيح)
  • يعيّن سمة المورد service.name المطلوبة وفقًا لـ OpenTelemetry semantic conventions
  • يوجّه المقاييس إلى مُصدّر ClickHouse عبر مسار معالجة مخصص

المقاييس الرئيسية التي يتم جمعها:

  • redis.commands.processed - عدد الأوامر التي تمت معالجتها في الثانية
  • redis.clients.connected - عدد العملاء المتصلين
  • redis.clients.blocked - العملاء المحجوبون بسبب الاستدعاءات الحاجزة
  • redis.memory.used - الذاكرة التي يستخدمها Redis بالبايت
  • redis.memory.peak - ذروة استخدام الذاكرة
  • redis.keyspace.hits - عمليات البحث الناجحة عن المفاتيح
  • redis.keyspace.misses - عمليات البحث الفاشلة عن المفاتيح (لاحتساب معدل إصابات cache)
  • redis.keys.expired - المفاتيح التي انتهت صلاحيتها
  • redis.keys.evicted - المفاتيح التي أُزيلت بسبب ضغط الذاكرة
  • redis.connections.received - إجمالي الاتصالات المستلَمة
  • redis.connections.rejected - الاتصالات المرفوضة

تكوين ClickStack لتحميل إعدادات مخصصة

لتمكين إعدادات المجمّع المخصصة في عملية نشر ClickStack الحالية، يجب عليك:

  1. تركيب ملف الإعدادات المخصص في /etc/otelcol-contrib/custom.config.yaml
  2. تعيين متغير البيئة CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml
  3. التأكد من توفر اتصال شبكي بين ClickStack وRedis
الخيار 1: Docker Compose

حدّث تكوين نشر ClickStack:

services:
  clickstack:
    # ... existing configuration ...
    environment:
      - CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml
      # Optional: If Redis requires authentication
      # - REDIS_PASSWORD=your-redis-password
      # ... other environment variables ...
    volumes:
      - ./redis-metrics.yaml:/etc/otelcol-contrib/custom.config.yaml:ro
      # ... other volumes ...
    # If Redis is in the same compose file:
    depends_on:
      - redis

  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"
    # Optional: Enable authentication
    # command: redis-server --requirepass your-redis-password
الخيار 2: تشغيل Docker (الصورة المتكاملة)

إذا كنت تستخدم الصورة المتكاملة مع docker run:

docker run --name clickstack \
  -p 8080:8080 -p 4317:4317 -p 4318:4318 \
  -e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
  -v "$(pwd)/redis-metrics.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
  clickhouse/clickstack-all-in-one:latest

مهم: إذا كان Redis يعمل في حاوية أخرى، فاستخدم شبكة Docker:

# Create a network
docker network create monitoring

# Run Redis on the network
docker run -d --name redis --network monitoring redis:7-alpine

# Run ClickStack on the same network (update endpoint to "redis:6379" in config)
docker run --name clickstack \
  --network monitoring \
  -p 8080:8080 -p 4317:4317 -p 4318:4318 \
  -e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
  -v "$(pwd)/redis-metrics.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
  clickhouse/clickstack-all-in-one:latest

تحقّق من المقاييس في HyperDX

بمجرد اكتمال الإعداد، سجّل الدخول إلى HyperDX وتحقّق من أن المقاييس تتدفّق:

  1. انتقل إلى مستكشف المقاييس
  2. ابحث عن المقاييس التي تبدأ بـ redis. (مثل redis.commands.processed وredis.memory.used)
  3. يُفترض أن ترى نقاط بيانات المقاييس تظهر وفق الفاصل الزمني الذي حددته للجمع

مجموعة البيانات التجريبية

للمستخدمين الذين يريدون اختبار تكامل Redis Metrics قبل تهيئة أنظمة الإنتاج الخاصة بهم، نوفر مجموعة بيانات مُولَّدة مسبقًا تتضمن أنماط Redis Metrics واقعية.

تنزيل مجموعة بيانات نموذجية للمقاييس

نزّل ملفات المقاييس المُولَّدة مسبقًا (24 ساعة من Redis Metrics بأنماط واقعية):

# تنزيل مقاييس gauge (الذاكرة، نسبة التجزؤ)
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/redis/redis-metrics-gauge.csv

# تنزيل مقاييس sum (الأوامر، الاتصالات، إحصاءات keyspace)
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/redis/redis-metrics-sum.csv

تتضمن مجموعة البيانات أنماطًا واقعية:

  • حدث إحماء الذاكرة المؤقتة (06:00) - يرتفع معدل الإصابة من 30% إلى 80%
  • طفرة في الزيارات (14:30-14:45) - زيادة في الزيارات بمقدار 5x مع ضغط على الاتصالات
  • ضغط على الذاكرة (20:00) - بدء طرد المفاتيح وتراجع أداء الذاكرة المؤقتة
  • أنماط الزيارات اليومية - ذروات خلال ساعات العمل، وانخفاضات مسائية، وارتفاعات طفيفة عشوائية

بدء ClickStack

شغّل مثيلًا من ClickStack:

docker run -d --name clickstack-demo \
  -p 8080:8080 -p 4317:4317 -p 4318:4318 \
  clickhouse/clickstack-all-in-one:latest

انتظر نحو 30 ثانية حتى يكتمل تشغيل ClickStack بالكامل.

تحميل المقاييس إلى ClickStack

حمّل المقاييس مباشرةً إلى ClickHouse:

# تحميل مقاييس gauge (الذاكرة، التجزؤ)
cat redis-metrics-gauge.csv | docker exec -i clickstack-demo \
  clickhouse-client --query "INSERT INTO otel_metrics_gauge FORMAT CSVWithNames"

# تحميل مقاييس sum (الأوامر، الاتصالات، keyspace)
cat redis-metrics-sum.csv | docker exec -i clickstack-demo \
  clickhouse-client --query "INSERT INTO otel_metrics_sum FORMAT CSVWithNames"

التحقق من المقاييس في HyperDX

بعد تحميلها، أسرع طريقة لرؤية مقاييسك هي عبر لوحة المعلومات الجاهزة مسبقًا.

انتقل إلى قسم لوحات المعلومات والتصورات لاستيراد لوحة المعلومات وعرض جميع بيانات Redis Metrics دفعةً واحدة.

لوحات المعلومات والتصورات المرئية

لمساعدتك على بدء مراقبة Redis باستخدام ClickStack، نوفر تصورات مرئية أساسية لـ Redis Metrics.

تنزيل إعداد لوحة المعلومات

استيراد لوحة المعلومات المعدّة مسبقًا

  1. افتح HyperDX وانتقل إلى قسم لوحات المعلومات
  2. انقر على Import Dashboard في الزاوية العلوية اليمنى ضمن قائمة النقاط الثلاث
زر استيراد لوحة المعلومات
  1. ارفع ملف redis-metrics-dashboard.json وانقر على Finish Import
مربع حوار إنهاء الاستيراد

عرض لوحة المعلومات

ستُنشأ لوحة المعلومات مع إعداد جميع التصورات المرئية مسبقًا:

لوحة معلومات Redis Metrics

استكشاف الأخطاء وإصلاحها

تعذّر تحميل ملف الإعداد المخصّص

تحقق من تعيين متغير البيئة CUSTOM_OTELCOL_CONFIG_FILE بشكل صحيح:

docker exec <container-name> printenv CUSTOM_OTELCOL_CONFIG_FILE

تحقّق من أنّ ملف الإعداد المخصّص مركّب على المسار /etc/otelcol-contrib/custom.config.yaml:

docker exec <container-name> ls -lh /etc/otelcol-contrib/custom.config.yaml

اعرض محتوى ملف الإعداد المخصص للتحقق من إمكانية قراءته:

docker exec <container-name> cat /etc/otelcol-contrib/custom.config.yaml

عدم ظهور أي مقاييس في HyperDX

تحقّق من إمكانية وصول المجمّع إلى Redis:

# From the ClickStack container
docker exec <clickstack-container> redis-cli -h <redis-host> ping
# Expected output: PONG

تحقق من أن أمر Redis INFO يعمل:

docker exec <clickstack-container> redis-cli -h <redis-host> INFO stats
# Should display Redis statistics

تأكد من أن الإعدادات الفعّالة تتضمن مكوّن Redis مستقبِل الخاص بك:

docker exec <container> cat /etc/otel/supervisor-data/effective.yaml | grep -A 10 "redis:"

تحقق من سجلات المجمّع بحثًا عن أخطاء:

docker exec <container> cat /etc/otel/supervisor-data/agent.log | grep -i redis
# Look for connection errors or authentication failures

أخطاء المصادقة

إذا ظهرت أخطاء مصادقة في السجلات:

# Verify Redis requires authentication
redis-cli CONFIG GET requirepass

# Test authentication
redis-cli -a <password> ping

# Ensure password is set in ClickStack environment
docker exec <clickstack-container> printenv REDIS_PASSWORD

حدّث تهيئتك لاستخدام كلمة المرور:

receivers:
  redis:
    endpoint: "redis:6379"
    password: ${env:REDIS_PASSWORD}

مشكلات في اتصال الشبكة

إذا تعذّر على ClickStack الوصول إلى Redis:

# Check if both containers are on the same network
docker network inspect <network-name>

# Test connectivity
docker exec <clickstack-container> ping redis
docker exec <clickstack-container> telnet redis 6379

تأكد من أن ملف Docker Compose لديك أو أوامر docker run تضمن وضع كلتا الحاويتين على الشبكة نفسها.

الخطوات التالية

  • قم بإعداد التنبيهات للمقاييس الحرجة (حدود استخدام الذاكرة، وحدود الاتصال، وانخفاض معدل إصابة ذاكرة التخزين المؤقت)
  • أنشئ لوحات معلومات إضافية لحالات استخدام محددة (تأخر النسخ المتماثل، وأداء التخزين المستمر)
  • راقب عدة مثيلات Redis من خلال تكرار تهيئة المستقبِل باستخدام نقاط نهاية وأسماء خدمات مختلفة

الانتقال إلى بيئة الإنتاج

يعتمد هذا الدليل على OpenTelemetry Collector المضمّن في ClickStack لتسهيل الإعداد السريع. أمّا لعمليات النشر في بيئة الإنتاج، فنوصي بتشغيل OTel Collector الخاص بك وإرسال البيانات إلى نقطة نهاية OTLP الخاصة بـ ClickStack. راجع إرسال بيانات OpenTelemetry للاطلاع على إعدادات بيئة الإنتاج.

Navigation