Hi, be carefull of timeouts, because it could hang pvestatd. (That's why it was implemented in udp for graphite && influxdb)
----- Mail original ----- De: "Martin Verges" <martin.ver...@croit.io> À: "pve-devel" <pve-devel@pve.proxmox.com> Envoyé: Lundi 4 Novembre 2019 16:48:04 Objet: [pve-devel] [PATCH manager] add graphite tcp support This change allows sending statistics to graphite over TCP. So far only UDP is possible, which is not available in some environments, like behind a loadbalancer. Configuration example: ~ $ cat /etc/pve/status.cfg graphite: server 10.20.30.40 port 2003 path proxmox proto tcp Signed-off-by: Martin Verges <martin.ver...@croit.io> --- PVE/Status/Graphite.pm | 5 ++++- PVE/Status/Plugin.pm | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/PVE/Status/Graphite.pm b/PVE/Status/Graphite.pm index d0e1563d..1180a774 100644 --- a/PVE/Status/Graphite.pm +++ b/PVE/Status/Graphite.pm @@ -9,6 +9,7 @@ use PVE::Status::Plugin; #graphite: # server test # port 2003 +# proto udp # path proxmox.mycluster # disable 0 # @@ -32,6 +33,7 @@ sub options { return { server => {}, port => { optional => 1 }, + proto => { optional => 1 }, path => { optional => 1 }, disable => { optional => 1 }, }; @@ -76,11 +78,12 @@ sub write_graphite_hash { my $host = $plugin_config->{server}; my $port = $plugin_config->{port} ? $plugin_config->{port} : 2003; my $path = $plugin_config->{path} ? $plugin_config->{path} : 'proxmox'; + my $proto = $plugin_config->{proto} ? $plugin_config->{proto} : 'udp'; my $carbon_socket = IO::Socket::IP->new( PeerAddr => $host, PeerPort => $port, - Proto => 'udp', + Proto => $proto, ) || die "couldn't create carbon socket [$host]:$port - $@\n"; write_graphite($carbon_socket, $d, $ctime, $path.".$object"); diff --git a/PVE/Status/Plugin.pm b/PVE/Status/Plugin.pm index 482142c0..3012def4 100644 --- a/PVE/Status/Plugin.pm +++ b/PVE/Status/Plugin.pm @@ -32,6 +32,12 @@ my $defaultData = { type => 'integer', description => "server network port", }, + proto => { + type => 'string', + enum => ['udp', 'tcp'], + description => "send graphite data using tcp or udp (default)", + optional => 1, + }, }, }; -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel