[pve-devel] Add support for external graphite metric server

Wolfgang Bumiller w.bumiller at proxmox.com
Mon Jun 15 08:54:11 CEST 2015


On Mon, Jun 15, 2015 at 08:00:27AM +0200, Alexandre Derumier wrote:
> Hi, this patches serie add support to send stats metric to an external graphite server.
> 
> Proxmox rrds are cool, but it's difficult to do stats accross vms.
> For example : create a graphs with the total iops of all vms and compare them to storage stats.
> 
> (they are very nice graphite gui like www.granafa.org)

Do you mean grafana.org? ;)

Seems it uses twisted, which is supposed to support ipv6, which means we
need to support this in the configuration, iow. /.*:.*:.*/ for the
graphiteserver's pattern won't do the trick. (Because the ipv6 guys are
all in love with loves colons)

Since ipv6 notation smells so much I'd argue we should provide some
tools in PVE::Tools to deal with ipv6 addresses in a more general way.
Since out in the wild some tools don't want brackets (`ssh foo@::`),
some want square brackets around just addresses (`scp file
foo@[::]:path`), some want it around an entire user at host pairs (`rsync
--rsh=ssh [foo@::]:path`) and some only support it with special syntax
(`git clone 'ssh://[foo@::]:port/path'`), and yet others simply change
the port to be separated by a dot instead of a colon (rpcbind), and the
worst of them all disagree in weird places (browsers disagreeing on
whether brackets should be included in the javascript variables, some of
them making it impossible to assign the current location to the current
location without ending up on an invalid address...)

(It's hard to stop going on about this once you start :p)

Maybe we could put a reusable regex pattern in PVE::Tools and a helper
function to turn it into a ($host, $port) pair (maybe even one for a
($user, $host, $port) triplet), so that we have standard patterns which
can be used everywhere where we parse such addresses ourselves. (Could
even support all of the above variants in a single regex ;) )

> This patch series also add all stats for vm disks,nics when vm_status is called in full mode.
> They are not streamed through corosync, I'm only sending them to graphite.




More information about the pve-devel mailing list