GithubHelp home page GithubHelp logo

rlanore / collectd-openstack Goto Github PK

View Code? Open in Web Editor NEW

This project forked from catalyst/collectd-openstack

0.0 2.0 0.0 120 KB

Collectd plugin for OpenStack

License: GNU General Public License v2.0

Python 100.00%

collectd-openstack's Introduction

collectd-openstack

Overview

A set of collectd plugins monitoring and publishing metrics for OpenStack components.

Screenshots

image

Plugins and Metrics

There are several plugins, mapping to each of the openstack components.

Find below a list of the available plugins and the metrics they publish.

  • cinder_plugin
    • openstack-cinder.<tenant>.volumes.count (number of tenant volumes)
    • openstack-cinder.<tenant>.volumes.bytes (total bytes of tenant volumes)
    • openstack-cinder.<tenant>.volume-snapshots.count (number of tenant snapshots)
    • openstack-cinder.<tenant>.volume-snapshots.bytes (total bytes of tenant snapshots)
    • openstack-cinder.<tenant>.limites-{maxTotalVolumeGigabytes,maxTotalVolumes}
  • glance_plugin
    • openstack-glance.<tenant>.images.count (number of tenant images)
    • openstack-glance.<tenant>.images.bytes (total bytes of tenant images)
  • keystone_plugin
    • openstack-keystone.<tenant>.users.count (number of tenant users)
    • openstack-keystone.totals.tenants.count (total number of tenants)
    • openstack-keystone.totals.users.count (total number of users)
    • openstack-keystone.totals.services.count (total number of services)
    • openstack-keystone.totals.endpoints.count (total number of endpoints)
  • neutron_plugin
    • openstack-neutron.<tenant>.networks.count (number of tenant networks)
    • openstack-neutron.<tenant>.subnets.count (number of tenant subnets)
    • openstack-neutron.<tenant>.routers.count (number of tenant routers)
    • openstack-neutron.<tenant>.ports.count (number of tenant ports)
    • openstack-neutron.<tenant>.floatingips.count (number of tenant floating ips)
    • openstack-neutron.<tenant>.quotas-{floatingip,ikepolicy,ipsec_site_connection,ipsecpolicy,network, port,router,security_group,security_group_rule,subnet}
  • nova_plugin
    • openstack-nova.<tenant>.limits.{maxImageMeta,maxPersonality,maxPersonalitySize,maxSecurityGroupRules, maxSecurityGroups,maxServerMeta,maxTotalCores,maxTotalFloatingIps, maxTotalInstances,maxTotalKeypairs,maxTotalRAMSize} (limits on each metric, per tenant)
    • openstack-nova.<tenant>.quotas.{cores,fixed_ips,floating_ips,instances,key_pairs,,ram,security_groups} (quotas on each metric, per tenant)
    • openstack-nova.cluster.gauge.config-AllocationRatioCores (overcommit ratio for vcpus)
    • openstack-nova.cluster.gauge.config-AllocationRatioRamMB (overcommit ratio for ram - in MB)
    • openstack-nova.cluster.gauge.config-ReservedCores (reserved vcpus on the whole cluster)
    • openstack-nova.cluster.gauge.config-ReservedRamMB (reserved ram on the whole cluster - in MB)
    • openstack-nova.cluster.gauge.config-ReservedNodeCores (reserved cores per node)
    • openstack-nova.cluster.gauge.config-ReservedNodeRamMB (reserved ram per node - in MB)
    • openstack-nova.<hypervisor-hostname>.{current_workload,free_disk_gb,free_ram_mb,hypervisor_version, memory_mb,memory_mb_overcommit,memory_mb_overcommit_withreserve, memory_mb_used,running_vms,vcpus,vcpus_overcommit, vcpus_overcommit_withreserve,vcpus_used}

Requirements

It assumes an existing installation of collectd.

Check its documentation for details.

Setup and Configuration

The example configuration(s) below assume the plugins to be located under /usr/lib/collectd/plugins.

If you're under ubuntu, consider installing from this ppa.

Each plugin should have its own config file, under /etc/collectd/conf.d/<pluginname>.conf, which should follow some similar to:

# cat /etc/collectd/conf.d/keystone.conf

<LoadPlugin "python">
    Globals true
</LoadPlugin>

<Plugin "python">
    ModulePath "/usr/lib/collectd/plugins"

    Import "keystone_plugin"

    <Module "keystone_plugin">
        Username "admin"
        Password "123456"
        TenantName "openstack"
        AuthURL "https://api.example.com:5000/v2.0"
        Verbose "False"
    </Module>
</Plugin>

Puppet

If you use puppet for configuration, then try this excelent collectd module.

It has plenty of docs on how to use it, but for our specific plugins:

  collectd::plugin::python { 'keystone':
    modulepath => '/usr/lib/collectd/plugins',
    module     => 'keystone_plugin',
    config     => {
      'Username'   => 'admin',
      'Password'   => '123456',
      'TenantName' => 'openstack',
      'AuthURL'    => 'https://api1.example.com:5000/v2.0',
      'Verbose'    => 'true',
    },
  }

Limitations

The debian packaging files are provided, but don't expect the deb in the official repos.

Development

All contributions more than welcome, just send pull requests.

License

GPLv2 (check LICENSE).

Contributors

Ricardo Rocha [email protected]

Support

Please log tickets and issues at the github home.

Additional Notes

Ubuntu Packaging

These instructions should give full details.

In summary, do this once to prepare your environment:

pbuilder-dist precise create

and for every release (from master):

mkdir /tmp/build-collectd-os
cd /tmp/build-collectd-os
wget https://github.com/catalyst/collectd-openstack/archive/master.zip
unzip master.zip
tar zcvf collectd-openstack-0.7.0.tar.gz collectd-openstack-master/
bzr dh-make collectd-openstack 0.7.0 collectd-openstack-0.7.0.tar.gz
cd collectd-openstack
bzr builddeb -S
cd ../build-area
pbuilder-dist precise build collectd-openstack_0.7.0-1ubuntu.dsc
dput ppa:catalystit/collectd ../collectd-openstack_0.7.0-1ubuntu_source.changes

collectd-openstack's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.