093ac5b5ba
Add comprehensive observability configuration to Helm chart: **Helm Values:** - Add observability configuration section for metrics, tracing, and logging - Add serviceMonitor configuration (disabled by default) - Add prometheusRule configuration (disabled by default) **Templates:** - Update deployment to include observability environment variables - Update deployment to expose metrics port (9090) - Update service to expose metrics port - Add ServiceMonitor template for Prometheus Operator - Add PrometheusRule template with critical and warning alerts **Dashboards:** - Add comprehensive Grafana dashboard JSON with 6 panels: - Request Rate (by method and endpoint) - Error Rate (5xx errors percentage) - Request Latency (P50/P95 by endpoint) - Top MCP Tools (by invocation volume) - Nextcloud API Latency (by app) - Vector Sync Queue Size - Add dashboard README with import instructions **Alert Rules:** - Critical: Server down, high error rate (>5%), high latency (>1s), dependency down - Warning: Token validation errors (>1%), vector sync queue high (>100), Qdrant slow (>500ms) All features are opt-in via values.yaml configuration. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
33 lines
1.1 KiB
YAML
33 lines
1.1 KiB
YAML
{{- if and .Values.observability.metrics.enabled .Values.serviceMonitor.enabled }}
|
|
apiVersion: monitoring.coreos.com/v1
|
|
kind: ServiceMonitor
|
|
metadata:
|
|
name: {{ include "nextcloud-mcp-server.fullname" . }}
|
|
namespace: {{ .Release.Namespace }}
|
|
labels:
|
|
{{- include "nextcloud-mcp-server.labels" . | nindent 4 }}
|
|
{{- with .Values.serviceMonitor.labels }}
|
|
{{- toYaml . | nindent 4 }}
|
|
{{- end }}
|
|
spec:
|
|
selector:
|
|
matchLabels:
|
|
{{- include "nextcloud-mcp-server.selectorLabels" . | nindent 6 }}
|
|
endpoints:
|
|
- port: metrics
|
|
path: {{ .Values.observability.metrics.path }}
|
|
interval: {{ .Values.serviceMonitor.interval }}
|
|
scrapeTimeout: {{ .Values.serviceMonitor.scrapeTimeout }}
|
|
scheme: http
|
|
relabelings:
|
|
# Add namespace label
|
|
- sourceLabels: [__meta_kubernetes_namespace]
|
|
targetLabel: namespace
|
|
# Add pod label
|
|
- sourceLabels: [__meta_kubernetes_pod_name]
|
|
targetLabel: pod
|
|
# Add service label
|
|
- sourceLabels: [__meta_kubernetes_service_name]
|
|
targetLabel: service
|
|
{{- end }}
|