{
  "analysis-graph-implementor":
    "org.opensearch.performanceanalyzer.rca.store.AnalysisGraphTest",
  // it can be file:// or s3://
  "rca-store-location": "s3://sifi-store/rcas/",

  //it can be file:// or s3://
  "threshold-store-location": "s3://sifi-store/thresholds/",

  "new-rca-check-minutes": 60,

  "new-threshold-check-minutes": 30,

  // The size of the task queue for all networking operations.
  // Small size queues may result in dropping of flow units, while large size queues can lead to a
  // bigger backlog of tasks resulting in delays in sending and receiving.
  "network-queue-length": 200,

  // The size of the per-vertex buffer for flow units received from remote nodes.
  // Small buffer sizes may result in dropping of flow units, while large buffer size can lead to
  // high memory consumptions depending on how the analysis graph is configured.
  "max-flow-units-per-vertex-buffer": 200,

  "tags": {
    "locus": "cluster_manager-node",
    "disk": "ssd",
    "region": "use1",
    "instance-type": "i3.8xl",
    "domain": "rca-test-cluster"
  },

  "remote-peers": ["ip1", "ip2", "ip3"],

  // Tells the runtime where the RCAs will be stored.
  "datastore": {
    // accepted types are sqlite, in-memory.
    "type": "sqlite",
    "location-dir": "/tmp",
    "filename": "rca.sqlite",
    "storage-file-retention-count": 5,
    // How often the sqlite file be repeated in seconds. This file contains RCAs and therefore rotating it too frequently
    // might not be as fruitful as there might not be any data.
    "rotation-period-seconds": 21600
  },

  // Add config settings for different RCAs
  "rca-config-settings": {
    // old gen rca
    "high-heap-usage-old-gen-rca": {
      "top-k" : 3
    },
    "high-old-gen-occupancy-config": {
      "eval-interval-in-s": 5,
      "heap-utilization-threshold": 60
    },
    "HeapSizeIncreasePolicy": {
      "unhealthy-node-percentage": 10
    },
    //young gen rca
    "high-heap-usage-young-gen-rca": {
      "promotion-rate-mb-per-second" : 500,
      "young-gen-gc-time-ms-per-second" : 400
    },
    "queue-rejection-rca": {
      "rejection-time-period-in-seconds" : 5
    },
    //hot shard rca
    "hot-shard-rca": {
      "cpu-utilization" : 0.015,
      "top-k-consumers" : 50
    },
    "field-data-cache-rca-config": {
      "field-data-cache-size-threshold" : 0.8,
      "field-data-collector-time-period-in-sec" : 5
    },
    "shard-request-cache-rca-config": {
      "shard-request-cache-threshold" : 0.9,
      "shard-request-collector-time-period-in-sec" : 5
    },
    "heap-size-increase-policy": {
      "unhealthy-node-percentage": 10,
      "day-breach-threshold": 1,
      "week-breach-threshold": 1,
      "minimum-total-memory-in-gigabytes": -1
    }
  },

  "muted-rcas": [],
  "muted-deciders": [],
  "muted-actions": [],
  "decider-config-settings": {
    "jvm-gen-tuning-policy-config": {
      "enabled": true,
      "allow-young-gen-downsize": true,
      "day-breach-threshold": 1,
      "week-breach-threshold": 1,
      "day-monitor-window-size-minutes": 30,
      "week-monitor-window-size-minutes": 30,
      "day-monitor-bucket-size-minutes": 1,
      "week-monitor-bucket-size-minutes": 1
    }
  }
}