- configmapReload:
- prometheus:
- enabled: true
- prometheus-node-exporter:
- enabled: false
- kube-state-metrics:
- enabled: false
- server:
- extraFlags:
- - web.enable-lifecycle
- statefulSet:
- enabled: true
- configPath: /etc/prometheus/prometheus.yml
- fullnameOverride: "prometheus"
- service:
- servicePort: 9090
- # type: NodePort
- # nodePort: 9091
- ingress:
- enabled: true
- ingressClassName: nginx
- # hosts:
- # - prometheus.<IP_ADDRESS>.nip.io
- sidecarContainers:
- prometheus-config-sidecar:
- securityContext:
- # readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- # runAsNonRoot: true
- image: opensourcemano/prometheus:testing-daily
- imagePullPolicy: IfNotPresent
- command: ["/bin/sh", "-c"]
- args: ["sleep 50; python -u ./app.py"]
- volumeMounts:
- - name: prom-config
- mountPath: /etc/prometheus
- - name: prom-config-base
- mountPath: /etc/prometheus_base
- resources:
- limits:
- memory: 1024Mi
- requests:
- memory: 128Mi
- envFrom:
- - configMapRef:
- name: osm-prometheus-sidecar-configmap
- extraInitContainers:
- - name: prometheus-init-config
- image: busybox
- command: ["/bin/sh", "-c"]
- #args: [' sleep 100000 ']
- args: ['if [ ! -f "/etc/prometheus/prometheus.yml" ]; then cp /config/prometheus.yml /etc/prometheus; fi; cp /config/osm_metric_rules.yml /config/osm_alert_rules.yml /etc/prometheus']
- volumeMounts:
- - name: prom-config
- mountPath: /etc/prometheus
- - name: prom-config-base
- mountPath: /config
- extraVolumeMounts:
- - name: prom-config
- mountPath: /etc/prometheus
- extraVolumes:
- - name: prom-config
- emptyDir: {}
- - name: prom-config-base
- projected:
- sources:
- - configMap:
- name: osm-prom-configmap
- items:
- - key: prometheus.yml
- path: prometheus.yml
- - configMap:
- name: osm-prometheus-recordingrules-configmap
- items:
- - key: osm_metric_rules.yml
- path: osm_metric_rules.yml
- - configMap:
- name: osm-prometheus-alertingrules-configmap
- items:
- - key: osm_alert_rules.yml
- path: osm_alert_rules.yml
- extraManifests:
- - |
- apiVersion: v1
- kind: ConfigMap
- metadata:
- name: osm-prometheus-alertingrules-configmap
- data:
- osm_alert_rules.yml: |
- groups:
- - name: osm_alert_rules
- rules:
- - alert: vdu_down
- expr: vm_status_extended != 1
- for: 3m
- annotations:
- summary: "VDU {{ "{{" }} $labels.vm_id }} in VIM {{ "{{" }} $labels.vim_id }} is down"
- description: "VDU {{ "{{" }} $labels.vm_id }} in VIM {{ "{{" }} $labels.vim_id }} has been down for more than 3 minutes. NS instance id is {{ "{{" }} $labels.ns_id }}"
- - |
- apiVersion: v1
- kind: ConfigMap
- metadata:
- name: osm-prometheus-recordingrules-configmap
- data:
- osm_metric_rules.yml: |
- groups:
- - name: osm_metric_rules
- rules:
- - record: vm_status_extended
- expr: (last_over_time(vm_status[1m]) * on (vm_id, vim_id) group_left(ns_id, vnf_id, vdu_id, project_id, job, vdu_name, vnf_member_index) last_over_time(ns_topology[1m])) or (last_over_time(ns_topology[1m]) * -1)
- labels:
- job: osm_prometheus
- - record: vnf_status
- expr: (0 * (count (vm_status_extended==0) by (ns_id, vnf_id)>=0)) or (min by (ns_id, vnf_id) (vm_status_extended))
- labels:
- job: osm_prometheus
- - record: ns_status
- expr: (0 * (count (vm_status_extended==0) by (ns_id)>=0)) or (min by (ns_id) (vm_status_extended))
- labels:
- job: osm_prometheus
- - |
- apiVersion: v1
- kind: ConfigMap
- metadata:
- name: osm-prometheus-sidecar-configmap
- data:
- MONGODB_URL: "mongodb://mongodb-k8s:27017/?replicaSet=rs0"
- PROMETHEUS_CONFIG_FILE: "/etc/prometheus/prometheus.yml"
- PROMETHEUS_BASE_CONFIG_FILE: "/etc/prometheus_base/prometheus.yml"
- TARGET_DATABASE: "osm"
- PROMETHEUS_URL: "http://prometheus:9090"
- - |
- apiVersion: v1
- kind: ConfigMap
- metadata:
- name: osm-prom-configmap
- data:
- prometheus.yml: |
- global:
- scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
- evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
- # scrape_timeout is set to the global default (10s).
- # Alertmanager configuration
- alerting:
- alertmanagers:
- - static_configs:
- - targets:
- - alertmanager:9093
- rule_files:
- - "osm_metric_rules.yml"
- - "osm_alert_rules.yml"
- scrape_configs:
- - job_name: 'mon_exporter'
- static_configs:
- - targets: ['mon:8000']
- - job_name: pushgateway
- honor_labels: true
- scrape_interval: 30s
- static_configs:
- - targets:
- - pushgateway-prometheus-pushgateway:9091
- - job_name: prometheus
- static_configs:
- - targets:
- - localhost:9090
- - job_name: node
- static_configs:
- - targets: ['prometheus-node-exporter:9100']
- alertmanager:
- enabled: true
- fullnameOverride: "alertmanager"
- extraArgs:
- log.level: debug
- # service:
- # type: NodePort
- # nodePort: 9093
- # port: 9093
- # ingress:
- # enabled: True
- # className: nginx
- # hosts:
- # - host: localhost
- # paths:
- # - path: /
- # pathType: ImplementationSpecific
- # tls: []
- config:
- receivers:
- - name: default-receiver
- - name: vdu-webhook
- webhook_configs:
- - url: http://webhook-translator:9998/vdu_down
- - name: scaleout-webhook
- webhook_configs:
- - url: http://webhook-translator:9998/scaleout_vdu
- - name: scalein-webhook
- webhook_configs:
- - url: http://webhook-translator:9998/scalein_vdu
- - name: alarm-webhook
- webhook_configs:
- - url: http://webhook-translator:9998/vdu_alarm
- route:
- group_wait: 10s
- group_interval: 2m
- receiver: default-receiver
- routes:
- - receiver: vdu-webhook
- repeat_interval: 15m
- matchers:
- - alertname = "vdu_down"
- - receiver: 'scaleout-webhook'
- repeat_interval: 5m
- matchers:
- - alertname =~ "^scaleout_.*"
- - receiver: 'scalein-webhook'
- repeat_interval: 5m
- matchers:
- - alertname =~ "^scalein_.*"
- - receiver: 'alarm-webhook'
- repeat_interval: 5m
- matchers:
- - alertname =~ "^vdu_alarm_.*"
- prometheus-pushgateway:
- fullnameOverride: "pushgateway-prometheus-pushgateway"
-