monitoring: fuera los restos de polymarket y la datasource Alertmanager
El dashboard «ChemaVX Homelab Overview» tenía 4 paneles Infinity apuntando a
api.polymarket-bot.svc.cluster.local:8000, decomisado el 2026-07-17, más dos
stat de servicios cuyos namespaces ya no existen (polymarket-bot, open-webui)
que se veían como un 0 sospechoso en vez de como ausencia. 24 -> 17 paneles, y
la rejilla de servicios reempaquetada (arrastraba huecos de borrados viejos).
La datasource Alertmanager apuntaba a un servicio inexistente (alertmanager
está desactivado a propósito) y devolvía 500. Dos sorpresas: no la apaga
alertmanager.enabled, sino grafana.sidecar.datasources.alertmanager.enabled; y
quitarla del provisioning NO la borra de grafana.db — hace falta una directiva
deleteDatasources de un solo uso. Igual para la Infinity, creada por UI.
Auditando el Deployment contra el render aparecieron dos campos puestos a mano
que el chart no genera y que sólo seguían vivos por el three-way merge de Helm,
el mismo agujero que 0501aab: GF_INSTALL_PLUGINS (ya sin uso, retirado junto al
plugin de 48 MB) y TELEGRAM_BOT_TOKEN/CHAT_ID, que sí son críticos — el contact
point usa ${TELEGRAM_BOT_TOKEN}, así que reconstruir el release desde cero
habría dejado las alertas mudas. Declarados ya en values.
Verificado: render == desplegado salvo defaults del API server; Grafana
reiniciada y arrancando sin errores, 1 datasource, 25 dashboards, 5 reglas y el
contact point de Telegram con token resuelto.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -4,9 +4,9 @@ metadata:
|
|||||||
name: chemavx-homelab-overview
|
name: chemavx-homelab-overview
|
||||||
namespace: monitoring
|
namespace: monitoring
|
||||||
labels:
|
labels:
|
||||||
grafana_dashboard: "1"
|
grafana_dashboard: '1'
|
||||||
data:
|
data:
|
||||||
chemavx-homelab-overview.json: |-
|
chemavx-homelab-overview.json: |
|
||||||
{
|
{
|
||||||
"annotations": {
|
"annotations": {
|
||||||
"list": [
|
"list": [
|
||||||
@@ -461,7 +461,7 @@ data:
|
|||||||
"gridPos": {
|
"gridPos": {
|
||||||
"h": 4,
|
"h": 4,
|
||||||
"w": 4,
|
"w": 4,
|
||||||
"x": 8,
|
"x": 4,
|
||||||
"y": 10
|
"y": 10
|
||||||
},
|
},
|
||||||
"id": 9,
|
"id": 9,
|
||||||
@@ -549,7 +549,7 @@ data:
|
|||||||
"gridPos": {
|
"gridPos": {
|
||||||
"h": 4,
|
"h": 4,
|
||||||
"w": 4,
|
"w": 4,
|
||||||
"x": 12,
|
"x": 8,
|
||||||
"y": 10
|
"y": 10
|
||||||
},
|
},
|
||||||
"id": 10,
|
"id": 10,
|
||||||
@@ -637,7 +637,7 @@ data:
|
|||||||
"gridPos": {
|
"gridPos": {
|
||||||
"h": 4,
|
"h": 4,
|
||||||
"w": 4,
|
"w": 4,
|
||||||
"x": 16,
|
"x": 12,
|
||||||
"y": 10
|
"y": 10
|
||||||
},
|
},
|
||||||
"id": 11,
|
"id": 11,
|
||||||
@@ -725,7 +725,7 @@ data:
|
|||||||
"gridPos": {
|
"gridPos": {
|
||||||
"h": 4,
|
"h": 4,
|
||||||
"w": 4,
|
"w": 4,
|
||||||
"x": 20,
|
"x": 16,
|
||||||
"y": 10
|
"y": 10
|
||||||
},
|
},
|
||||||
"id": 12,
|
"id": 12,
|
||||||
@@ -813,8 +813,8 @@ data:
|
|||||||
"gridPos": {
|
"gridPos": {
|
||||||
"h": 4,
|
"h": 4,
|
||||||
"w": 4,
|
"w": 4,
|
||||||
"x": 0,
|
"x": 20,
|
||||||
"y": 14
|
"y": 10
|
||||||
},
|
},
|
||||||
"id": 13,
|
"id": 13,
|
||||||
"options": {
|
"options": {
|
||||||
@@ -901,7 +901,7 @@ data:
|
|||||||
"gridPos": {
|
"gridPos": {
|
||||||
"h": 4,
|
"h": 4,
|
||||||
"w": 4,
|
"w": 4,
|
||||||
"x": 4,
|
"x": 0,
|
||||||
"y": 14
|
"y": 14
|
||||||
},
|
},
|
||||||
"id": 14,
|
"id": 14,
|
||||||
@@ -989,95 +989,7 @@ data:
|
|||||||
"gridPos": {
|
"gridPos": {
|
||||||
"h": 4,
|
"h": 4,
|
||||||
"w": 4,
|
"w": 4,
|
||||||
"x": 8,
|
"x": 4,
|
||||||
"y": 14
|
|
||||||
},
|
|
||||||
"id": 15,
|
|
||||||
"options": {
|
|
||||||
"colorMode": "background",
|
|
||||||
"graphMode": "none",
|
|
||||||
"justifyMode": "auto",
|
|
||||||
"orientation": "auto",
|
|
||||||
"reduceOptions": {
|
|
||||||
"calcs": [
|
|
||||||
"lastNotNull"
|
|
||||||
],
|
|
||||||
"fields": "",
|
|
||||||
"values": false
|
|
||||||
},
|
|
||||||
"textMode": "auto"
|
|
||||||
},
|
|
||||||
"pluginVersion": "12.4.2",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"datasource": {
|
|
||||||
"type": "prometheus",
|
|
||||||
"uid": "prometheus"
|
|
||||||
},
|
|
||||||
"expr": "sum(kube_pod_status_phase{namespace=\"polymarket-bot\",phase=\"Running\"}) or vector(0)",
|
|
||||||
"instant": true,
|
|
||||||
"legendFormat": "polymarket-bot",
|
|
||||||
"refId": "A"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"title": "polymarket-bot",
|
|
||||||
"type": "stat"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"datasource": {
|
|
||||||
"type": "prometheus",
|
|
||||||
"uid": "prometheus"
|
|
||||||
},
|
|
||||||
"fieldConfig": {
|
|
||||||
"defaults": {
|
|
||||||
"color": {
|
|
||||||
"mode": "thresholds"
|
|
||||||
},
|
|
||||||
"mappings": [
|
|
||||||
{
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"color": "red",
|
|
||||||
"index": 0,
|
|
||||||
"text": "Down"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"type": "value"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"options": {
|
|
||||||
"from": 1,
|
|
||||||
"result": {
|
|
||||||
"color": "green",
|
|
||||||
"index": 1,
|
|
||||||
"text": "Running"
|
|
||||||
},
|
|
||||||
"to": null
|
|
||||||
},
|
|
||||||
"type": "range"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"thresholds": {
|
|
||||||
"mode": "absolute",
|
|
||||||
"steps": [
|
|
||||||
{
|
|
||||||
"color": "red",
|
|
||||||
"value": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"color": "green",
|
|
||||||
"value": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"unit": "short"
|
|
||||||
},
|
|
||||||
"overrides": []
|
|
||||||
},
|
|
||||||
"gridPos": {
|
|
||||||
"h": 4,
|
|
||||||
"w": 4,
|
|
||||||
"x": 12,
|
|
||||||
"y": 14
|
"y": 14
|
||||||
},
|
},
|
||||||
"id": 16,
|
"id": 16,
|
||||||
@@ -1111,94 +1023,6 @@ data:
|
|||||||
"title": "ollama",
|
"title": "ollama",
|
||||||
"type": "stat"
|
"type": "stat"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"datasource": {
|
|
||||||
"type": "prometheus",
|
|
||||||
"uid": "prometheus"
|
|
||||||
},
|
|
||||||
"fieldConfig": {
|
|
||||||
"defaults": {
|
|
||||||
"color": {
|
|
||||||
"mode": "thresholds"
|
|
||||||
},
|
|
||||||
"mappings": [
|
|
||||||
{
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"color": "red",
|
|
||||||
"index": 0,
|
|
||||||
"text": "Down"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"type": "value"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"options": {
|
|
||||||
"from": 1,
|
|
||||||
"result": {
|
|
||||||
"color": "green",
|
|
||||||
"index": 1,
|
|
||||||
"text": "Running"
|
|
||||||
},
|
|
||||||
"to": null
|
|
||||||
},
|
|
||||||
"type": "range"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"thresholds": {
|
|
||||||
"mode": "absolute",
|
|
||||||
"steps": [
|
|
||||||
{
|
|
||||||
"color": "red",
|
|
||||||
"value": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"color": "green",
|
|
||||||
"value": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"unit": "short"
|
|
||||||
},
|
|
||||||
"overrides": []
|
|
||||||
},
|
|
||||||
"gridPos": {
|
|
||||||
"h": 4,
|
|
||||||
"w": 4,
|
|
||||||
"x": 16,
|
|
||||||
"y": 14
|
|
||||||
},
|
|
||||||
"id": 17,
|
|
||||||
"options": {
|
|
||||||
"colorMode": "background",
|
|
||||||
"graphMode": "none",
|
|
||||||
"justifyMode": "auto",
|
|
||||||
"orientation": "auto",
|
|
||||||
"reduceOptions": {
|
|
||||||
"calcs": [
|
|
||||||
"lastNotNull"
|
|
||||||
],
|
|
||||||
"fields": "",
|
|
||||||
"values": false
|
|
||||||
},
|
|
||||||
"textMode": "auto"
|
|
||||||
},
|
|
||||||
"pluginVersion": "12.4.2",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"datasource": {
|
|
||||||
"type": "prometheus",
|
|
||||||
"uid": "prometheus"
|
|
||||||
},
|
|
||||||
"expr": "sum(kube_pod_status_phase{namespace=\"open-webui\",phase=\"Running\"}) or vector(0)",
|
|
||||||
"instant": true,
|
|
||||||
"legendFormat": "open-webui",
|
|
||||||
"refId": "A"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"title": "open-webui",
|
|
||||||
"type": "stat"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"collapsed": false,
|
"collapsed": false,
|
||||||
"gridPos": {
|
"gridPos": {
|
||||||
@@ -1335,435 +1159,6 @@ data:
|
|||||||
],
|
],
|
||||||
"title": "Ollama — Memoria en uso",
|
"title": "Ollama — Memoria en uso",
|
||||||
"type": "stat"
|
"type": "stat"
|
||||||
},
|
|
||||||
{
|
|
||||||
"collapsed": false,
|
|
||||||
"gridPos": {
|
|
||||||
"h": 1,
|
|
||||||
"w": 24,
|
|
||||||
"x": 0,
|
|
||||||
"y": 27
|
|
||||||
},
|
|
||||||
"id": 21,
|
|
||||||
"panels": [],
|
|
||||||
"title": "📈 Polymarket Bot",
|
|
||||||
"type": "row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"datasource": {
|
|
||||||
"type": "yesoreyeram-infinity-datasource",
|
|
||||||
"uid": "infinity"
|
|
||||||
},
|
|
||||||
"fieldConfig": {
|
|
||||||
"defaults": {
|
|
||||||
"color": {
|
|
||||||
"mode": "thresholds"
|
|
||||||
},
|
|
||||||
"mappings": [],
|
|
||||||
"thresholds": {
|
|
||||||
"mode": "absolute",
|
|
||||||
"steps": [
|
|
||||||
{
|
|
||||||
"color": "blue",
|
|
||||||
"value": null
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"unit": "currencyUSD"
|
|
||||||
},
|
|
||||||
"overrides": []
|
|
||||||
},
|
|
||||||
"gridPos": {
|
|
||||||
"h": 8,
|
|
||||||
"w": 6,
|
|
||||||
"x": 0,
|
|
||||||
"y": 28
|
|
||||||
},
|
|
||||||
"id": 22,
|
|
||||||
"options": {
|
|
||||||
"colorMode": "background",
|
|
||||||
"graphMode": "none",
|
|
||||||
"justifyMode": "auto",
|
|
||||||
"orientation": "auto",
|
|
||||||
"reduceOptions": {
|
|
||||||
"calcs": [
|
|
||||||
"lastNotNull"
|
|
||||||
],
|
|
||||||
"fields": "/total_pnl/",
|
|
||||||
"values": false
|
|
||||||
},
|
|
||||||
"textMode": "auto"
|
|
||||||
},
|
|
||||||
"pluginVersion": "12.4.2",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"selector": "total_pnl",
|
|
||||||
"text": "total_pnl",
|
|
||||||
"timestampFormat": "",
|
|
||||||
"type": "number"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"selector": "total_trades",
|
|
||||||
"text": "total_trades",
|
|
||||||
"timestampFormat": "",
|
|
||||||
"type": "number"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"selector": "win_rate",
|
|
||||||
"text": "win_rate",
|
|
||||||
"timestampFormat": "",
|
|
||||||
"type": "number"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"selector": "total_deployed",
|
|
||||||
"text": "total_deployed",
|
|
||||||
"timestampFormat": "",
|
|
||||||
"type": "number"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"datasource": {
|
|
||||||
"type": "yesoreyeram-infinity-datasource",
|
|
||||||
"uid": "infinity"
|
|
||||||
},
|
|
||||||
"filters": [],
|
|
||||||
"format": "dataframe",
|
|
||||||
"global_query_id": "",
|
|
||||||
"json_options": {
|
|
||||||
"columnar": false,
|
|
||||||
"root_is_not_array": true
|
|
||||||
},
|
|
||||||
"method": "GET",
|
|
||||||
"parser": "backend",
|
|
||||||
"refId": "A",
|
|
||||||
"root_selector": "",
|
|
||||||
"source": "url",
|
|
||||||
"type": "json",
|
|
||||||
"url": "http://api.polymarket-bot.svc.cluster.local:8000/api/summary",
|
|
||||||
"url_options": {
|
|
||||||
"body_type": "",
|
|
||||||
"data": "",
|
|
||||||
"headers": null,
|
|
||||||
"method": "GET",
|
|
||||||
"params": null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"title": "P&L Actual (USD)",
|
|
||||||
"type": "stat"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"datasource": {
|
|
||||||
"type": "yesoreyeram-infinity-datasource",
|
|
||||||
"uid": "infinity"
|
|
||||||
},
|
|
||||||
"fieldConfig": {
|
|
||||||
"defaults": {
|
|
||||||
"color": {
|
|
||||||
"mode": "thresholds"
|
|
||||||
},
|
|
||||||
"mappings": [],
|
|
||||||
"thresholds": {
|
|
||||||
"mode": "absolute",
|
|
||||||
"steps": [
|
|
||||||
{
|
|
||||||
"color": "blue",
|
|
||||||
"value": null
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"unit": "short"
|
|
||||||
},
|
|
||||||
"overrides": []
|
|
||||||
},
|
|
||||||
"gridPos": {
|
|
||||||
"h": 8,
|
|
||||||
"w": 6,
|
|
||||||
"x": 6,
|
|
||||||
"y": 28
|
|
||||||
},
|
|
||||||
"id": 23,
|
|
||||||
"options": {
|
|
||||||
"colorMode": "background",
|
|
||||||
"graphMode": "none",
|
|
||||||
"justifyMode": "auto",
|
|
||||||
"orientation": "auto",
|
|
||||||
"reduceOptions": {
|
|
||||||
"calcs": [
|
|
||||||
"lastNotNull"
|
|
||||||
],
|
|
||||||
"fields": "/total_trades/",
|
|
||||||
"values": false
|
|
||||||
},
|
|
||||||
"textMode": "auto"
|
|
||||||
},
|
|
||||||
"pluginVersion": "12.4.2",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"selector": "total_pnl",
|
|
||||||
"text": "total_pnl",
|
|
||||||
"timestampFormat": "",
|
|
||||||
"type": "number"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"selector": "total_trades",
|
|
||||||
"text": "total_trades",
|
|
||||||
"timestampFormat": "",
|
|
||||||
"type": "number"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"selector": "win_rate",
|
|
||||||
"text": "win_rate",
|
|
||||||
"timestampFormat": "",
|
|
||||||
"type": "number"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"selector": "total_deployed",
|
|
||||||
"text": "total_deployed",
|
|
||||||
"timestampFormat": "",
|
|
||||||
"type": "number"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"datasource": {
|
|
||||||
"type": "yesoreyeram-infinity-datasource",
|
|
||||||
"uid": "infinity"
|
|
||||||
},
|
|
||||||
"filters": [],
|
|
||||||
"format": "dataframe",
|
|
||||||
"global_query_id": "",
|
|
||||||
"json_options": {
|
|
||||||
"columnar": false,
|
|
||||||
"root_is_not_array": true
|
|
||||||
},
|
|
||||||
"method": "GET",
|
|
||||||
"parser": "backend",
|
|
||||||
"refId": "A",
|
|
||||||
"root_selector": "",
|
|
||||||
"source": "url",
|
|
||||||
"type": "json",
|
|
||||||
"url": "http://api.polymarket-bot.svc.cluster.local:8000/api/summary",
|
|
||||||
"url_options": {
|
|
||||||
"body_type": "",
|
|
||||||
"data": "",
|
|
||||||
"headers": null,
|
|
||||||
"method": "GET",
|
|
||||||
"params": null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"title": "Trades Totales",
|
|
||||||
"type": "stat"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"datasource": {
|
|
||||||
"type": "yesoreyeram-infinity-datasource",
|
|
||||||
"uid": "infinity"
|
|
||||||
},
|
|
||||||
"fieldConfig": {
|
|
||||||
"defaults": {
|
|
||||||
"color": {
|
|
||||||
"mode": "thresholds"
|
|
||||||
},
|
|
||||||
"mappings": [],
|
|
||||||
"thresholds": {
|
|
||||||
"mode": "absolute",
|
|
||||||
"steps": [
|
|
||||||
{
|
|
||||||
"color": "blue",
|
|
||||||
"value": null
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"unit": "percentunit"
|
|
||||||
},
|
|
||||||
"overrides": []
|
|
||||||
},
|
|
||||||
"gridPos": {
|
|
||||||
"h": 8,
|
|
||||||
"w": 6,
|
|
||||||
"x": 12,
|
|
||||||
"y": 28
|
|
||||||
},
|
|
||||||
"id": 24,
|
|
||||||
"options": {
|
|
||||||
"colorMode": "background",
|
|
||||||
"graphMode": "none",
|
|
||||||
"justifyMode": "auto",
|
|
||||||
"orientation": "auto",
|
|
||||||
"reduceOptions": {
|
|
||||||
"calcs": [
|
|
||||||
"lastNotNull"
|
|
||||||
],
|
|
||||||
"fields": "/win_rate/",
|
|
||||||
"values": false
|
|
||||||
},
|
|
||||||
"textMode": "auto"
|
|
||||||
},
|
|
||||||
"pluginVersion": "12.4.2",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"selector": "total_pnl",
|
|
||||||
"text": "total_pnl",
|
|
||||||
"timestampFormat": "",
|
|
||||||
"type": "number"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"selector": "total_trades",
|
|
||||||
"text": "total_trades",
|
|
||||||
"timestampFormat": "",
|
|
||||||
"type": "number"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"selector": "win_rate",
|
|
||||||
"text": "win_rate",
|
|
||||||
"timestampFormat": "",
|
|
||||||
"type": "number"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"selector": "total_deployed",
|
|
||||||
"text": "total_deployed",
|
|
||||||
"timestampFormat": "",
|
|
||||||
"type": "number"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"datasource": {
|
|
||||||
"type": "yesoreyeram-infinity-datasource",
|
|
||||||
"uid": "infinity"
|
|
||||||
},
|
|
||||||
"filters": [],
|
|
||||||
"format": "dataframe",
|
|
||||||
"global_query_id": "",
|
|
||||||
"json_options": {
|
|
||||||
"columnar": false,
|
|
||||||
"root_is_not_array": true
|
|
||||||
},
|
|
||||||
"method": "GET",
|
|
||||||
"parser": "backend",
|
|
||||||
"refId": "A",
|
|
||||||
"root_selector": "",
|
|
||||||
"source": "url",
|
|
||||||
"type": "json",
|
|
||||||
"url": "http://api.polymarket-bot.svc.cluster.local:8000/api/summary",
|
|
||||||
"url_options": {
|
|
||||||
"body_type": "",
|
|
||||||
"data": "",
|
|
||||||
"headers": null,
|
|
||||||
"method": "GET",
|
|
||||||
"params": null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"title": "Win Rate",
|
|
||||||
"type": "stat"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"datasource": {
|
|
||||||
"type": "yesoreyeram-infinity-datasource",
|
|
||||||
"uid": "infinity"
|
|
||||||
},
|
|
||||||
"fieldConfig": {
|
|
||||||
"defaults": {
|
|
||||||
"color": {
|
|
||||||
"mode": "thresholds"
|
|
||||||
},
|
|
||||||
"mappings": [],
|
|
||||||
"thresholds": {
|
|
||||||
"mode": "absolute",
|
|
||||||
"steps": [
|
|
||||||
{
|
|
||||||
"color": "blue",
|
|
||||||
"value": null
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"unit": "currencyUSD"
|
|
||||||
},
|
|
||||||
"overrides": []
|
|
||||||
},
|
|
||||||
"gridPos": {
|
|
||||||
"h": 8,
|
|
||||||
"w": 6,
|
|
||||||
"x": 18,
|
|
||||||
"y": 28
|
|
||||||
},
|
|
||||||
"id": 25,
|
|
||||||
"options": {
|
|
||||||
"colorMode": "background",
|
|
||||||
"graphMode": "none",
|
|
||||||
"justifyMode": "auto",
|
|
||||||
"orientation": "auto",
|
|
||||||
"reduceOptions": {
|
|
||||||
"calcs": [
|
|
||||||
"lastNotNull"
|
|
||||||
],
|
|
||||||
"fields": "/total_deployed/",
|
|
||||||
"values": false
|
|
||||||
},
|
|
||||||
"textMode": "auto"
|
|
||||||
},
|
|
||||||
"pluginVersion": "12.4.2",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"selector": "total_pnl",
|
|
||||||
"text": "total_pnl",
|
|
||||||
"timestampFormat": "",
|
|
||||||
"type": "number"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"selector": "total_trades",
|
|
||||||
"text": "total_trades",
|
|
||||||
"timestampFormat": "",
|
|
||||||
"type": "number"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"selector": "win_rate",
|
|
||||||
"text": "win_rate",
|
|
||||||
"timestampFormat": "",
|
|
||||||
"type": "number"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"selector": "total_deployed",
|
|
||||||
"text": "total_deployed",
|
|
||||||
"timestampFormat": "",
|
|
||||||
"type": "number"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"datasource": {
|
|
||||||
"type": "yesoreyeram-infinity-datasource",
|
|
||||||
"uid": "infinity"
|
|
||||||
},
|
|
||||||
"filters": [],
|
|
||||||
"format": "dataframe",
|
|
||||||
"global_query_id": "",
|
|
||||||
"json_options": {
|
|
||||||
"columnar": false,
|
|
||||||
"root_is_not_array": true
|
|
||||||
},
|
|
||||||
"method": "GET",
|
|
||||||
"parser": "backend",
|
|
||||||
"refId": "A",
|
|
||||||
"root_selector": "",
|
|
||||||
"source": "url",
|
|
||||||
"type": "json",
|
|
||||||
"url": "http://api.polymarket-bot.svc.cluster.local:8000/api/summary",
|
|
||||||
"url_options": {
|
|
||||||
"body_type": "",
|
|
||||||
"data": "",
|
|
||||||
"headers": null,
|
|
||||||
"method": "GET",
|
|
||||||
"params": null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"title": "Capital Deployed (USD)",
|
|
||||||
"type": "stat"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"refresh": "30s",
|
"refresh": "30s",
|
||||||
@@ -1780,6 +1175,6 @@ data:
|
|||||||
"timezone": "browser",
|
"timezone": "browser",
|
||||||
"title": "ChemaVX Homelab Overview",
|
"title": "ChemaVX Homelab Overview",
|
||||||
"uid": "chemavx-homelab-v1",
|
"uid": "chemavx-homelab-v1",
|
||||||
"version": 3,
|
"version": 4,
|
||||||
"weekStart": ""
|
"weekStart": ""
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,6 @@
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
data:
|
data:
|
||||||
datasource.yaml: "apiVersion: 1\ndatasources:\n- name: \"Prometheus\"\n type: prometheus\n\
|
datasource.yaml: "apiVersion: 1\ndatasources:\n- name: \"Prometheus\"\n type: prometheus\n uid: prometheus\n url: http://kube-prometheus-stack-prometheus.monitoring:9090/\n access: proxy\n isDefault: true\n jsonData:\n httpMethod: POST\n timeInterval: 30s"
|
||||||
\ uid: prometheus\n url: http://kube-prometheus-stack-prometheus.monitoring:9090/\n\
|
|
||||||
\ access: proxy\n isDefault: true\n jsonData:\n httpMethod: POST\n timeInterval:\
|
|
||||||
\ 30s\n- name: \"Alertmanager\"\n type: alertmanager\n uid: alertmanager\n \
|
|
||||||
\ url: http://kube-prometheus-stack-alertmanager.monitoring:9093/\n access: proxy\n\
|
|
||||||
\ jsonData:\n handleGrafanaManagedAlerts: false\n implementation: prometheus"
|
|
||||||
kind: ConfigMap
|
kind: ConfigMap
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
@@ -23,4 +18,3 @@ metadata:
|
|||||||
release: kube-prometheus-stack
|
release: kube-prometheus-stack
|
||||||
name: kube-prometheus-stack-grafana-datasource
|
name: kube-prometheus-stack-grafana-datasource
|
||||||
namespace: monitoring
|
namespace: monitoring
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ apiVersion: apps/v1
|
|||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
deployment.kubernetes.io/revision: '2'
|
deployment.kubernetes.io/revision: '16'
|
||||||
meta.helm.sh/release-name: kube-prometheus-stack
|
meta.helm.sh/release-name: kube-prometheus-stack
|
||||||
meta.helm.sh/release-namespace: monitoring
|
meta.helm.sh/release-namespace: monitoring
|
||||||
labels:
|
labels:
|
||||||
@@ -31,9 +31,8 @@ spec:
|
|||||||
annotations:
|
annotations:
|
||||||
checksum/config: b835787868e1c1e3616db22add4a94b4f3a7b8ccedf24d3e48c323334a2b023c
|
checksum/config: b835787868e1c1e3616db22add4a94b4f3a7b8ccedf24d3e48c323334a2b023c
|
||||||
checksum/sc-dashboard-provider-config: e70bf6a851099d385178a76de9757bb0bef8299da6d8443602590e44f05fdf24
|
checksum/sc-dashboard-provider-config: e70bf6a851099d385178a76de9757bb0bef8299da6d8443602590e44f05fdf24
|
||||||
checksum/secret: bed677784356b2af7fb0d87455db21f077853059b594101a4f6532bfbd962a7f
|
|
||||||
kubectl.kubernetes.io/default-container: grafana
|
kubectl.kubernetes.io/default-container: grafana
|
||||||
kubectl.kubernetes.io/restartedAt: '2026-04-09T07:16:07Z'
|
kubectl.kubernetes.io/restartedAt: '2026-07-22T08:00:01Z'
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/instance: kube-prometheus-stack
|
app.kubernetes.io/instance: kube-prometheus-stack
|
||||||
app.kubernetes.io/name: grafana
|
app.kubernetes.io/name: grafana
|
||||||
@@ -59,12 +58,12 @@ spec:
|
|||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
key: admin-user
|
key: admin-user
|
||||||
name: kube-prometheus-stack-grafana
|
name: grafana-admin
|
||||||
- name: REQ_PASSWORD
|
- name: REQ_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
key: admin-password
|
key: admin-password
|
||||||
name: kube-prometheus-stack-grafana
|
name: grafana-admin
|
||||||
- name: REQ_URL
|
- name: REQ_URL
|
||||||
value: http://localhost:3000/api/admin/provisioning/dashboards/reload
|
value: http://localhost:3000/api/admin/provisioning/dashboards/reload
|
||||||
- name: REQ_METHOD
|
- name: REQ_METHOD
|
||||||
@@ -100,12 +99,12 @@ spec:
|
|||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
key: admin-user
|
key: admin-user
|
||||||
name: kube-prometheus-stack-grafana
|
name: grafana-admin
|
||||||
- name: REQ_PASSWORD
|
- name: REQ_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
key: admin-password
|
key: admin-password
|
||||||
name: kube-prometheus-stack-grafana
|
name: grafana-admin
|
||||||
- name: REQ_URL
|
- name: REQ_URL
|
||||||
value: http://localhost:3000/api/admin/provisioning/datasources/reload
|
value: http://localhost:3000/api/admin/provisioning/datasources/reload
|
||||||
- name: REQ_METHOD
|
- name: REQ_METHOD
|
||||||
@@ -136,12 +135,12 @@ spec:
|
|||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
key: admin-user
|
key: admin-user
|
||||||
name: kube-prometheus-stack-grafana
|
name: grafana-admin
|
||||||
- name: GF_SECURITY_ADMIN_PASSWORD
|
- name: GF_SECURITY_ADMIN_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
key: admin-password
|
key: admin-password
|
||||||
name: kube-prometheus-stack-grafana
|
name: grafana-admin
|
||||||
- name: GF_PATHS_DATA
|
- name: GF_PATHS_DATA
|
||||||
value: /var/lib/grafana/
|
value: /var/lib/grafana/
|
||||||
- name: GF_PATHS_LOGS
|
- name: GF_PATHS_LOGS
|
||||||
@@ -155,13 +154,13 @@ spec:
|
|||||||
- name: TELEGRAM_BOT_TOKEN
|
- name: TELEGRAM_BOT_TOKEN
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: grafana-telegram-infisical
|
|
||||||
key: TELEGRAM_BOT_TOKEN
|
key: TELEGRAM_BOT_TOKEN
|
||||||
|
name: grafana-telegram-infisical
|
||||||
- name: TELEGRAM_CHAT_ID
|
- name: TELEGRAM_CHAT_ID
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: grafana-telegram-infisical
|
|
||||||
key: TELEGRAM_CHAT_ID
|
key: TELEGRAM_CHAT_ID
|
||||||
|
name: grafana-telegram-infisical
|
||||||
image: docker.io/grafana/grafana:12.4.2
|
image: docker.io/grafana/grafana:12.4.2
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
@@ -212,6 +211,8 @@ spec:
|
|||||||
- mountPath: /etc/grafana/grafana.ini
|
- mountPath: /etc/grafana/grafana.ini
|
||||||
name: config
|
name: config
|
||||||
subPath: grafana.ini
|
subPath: grafana.ini
|
||||||
|
- mountPath: /etc/grafana/provisioning/alerting
|
||||||
|
name: grafana-alerting
|
||||||
- mountPath: /var/lib/grafana
|
- mountPath: /var/lib/grafana
|
||||||
name: storage
|
name: storage
|
||||||
- mountPath: /var/lib/grafana-search
|
- mountPath: /var/lib/grafana-search
|
||||||
@@ -223,8 +224,6 @@ spec:
|
|||||||
subPath: provider.yaml
|
subPath: provider.yaml
|
||||||
- mountPath: /etc/grafana/provisioning/datasources
|
- mountPath: /etc/grafana/provisioning/datasources
|
||||||
name: sc-datasources-volume
|
name: sc-datasources-volume
|
||||||
- mountPath: /etc/grafana/provisioning/alerting
|
|
||||||
name: grafana-alerting
|
|
||||||
dnsPolicy: ClusterFirst
|
dnsPolicy: ClusterFirst
|
||||||
enableServiceLinks: true
|
enableServiceLinks: true
|
||||||
initContainers:
|
initContainers:
|
||||||
@@ -269,6 +268,10 @@ spec:
|
|||||||
defaultMode: 420
|
defaultMode: 420
|
||||||
name: kube-prometheus-stack-grafana
|
name: kube-prometheus-stack-grafana
|
||||||
name: config
|
name: config
|
||||||
|
- configMap:
|
||||||
|
defaultMode: 420
|
||||||
|
name: grafana-alerting
|
||||||
|
name: grafana-alerting
|
||||||
- name: storage
|
- name: storage
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: kube-prometheus-stack-grafana
|
claimName: kube-prometheus-stack-grafana
|
||||||
@@ -282,8 +285,3 @@ spec:
|
|||||||
name: sc-dashboard-provider
|
name: sc-dashboard-provider
|
||||||
- emptyDir: {}
|
- emptyDir: {}
|
||||||
name: sc-datasources-volume
|
name: sc-datasources-volume
|
||||||
- configMap:
|
|
||||||
defaultMode: 420
|
|
||||||
name: grafana-alerting
|
|
||||||
name: grafana-alerting
|
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,19 @@
|
|||||||
# como acceso de emergencia. Leerla:
|
# como acceso de emergencia. Leerla:
|
||||||
# kubectl get secret grafana-admin -n monitoring \
|
# kubectl get secret grafana-admin -n monitoring \
|
||||||
# -o jsonpath='{.data.admin-password}' | base64 -d; echo
|
# -o jsonpath='{.data.admin-password}' | base64 -d; echo
|
||||||
|
# rev 5 (2026-07-22): fuera la datasource Alertmanager. OJO: NO la apaga
|
||||||
|
# alertmanager.enabled=false — el chart la provisiona igual, apuntando a un
|
||||||
|
# servicio que no existe (error 500 al consultarla). El interruptor real es
|
||||||
|
# grafana.sidecar.datasources.alertmanager.enabled. Y quitarla del fichero de
|
||||||
|
# provisioning NO la borra de grafana.db: hay que provisionar el borrado con
|
||||||
|
# una directiva deleteDatasources de un solo uso (se hizo y se retiró).
|
||||||
|
# rev 6 (2026-07-22): grafana.envValueFrom. Mismo caso que rev 3, encontrado al
|
||||||
|
# auditar el Deployment contra el render: TELEGRAM_BOT_TOKEN y TELEGRAM_CHAT_ID
|
||||||
|
# estaban puestas A MANO y el chart no las generaba. El contact point de
|
||||||
|
# alerting usa ${TELEGRAM_BOT_TOKEN}: reconstruir el release desde cero habría
|
||||||
|
# dejado las alertas de Telegram mudas. Se declaran aquí sin tocar nada vivo.
|
||||||
|
# (CHAT_ID hoy no lo usa nadie —el chatid del contact point va literal— pero se
|
||||||
|
# deja para que el render coincida exactamente con lo desplegado.)
|
||||||
alertmanager:
|
alertmanager:
|
||||||
enabled: false
|
enabled: false
|
||||||
defaultRules:
|
defaultRules:
|
||||||
@@ -34,6 +47,15 @@ defaultRules:
|
|||||||
grafana:
|
grafana:
|
||||||
admin:
|
admin:
|
||||||
existingSecret: grafana-admin
|
existingSecret: grafana-admin
|
||||||
|
envValueFrom:
|
||||||
|
TELEGRAM_BOT_TOKEN:
|
||||||
|
secretKeyRef:
|
||||||
|
key: TELEGRAM_BOT_TOKEN
|
||||||
|
name: grafana-telegram-infisical
|
||||||
|
TELEGRAM_CHAT_ID:
|
||||||
|
secretKeyRef:
|
||||||
|
key: TELEGRAM_CHAT_ID
|
||||||
|
name: grafana-telegram-infisical
|
||||||
extraConfigmapMounts:
|
extraConfigmapMounts:
|
||||||
- configMap: grafana-alerting
|
- configMap: grafana-alerting
|
||||||
mountPath: /etc/grafana/provisioning/alerting
|
mountPath: /etc/grafana/provisioning/alerting
|
||||||
@@ -57,6 +79,10 @@ grafana:
|
|||||||
enabled: true
|
enabled: true
|
||||||
size: 5Gi
|
size: 5Gi
|
||||||
storageClassName: local-path
|
storageClassName: local-path
|
||||||
|
sidecar:
|
||||||
|
datasources:
|
||||||
|
alertmanager:
|
||||||
|
enabled: false
|
||||||
kubeControllerManager:
|
kubeControllerManager:
|
||||||
enabled: false
|
enabled: false
|
||||||
kubeProxy:
|
kubeProxy:
|
||||||
|
|||||||
Reference in New Issue
Block a user