باختصارراقب مقاييس أداء PostgreSQL في ClickStack باستخدام مستقبِل PostgreSQL في OTel. يتضمن مجموعة بيانات تجريبية ولوحة معلومات مُعدّة مسبقًا.
التكامل مع PostgreSQL الحالي
يتناول هذا القسم كيفية تهيئة تثبيت PostgreSQL الحالي لديك لإرسال المقاييس إلى ClickStack، وذلك عبر تهيئة ClickStack OTel collector باستخدام مستقبِل PostgreSQL.
إذا كنت ترغب في اختبار تكامل مقاييس PostgreSQL قبل تهيئة إعدادك الحالي، فيمكنك إجراء الاختبار باستخدام مجموعة البيانات التجريبية المُعدّ مسبقًا في القسم التالي.
المتطلبات الأساسية
- مثيل ClickStack قيد التشغيل
- تثبيت PostgreSQL حالي (الإصدار 9.6 أو أحدث)
- إتاحة الوصول عبر الشبكة من ClickStack إلى PostgreSQL (المنفذ الافتراضي 5432)
- مستخدم مراقبة في PostgreSQL لديه الأذونات المناسبة
تأكد من أن مستخدم المراقبة لديه الأذونات المطلوبة
يتطلب مستقبِل PostgreSQL مستخدمًا لديه إذن قراءة على طرق عرض الإحصاءات. امنح دور pg_monitor لمستخدم المراقبة لديك:GRANT pg_monitor TO your_monitoring_user;
أنشئ تهيئة مخصصة لـ OTel collector
يتيح لك ClickStack توسيع تهيئة OpenTelemetry collector الأساسية من خلال تركيب ملف تهيئة مخصص وتعيين متغير بيئة.أنشئ postgres-metrics.yaml:receivers:
postgresql:
endpoint: postgres-host:5432
transport: tcp
username: otel_monitor
password: ${env:POSTGRES_PASSWORD}
databases:
- postgres
- your_application_db # استبدلها بأسماء قواعد البيانات الفعلية لديك
collection_interval: 30s
tls:
insecure: true
processors:
resourcedetection:
detectors: [env, system, docker]
timeout: 5s
batch:
timeout: 10s
send_batch_size: 10000
exporters:
clickhouse:
endpoint: tcp://localhost:9000
database: default
ttl: 96h
service:
pipelines:
metrics/postgres:
receivers: [postgresql]
processors: [resourcedetection, batch]
exporters: [clickhouse]
يعطّل الإعداد tls: insecure: true التحقق من SSL لأغراض التطوير/الاختبار. إذا كنت تستخدم PostgreSQL في بيئة الإنتاج مع تمكين SSL، فأزل هذا السطر أو اضبط الشهادات المناسبة.
انشر ClickStack باستخدام تهيئة مخصصة
قم بتركيب ملف التهيئة المخصص:docker run -d \
--name clickstack-postgres \
-p 8123:8123 -p 9000:9000 -p 4317:4317 -p 4318:4318 \
-e HYPERDX_API_KEY=your-api-key \
-e CLICKHOUSE_PASSWORD=your-clickhouse-password \
-e POSTGRES_PASSWORD=secure_password_here \
-e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
-v "$(pwd)/postgres-metrics.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
clickhouse/clickstack:latest
تحقّق من جمع المقاييس
بعد إكمال التهيئة، سجّل الدخول إلى HyperDX وتأكد من أن المقاييس تتدفق:
- انتقل إلى مستكشف المقاييس
- ابحث عن المقاييس التي تبدأ بـ postgresql. (على سبيل المثال: postgresql.backends وpostgresql.commits)
- ينبغي أن ترى نقاط بيانات المقاييس تظهر وفقًا لفاصل الجمع الذي قمت بتهيئته
بمجرد بدء تدفق المقاييس، انتقل إلى قسم لوحات المعلومات والتصورات المرئية لاستيراد لوحة المعلومات الجاهزة مسبقًا.
مجموعة البيانات التجريبية
للمستخدمين الذين يريدون اختبار تكامل مقاييس PostgreSQL قبل تهيئة أنظمة الإنتاج الخاصة بهم، نوفر مجموعة بيانات مُولَّدة مسبقًا تتضمن أنماطًا واقعية لمقاييس PostgreSQL.
مقاييس على مستوى قاعدة البيانات فقطتتضمن مجموعة البيانات التجريبية هذه مقاييس على مستوى قاعدة البيانات فقط للحفاظ على خفة بيانات العينة. تُجمَع مقاييس الجداول والفهارس تلقائيًا عند مراقبة قاعدة بيانات PostgreSQL فعلية.
تنزيل مجموعة بيانات المقاييس النموذجية
نزّل ملفات المقاييس المُولَّدة مسبقًا (24 ساعة من مقاييس PostgreSQL بأنماط واقعية):# تنزيل مقاييس gauge (connections, database size)
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/postgres/postgres-metrics-gauge.csv
# تنزيل مقاييس sum (commits, rollbacks, operations)
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/postgres/postgres-metrics-sum.csv
تتضمن مجموعة البيانات أنماطًا واقعية:
- ارتفاع صباحي في الاتصالات (08:00) - ذروة تسجيل الدخول
- مشكلة في أداء cache (11:00) - ارتفاع مفاجئ في Blocks_read
- خلل في التطبيق (14:00-14:30) - ارتفاع معدل التراجع إلى 15%
- حالات deadlocks (14:15, 16:30) - deadlocks نادرة
ابدأ ClickStack
ابدأ instance من ClickStack:docker run -d --name clickstack-postgres-demo \
-p 8080:8080 -p 4317:4317 -p 4318:4318 \
clickhouse/clickstack-all-in-one:latest
انتظر نحو 30 ثانية حتى يكتمل تشغيل ClickStack بالكامل.حمّل المقاييس إلى ClickStack
حمّل المقاييس مباشرةً إلى ClickHouse:# تحميل مقاييس gauge
cat postgres-metrics-gauge.csv | docker exec -i clickstack-postgres-demo \
clickhouse-client --query "INSERT INTO otel_metrics_gauge FORMAT CSVWithNames"
# تحميل مقاييس sum
cat postgres-metrics-sum.csv | docker exec -i clickstack-postgres-demo \
clickhouse-client --query "INSERT INTO otel_metrics_sum FORMAT CSVWithNames"
تحقّق من المقاييس في HyperDX
بعد تحميلها، فإن أسرع طريقة لعرض مقاييسك هي من خلال لوحة المعلومات الجاهزة مسبقًا.انتقل إلى قسم لوحات المعلومات والتصورات لاستيراد لوحة المعلومات وعرض العديد من مقاييس PostgreSQL دفعةً واحدة.عرض المنطقة الزمنيةيعرض HyperDX الطوابع الزمنية وفقًا للمنطقة الزمنية المحلية في متصفحك. تغطي البيانات التجريبية الفترة 2025-11-10 00:00:00 - 2025-11-11 00:00:00 (UTC). اضبط النطاق الزمني على 2025-11-09 00:00:00 - 2025-11-12 00:00:00 لضمان ظهور المقاييس التجريبية بغض النظر عن موقعك. وبعد أن ترى المقاييس، يمكنك تضييق النطاق إلى فترة 24 ساعة للحصول على تصورات أوضح.
لوحات المعلومات والمرئيات
لمساعدتك على بدء مراقبة PostgreSQL باستخدام ClickStack، نوفر مرئيات أساسية لمقاييس PostgreSQL.
استورد لوحة المعلومات المُعدّة مسبقًا
- افتح HyperDX وانتقل إلى قسم لوحات المعلومات
- انقر على استيراد لوحة معلومات في الزاوية العلوية اليمنى من قائمة النقاط الثلاث
- ارفع ملف
postgres-metrics-dashboard.json وانقر على إنهاء الاستيراد
اعرض لوحة المعلومات
ستُنشأ لوحة المعلومات مع إعداد جميع المرئيات مسبقًا:بالنسبة إلى مجموعة البيانات التجريبية، اضبط النطاق الزمني على 2025-11-10 00:00:00 - 2025-11-11 00:00:00 (UTC) (عدّله وفقًا لمنطقتك الزمنية المحلية). لن تتضمن لوحة المعلومات المستوردة نطاقًا زمنيًا محددًا افتراضيًا.
تعذّر تحميل التهيئة المخصصة
تحقّق من ضبط متغير البيئة:
docker exec <container-name> printenv CUSTOM_OTELCOL_CONFIG_FILE
تحقّق من تحميل ملف الإعدادات المخصّص:
docker exec <container-name> cat /etc/otelcol-contrib/custom.config.yaml
عدم ظهور أي مقاييس في HyperDX
تحقق من إمكانية الوصول إلى PostgreSQL:
docker exec <clickstack-container> psql -h postgres-host -U otel_monitor -d postgres -c "SELECT 1"
تحقق من سجلات OTel collector:
docker exec <container> cat /etc/otel/supervisor-data/agent.log | grep -i postgres
تحقّق من ضبط كلمة المرور بشكل صحيح:
docker exec <clickstack-container> printenv POSTGRES_PASSWORD
اختبر بيانات الاعتماد مباشرةً:
psql -h postgres-host -U otel_monitor -d postgres -c "SELECT version();"
- أعدّ التنبيهات للعتبات الحرجة (حدود الاتصالات، ارتفاع معدلات التراجع، انخفاض نسب الإصابة في ذاكرة التخزين المؤقت)
- فعّل المراقبة على مستوى الاستعلامات باستخدام امتداد
pg_stat_statements
- راقب عدة مثيلات PostgreSQL عبر تكرار إعدادات الـ receiver مع نقاط نهاية وأسماء خدمات مختلفة
الانتقال إلى بيئة الإنتاج
يستند هذا الدليل إلى OTel Collector المضمّن في ClickStack لتوفير إعداد سريع. بالنسبة إلى عمليات النشر في بيئة الإنتاج، نوصي بتشغيل OTel Collector خاص بك وإرسال البيانات إلى نقطة نهاية OTLP الخاصة بـ ClickStack. راجع إرسال بيانات OpenTelemetry للاطّلاع على إعدادات بيئة الإنتاج.