Files
copykar/monitoring/grafana/dashboards/copykar.json
T

309 lines
10 KiB
JSON

{
"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
}