Commit Graph

54 Commits

Author SHA1 Message Date
Stuart Nelson
f1c257845f Vendor external dependencies with godep. 2015-01-09 12:00:42 +01:00
Tomás Senart
09c58ce481 Upgrade to Go 1.4
This change set upgrades Prometheus to use Go 1.4
The other modifications were intended to compare benchmarks between the
old and new versions using `golang.org/x/tools/cmd/benchcmp`.

```
benchmark                                old ns/op      new ns/op     delta
BenchmarkTargetManager-8                 38866          19355         -50.20%
BenchmarkTargetPool-8                    114763         58989         -48.60%
BenchmarkFingerprintLockerParallel-8     747            752           +0.67%
BenchmarkFingerprintLockerSerial-8       39.0           39.1          +0.26%
BenchmarkAppend-8                        2020           2553          +26.39%
BenchmarkFuzz-8                          1185584705     506752314     -57.26%
BenchmarkLabelPairs-8                    753            903           +19.92%

benchmark                                old allocs     new allocs     delta
BenchmarkTargetManager-8                 41             46             +12.20%
BenchmarkTargetPool-8                    682            460            -32.55%
BenchmarkFingerprintLockerParallel-8     0              0              +0.00%
BenchmarkFingerprintLockerSerial-8       0              0              +0.00%
BenchmarkAppend-8                        11             15             +36.36%
BenchmarkFuzz-8                          2269055        1061400        -53.22%
BenchmarkLabelPairs-8                    12             12             +0.00%

benchmark                                old bytes      new bytes     delta
BenchmarkTargetManager-8                 8755           7160          -18.22%
BenchmarkTargetPool-8                    82621          41342         -49.96%
BenchmarkFingerprintLockerParallel-8     0              0             +0.00%
BenchmarkFingerprintLockerSerial-8       0              0             +0.00%
BenchmarkAppend-8                        289            293           +1.38%
BenchmarkFuzz-8                          2307248006     586094916     -74.60%
BenchmarkLabelPairs-8                    316            304           -3.80%
```
2014-12-15 14:05:43 +01:00
Bjoern Rabenstein
006b5517e2 Simplify makefiles.
This removes the dependancy on C leveldb and snappy.
It also takes care of fewer dependencies as they would
anyway not work on any non-Debian, non-Brew system.

Change-Id: Ia70dce1ba8a816a003587927e0b3a3f8ad2fd28c
2014-11-25 17:10:39 +01:00
Julius Volz
c6e9f085a3 Update used Go version to 1.3.
Go downloads moved to a different URL and require following redirects
(curl's '-L' option) now.

Go 1.3 deliberately randomizes ranges over maps, which uncovered some
bugs in our tests. These are fixed too.

Change-Id: Id2d9e185d8d2379a9b7b8ad5ba680024565d15f4
2014-11-25 17:02:00 +01:00
Matt T. Proud
3e969a8ca2 Parameterize the buffer for marshal/unmarshal.
We are not reusing buffers yet.  This could introduce problems,
so the behavior is disabled for now.

Cursory benchmark data:
- Marshal for 10,000 samples: -30% overhead.
- Unmarshal for 10,000 samples: -15% overhead.

Change-Id: Ib006bdc656af45dca2b92de08a8f905d8d728cac
2014-04-16 12:16:59 +02:00
Julius Volz
44390d831d Introduce semantic versioning.
This introduces semantic versioning (http://semver.org/) in Prometheus:

- A new VERSION file contains the semantic version string.

- The "tarball" target now includes versioning and build information in
  the tarball name, like: "prometheus-0.1.0.linux-amd64.tar.gz".

- A new "release" target allows scp-ing the versioned tarball to a
  remote machine (file server).

- A new "tag" target allows git-tagging the current revision with the
  version specified in VERSION.

Change-Id: I1f19f38b9b317bfa9eb513754750df5a9c602d94
2014-03-11 15:39:22 +01:00
Johannes 'fish' Ziemke
d438e1c96c Allow overriding url to fetch go from by env var
If you want to use a different binary package than the officially
provided, you now can point the env var GOURL to the package you
want to get instead.

Change-Id: I1cefe2998bc86435cfbd058ba398a7b6c4e7d031
2013-09-04 15:48:23 +02:00
Matt T. Proud
2b42fd0068 Snapshot of no more frontier.
Change-Id: Icd52da3f52bfe4529829ea70b4865ed7c9f6c446
2013-08-23 17:13:58 +02:00
Julius Volz
ab99bd0cbd Add tarball Makefile rule.
Change-Id: I0991346493d816d5a7bdbf523b4cff20f7b59eb6
2013-08-19 16:35:17 +02:00
Matt T. Proud
9c8112a053 Revert "Add flags to build prometheus statically"
This reverts commit 0e9e3e068d.

Not only do we know this to produce problematic artifacts, it refuses
to build on Mac OS X.

    TMPDIR=/tmp GOROOT=/Users/mattproud/Development/go/src/github.com/prometheus/prometheus/.build/root/go GOPATH=/Users/mattproud/Development/go/src/github.com/prometheus/prometheus/.build/root/gopath /Users/mattproud/Development/go/src/github.com/prometheus/prometheus/.build/root/go/bin/go build -o prometheus -ldflags " -X main.buildVersion c7052ed -X main.buildBranch refactor/storage/modify-append-signature -X main.buildUser mattproud@Berlin.local -X main.buildDate 20130815-11:15:49 -X main.goVersion 1.1 -X main.leveldbVersion 1.12.0 -X main.protobufVersion 2.5.0 -X main.snappyVersion 1.1.0 -linkmode external -extldflags '-lstdc++ -lpthread -static /Users/mattproud/Development/go/src/github.com/prometheus/prometheus/.build/root/lib/libleveldb.a /Users/mattproud/Development/go/src/github.com/prometheus/prometheus/.build/root/lib/libsnappy.a'" .
    # _/Users/mattproud/Development/go/src/github.com/prometheus/prometheus
    ld: library not found for -lcrt0.o

Change-Id: I4f42161aebfd35a6f09cd7f984b78cc4498774aa
2013-08-15 11:19:44 +02:00
Julius Volz
c7052ede27 Tarball build rule fixups.
Change-Id: Idc4db7e20cd705901ea9ad39a0f7269bbb5572b7
2013-08-14 19:23:28 +02:00
Johannes 'fish' Ziemke
0e9e3e068d Add flags to build prometheus statically
Change-Id: I8fc883247e0657d26aa8ca6f24315fb9217277f3
2013-08-14 19:16:00 +02:00
Julius Volz
da420a5b97 Add glog options to "make run" to also log to stderr. 2013-08-12 18:21:38 +02:00
Johannes 'fish' Ziemke
1c9ae08e80 Add Dockerfile 2013-08-12 11:02:50 +02:00
Matt T. Proud
d8792cfd86 Extract HighWatermarking.
Clean up the rest.
2013-08-05 11:03:03 +02:00
Matt T. Proud
f4669a812c Extract index storage into separate types. 2013-08-04 15:31:52 +02:00
Matt T. Proud
30b1cf80b5 WIP - Snapshot of Moving to Client Model. 2013-06-25 15:52:42 +02:00
Julius Volz
235623b45d Fix "make format". 2013-06-18 19:18:39 +02:00
Johannes 'fish' Ziemke
22a40c298d Make prometheus build on bazooka repo manager
- Build build/package on build target
- And include .pkgignore
2013-06-13 16:31:33 +02:00
Matt T. Proud
f895acb9ef Trailing build system cleanups.
The .gitignore files had problems, and the build steps could be
simplified.
2013-06-13 15:38:03 +02:00
Johannes 'fish' Ziemke
56249320e3 Remove gvm on travis. 2013-06-13 14:36:00 +02:00
Johannes 'fish' Ziemke
4524a5fe37 Remove gvm and install go by hand. 2013-06-12 18:39:37 +02:00
Matt T. Proud
2ee6e32847 Include race condition runner. 2013-06-05 14:07:40 +02:00
Matt T. Proud
9215580488 Include race condition binary target.
The race condition binary target is special in that it needs to
explicitly link against the dependent libraries and recompile the CGO
bindings.  Because of this, we have a new build target that produces
these binaries.
2013-06-05 13:56:15 +02:00
Johannes 'fish' Ziemke
8507c58bf2 Fix filename in Makefile. 2013-05-23 16:54:21 +02:00
Matt T. Proud
93da3f684a Instruct `make binary` to build binary file. 2013-05-22 17:59:53 +02:00
Matt T. Proud
fa6a1f97d0 Expose interfaces for pruner and make pruner tool.
In order to run database cleanups and diagnostics, we should have
a means for pruning a database---even if LevelDB does this for us.
2013-05-10 17:07:03 +02:00
Julius Volz
af7920126c Fix build errors and add default build step to "make". 2013-05-07 15:54:41 +02:00
Matt T. Proud
3b9b1c6ab4 Define dependencies for web. stack concretely.
This commit destroys the use of AppState, which makes passing
concrete state along to various serving components onerous.
2013-05-06 11:13:12 +02:00
Julius Volz
9cea5d9df8 Convert the Prometheus configuration to protocol buffers. 2013-04-30 22:26:00 +02:00
Bernerd Schaefer
378e494433 Date format for build info doesn't include spaces
go 1.0.3 doesn't support spaces in -X linker options.
2013-04-25 15:07:35 +02:00
Bernerd Schaefer
9dde9302a8 Explicitly include domain info in build hostname 2013-04-25 13:19:35 +02:00
Bernerd Schaefer
033533c4c5 Capture build information and print with -version 2013-04-25 11:47:48 +02:00
Matt T. Proud
9e02c2393a Include generated Protocol Buffer descriptor.
The Protocol Buffer compiler supports generating a machine-readable
descriptor file encoded as a provided Protocol Buffer message type,
which can be used to decode messages that have been encoded with it
after-the-fact.  The generated descriptor also bundles in dependent
message types.

We can use this to perform forensics on old Prometheus clients, if
necessary.
2013-04-24 16:59:40 +02:00
Matt T. Proud
32c0a939b0 New self-sustaining, hermetic build system.
This should help us produce self-contained artifacts for users as
well as lower the hurdles for first-time contributors.
2013-04-17 09:34:24 +02:00
Julius Volz
8b91bffa1d Make Travis test runs verbose. 2013-03-28 18:30:24 +01:00
Matt T. Proud
c53a72a894 Test data for the curator. 2013-03-27 18:13:43 +01:00
Matt T. Proud
3e97a3630d Include nascent curator scaffolding.
The curator doesn't do anything yet; rather, this is the type
definition including the anciliary testing scaffold.

Improve Makefile and Git developer experience.

The top-level Makefile was a bit overloaded in terms of generation of
assets and their management.  This has been offloaded into separate
Makefiles.

The Git developer experience sucked due to lack of .gitignore
policies.

Also: Fix faulty skiplist naming from old merge.
2013-03-25 19:38:14 +01:00
Matt T. Proud
44d6ad9eee Do not run `govet with -v`.
This is per https://code.google.com/p/go/issues/detail?id=2507.
2013-03-21 18:08:47 +01:00
Johannes 'fish' Ziemke
1f80b17cb7 Remove temporary debugging. 2013-03-20 15:15:11 +01:00
Johannes 'fish' Ziemke
a985a723a1 Remove echo -e because it's not available on Travis.
Instead, files.go gets piped through gofmt.
2013-03-20 12:58:41 +01:00
Johannes 'fish' Ziemke
aed8270a97 Enable debugging (set -x) on embed-static.sh. 2013-03-20 12:58:14 +01:00
Johannes 'fish' Ziemke
fc16580b4c Ship assets in compiled binary.
- utility/embed-static.sh, get called in Makefile to create go map from files
- web/blob/blob.go implements http Handle for serving the files from the map
- web/status.go uses blog.GetFile() to get the template file

The assets are gzipped and decompressed on demand.
2013-03-19 17:40:27 +01:00
Julius Volz
d67e4b9131 Address outstanding comments from PR/47 and other cleanups. 2013-02-07 11:38:01 +01:00
Matt T. Proud
ec3e98b365 Include Snappy in Runtime.
Snappy should have been explicitly included in the runtime, for I
erroneously thought that LevelDB bundled this into its runtime as-is.
It turns out that this assumption is wrong, and I thought we had
Snappy compression support all-along.
2013-02-01 13:35:07 +01:00
Matt T. Proud
15cc7744cd Add advice target to makefile. 2013-01-27 17:53:20 +01:00
Julius Volz
56384bf42a Add initial config and rule language implementation. 2013-01-07 23:43:36 +01:00
Matt T. Proud
4f0f8f9552 Take into account nuances for Mac OS X. :-( 2012-12-01 13:30:23 +01:00
Matt T. Proud
43aeba2699 Instruct `gofmt` to simplify output. 2012-11-29 20:42:32 +01:00
Matt T. Proud
c1f0d8aefd Levigo -> LevelDB in terminology and references. 2012-11-28 20:25:19 +01:00