التكامل مع 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 بالإعداد التالي:
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 الحالية، يجب عليك:
- تركيب ملف الإعدادات المخصص في
/etc/otelcol-contrib/custom.config.yaml - تعيين متغير البيئة
CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml - التأكد من توفر اتصال شبكي بين 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 وتحقّق من أن المقاييس تتدفّق:
- انتقل إلى مستكشف المقاييس
- ابحث عن المقاييس التي تبدأ بـ
redis.(مثلredis.commands.processedوredis.memory.used) - يُفترض أن ترى نقاط بيانات المقاييس تظهر وفق الفاصل الزمني الذي حددته للجمع
مجموعة البيانات التجريبية
للمستخدمين الذين يريدون اختبار تكامل 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.
تنزيل إعداد لوحة المعلومات
استيراد لوحة المعلومات المعدّة مسبقًا
- افتح HyperDX وانتقل إلى قسم لوحات المعلومات
- انقر على Import Dashboard في الزاوية العلوية اليمنى ضمن قائمة النقاط الثلاث

- ارفع ملف
redis-metrics-dashboard.jsonوانقر على Finish Import

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

استكشاف الأخطاء وإصلاحها
تعذّر تحميل ملف الإعداد المخصّص
تحقق من تعيين متغير البيئة 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 للاطلاع على إعدادات بيئة الإنتاج.