---
# 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: '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:
  k8s: true
  nodeExporter: true
  xos: true
  onos: true
  aaa: true
  voltha: true
  voltha2: false
  omec: false
  aether: false
  bng: false
  sdran: false
