---
# Copyright 2018-present Open Networking Foundation
#
# 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.

global:
  registry: ''

images:
  kpi_exporter:
    repository: 'opencord/kafka-topic-exporter'
    tag: '1.2.6'
    pullPolicy: 'Always'

kpi_exporter:
  enabled: true
  fullnameOverride: ''
  nameOverride: ''
  nem_kpi_exporter_nodePort: 31080
  nem_kpi_exporter_replicas: 2
  kpi_broker: cord-kafka:9092
  topics:
    - voltha.kpis
    - onos.aaa.stats.kpis
    - onos.kpis
    - bng.stats

prometheus:
  alertmanager:
    persistentVolume:
      enabled: false
  server:
    persistentVolume:
      enabled: false
    service:
      type: NodePort
      nodePort: 31301
    # The labels to add to any time series or alerts when communicating with
    # external systems (federation, remote storage, Alertmanager).
    #global:
    #  external_labels:
    #    datacenter: onf-menlo

  extraScrapeConfigs: |
    - job_name: 'etcd-metrics'
      metrics_path: /metrics
      scrape_interval: 15s
      static_configs:
        - targets:
            - etcd-cluster-client:2379
    - job_name: 'xos-core'
      metrics_path: /metrics
      scrape_interval: 15s
      static_configs:
        - targets:
            - xos-core-prometheus:8000
    - job_name: 'voltha-kpi'
      metrics_path: /metrics
      scrape_interval: 15s
      static_configs:
        - targets:
            - nem-monitoring-nem-kpi-exporter:8080
    - job_name: 'node-exporter'
      metrics_path: /metrics
      scrape_interval: 15s
      static_configs:
        - targets:
          - nem-monitoring-prometheus-node-exporter:9100

grafana:
  adminUser: admin
  adminPassword: strongpassword
  service:
    type: NodePort
    nodePort: 31300
  sidecar:
    dashboards:
      enabled: true
      label: grafana_dashboard
  datasources:
    datasources.yaml:
      apiVersion: 1
      datasources:
        - name: Prometheus
          type: prometheus
          url: http://nem-monitoring-prometheus-server
          access: proxy
          isDefault: true

# Configure Grafana dashboard to import
dashboards:
  etcd: true
  k8s: true
  nodeExporter: true
  xos: true
  onos: true
  aaa: true
  voltha: true
  voltha2: false
  omec: false
  aether: false
  bng: false
  sdran: false
