diff options
Diffstat (limited to 'nixpkgs/pkgs/servers/monitoring/longview')
-rw-r--r-- | nixpkgs/pkgs/servers/monitoring/longview/default.nix | 68 | ||||
-rw-r--r-- | nixpkgs/pkgs/servers/monitoring/longview/log-stdout.patch | 38 |
2 files changed, 106 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/monitoring/longview/default.nix b/nixpkgs/pkgs/servers/monitoring/longview/default.nix new file mode 100644 index 000000000000..45e380379d2f --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/longview/default.nix @@ -0,0 +1,68 @@ +{stdenv, fetchFromGitHub, perl, perlPackages, makeWrapper, glibc }: + +stdenv.mkDerivation rec { + version = "1.1.5"; + name = "longview-${version}"; + + src = fetchFromGitHub { + owner = "linode"; + repo = "longview"; + rev = "v${version}"; + sha256 = "1i9lli8iw8sb1bd633i82fzhx5gz85ma9d1hra41pkv2p3h823pa"; + }; + + patches = [ + # log to systemd journal + ./log-stdout.patch + ]; + + # Read all configuration from /run/longview + postPatch = '' + substituteInPlace Linode/Longview/Util.pm \ + --replace /var/run/longview.pid /run/longview/longview.pid \ + --replace /etc/linode /run/longview + substituteInPlace Linode/Longview.pl \ + --replace /etc/linode /run/longview + ''; + + buildInputs = [ perl makeWrapper glibc ] + ++ (with perlPackages; [ + LWP + LWPProtocolHttps + MozillaCA + CryptSSLeay + IOSocketInet6 + LinuxDistribution + JSONPP + JSON + LogLogLite + TryTiny + DBI + DBDmysql + ]); + + dontBuild = true; + + installPhase = '' + mkdir -p $out/bin $out/usr + mv Linode $out + ln -s ../Linode/Longview.pl $out/bin/longview + for h in syscall.h sys/syscall.h asm/unistd.h asm/unistd_32.h asm/unistd_64.h bits/wordsize.h bits/syscall.h; do + ${perl}/bin/h2ph -d $out ${glibc.dev}/include/$h + mkdir -p $out/usr/include/$(dirname $h) + mv $out${glibc.dev}/include/''${h%.h}.ph $out/usr/include/$(dirname $h) + done + wrapProgram $out/Linode/Longview.pl --prefix PATH : ${perl}/bin:$out/bin \ + --suffix PERL5LIB : $out/Linode --suffix PERL5LIB : $PERL5LIB \ + --suffix PERL5LIB : $out --suffix INC : $out + ''; + + meta = with stdenv.lib; { + homepage = https://www.linode.com/longview; + description = "Longview collects all of your system-level metrics and sends them to Linode"; + license = licenses.gpl2Plus; + maintainers = [ maintainers.rvl ]; + inherit version; + platforms = [ "x86_64-linux" "i686-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/servers/monitoring/longview/log-stdout.patch b/nixpkgs/pkgs/servers/monitoring/longview/log-stdout.patch new file mode 100644 index 000000000000..3e009254bcad --- /dev/null +++ b/nixpkgs/pkgs/servers/monitoring/longview/log-stdout.patch @@ -0,0 +1,38 @@ +diff -ru longview-5bcc9b60896b72de2d14f046f911477c26eb70ba-src.orig/Linode/Longview/Logger.pm longview-5bcc9b60896b72de2d14f046f911477c26eb70ba-src/Linode/Longview/Logger.pm +--- longview-5bcc9b60896b72de2d14f046f911477c26eb70ba-src.orig/Linode/Longview/Logger.pm 2015-10-28 17:15:32.816515318 +0000 ++++ longview-5bcc9b60896b72de2d14f046f911477c26eb70ba-src/Linode/Longview/Logger.pm 2015-10-28 18:00:50.760332026 +0000 +@@ -26,9 +26,7 @@ + my ( $self, $message ) = @_; + + my $ts = strftime( '%m/%d %T', localtime ); +- $self->{logger}->write( +- sprintf( '%s %s Longview[%i] - %s', $ts, uc($level), $$, $message ), +- $levels->{$level} ); ++ printf( "%s %s Longview[%i] - %s\n", $ts, uc($level), $$, $message ); + die "$message" if $level eq 'logdie'; + }; + } +@@ -37,12 +35,6 @@ + my ( $class, $level ) = @_; + my $self = {}; + +- mkpath($LOGDIR) unless (-d $LOGDIR); +- $self->{logger} +- = Log::LogLite->new( $LOGDIR . 'longview.log', $level ) +- or die "Couldn't create logger object: $!"; +- $self->{logger}->template("<message>\n"); +- + return bless $self, $class; + } + +diff -ru longview-5bcc9b60896b72de2d14f046f911477c26eb70ba-src.orig/Linode/Longview/Util.pm longview-5bcc9b60896b72de2d14f046f911477c26eb70ba-src/Linode/Longview/Util.pm +--- longview-5bcc9b60896b72de2d14f046f911477c26eb70ba-src.orig/Linode/Longview/Util.pm 2015-10-28 17:15:32.816515318 +0000 ++++ longview-5bcc9b60896b72de2d14f046f911477c26eb70ba-src/Linode/Longview/Util.pm 2015-10-28 19:20:30.894314658 +0000 +@@ -225,7 +225,6 @@ + #<<< perltidy ignore + chdir '/' or $logger->logdie("Can't chdir to /: $!"); + open STDIN, '<', '/dev/null' or $logger->logdie("Can't read /dev/null: $!"); +- open STDOUT, '>>', '/dev/null' or $logger->logdie("Can't write to /dev/null: $!"); + open STDERR, '>>', '/dev/null' or $logger->logdie("Can't write to /dev/null: $!"); + tie *STDERR, "Linode::Longview::STDERRLogger"; + defined( my $pid = fork ) or $logger->logdie("Can't fork: $!"); |