# Copyright 2021 Whitestack, LLC # ************************************************************* # This file is part of OSM Monitoring module # All Rights Reserved to Whitestack, LLC # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # http://www.apache.org/licenses/LICENSE-2.0 # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # For those usages not covered by the Apache License, Version 2.0 please # contact: fbravo@whitestack.com or glavado@whitestack.com ## apiVersion: v1 kind: Service metadata: name: prometheus spec: ports: - nodePort: 9091 port: 9090 protocol: TCP targetPort: 9090 selector: app: prometheus type: NodePort --- apiVersion: v1 data: prometheus.yml: | # Copyright 2018 The Prometheus Authors # Copyright 2018 Whitestack # Copyright 2018 Telefonica Investigacion y Desarrollo, S.A.U. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # my global config 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 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: # - "first_rules.yml" # - "second_rules.yml" # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs: - job_name: 'mon_exporter' static_configs: - targets: ['mon:8000'] # Add here other external targets, e.g. a pushgateway # - job_name: 'pushgateway' # static_configs: # - targets: ['prometheus-pushgateway:9091'] kind: ConfigMap metadata: name: prom --- apiVersion: apps/v1 kind: StatefulSet metadata: name: prometheus labels: app: prometheus spec: replicas: 1 serviceName: prometheus selector: matchLabels: app: prometheus template: metadata: labels: app: prometheus spec: initContainers: - name: prometheus-init-config image: busybox command: ["/bin/sh", "-c"] args: ['if [ ! -f "/etc/prometheus/prometheus.yml" ]; then cp /config/prometheus.yml /etc/prometheus; fi'] volumeMounts: - name: prom-config mountPath: /etc/prometheus - name: prom-config-base mountPath: /config containers: - name: prometheus image: prom/prometheus:v2.28.1 args: - --config.file=/etc/prometheus/prometheus.yml - --web.enable-lifecycle ports: - containerPort: 9090 protocol: TCP volumeMounts: - name: prom-config mountPath: /etc/prometheus - name: prom-db mountPath: /prometheus - name: prometheus-config-sidecar image: opensourcemano/prometheus:12 env: - name: MONGODB_URL value: mongodb://mongodb-k8s:27017/?replicaSet=rs0 - name: PROMETHEUS_CONFIG_FILE value: /etc/prometheus/prometheus.yml - name: PROMETHEUS_BASE_CONFIG_FILE value: /etc/prometheus_base/prometheus.yml - name: TARGET_DATABASE value: osm - name: PROMETHEUS_URL value: http://prometheus:9090 volumeMounts: - name: prom-config mountPath: /etc/prometheus - name: prom-config-base mountPath: /etc/prometheus_base volumes: - name: prom-db emptyDir: {} - name: prom-config emptyDir: {} - name: prom-config-base configMap: name: prom