Support for Contrail-specific Ceilometer meters

Change-Id: Ia3919fc7526c4b1ab9e3a20347c1fc30b8ba02eb
This commit is contained in:
Oleksandr Martsyniuk 2015-12-22 19:30:52 +02:00 committed by Illia Polliul
parent 11a1f6ed4c
commit baa9ad17df
3 changed files with 155 additions and 35 deletions

View File

@ -95,6 +95,25 @@ class contrail::controller {
# Disable neutron agents
contrail::pcs_delete_resource { $contrail::disabled_services: }
# Contrail-specific ceilometer settings
$ceilometer_enabled = $contrail::ceilometer_hash['enabled']
if ($ceilometer_enabled) {
package { 'ceilometer-plugin-contrail': } ->
file {'/etc/ceilometer/pipeline.yaml':
ensure => file,
content => template('contrail/pipeline.yaml.erb'),
} ~>
service {'ceilometer-agent-central':
ensure => runnning,
name => 'p_ceilometer-agent-central',
enable => true,
hasstatus => true,
hasrestart => true,
provider => 'pacemaker',
}
}
service { 'neutron-server':
ensure => running,
enable => true,
@ -106,4 +125,4 @@ class contrail::controller {
],
}
}
}

View File

@ -20,67 +20,71 @@ class contrail {
# TODO
#$plugin_version = $settings['metadata']['plugin_version']
$plugin_version = '3.0'
$distribution= 'juniper'
$distribution = 'juniper'
$network_scheme = hiera_hash('network_scheme', {})
$network_scheme = hiera_hash('network_scheme', {})
$network_metadata = hiera_hash('network_metadata', {})
$uid = hiera('uid')
$master_ip = hiera('master_ip')
$node_role = hiera('role')
$node_name = hiera('user_node_name')
$nodes= hiera('nodes')
$uid = hiera('uid')
$master_ip = hiera('master_ip')
$node_role = hiera('role')
$node_name = hiera('user_node_name')
$nodes = hiera('nodes')
$public_ssl_hash = hiera('public_ssl')
$public_ssl = $public_ssl_hash['services']
$public_ssl = $public_ssl_hash['services']
$neutron_settings=hiera_hash('quantum_settings', {})
$metadata_secret=$neutron_settings['metadata']['metadata_proxy_shared_secret']
$service_token = $neutron_settings['keystone']['admin_password']
$nets = $neutron_settings['predefined_networks']
$neutron_settings = hiera_hash('quantum_settings', {})
$metadata_secret = $neutron_settings['metadata']['metadata_proxy_shared_secret']
$service_token = $neutron_settings['keystone']['admin_password']
$nets = $neutron_settings['predefined_networks']
$keystone=hiera_hash('keystone', {})
$default_ceilometer_hash = { 'enabled' => false }
$ceilometer_hash = hiera_hash('ceilometer', $default_ceilometer_hash)
$keystone = hiera_hash('keystone', {})
$admin_token = $keystone['admin_token']
$admin_settings = hiera_hash('access', {})
$admin_username = $admin_settings['user']
$admin_password = $admin_settings['password']
$admin_tenant = $admin_settings['tenant']
$admin_tenant = $admin_settings['tenant']
# Contrail settings
$asnum = $settings['contrail_asnum']
$external = $settings['contrail_external']
$asnum = $settings['contrail_asnum']
$external = $settings['contrail_external']
$route_target = $settings['contrail_route_target']
$gateways = split($settings['contrail_gateways'], ',')
$gateways = split($settings['contrail_gateways'], ',')
# Custom mount point for contrail-db
$cassandra_path='/var/lib/contrail_db'
$cassandra_path = '/var/lib/contrail_db'
# Network configuration
prepare_network_config($network_scheme)
$interface=get_network_role_property('neutron/mesh', 'interface')
$gateway=$network_scheme['endpoints'][$interface]['gateway']
$address=get_network_role_property('neutron/mesh', 'ipaddr')
$cidr=get_network_role_property('neutron/mesh', 'cidr')
$netmask=get_network_role_property('neutron/mesh', 'netmask')
$netmask_short=netmask_to_cidr($netmask)
$phys_dev=get_private_ifname($interface)
$interface = get_network_role_property('neutron/mesh', 'interface')
$gateway = $network_scheme['endpoints'][$interface]['gateway']
$address = get_network_role_property('neutron/mesh', 'ipaddr')
$cidr = get_network_role_property('neutron/mesh', 'cidr')
$netmask = get_network_role_property('neutron/mesh', 'netmask')
$netmask_short = netmask_to_cidr($netmask)
$phys_dev = get_private_ifname($interface)
$mos_mgmt_vip=$network_metadata['vips']['management']['ipaddr']
$mos_public_vip=$network_metadata['vips']['public']['ipaddr']
$mos_mgmt_vip = $network_metadata['vips']['management']['ipaddr']
$mos_public_vip = $network_metadata['vips']['public']['ipaddr']
$contrail_private_vip=$network_metadata['vips']['contrail_priv']['ipaddr']
$contrail_mgmt_vip=$contrail_private_vip
$contrail_private_vip = $network_metadata['vips']['contrail_priv']['ipaddr']
$contrail_mgmt_vip = $contrail_private_vip
$disabled_services=['neutron-plugin-openvswitch-agent','neutron-dhcp-agent','neutron-metadata-agent','neutron-l3-agent']
$disabled_services = ['neutron-plugin-openvswitch-agent','neutron-dhcp-agent',
'neutron-metadata-agent','neutron-l3-agent']
# Settings for RabbitMQ on contrail controllers
$rabbit=hiera('rabbit')
$rabbit_password=$rabbit['password']
$rabbit = hiera('rabbit')
$rabbit_password = $rabbit['password']
$rabbit_hosts_ports = hiera('amqp_hosts')
# RabbitMQ nodes Mgmt IP list
$rabbit_nodes_hash = get_nodes_hash_by_roles(hiera('network_metadata'), ['primary-controller', 'controller'])
$rabbit_ips = values(get_node_to_ipaddr_map_by_network_role($rabbit_nodes_hash, 'mgmt/messaging'))
$rabbit_nodes_hash = get_nodes_hash_by_roles(hiera('network_metadata'), ['primary-controller', 'controller'])
$rabbit_ips = values(get_node_to_ipaddr_map_by_network_role($rabbit_nodes_hash, 'mgmt/messaging'))
# Contrail DB nodes Private IP list
$primary_contrail_db_nodes_hash = get_nodes_hash_by_roles(hiera('network_metadata'), ['primary-contrail-db'])

View File

@ -0,0 +1,97 @@
---
sources:
- name: meter_source
interval: 60
meters:
- "*"
sinks:
- meter_sink
- name: cpu_source
interval: 60
meters:
- "cpu"
sinks:
- cpu_sink
- name: disk_source
interval: 60
meters:
- "disk.read.bytes"
- "disk.read.requests"
- "disk.write.bytes"
- "disk.write.requests"
- "disk.device.read.bytes"
- "disk.device.read.requests"
- "disk.device.write.bytes"
- "disk.device.write.requests"
sinks:
- disk_sink
- name: network_source
interval: 60
meters:
- "network.incoming.bytes"
- "network.incoming.packets"
- "network.outgoing.bytes"
- "network.outgoing.packets"
sinks:
- network_sink
- name: contrail_source
interval: 600
meters:
- "ip.floating.receive.packets"
- "ip.floating.transmit.packets"
- "ip.floating.receive.bytes"
- "ip.floating.transmit.bytes"
resources:
- contrail://<%= scope.lookupvar('contrail::contrail_private_vip') %>:8081
sinks:
- contrail_sink
sinks:
- name: meter_sink
transformers:
publishers:
- notifier://
- name: cpu_sink
transformers:
- name: "rate_of_change"
parameters:
target:
name: "cpu_util"
unit: "%"
type: "gauge"
scale: "100.0 / (10**9 * (resource_metadata.cpu_number or 1))"
publishers:
- notifier://
- name: disk_sink
transformers:
- name: "rate_of_change"
parameters:
source:
map_from:
name: "(disk\\.device|disk)\\.(read|write)\\.(bytes|requests)"
unit: "(B|request)"
target:
map_to:
name: "\\1.\\2.\\3.rate"
unit: "\\1/s"
type: "gauge"
publishers:
- notifier://
- name: network_sink
transformers:
- name: "rate_of_change"
parameters:
source:
map_from:
name: "network\\.(incoming|outgoing)\\.(bytes|packets)"
unit: "(B|packet)"
target:
map_to:
name: "network.\\1.\\2.rate"
unit: "\\1/s"
type: "gauge"
publishers:
- notifier://
- name: contrail_sink
publishers:
- rpc://
transformers: