---
name: loggr-metric-scraper

consumes:
- name: loggregator
  type: loggregator
  optional: false
- name: leader-election-agent
  type: leader-election-agent

templates:
  bpm.yml.erb: config/bpm.yml
  loggregator_agent.crt.erb: config/certs/loggregator_agent.crt
  loggregator_agent.key.erb: config/certs/loggregator_agent.key
  loggregator_ca.crt.erb: config/certs/loggregator_ca.crt
  system_metrics.crt.erb: config/certs/system_metrics.crt
  system_metrics.key.erb: config/certs/system_metrics.key
  system_metrics_ca.crt.erb: config/certs/system_metrics_ca.crt
  prom_scraper_config.yml.erb: config/prom_scraper_config.yml
  metrics_ca.crt.erb: config/certs/metrics_ca.crt
  metrics.crt.erb: config/certs/metrics.crt
  metrics.key.erb: config/certs/metrics.key
  leadership_election_ca.crt.erb: config/certs/leadership_election_ca.crt
  leadership_election.crt.erb: config/certs/leadership_election.crt
  leadership_election.key.erb: config/certs/leadership_election.key

packages:
- metric-scraper

properties:
  scrape_interval:
    description: "The interval to scrape the metrics URL (golang duration)"
    default: 1m
  scrape_port:
    description: "The port where the scraping endpoints are hosted"
    default: 9100

  system_metrics.tls.common_name:
    description: "Common name for system metrics agent CA"
    default: "system-metrics"
  system_metrics.tls.ca_cert:
    description: |
      TLS loggregator root CA certificate. It is required for key/cert
      verification.
  system_metrics.tls.cert:
    description: "TLS certificate for system metrics agent signed by the loggregator CA"
  system_metrics.tls.key:
    description: "TLS private key for system metrics agent signed by the loggregator CA"

  metrics.port:
    description: "Port the agent uses to serve metrics and debug information"
    default: 14825
  metrics.ca_cert:
    description: "TLS CA cert to verify requests to metrics endpoint."
  metrics.cert:
    description: "TLS certificate for metrics server signed by the metrics CA"
  metrics.key:
    description: "TLS private key for metrics server signed by the metrics CA"
  metrics.server_name:
    description: "The server name used in the scrape configuration for the metrics endpoint"

  leadership_election.ca_cert:
    description: "TLS CA cert to verify requests to leadership election endpoint."
  leadership_election.cert:
    description: "TLS certificate for leadership election client signed by the leadership election CA"
  leadership_election.key:
    description: "TLS private key for leadership election client signed by the leadership election CA"