Haroon Rafique
Manager
Development and Operations
Student Information Systems, ITS
“If you want everything to be familiar, you will never learn anything new, because it can’t be significantly different from what you already know.”
— Rich Hickey
pp_role and what goes into it?
Hiera data:
roles
├── monitoring_scraper.yaml
└── webserver.yaml
Hiera lookup determines config based on pp_role
Hiera configuration
Exported resources publish state to OpenVoxDB
@@file { "/etc/vmagent/targets.d/${facts['networking']['fqdn']}_${name}.yaml":
ensure => file,
content => @("EOT"),
# Managed by Puppet
- targets:
- ${facts['networking']['fqdn']}:9090/${name}/metrics
labels:
job: ${name}
instance: ${facts['networking']['fqdn']}
exporter: ${name}
| EOT
tag => 'vmagent_target',
}Caddy acts as a sidecar reverse proxy and mTLS server
Import exporter configurations
Common profile applies to all nodes
Baseline metrics applied to every node
Role-specific exporters are added based on workload
Demo
latest in productionQuestions?