Implement AnonBot integration and monitoring enhancements

- Added AnonBot service to docker-compose with resource limits and environment variables.
- Updated Makefile to include commands for AnonBot logs, restart, and dependency checks.
- Enhanced Grafana dashboards with AnonBot health metrics and database connection statistics.
- Implemented AnonBot status retrieval in the message sender for improved monitoring.
- Updated Prometheus configuration to scrape metrics from AnonBot service.
This commit was merged in pull request #2.
This commit is contained in:
2025-09-08 23:17:24 +03:00
parent 40968dd075
commit b34da5015d
9 changed files with 2187 additions and 206 deletions

View File

@@ -361,6 +361,284 @@
}
},
"gridPos": {"h": 8, "w": 12, "x": 0, "y": 8}
},
{
"id": 11,
"title": "AnonBot Health Status",
"type": "timeseries",
"targets": [
{
"expr": "rate(anon_bot_errors_total[5m])",
"legendFormat": "{{component}} - {{error_type}}"
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"vis": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"unit": "short"
}
},
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"gridPos": {"h": 8, "w": 12, "x": 0, "y": 24}
},
{
"id": 12,
"title": "AnonBot Database Connections",
"type": "timeseries",
"targets": [
{
"expr": "anon_bot_db_connections_active",
"legendFormat": "Active Connections"
},
{
"expr": "rate(anon_bot_db_connections_total[5m])",
"legendFormat": "Total Connections/min - {{status}}"
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"vis": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"unit": "short"
}
},
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"gridPos": {"h": 8, "w": 12, "x": 12, "y": 24}
},
{
"id": 13,
"title": "AnonBot System Health",
"type": "stat",
"targets": [
{
"expr": "anon_bot_active_users",
"legendFormat": "Active Users"
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"steps": [
{"color": "green", "value": null},
{"color": "yellow", "value": 10},
{"color": "red", "value": 50}
]
},
"unit": "short"
}
},
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": ["lastNotNull"],
"fields": "",
"values": false
},
"textMode": "auto"
},
"gridPos": {"h": 8, "w": 6, "x": 0, "y": 32}
},
{
"id": 14,
"title": "AnonBot Active Questions",
"type": "stat",
"targets": [
{
"expr": "anon_bot_active_questions",
"legendFormat": "Active Questions"
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"steps": [
{"color": "green", "value": null},
{"color": "yellow", "value": 20},
{"color": "red", "value": 100}
]
},
"unit": "short"
}
},
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": ["lastNotNull"],
"fields": "",
"values": false
},
"textMode": "auto"
},
"gridPos": {"h": 8, "w": 6, "x": 6, "y": 32}
},
{
"id": 15,
"title": "AnonBot Message Rate",
"type": "stat",
"targets": [
{
"expr": "rate(anon_bot_messages_total[1m]) * 60",
"legendFormat": "Messages/min"
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"steps": [
{"color": "green", "value": null},
{"color": "yellow", "value": 10},
{"color": "red", "value": 50}
]
},
"unit": "short"
}
},
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": ["lastNotNull"],
"fields": "",
"values": false
},
"textMode": "auto"
},
"gridPos": {"h": 8, "w": 6, "x": 12, "y": 32}
},
{
"id": 16,
"title": "AnonBot Error Rate",
"type": "stat",
"targets": [
{
"expr": "rate(anon_bot_errors_total[5m])",
"legendFormat": "Errors/min"
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"steps": [
{"color": "green", "value": null},
{"color": "yellow", "value": 1},
{"color": "red", "value": 5}
]
},
"unit": "short"
}
},
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": ["lastNotNull"],
"fields": "",
"values": false
},
"textMode": "auto"
},
"gridPos": {"h": 8, "w": 6, "x": 18, "y": 32}
}
],
"time": {