{ "annotations": { "list": [] }, "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 1, "id": null, "links": [], "liveNow": true, "panels": [ { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 }, "id": 100, "title": "📌 شاخص‌های کلیدی عملکرد و صف‌های سیستم (KPIs & Queues)", "type": "row" }, { "collapsed": false, "gridPos": { "h": 4, "w": 8, "x": 0, "y": 1 }, "id": 1, "title": "📥 کل پست‌های دریافتی از مبدا", "description": "تعداد کل پیام‌های دریافت شده توسط ربات از کانال‌های مبدا تحت مانیتور.", "type": "stat", "targets": [ { "expr": "sum(copykar_posts_collected_total) or vector(0)", "legendFormat": "دریافت شده", "refId": "A" } ], "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "thresholds": { "mode": "absolute", "steps": [{ "color": "blue", "value": null }] } } } }, { "collapsed": false, "gridPos": { "h": 4, "w": 8, "x": 8, "y": 1 }, "id": 2, "title": "⏳ مجموع پست‌های در صف ارسال مقصد", "description": "تعداد پست‌های تایید شده که در صف ردیس کانال‌های مقصد منتظر رسیدن نوبت ارسال یا پایان ساعت خواب هستند.", "type": "stat", "targets": [ { "expr": "copykar_redis_queue_size or vector(0)", "legendFormat": "در صف ارسال", "refId": "A" } ], "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "orange", "value": 10 }, { "color": "red", "value": 50 } ] } } } }, { "collapsed": false, "gridPos": { "h": 4, "w": 8, "x": 16, "y": 1 }, "id": 3, "title": "🚀 کل پست‌های منتشر شده نهایی", "description": "تعداد پست‌هایی که با موفقیت در کانال‌های مقصد نهایی ارسال و منتشر شده‌اند.", "type": "stat", "targets": [ { "expr": "sum(copykar_target_activity_total) or vector(0)", "legendFormat": "منتشر شده", "refId": "A" } ], "fieldConfig": { "defaults": { "thresholds": { "mode": "absolute", "steps": [{ "color": "purple", "value": null }] } } } }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 5 }, "id": 101, "title": "📋 تصمیمات ادمین و وضعیت سلامت خطاها (Admin Actions & Error Telemetry)", "type": "row" }, { "collapsed": false, "gridPos": { "h": 4, "w": 8, "x": 0, "y": 6 }, "id": 4, "title": "✅ پست‌های تایید شده ادمین", "description": "تعداد پست‌هایی که ادمین بازنویسی آن‌ها را تایید کرده و به صف ارسال فرستاده است.", "type": "stat", "targets": [ { "expr": "sum(copykar_admin_actions_total{action=\"approved\"}) or vector(0)", "legendFormat": "تایید شده", "refId": "A" } ], "fieldConfig": { "defaults": { "thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] } } } }, { "collapsed": false, "gridPos": { "h": 4, "w": 8, "x": 8, "y": 6 }, "id": 5, "title": "❌ پست‌های رد و بایگانی شده", "description": "تعداد پست‌هایی که توسط ادمین در کانال بررسی رد شده‌اند.", "type": "stat", "targets": [ { "expr": "sum(copykar_admin_actions_total{action=\"rejected\"}) or vector(0)", "legendFormat": "رد شده", "refId": "A" } ], "fieldConfig": { "defaults": { "thresholds": { "mode": "absolute", "steps": [{ "color": "red", "value": null }] } } } }, { "collapsed": false, "gridPos": { "h": 4, "w": 8, "x": 16, "y": 6 }, "id": 6, "title": "⚠️ مجموع خطاهای ثبت شده در سیستم", "description": "تعداد کل استثناها و خطاهایی که در دیتابیس PostgreSQL و لاگ‌ها ثبت شده است.", "type": "stat", "targets": [ { "expr": "sum(copykar_errors_total) or vector(0)", "legendFormat": "خطاها", "refId": "A" } ], "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "yellow", "value": 1 }, { "color": "red", "value": 5 } ] } } } }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 10 }, "id": 102, "title": "📡 فعالیت به تفکیک کانال‌های مبدا و مقصد (Channels Activity Breakdown)", "type": "row" }, { "collapsed": false, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 11 }, "id": 7, "title": "📥 پست‌های دریافتی به تفکیک کانال مبدا", "description": "نمودار زمانی و حجم پست‌های جمع‌آوری شده از هر یک از کانال‌های مبدا تحت مانیتور.", "type": "timeseries", "targets": [ { "expr": "sum by (title) (copykar_source_activity_total)", "legendFormat": "مبدا: {{title}}", "refId": "A" } ] }, { "collapsed": false, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 11 }, "id": 8, "title": "🚀 پست‌های منتشر شده به تفکیک کانال مقصد", "description": "نمودار زمانی تعداد پست‌های ارسال شده به هر یک از کانال‌های مقصد نهایی.", "type": "timeseries", "targets": [ { "expr": "sum by (title) (copykar_target_activity_total)", "legendFormat": "مقصد: {{title}}", "refId": "A" } ] }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 19 }, "id": 103, "title": "🤖 عملیات هوش مصنوعی و تحلیل خطاها (AI Operations & Error Breakdown)", "type": "row" }, { "collapsed": false, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 20 }, "id": 9, "title": "🤖 تعداد و وضعیت درخواست‌های هوش مصنوعی", "description": "نرخ بازنویسی‌های ارسالی به هوش مصنوعی به تفکیک وضعیت پاسخ و نوع عملیات.", "type": "timeseries", "targets": [ { "expr": "sum by (action, status) (rate(copykar_ai_requests_total[1m]) * 60)", "legendFormat": "{{action}} ({{status}})", "refId": "A" } ] }, { "collapsed": false, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 20 }, "id": 10, "title": "⚠️ خطاهای سیستم به تفکیک سرویس و نوع استثنا", "description": "تحلیل آماری و نموداری خطاهای رخ داده در سیستم و ثبت شده در پایگاه داده.", "type": "timeseries", "targets": [ { "expr": "sum by (service, error_type) (copykar_errors_total)", "legendFormat": "{{service}}: {{error_type}}", "refId": "A" } ] }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 28 }, "id": 104, "title": "⚡ مانیتورینگ منابع سرور و کانتینر (Container Telemetry)", "type": "row" }, { "collapsed": false, "gridPos": { "h": 7, "w": 8, "x": 0, "y": 29 }, "id": 11, "title": "⚡ درصد مصرف پردازنده (CPU %)", "description": "میزان مصرف پردازنده توسط سرویس کپی‌کار.", "type": "timeseries", "targets": [ { "expr": "rate(process_cpu_seconds_total{job=\"copykar\"}[1m]) * 100", "legendFormat": "مصرف CPU %", "refId": "A" } ] }, { "collapsed": false, "gridPos": { "h": 7, "w": 8, "x": 8, "y": 29 }, "id": 12, "title": "💾 میزان مصرف حافظه رم (RAM MB)", "description": "حافظه رم اشغال شده توسط پردازش برنامه به مگابایت.", "type": "timeseries", "targets": [ { "expr": "process_resident_memory_bytes{job=\"copykar\"} / 1024 / 1024", "legendFormat": "حافظه رم (MB)", "refId": "A" } ] }, { "collapsed": false, "gridPos": { "h": 7, "w": 8, "x": 16, "y": 29 }, "id": 13, "title": "⏱ مدت زمان پاسخ‌دهی هوش مصنوعی (ثانیه)", "description": "میانگین زمان و صدک ۹۵ ام برای بازنویسی پست‌ها متناسب با شخصیت هر کانال.", "type": "timeseries", "targets": [ { "expr": "histogram_quantile(0.95, sum(rate(copykar_ai_latency_seconds_bucket[5m])) by (le, action))", "legendFormat": "صدک ۹۵ام (p95): {{action}}", "refId": "A" }, { "expr": "rate(copykar_ai_latency_seconds_sum[5m]) / rate(copykar_ai_latency_seconds_count[5m])", "legendFormat": "میانگین (Avg): {{action}}", "refId": "B" } ] } ], "refresh": "5s", "schemaVersion": 38, "style": "dark", "tags": ["copykar", "telegram", "ai", "telemetry", "persian", "errors"], "time": { "from": "now-1h", "to": "now" }, "timepicker": {}, "timezone": "browser", "title": "داشبورد مدیریت ناوگان کپی‌کار (Copykar Executive Dashboard)", "uid": "copykar-executive-dashboard", "version": 6 }