Giuseppe Lavagetto has uploaded a new change for review. https://gerrit.wikimedia.org/r/198721
Change subject: ganglia: autogenerate datasources from the list of clusters ...................................................................... ganglia: autogenerate datasources from the list of clusters Change-Id: Ia32ea48028ff3b082f240cc01c602b0e9a6587f9 --- M hieradata/common.yaml M manifests/role/ganglia.pp A modules/ganglia_new/lib/puppet/parser/functions/ganglia_aggregator_config.rb M modules/ganglia_new/manifests/monitor/aggregator/instance.pp 4 files changed, 157 insertions(+), 112 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/operations/puppet refs/changes/21/198721/1 diff --git a/hieradata/common.yaml b/hieradata/common.yaml index 8863dde..1a39a0e 100644 --- a/hieradata/common.yaml +++ b/hieradata/common.yaml @@ -10,10 +10,14 @@ name: "LVS loadbalancers" ip_oct: "2" sites: - - eqiad - - codfw - - esams - - ulsfo + eqiad: + - lvs1001.wikimedia.org + - lvs1002.wikimedia.org + codfw: install2001.wikimedia.org:10649 + esams: hooft.esams.wikimedia.org:11649 + ulsfo: + - lvs4001.ulsfo.wmnet + - lvs4003.ulsfo.wmnet search: name: "Search" ip_oct: "3" @@ -22,110 +26,151 @@ name: "MySQL" ip_oct: "5" sites: - - eqiad - - codfw + eqiad: + - dbstore1001.eqiad.wmnet + - dbstore1002.eqiad.wmnet + codfw: install2001.wikimedia.org:10649 misc: name: "Miscellaneous" ip_oct: "8" sites: - - eqiad - - codfw + eqiad: + - carbon.wikimedia.org + - ms1004.eqiad.wmnet + codfw: install2001.wikimedia.org:10649 appserver: name: "Application servers" ip_oct: "11" sites: - - eqiad - - codfw + eqiad: + - mw1054.eqiad.wmnet + - mw1055.eqiad.wmnet + codfw: install2001.wikimedia.org:10649 imagescaler: name: "Image scalers" ip_oct: "12" sites: - - eqiad - - codfw + eqiad: + - mw1153.eqiad.wmnet + - mw1154.eqiad.wmnet + codfw: install2001.wikimedia.org:10649 api_appserver: name: "API application servers" ip_oct: "13" sites: - - eqiad - - codfw - pdf: + eqiad: + - mw1114.eqiad.wmnet + - mw1115.eqiad.wmnet + codfw: install2001.wikimedia.org:10649 + pdf: name: "PDF servers" ip_oct: "15" sites: - - eqiad + eqiad: + - ocg1001.eqiad.wmnet cache_text: name: "Text caches" ip_oct: "20" sites: - - eqiad - - esams - - ulsfo + eqiad: + - cp1052.eqiad.wmnet + - cp1053.eqiad.wmnet + esams: hooft.esams.wikimedia.org:11649 + ulsfo: + - cp4008.ulsfo.wmnet + - cp4016.ulsfo.wmnet cache_bits: name: "Bits caches" ip_oct: "21" sites: - - eqiad - - esams - - ulsfo + eqiad: + - cp1056.eqiad.wmnet + - cp1057.eqiad.wmnet + esams: hooft.esams.wikimedia.org:11649 + ulsfo: + - cp4008.ulsfo.wmnet + - cp4016.ulsfo.wmnet cache_upload: name: "Upload caches" ip_oct: "22" sites: - - eqiad - - esams - - ulsfo + eqiad: + - cp1048.eqiad.wmnet + - cp1061.eqiad.wmnet + esams: hooft.esams.wikimedia.org:11649 + ulsfo: + - cp4005.ulsfo.wmnet + - cp4013.ulsfo.wmnet payments: name: "Fundraiser payments" ip_oct: "23" - sites: - - eqiad + sites: [] swift: name: "Swift" ip_oct: "27" sites: - - eqiad - - codfw - - esams + eqiad: + - ms-fe1001.eqiad.wmnet + - ms-fe1002.eqiad.wmnet + codfw: install2001.wikimedia.org:10649 + esams: hooft.esams.wikimedia.org:11649 cache_mobile: name: "Mobile caches" ip_oct: "28" sites: - - eqiad - - esams - - ulsfo + eqiad: + - cp1046.eqiad.wmnet + - cp1047.eqiad.wmnet + esams: hooft.esams.wikimedia.org:11649 + ulsfo: + - cp4011.ulsfo.wmnet + - cp4019.ulsfo.wmnet virt: name: "Virtualization cluster" ip_oct: "29" sites: - - eqiad + eqiad: + - labnet1001.eqiad.wmnet + - virt1000.wikimedia.org jobrunner: name: "Jobrunners" ip_oct: "31" sites: - - eqiad - - codfw + eqiad: + - mw1001.eqiad.wmnet + - mw1002.eqiad.wmnet + codfw: install2001.wikimedia.org:10649 analytics: name: "Analytics cluster" ip_oct: "32" sites: - - eqiad + eqiad: + - analytics1013.eqiad.wmnet + - analytics1014.eqiad.wmnet + - analytics1019.eqiad.wmnet memcached: name: "Memcached" ip_oct: "33" sites: - - eqiad - - codfw + eqiad: + - mc1001.eqiad.wmnet + - mc1002.eqiad.wmnet + codfw: install2001.wikimedia.org:10649 videoscaler: name: "Video scalers" ip_oct: "34" sites: - - eqiad - - codfw + eqiad: + - tmh1001.eqiad.wmnet + - tmh1002.eqiad.wmnet + codfw: install2001.wikimedia.org:10649 fundraising: name: "Fundraising" ip_oct: "35" sites: - - eqiad + eqiad: + - pay-lvs1001.frack.eqiad.wmnet + - pay-lvs1002.frack.eqiad.wmnet ceph: # Not used anymore name: "Ceph" ip_oct: "36" @@ -134,57 +179,77 @@ name: "Parsoid" ip_oct: "37" sites: - - eqiad + eqiad: + - wtp1001.eqiad.wmnet + - wtp1002.eqiad.wmnet cache_parsoid: name: "Parsoid Varnish" ip_oct: "38" sites: - - eqiad - - esams - - ulsfo + eqiad: + - cp1045.eqiad.wmnet + - cp1058.eqiad.wmnet redis: name: "Redis" ip_oct: "39" sites: - - eqiad - - codfw + eqiad: + - rdb1001.eqiad.wmnet + - rdb1002.eqiad.wmnet + codfw: install2001.wikimedia.org:10649 labsnfs: name: "Labs NFS cluster" ip_oct: "40" sites: - - eqiad + eqiad: + - labstore1001.eqiad.wmnet + - labstore1003.eqiad.wmnet cache_misc: name: "Misc Web caching cluster" ip_oct: "41" sites: - - eqiad + eqiad: + - cp1043.eqiad.wmnet + - cp1044.eqiad.wmnet elasticsearch: name: "Elasticsearch cluster" ip_oct: "42" sites: - - eqiad - logstash: + eqiad: + - elastic1001.eqiad.wmnet + - elastic1007.eqiad.wmnet + - elastic1013.eqiad.wmnet + logstash: name: "Logstash cluster" ip_oct: "43" sites: - - eqiad + eqiad: + - logstash1001.eqiad.wmnet + - logstash1003.eqiad.wmnet rcstream: name: "RCStream cluster" ip_oct: "44" sites: - - eqiad + eqiad: + - rcs1001.eqiad.wmnet analytics_kafka: name: "Analytics Kafka cluster" ip_oct: "45" sites: - - eqiad + eqiad: + - analytics1012.eqiad.wmnet + - analytics1018.eqiad.wmnet + - analytics1022.eqiad.wmnet sca: name: "Service Cluster A" ip_oct: "46" sites: - - eqiad + eqiad: + - sca1001.eqiad.wmnet + - sca1002.eqiad.wmnet openldap_corp_mirror: name: "Corp OIT LDAP mirror" ip_oct: "47" sites: - - eqiad + eqiad: + - plutonium.wikimedia.org diff --git a/manifests/role/ganglia.pp b/manifests/role/ganglia.pp index 9c45a8f..52bc665 100644 --- a/manifests/role/ganglia.pp +++ b/manifests/role/ganglia.pp @@ -1,60 +1,7 @@ class role::ganglia::config { # TODO: hiera this $rra_sizes = '"RRA:AVERAGE:0.5:1:360" "RRA:AVERAGE:0.5:24:245" "RRA:AVERAGE:0.5:168:241" "RRA:AVERAGE:0.5:672:241" "RRA:AVERAGE:0.5:5760:371"' - - $data_sources = { - 'Video scalers eqiad' => 'tmh1001.eqiad.wmnet tmh1002.eqiad.wmnet', - 'Video scalers codfw' => 'install2001.wikimedia.org:10673', - 'Image scalers eqiad' => 'mw1153.eqiad.wmnet mw1154.eqiad.wmnet', - 'Image scalers codfw' => 'install2001.wikimedia.org:10661', - 'API application servers eqiad' => 'mw1114.eqiad.wmnet mw1115.eqiad.wmnet', - 'API application servers codfw' => 'install2001.wikimedia.org:10662', - 'Application servers eqaid' => 'mw1054.eqiad.wmnet mw1055.eqiad.wmnet', - 'Application servers codfw' => 'install2001.wikimedia.org:10660', - 'Jobrunners eqiad' => 'mw1001.eqiad.wmnet mw1002.eqiad.wmnet', - 'Jobrunners codfw' => 'install2001.wikimedia.org:10680 mw2001.codfw.wmnet mw2080.codfw.wmnet', - 'MySQL' => 'db1050.eqiad.wmnet', - 'PDF servers eqiad' => 'ocg1001.eqiad.wmnet', - 'Fundraising eqiad' => 'pay-lvs1001.frack.eqiad.wmnet pay-lvs1002.frack.eqiad.wmnet', - 'Virtualization cluster eqiad' => 'labnet1001.eqiad.wmnet virt1000.wikimedia.org', - 'Labs NFS cluster eqiad' => 'labstore1001.eqiad.wmnet labstore1003.eqiad.wmnet', - 'MySQL eqiad' => 'dbstore1001.eqiad.wmnet dbstore1002.eqiad.wmnet', - 'LVS loadbalancers eqiad' => 'lvs1001.wikimedia.org lvs1002.wikimedia.org', - 'LVS loadbalancers codfw' => 'install2001.wikimedia.org:10651 lvs2001.codfw.wmnet lvs2002.codfw.wmnet', - 'Miscellaneous eqiad' => 'carbon.wikimedia.org ms1004.eqiad.wmnet', - 'Miscellaneous codfw' => 'install2001.wikimedia.org:10657', - 'Mobile caches eqiad' => 'cp1046.eqiad.wmnet cp1047.eqiad.wmnet', - 'Mobile caches esams' => 'hooft.esams.wikimedia.org:11677', - 'Bits caches eqiad' => 'cp1056.eqiad.wmnet cp1057.eqiad.wmnet', - 'Upload caches eqiad' => 'cp1048.eqiad.wmnet cp1061.eqiad.wmnet', - 'Swift eqiad' => 'ms-fe1001.eqiad.wmnet ms-fe1002.eqiad.wmnet', - 'Swift esams' => 'hooft.esams.wikimedia.org:11676', - 'Swift codfw' => 'install2001.wikimedia.org:10676', - 'Bits caches esams' => 'hooft.esams.wikimedia.org:11670 cp3019.esams.wmnet cp3020.esams.wmnet', - 'LVS loadbalancers esams' => 'hooft.esams.wikimedia.org:11651 lvs3001.esams.wmnet lvs3002.esams.wmnet', - 'Miscellaneous esams' => 'hooft.esams.wikimedia.org:11657', - 'Analytics cluster eqiad' => 'analytics1013.eqiad.wmnet analytics1014.eqiad.wmnet analytics1019.eqiad.wmnet', - 'Memcached eqiad' => 'mc1001.eqiad.wmnet mc1002.eqiad.wmnet', - 'Text caches esams' => 'hooft.esams.wikimedia.org:11669', - 'Upload caches esams' => 'hooft.esams.wikimedia.org:11671 cp3003.esams.wmnet cp3004.esams.wmnet', - 'Parsoid eqiad' => 'wtp1001.eqiad.wmnet wtp1002.eqiad.wmnet', - 'Parsoid Varnish eqiad' => 'cp1045.eqiad.wmnet cp1058.eqiad.wmnet', - 'Redis eqiad' => 'rdb1001.eqiad.wmnet rdb1002.eqiad.wmnet', - 'Text caches eqiad' => 'cp1052.eqiad.wmnet cp1053.eqiad.wmnet', - 'Misc Web caches eqiad' => 'cp1043.eqiad.wmnet cp1044.eqiad.wmnet', - 'LVS loadbalancers ulsfo' => 'lvs4001.ulsfo.wmnet lvs4003.ulsfo.wmnet', - 'Bits caches ulsfo' => 'cp4001.ulsfo.wmnet cp4003.ulsfo.wmnet', - 'Upload caches ulsfo' => 'cp4005.ulsfo.wmnet cp4013.ulsfo.wmnet', - 'Mobile caches ulsfo' => 'cp4011.ulsfo.wmnet cp4019.ulsfo.wmnet', - 'Text caches ulsfo' => 'cp4008.ulsfo.wmnet cp4016.ulsfo.wmnet', - 'Elasticsearch eqiad' => 'elastic1001.eqiad.wmnet elastic1007.eqiad.wmnet elastic1013.eqiad.wmnet', - 'Logstash eqiad' => 'logstash1001.eqiad.wmnet logstash1003.eqiad.wmnet', - 'RCStream eqiad' => 'rcs1001.eqiad.wmnet', - 'Analytics Kafka cluster eqiad' => 'analytics1012.eqiad.wmnet analytics1018.eqiad.wmnet analytics1022.eqiad.wmnet', - 'Service Cluster A eqiad' => 'sca1001.eqiad.wmnet sca1002.eqiad.wmnet', - 'Corp OIT LDAP mirror eqiad' => 'plutonium.wikimedia.org', - 'Corp OIT LDAP mirror codfw' => 'pollux.wikimedia.org', - } + $data_sources = ganglia_aggregator_config() } # A role that includes all the needed stuff to run a ganglia web frontend diff --git a/modules/ganglia_new/lib/puppet/parser/functions/ganglia_aggregator_config.rb b/modules/ganglia_new/lib/puppet/parser/functions/ganglia_aggregator_config.rb new file mode 100644 index 0000000..ee26a3a --- /dev/null +++ b/modules/ganglia_new/lib/puppet/parser/functions/ganglia_aggregator_config.rb @@ -0,0 +1,33 @@ +# +# ganglia_aggregator_config - generates the aggregator config +# +def calc_url(aggregator, ip_octect) + url, port = aggregator.split(':') + port = port.to_i + ip_octect.to_i + return sprintf("%s:%d", url, port) +end + + +module Puppet::Parser::Functions + newfunction(:ganglia_aggregator_config, :type => :rvalue) do |args| + config = {} + site_config = {} + clusters = function_hiera(['ganglia_clusters']) + clusters.each do |cluster, data| + data['sites'].each do |site, aggregators| + name = sprintf("%s %s", data['name'], site) + unless site_config.include? site + site_config[site] = function_hiera(['ganglia_class'], nil, [site]) + end + if site_config[site] == 'old' + aggregator = aggregators.join(' ') + else + # Compute the port to use + aggregator = calc_url(aggregators, data['ip_oct']) + end + config[name] = aggregator + end + end + return config + end +end diff --git a/modules/ganglia_new/manifests/monitor/aggregator/instance.pp b/modules/ganglia_new/manifests/monitor/aggregator/instance.pp index 83746ea..5e228b2 100644 --- a/modules/ganglia_new/manifests/monitor/aggregator/instance.pp +++ b/modules/ganglia_new/manifests/monitor/aggregator/instance.pp @@ -9,7 +9,7 @@ $cluster = regsubst($title, '^(.*)_[^_]+$', '\1') if has_key($ganglia_new::configuration::clusters[$cluster], 'sites') { - $sites = $ganglia_new::configuration::clusters[$cluster]['sites'] + $sites = keys($ganglia_new::configuration::clusters[$cluster]['sites']) } else { $sites = $ganglia_new::configuration::default_sites } -- To view, visit https://gerrit.wikimedia.org/r/198721 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ia32ea48028ff3b082f240cc01c602b0e9a6587f9 Gerrit-PatchSet: 1 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Giuseppe Lavagetto <glavage...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits