A way of deploying OpenStack is to use TripleO. This takes the an approach to deploy a small OpenStack environment, and then to take OpenStack provided infrastructure and tools to deploy the actual production environment. This is actually done by an addition to the openstack command line client:
openstack overcloud deploy \ --templates /usr/share/openstack-tripleo-heat-templates \ -e ....
For performance metrics, there are a few collectd plugins configured by default. If there is a need for more, just add them to CollectdExtraPlugins, as shown below. Usually, this would be done by creating a file, e.g collectd.yaml and make it read like the following example.
parameter_defaults: CollectdExtraPlugins: - cpu - disk - df - hugepages - interface - memory - ovs_events - ovs_stats - processes - virt ExtraConfig: collectd::plugin::df::ignoreselected: true collectd::plugin::interface::ignoreselected: true collectd::plugin::virt::connection: "qemu:///system" collectd::plugin::virt::hostname_format: "hostname uuid"
Finally, if you saved collectd.yaml to /home/stack/collectd.yaml one would call it, like in the following code
openstack overcloud deploy \ --templates /usr/share/openstack-tripleo-heat-templates \ ... -e /usr/share/openstack-tripleo-heat-templates/environments/services-docker/collectd.yaml \ -e /home/stack/collectd.yaml