diff --git a/README.md b/README.md index 26fef510..e636e5b4 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ -# NATS server - +## [![License][License-Image]][License-Url] [![ReportCard][ReportCard-Image]][ReportCard-Url] [![Build][Build-Status-Image]][Build-Status-Url] [![Release][Release-Image]][Release-Url] [![Coverage][Coverage-Image]][Coverage-Url] A High Performance [NATS](https://nats.io) Server written in [Go.](http://golang.org) diff --git a/docker/Dockerfile b/docker/Dockerfile deleted file mode 100644 index 527d6723..00000000 --- a/docker/Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -FROM google/golang:1.4 - -MAINTAINER Derek Collison - -RUN CGO_ENABLED=0 go get -a -ldflags '-s' --installsuffix cgo github.com/apcera/gnatsd -COPY Dockerfile.final /gopath/bin/Dockerfile - -CMD docker build -t apcera/gnatsd /gopath/bin diff --git a/docker/Dockerfile.final b/docker/Dockerfile.final deleted file mode 100644 index 7a1c851c..00000000 --- a/docker/Dockerfile.final +++ /dev/null @@ -1,10 +0,0 @@ -FROM scratch - -MAINTAINER Derek Collison - -ADD gnatsd /gnatsd - -CMD [] -ENTRYPOINT ["/gnatsd", "-p", "4222", "-m", "8333"] - -EXPOSE 4222 8333 diff --git a/docker/README.md b/docker/README.md deleted file mode 100644 index 8b47342d..00000000 --- a/docker/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# [Dockerized] (http://www.docker.com) [nats](https://registry.hub.docker.com/_/nats/) - -This is deprecated, please use [nats-docker](https://github.com/nats-io/nats-docker) - -A docker image for gnatsd. This is created as a single static executable, so there are multiple passes through Docker to first build the static executable and then to package it under an empty (scratch) base image. - - - diff --git a/docker/build.sh b/docker/build.sh deleted file mode 100755 index 02b943c9..00000000 --- a/docker/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -docker build -t apcera/gnatsd_build . -docker run -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):$(which docker) -ti --name gnatsd_build apcera/gnatsd_build -docker rm gnatsd_build -docker rmi apcera/gnatsd_build \ No newline at end of file diff --git a/docker/linux_dev/Dockerfile b/docker/linux_dev/Dockerfile deleted file mode 100644 index 9609cdf9..00000000 --- a/docker/linux_dev/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -FROM ubuntu:14.04 - -MAINTAINER Derek Collison - -RUN apt-get update -y && apt-get install --no-install-recommends -y -q curl build-essential ca-certificates git mercurial bzr -RUN mkdir /goroot && curl https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz | tar xvzf - -C /goroot --strip-components=1 -RUN mkdir /gopath - -ENV GOROOT /goroot -ENV GOPATH /gopath -ENV PATH $PATH:$GOROOT/bin:$GOPATH/bin diff --git a/docker/linux_dev/build.sh b/docker/linux_dev/build.sh deleted file mode 100755 index d469044c..00000000 --- a/docker/linux_dev/build.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -docker build -t nats_dev . - diff --git a/logos/nats-server.jpg b/logos/nats-server.jpg new file mode 100644 index 00000000..1774137b Binary files /dev/null and b/logos/nats-server.jpg differ diff --git a/logos/nats-server.png b/logos/nats-server.png new file mode 100644 index 00000000..822cbd10 Binary files /dev/null and b/logos/nats-server.png differ diff --git a/gnatsd.go b/main.go similarity index 100% rename from gnatsd.go rename to main.go diff --git a/server/monitor.go b/server/monitor.go index 0ca495de..031cdb23 100644 --- a/server/monitor.go +++ b/server/monitor.go @@ -13,6 +13,8 @@ import ( "strconv" "sync/atomic" "time" + + "github.com/nats-io/gnatsd/server/pse" ) // Snapshot this @@ -462,7 +464,7 @@ func updateUsage(v *Varz) { var rss, vss int64 var pcpu float64 - procUsage(&pcpu, &rss, &vss) + pse.ProcUsage(&pcpu, &rss, &vss) v.Mem = rss v.CPU = pcpu diff --git a/server/pse_darwin.go b/server/pse/pse_darwin.go similarity index 87% rename from server/pse_darwin.go rename to server/pse/pse_darwin.go index 9e19e3c6..31ea2755 100644 --- a/server/pse_darwin.go +++ b/server/pse/pse_darwin.go @@ -1,6 +1,6 @@ // Copyright 2015-2016 Apcera Inc. All rights reserved. -package server +package pse import ( "errors" @@ -9,7 +9,7 @@ import ( "os/exec" ) -func procUsage(pcpu *float64, rss, vss *int64) error { +func ProcUsage(pcpu *float64, rss, vss *int64) error { pidStr := fmt.Sprintf("%d", os.Getpid()) out, err := exec.Command("ps", "o", "pcpu=,rss=,vsz=", "-p", pidStr).Output() if err != nil { diff --git a/server/pse_freebsd.go b/server/pse/pse_freebsd.go similarity index 89% rename from server/pse_freebsd.go rename to server/pse/pse_freebsd.go index b9b350eb..a5266f67 100644 --- a/server/pse_freebsd.go +++ b/server/pse/pse_freebsd.go @@ -1,6 +1,6 @@ -// Copyright 2015 Apcera Inc. All rights reserved. +// Copyright 2015-2016 Apcera Inc. All rights reserved. -package server +package pse /* #include @@ -56,7 +56,7 @@ import ( ) // This is a placeholder for now. -func procUsage(pcpu *float64, rss, vss *int64) error { +func ProcUsage(pcpu *float64, rss, vss *int64) error { var r, v C.uint var c C.double diff --git a/server/pse_linux.go b/server/pse/pse_linux.go similarity index 70% rename from server/pse_linux.go rename to server/pse/pse_linux.go index e4434d05..e732d087 100644 --- a/server/pse_linux.go +++ b/server/pse/pse_linux.go @@ -1,6 +1,6 @@ // Copyright 2015 Apcera Inc. All rights reserved. -package server +package pse import ( "bytes" @@ -27,7 +27,7 @@ func init() { procStatFile = fmt.Sprintf("/proc/%d/stat", os.Getpid()) } -func procUsage(pcpu *float64, rss, vss *int64) error { +func ProcUsage(pcpu *float64, rss, vss *int64) error { contents, err := ioutil.ReadFile(procStatFile) if err != nil { return err @@ -56,3 +56,24 @@ func procUsage(pcpu *float64, rss, vss *int64) error { return nil } + +// Ascii numbers 0-9 +const ( + asciiZero = 48 + asciiNine = 57 +) + +// parseInt64 expects decimal positive numbers. We +// return -1 to signal error +func parseInt64(d []byte) (n int64) { + if len(d) == 0 { + return -1 + } + for _, dec := range d { + if dec < asciiZero || dec > asciiNine { + return -1 + } + n = n*10 + (int64(dec) - asciiZero) + } + return n +} diff --git a/server/pse/pse_solaris.go b/server/pse/pse_solaris.go new file mode 100644 index 00000000..596643c9 --- /dev/null +++ b/server/pse/pse_solaris.go @@ -0,0 +1,12 @@ +// Copyright 2015-2016 Apcera Inc. All rights reserved. + +package pse + +// This is a placeholder for now. +func ProcUsage(pcpu *float64, rss, vss *int64) error { + *pcpu = 0.0 + *rss = 0 + *vss = 0 + + return nil +} diff --git a/server/pse_test.go b/server/pse/pse_test.go similarity index 91% rename from server/pse_test.go rename to server/pse/pse_test.go index d9af43c0..7a03c671 100644 --- a/server/pse_test.go +++ b/server/pse/pse_test.go @@ -1,6 +1,6 @@ -// Copyright 2015 Apcera Inc. All rights reserved. +// Copyright 2015-2016 Apcera Inc. All rights reserved. -package server +package pse import ( "fmt" @@ -29,7 +29,7 @@ func TestPSEmulation(t *testing.T) { psVss *= 1024 // 1k blocks, want bytes. // Our internal version - procUsage(&pcpu, &rss, &vss) + ProcUsage(&pcpu, &rss, &vss) if pcpu != psPcpu { delta := int64(pcpu - psPcpu) diff --git a/server/pse_windows.go b/server/pse/pse_windows.go similarity index 98% rename from server/pse_windows.go rename to server/pse/pse_windows.go index ad800d74..8d76bd8c 100644 --- a/server/pse_windows.go +++ b/server/pse/pse_windows.go @@ -1,16 +1,16 @@ // Copyright 2015-2016 Apcera Inc. All rights reserved. -package server +package pse import ( "errors" "fmt" "os" "os/exec" + "path/filepath" "strconv" "strings" "sync" - "path/filepath" ) // cache the image name to optimize repeated calls @@ -112,7 +112,7 @@ func getProcessImageName() (name string) { // If there is more than one instance, "#" is appended to // the image name. Wildcard filters are supported, but result in a very // complex data set to parse. -func procUsage(pcpu *float64, rss, vss *int64) error { +func ProcUsage(pcpu *float64, rss, vss *int64) error { var ppid int = -1 imageLock.Lock() diff --git a/server/pse_windows_test.go b/server/pse/pse_windows_test.go similarity index 99% rename from server/pse_windows_test.go rename to server/pse/pse_windows_test.go index 87ec0fb9..408f061a 100644 --- a/server/pse_windows_test.go +++ b/server/pse/pse_windows_test.go @@ -1,6 +1,7 @@ // Copyright 2016 Apcera Inc. All rights reserved. // +build win -package server + +package pse import ( "fmt" diff --git a/server/pse_solaris.go b/server/pse_solaris.go deleted file mode 100644 index 80f12a38..00000000 --- a/server/pse_solaris.go +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2015 Apcera Inc. All rights reserved. - -package server - -// This is a placeholder for now. -func procUsage(pcpu *float64, rss, vss *int64) error { - *pcpu = 0.0 - *rss = 0 - *vss = 0 - - return nil -} diff --git a/server/server.go b/server/server.go index b37e7d00..767a77eb 100644 --- a/server/server.go +++ b/server/server.go @@ -162,7 +162,7 @@ func PrintAndDie(msg string) { // PrintServerAndExit will print our version and exit. func PrintServerAndExit() { - fmt.Printf("gnatsd version %s\n", VERSION) + fmt.Printf("nats-server version %s\n", VERSION) os.Exit(0) } @@ -201,7 +201,7 @@ func (s *Server) logPid() { // Start up the server, this will block. // Start via a Go routine if needed. func (s *Server) Start() { - Noticef("Starting gnatsd version %s", VERSION) + Noticef("Starting nats-server version %s", VERSION) Debugf("Go build version %s", s.info.GoVersion) s.running = true @@ -319,8 +319,8 @@ func (s *Server) AcceptLoop() { Noticef("TLS required for client connections") } - Debugf("server id is %s", s.info.ID) - Noticef("server is ready") + Debugf("Server id is %s", s.info.ID) + Noticef("Server is ready") // Setup state that can enable shutdown s.mu.Lock()