ingress: enabled: true hosts: - grafana.127.0.0.1.nip.io resources: requests: cpu: 100m memory: 128Mi limits: cpu: 200m memory: 256Mi adminUser: admin adminPassword: "forte" datasources: datasources.yaml: apiVersion: 1 datasources: - name: Prometheus type: prometheus url: http://prometheus-server.monitoring.svc.cluster.local access: proxy isDefault: true - name: Loki type: loki uid: loki url: http://loki-gateway.monitoring.svc.cluster.local access: proxy dashboardProviders: dashboardproviders.yaml: apiVersion: 1 providers: - name: 'default' orgId: 1 folder: '' type: file disableDeletion: false editable: true options: path: /var/lib/grafana/dashboards/default dashboards: default: kubernetes: gnetId: 15758 revision: 1 datasource: Prometheus dot-ai-logs: json: | { "annotations": { "list": [] }, "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, "links": [], "panels": [ { "title": "Log Volume", "type": "timeseries", "gridPos": { "h": 6, "w": 24, "x": 0, "y": 0 }, "datasource": { "type": "loki", "uid": "loki" }, "targets": [ { "expr": "sum(count_over_time({namespace=\"dot-ai\"} [1m])) by (pod)", "legendFormat": "{{pod}}", "refId": "A" } ], "fieldConfig": { "defaults": { "custom": { "drawStyle": "bars", "fillOpacity": 50, "stacking": { "mode": "normal" } } }, "overrides": [] } }, { "title": "Logs by Pod", "type": "logs", "gridPos": { "h": 16, "w": 24, "x": 0, "y": 6 }, "datasource": { "type": "loki", "uid": "loki" }, "targets": [ { "expr": "{namespace=\"dot-ai\", pod=~\"$pod\"} | json log=\"log\", message=\"message\", msg=\"msg\", level=\"level\", stream=\"stream\" | label_format level=`{{if .level}}{{.level}}{{else if eq .stream \"stderr\"}}error{{else}}info{{end}}` | line_format `{{.pod}} |{{or .message .msg .log}}`", "refId": "A" } ], "options": { "showTime": true, "showLabels": false, "showCommonLabels": false, "wrapLogMessage": true, "prettifyLogMessage": false, "enableLogDetails": true, "sortOrder": "Descending", "dedupStrategy": "none", "displayedFields": ["pod", "level"] } }, { "title": "Errors & Warnings", "type": "logs", "gridPos": { "h": 10, "w": 24, "x": 0, "y": 22 }, "datasource": { "type": "loki", "uid": "loki" }, "targets": [ { "expr": "{namespace=\"dot-ai\", pod=~\"$pod\"} | json log=\"log\", message=\"message\", msg=\"msg\", level=\"level\", stream=\"stream\" | label_format level=`{{if .level}}{{.level}}{{else if eq .stream \"stderr\"}}error{{else}}info{{end}}` | level=~`error|warn|warning|fatal|panic` | line_format `{{.pod}} |{{or .message .msg .log}}`", "refId": "A" } ], "options": { "showTime": true, "showLabels": false, "showCommonLabels": false, "wrapLogMessage": true, "prettifyLogMessage": false, "enableLogDetails": true, "sortOrder": "Descending", "dedupStrategy": "none", "displayedFields": ["pod", "level"] } } ], "schemaVersion": 39, "tags": ["dot-ai", "logs", "loki"], "templating": { "list": [ { "name": "pod", "type": "query", "datasource": { "type": "loki", "uid": "loki" }, "query": { "label": "pod", "stream": "{namespace=\"dot-ai\"}", "type": 1 }, "includeAll": true, "multi": true, "current": { "selected": true, "text": "All", "value": "$__all" } } ] }, "time": { "from": "now-1h", "to": "now" }, "title": "dot-ai Logs", "uid": "dot-ai-logs" }