# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# 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:
  scrape_interval: 10s
  evaluation_interval: 10s

scrape_configs:
  - job_name: 'nats-prometheus-exporter'
    scrape_interval: 2s
    static_configs:
      - targets: ['nats-prometheus-exporter:7777']  # on the "monitoring" network

  - job_name: 'etcd-server'
    scrape_interval: 2s
    static_configs:
      - targets: ['etcd-server:2379']  # etcd-server is on the "monitoring" network

  - job_name: 'dcgm-exporter'
    scrape_interval: 5s
    static_configs:
      - targets: ['dcgm-exporter:9401']  # on the "monitoring" network

  # This is a demo service that needs to be launched manually. See components/metrics/README.md
  # Note that you may need to disable the firewall on your host. On Ubuntu: sudo ufw allow 8080/tcp
  # You can also force the port, if the default is different: python -m dynamo.frontend --http-port 8080
  - job_name: 'dynamo-frontend'
    scrape_interval: 10s
    static_configs:
      - targets: ['host.docker.internal:8080']  # on the "monitoring" network

  # Launch via: DYN_SYSTEM_ENABLED=true DYN_SYSTEM_PORT=8081 dynamo.<backend> ...
  # If you want to update the scrape_interval, you may want to also update component.rs's MAX_DELAY
  - job_name: 'dynamo-backend'
    scrape_interval: 6s
    static_configs:
      - targets: ['host.docker.internal:8081']

  # DEPRECATED: This metrics aggregation service is being deprecated in favor of MetricsRegistry
  # The new system uses the 'dynamo-backend' job above instead of this separate service
  # This is another demo aggregator that needs to be launched manually. See components/metrics/README.md
  # Note that you may need to disable the firewall on your host. On Ubuntu: sudo ufw allow 9091/tcp
  - job_name: 'metrics-aggregation-service'
    scrape_interval: 2s
    static_configs:
      # - targets: ['localhost:9091']  # metrics aggregation service on host
      - targets: ['host.docker.internal:9091']  # metrics aggregation service on host

  # KVBM leader related metrics
  - job_name: 'kvbm-leader-metrics'
    scrape_interval: 2s
    static_configs:
      - targets: ['host.docker.internal:6881']

  # KVBM worker related metrics
  - job_name: 'kvbm-worker-metrics'
    scrape_interval: 2s
    static_configs:
      - targets: ['host.docker.internal:6880']

  # Uncomment to see its own Prometheus metrics
  # - job_name: 'prometheus'
  #   scrape_interval: 5s
  #   static_configs:
  #     - targets: ['prometheus:9090']  # on the "monitoring" network
