<%
  loggregator_agent_port = nil

  if_p('loggregator_agent.grpc_port') { |agent_port|
    loggregator_agent_port = agent_port
  }.else_if_link("loggregator") { |loggregator|
    loggregator_agent_port = loggregator.p("metron_endpoint.grpc_port")
  }

  certs_dir = "/var/vcap/jobs/prom_scraper_windows/config/certs"

  monit = {
    "processes" => [
      {
        "name" => "prom_scraper",
        "executable" => "/var/vcap/packages/prom_scraper_windows/prom_scraper.exe",
        "args" => [],
        "env" => {
          "LOGGREGATOR_AGENT_ADDR" => "localhost:#{loggregator_agent_port}",
          "CA_CERT_PATH" => "#{certs_dir}/loggregator_ca.crt",
          "CLIENT_CERT_PATH" => "#{certs_dir}/loggregator_agent.crt",
          "CLIENT_KEY_PATH" => "#{certs_dir}/loggregator_agent.key",

          "CONFIG_GLOBS" => p('config_globs').join(','),
          "SCRAPE_INTERVAL" => p('scrape_interval'),
          "DEFAULT_SOURCE_ID" => "infra_#{spec.job.name}",
          "SKIP_SSL_VALIDATION" => "#{p('skip_ssl_validation')}",

          "METRICS_PORT" => "#{p("metrics.port")}",
          "METRICS_CA_FILE_PATH" => "#{certs_dir}/metrics_ca.crt",
          "METRICS_CERT_FILE_PATH" => "#{certs_dir}/metrics.crt",
          "METRICS_KEY_FILE_PATH" => "#{certs_dir}/metrics.key",
        }
      }
    ]
  }

  if_p('scrape.tls.ca_cert') {
      monit["processes"][0]["env"]["SCRAPE_CA_CERT_PATH"] = "#{certs_dir}/scrape_ca.crt"
      monit["processes"][0]["env"]["SCRAPE_CERT_PATH"] = "#{certs_dir}/scrape.crt"
      monit["processes"][0]["env"]["SCRAPE_KEY_PATH"] = "#{certs_dir}/scrape.key"
  }
%>

<%= JSON.pretty_generate(monit) %>
