Files
taiji-AI-PAD/k8s/prod/monitoring.yaml
T
2026-05-05 14:13:59 +08:00

158 lines
3.5 KiB
YAML

# Prometheus Monitoring Deployment
apiVersion: v1
kind: ConfigMap
metadata:
name: prometheus-config
namespace: taiji-ai
data:
prometheus.yml: |
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'mcp-server'
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- taiji-ai
relabel_configs:
- source_labels: [__meta_kubernetes_pod_label_app]
regex: mcp-server
action: keep
- source_labels: [__meta_kubernetes_pod_ip]
target_label: __address__
replacement: ${1}:8000
- job_name: 'data-ingestion'
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- taiji-ai
relabel_configs:
- source_labels: [__meta_kubernetes_pod_label_app]
regex: data-ingestion
action: keep
- source_labels: [__meta_kubernetes_pod_ip]
target_label: __address__
replacement: ${1}:8000
- job_name: 'litellm-gateway'
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- taiji-ai
relabel_configs:
- source_labels: [__meta_kubernetes_pod_label_app]
regex: litellm-gateway
action: keep
- source_labels: [__meta_kubernetes_pod_ip]
target_label: __address__
replacement: ${1}:4000
- job_name: 'nats'
static_configs:
- targets: ['nats:8222']
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: prometheus
namespace: taiji-ai
labels:
app: prometheus
spec:
replicas: 1
selector:
matchLabels:
app: prometheus
template:
metadata:
labels:
app: prometheus
spec:
serviceAccountName: prometheus
containers:
- name: prometheus
image: prom/prometheus:latest
args:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.enable-lifecycle'
ports:
- containerPort: 9090
resources:
requests:
memory: "256Mi"
cpu: "100m"
limits:
memory: "1Gi"
cpu: "500m"
volumeMounts:
- name: prometheus-config
mountPath: /etc/prometheus
- name: prometheus-data
mountPath: /prometheus
volumes:
- name: prometheus-config
configMap:
name: prometheus-config
- name: prometheus-data
emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
name: prometheus
namespace: taiji-ai
spec:
selector:
app: prometheus
ports:
- port: 9090
targetPort: 9090
---
# Prometheus Service Account and RBAC
apiVersion: v1
kind: ServiceAccount
metadata:
name: prometheus
namespace: taiji-ai
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: prometheus
rules:
- apiGroups: [""]
resources:
- nodes
- services
- endpoints
- pods
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources:
- configmaps
verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: prometheus
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: prometheus
subjects:
- kind: ServiceAccount
name: prometheus
namespace: taiji-ai