feat(workflow): implement target channel personalities, raw review cards, on-demand AI rewrites and multi-target dispatch
This commit is contained in:
@@ -20,7 +20,7 @@
|
||||
"collapsed": false,
|
||||
"gridPos": { "h": 4, "w": 3, "x": 0, "y": 1 },
|
||||
"id": 1,
|
||||
"title": "Total Collected",
|
||||
"title": "Total Ingested",
|
||||
"type": "stat",
|
||||
"targets": [
|
||||
{
|
||||
@@ -66,25 +66,6 @@
|
||||
{
|
||||
"collapsed": false,
|
||||
"gridPos": { "h": 4, "w": 3, "x": 6, "y": 1 },
|
||||
"id": 2,
|
||||
"title": "Duplicates Blocked",
|
||||
"type": "stat",
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(copykar_duplicates_detected_total) or vector(0)",
|
||||
"legendFormat": "Duplicates",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"thresholds": { "mode": "absolute", "steps": [{ "color": "orange", "value": null }] }
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"collapsed": false,
|
||||
"gridPos": { "h": 4, "w": 3, "x": 9, "y": 1 },
|
||||
"id": 3,
|
||||
"title": "Admin Approvals",
|
||||
"type": "stat",
|
||||
@@ -103,7 +84,7 @@
|
||||
},
|
||||
{
|
||||
"collapsed": false,
|
||||
"gridPos": { "h": 4, "w": 3, "x": 12, "y": 1 },
|
||||
"gridPos": { "h": 4, "w": 3, "x": 9, "y": 1 },
|
||||
"id": 4,
|
||||
"title": "Admin Rejections",
|
||||
"type": "stat",
|
||||
@@ -122,13 +103,13 @@
|
||||
},
|
||||
{
|
||||
"collapsed": false,
|
||||
"gridPos": { "h": 4, "w": 3, "x": 15, "y": 1 },
|
||||
"gridPos": { "h": 4, "w": 4, "x": 12, "y": 1 },
|
||||
"id": 5,
|
||||
"title": "Posts Published",
|
||||
"title": "Target Deliveries",
|
||||
"type": "stat",
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(copykar_posts_published_total) or vector(0)",
|
||||
"expr": "sum(copykar_target_activity_total) or vector(0)",
|
||||
"legendFormat": "Published",
|
||||
"refId": "A"
|
||||
}
|
||||
@@ -141,9 +122,9 @@
|
||||
},
|
||||
{
|
||||
"collapsed": false,
|
||||
"gridPos": { "h": 4, "w": 3, "x": 18, "y": 1 },
|
||||
"gridPos": { "h": 4, "w": 4, "x": 16, "y": 1 },
|
||||
"id": 6,
|
||||
"title": "AI Requests Total",
|
||||
"title": "AI Target Rewrites Total",
|
||||
"type": "stat",
|
||||
"targets": [
|
||||
{
|
||||
@@ -160,14 +141,14 @@
|
||||
},
|
||||
{
|
||||
"collapsed": false,
|
||||
"gridPos": { "h": 4, "w": 3, "x": 21, "y": 1 },
|
||||
"gridPos": { "h": 4, "w": 4, "x": 20, "y": 1 },
|
||||
"id": 16,
|
||||
"title": "Publish Queue Depth",
|
||||
"title": "Review Queue Depth",
|
||||
"type": "stat",
|
||||
"targets": [
|
||||
{
|
||||
"expr": "copykar_posts_queue_gauge{status=\"approved\"} or vector(0)",
|
||||
"legendFormat": "Approved Queued",
|
||||
"expr": "copykar_posts_queue_gauge{status=\"pending_review\"} or vector(0)",
|
||||
"legendFormat": "Pending Review",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
@@ -181,56 +162,37 @@
|
||||
"collapsed": false,
|
||||
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 5 },
|
||||
"id": 101,
|
||||
"title": "📈 Pipeline Rates & Queue Depths",
|
||||
"title": "📡 Source & Target Channel Activity Breakdown",
|
||||
"type": "row"
|
||||
},
|
||||
{
|
||||
"collapsed": false,
|
||||
"gridPos": { "h": 8, "w": 8, "x": 0, "y": 6 },
|
||||
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 6 },
|
||||
"id": 7,
|
||||
"title": "Ingestion Rate by Source (posts/min)",
|
||||
"title": "Ingested Posts by Source Channel",
|
||||
"type": "timeseries",
|
||||
"targets": [
|
||||
{
|
||||
"expr": "rate(copykar_posts_collected_total[1m]) * 60",
|
||||
"legendFormat": "Source: {{source_channel_id}}",
|
||||
"expr": "sum by (title) (copykar_source_activity_total)",
|
||||
"legendFormat": "Source: {{title}}",
|
||||
"refId": "A"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"collapsed": false,
|
||||
"gridPos": { "h": 8, "w": 8, "x": 8, "y": 6 },
|
||||
"gridPos": { "h": 8, "w": 12, "x": 12, "y": 6 },
|
||||
"id": 8,
|
||||
"title": "Publishing Rate by Target (posts/min)",
|
||||
"title": "Published Posts by Target Channel",
|
||||
"type": "timeseries",
|
||||
"targets": [
|
||||
{
|
||||
"expr": "rate(copykar_posts_published_total[1m]) * 60",
|
||||
"legendFormat": "Target: {{target_channel_id}}",
|
||||
"expr": "sum by (title) (copykar_target_activity_total)",
|
||||
"legendFormat": "Target: {{title}}",
|
||||
"refId": "A"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"collapsed": false,
|
||||
"gridPos": { "h": 8, "w": 8, "x": 16, "y": 6 },
|
||||
"id": 9,
|
||||
"title": "Queue Depth Over Time",
|
||||
"type": "timeseries",
|
||||
"targets": [
|
||||
{
|
||||
"expr": "copykar_redis_queue_size",
|
||||
"legendFormat": "Redis Incoming Queue (2m Pacing)",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"expr": "copykar_posts_queue_gauge",
|
||||
"legendFormat": "State: {{status}}",
|
||||
"refId": "B"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"collapsed": false,
|
||||
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 14 },
|
||||
@@ -242,12 +204,12 @@
|
||||
"collapsed": false,
|
||||
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 15 },
|
||||
"id": 10,
|
||||
"title": "Duplicates Intercepted by Method",
|
||||
"title": "AI Requests by Action & Status",
|
||||
"type": "timeseries",
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum by (method) (rate(copykar_duplicates_detected_total[1m]) * 60)",
|
||||
"legendFormat": "Method: {{method}}",
|
||||
"expr": "sum by (action, status) (rate(copykar_ai_requests_total[1m]) * 60)",
|
||||
"legendFormat": "{{action}} ({{status}})",
|
||||
"refId": "A"
|
||||
}
|
||||
]
|
||||
@@ -338,5 +300,5 @@
|
||||
"timezone": "browser",
|
||||
"title": "Copykar Telegram Fleet Executive Dashboard",
|
||||
"uid": "copykar-executive-dashboard",
|
||||
"version": 3
|
||||
"version": 4
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user