diff --git a/0002-Default-settings.patch b/0002-Default-settings.patch index 71d2ed1..43c7f6f 100644 --- a/0002-Default-settings.patch +++ b/0002-Default-settings.patch @@ -1,38 +1,30 @@ -Index: prometheus-1.5.2/cmd/prometheus/config.go +Index: prometheus-2.0.0~rc1/cmd/prometheus/main.go =================================================================== ---- prometheus-1.5.2.orig/cmd/prometheus/config.go -+++ prometheus-1.5.2/cmd/prometheus/config.go -@@ -73,7 +73,8 @@ func init() { - "Print version information.", - ) - cfg.fs.StringVar( -- &cfg.configFile, "config.file", "prometheus.yml", -+ &cfg.configFile, "config.file", -+ "/etc/prometheus/prometheus.yml", - "Prometheus configuration file name.", - ) +--- prometheus-2.0.0~rc1.orig/cmd/prometheus/main.go ++++ prometheus-2.0.0~rc1/cmd/prometheus/main.go +@@ -105,7 +105,7 @@ func main() { + a.HelpFlag.Short('h') -@@ -111,17 +112,20 @@ func init() { - "Enable remote service shutdown.", - ) - cfg.fs.StringVar( -- &cfg.web.ConsoleTemplatesPath, "web.console.templates", "consoles", -+ &cfg.web.ConsoleTemplatesPath, "web.console.templates", -+ "/etc/prometheus/consoles", - "Path to the console template directory, available at /consoles.", - ) - cfg.fs.StringVar( -- &cfg.web.ConsoleLibrariesPath, "web.console.libraries", "console_libraries", -+ &cfg.web.ConsoleLibrariesPath, "web.console.libraries", -+ "/etc/prometheus/console_libraries", - "Path to the console library directory.", - ) + a.Flag("config.file", "Prometheus configuration file path."). +- Default("prometheus.yml").StringVar(&cfg.configFile) ++ Default("/etc/prometheus/prometheus.yml").StringVar(&cfg.configFile) - // Storage. - cfg.fs.StringVar( -- &cfg.storage.PersistenceStoragePath, "storage.local.path", "data", -+ &cfg.storage.PersistenceStoragePath, "storage.local.path", -+ "/var/lib/prometheus/metrics", - "Base path for metrics storage.", - ) - cfg.fs.IntVar( + a.Flag("web.listen-address", "Address to listen on for UI, API, and telemetry."). + Default("0.0.0.0:9090").StringVar(&cfg.web.ListenAddress) +@@ -135,13 +135,13 @@ func main() { + Default("false").BoolVar(&cfg.web.EnableAdminAPI) + + a.Flag("web.console.templates", "Path to the console template directory, available at /consoles."). +- Default("consoles").StringVar(&cfg.web.ConsoleTemplatesPath) ++ Default("/etc/prometheus/consoles").StringVar(&cfg.web.ConsoleTemplatesPath) + + a.Flag("web.console.libraries", "Path to the console library directory."). +- Default("console_libraries").StringVar(&cfg.web.ConsoleLibrariesPath) ++ Default("/etc/prometheus/console_libraries").StringVar(&cfg.web.ConsoleLibrariesPath) + + a.Flag("storage.tsdb.path", "Base path for metrics storage."). +- Default("data/").StringVar(&cfg.localStoragePath) ++ Default("/var/lib/prometheus/metrics/").StringVar(&cfg.localStoragePath) + + a.Flag("storage.tsdb.min-block-duration", "Minimum duration of a data block before being persisted."). + Default("2h").SetValue(&cfg.tsdb.MinBlockDuration) diff --git a/_service b/_service index 69e46c6..ec31a14 100644 --- a/_service +++ b/_service @@ -3,8 +3,8 @@ https://github.com/prometheus/prometheus.git git .git - 1.5.2 - v1.5.2 + 2.0.0 + v2.0.0 prometheus-*.tar diff --git a/golang-github-prometheus-prometheus.changes b/golang-github-prometheus-prometheus.changes index 13cb1ee..a1ed28f 100644 --- a/golang-github-prometheus-prometheus.changes +++ b/golang-github-prometheus-prometheus.changes @@ -1,3 +1,165 @@ +------------------------------------------------------------------- +Thu Nov 9 07:30:09 UTC 2017 - tserong@suse.com + +- Update to final v2.0.0 release (bsc#1067341): + + Compared to version 1.x, this release includes a completely rewritten + storage engine, huge performance improvements, but also many backwards + incompatible changes. For more information, read the announcement blog + post and migration guide: + - https://prometheus.io/blog/2017/11/08/announcing-prometheus-2-0/ + - https://prometheus.io/docs/prometheus/2.0/migration/ + + Changes: + * Completely rewritten storage layer, with WAL. This is not backwards + compatible with 1.x storage, and many flags have changed/disappeared. + * New staleness behavior. Series now marked stale after target scrapes + no longer return them, and soon after targets disappear from service + discovery. + * Rules files use YAML syntax now. Conversion tool added to promtool. + * Removed count_scalar, drop_common_labels functions and keep_common + modifier from PromQL. + * Rewritten exposition format parser with much higher performance. The + Protobuf exposition format is no longer supported. + * Example console templates updated for new storage and metrics names. + Examples other than node exporter and Prometheus removed. + * Admin and lifecycle APIs now disabled by default, can be reenabled via + flags + * Flags switched to using Kingpin, all flags are now --flagname rather + than -flagname. + + Features: + * Remote read can be configured to not read data which is available + locally. This is enabled by default. + * Rules can be grouped now. Rules within a rule group are executed + sequentially. + * Added experimental GRPC apis + * Add timestamp() function to PromQL. + + Enhancements: + * Remove remote read from the query path if no remote storage is + configured. + * Bump Consul HTTP client timeout to not match the Consul SD watch + timeout. + * Go-conntrack added to provide HTTP connection metrics. + + Bug Fixes: + * Fix connection leak in Consul SD. + +------------------------------------------------------------------- +Tue Nov 7 23:30:46 UTC 2017 - tserong@suse.com + +- Update to v2.0.0-rc.3 (bsc#1067030): + + Enhancements: + * Remove remote read from the query path if no remote storage + is configured. + * Bump Consul HTTP client timeout to not match the Consul SD + watch timeout. + * Bump up a too small max block duration to the min block + duration instead of returning an error. + + Bug Fixes: + * Avoid needless padding of 4 zero bytes in index files. + * Delete old blocks during reload (necessary on MS Windows). + * Fix regression of alert rules state loss on config reload. + * Serialize background WAL operations to avoid data races. + + This also contains bugfixes and remote-storage features from + the 1.8 branch. + +------------------------------------------------------------------- +Fri Oct 27 02:06:17 UTC 2017 - tserong@suse.com + +- Update to v2.0.0-rc.2 (bsc#1065377): + + Enhancements: + * Handle WAL segments with corrupted header gracefully + * Stabilize memory usage during WAL replay + + Changes: + * Prefix all storage metrics with prometheus_ + + Bug Fixes: + * Correctly handle label removal in remote read + * Fix chunk misalignment causing out-of-order samples + * Fix connection leak in Consul SD + * Handle invalid chunk dereferences gracefully + * Prevent potential deadlock during failing querier construction + +------------------------------------------------------------------- +Thu Oct 19 00:00:32 UTC 2017 - tserong@suse.com + +- Update to v2.0.0-rc.1: + + Features/Enhancements: + * Added a warning for time-drift between the browser and the + prometheus-server. + * Much faster WAL read-back on restart. + + Bug Fixes: + * Fixed Remote-read to not drop the first series. + * Validate recording-rule names. + * Fix several races. + * Only close blocks if there are no iterators accessing it. +- Refresh 0002-Default-settings.patch + +------------------------------------------------------------------- +Wed Oct 11 01:13:03 UTC 2017 - tserong@suse.com + +- Update to v2.0.0-rc.0: + + Numerous changes to the new storage layer, the main changes being: + * Remove `count_scalar`, `keep_common` and `drop_common_labels` functions + * Breaking change in the index format for better consistency + * Fix panic due garbage collected mmap'ed strings + * Fix broken snapshots and admin APIs + * Send HTTP Accept header when scraping + * Use the WAL flush interval passed instead of the hardcoded value + + This release requires a clean storage directory and is not compatible + with files created by previous beta releases +- Refresh 0002-Default-settings.patch + +------------------------------------------------------------------- +Sun Sep 24 15:11:37 UTC 2017 - tserong@suse.com + +- Fix loopback address for REST API gateway (bsc#1059462) + + Added pr-3174.patch + +------------------------------------------------------------------- +Fri Sep 22 08:07:50 UTC 2017 - tserong@suse.com + +- Update to v2.0.0-beta.5: + + Bug Fixes: + * Remove deadlock on startup when restoring WAL + * Fix semantical races resulting in invalid persisted files + * Correctly read back WAL in certain edge cases + * Prevent crashes caused by changing metric representations in target's + /metrics + + Enhancements: + * Overall memory usage reduction + * Serve debugging endpoints while TSDB is loading + * Healthy endpoint correctly reflects liveness during startup + * Switch to consistent usage of go-kit/log + + This release may have issues with files written by previous beta releases +- Refresh 0002-Default-settings.patch to apply cleanly again + +------------------------------------------------------------------- +Mon Sep 18 12:18:17 UTC 2017 - tserong@suse.com + +- Update to v2.0.0-beta.4: + + Numerous changes to the new storage layer, the main changes being: + * Single, compacted write ahead log + * Single in-memory block with garbage collection + * Improve compression of index files + * Cache series dropped via metric_relabel_configs + * Pool byte buffers for scraping + + Overall the changes achieve a baseline reduction in memory consumption + and reduce peak memory usage by 30-40% compared to 2.0.0-beta.2 + + This release requires a clean storage directory and is not compatible + with files created by previous beta releases + +------------------------------------------------------------------- +Tue Aug 22 08:10:18 UTC 2017 - tserong@suse.com + +- Update to v2.0.0-beta.2 + + vendor: update prometheus/tsdb (Fix panic caused by 0 division) + +------------------------------------------------------------------- +Wed Aug 16 02:17:42 UTC 2017 - tserong@suse.com + +- Update to v2.0.0-beta.1 + + Includes a new storage layer, which reduces bottlenecks and shows + considerable performance improvements, but does not work with old v1 + storage data. +- Refresh 0002-Default-settings.patch to apply cleanly again + ------------------------------------------------------------------- Tue May 9 05:32:44 UTC 2017 - tserong@suse.com diff --git a/golang-github-prometheus-prometheus.spec b/golang-github-prometheus-prometheus.spec index 321f06b..194eb9f 100644 --- a/golang-github-prometheus-prometheus.spec +++ b/golang-github-prometheus-prometheus.spec @@ -18,7 +18,7 @@ %{go_nostrip} Name: golang-github-prometheus-prometheus -Version: 1.5.2 +Version: 2.0.0 Release: 0 License: Apache-2.0 Summary: The Prometheus monitoring system and time series database @@ -30,6 +30,8 @@ Source2: prometheus.yml Patch1: 0001-Do-not-force-the-pure-Go-name-resolver.patch # Lifted from Debian's prometheus package Patch2: 0002-Default-settings.patch +# Fix loopback address for REST API gateway (v2) #3174 +Patch100: pr-3174.patch %ifarch aarch64 # For some reason the aarch64 build fails with: # + promu build @@ -66,6 +68,7 @@ Prometheus's main features are: %setup -q -n prometheus-%{version} %patch1 -p 1 %patch2 -p 1 +%patch100 -p 1 %build %goprep github.com/prometheus/prometheus diff --git a/pr-3174.patch b/pr-3174.patch new file mode 100644 index 0000000..37ba691 --- /dev/null +++ b/pr-3174.patch @@ -0,0 +1,80 @@ +From 49798c915f249922fb1e1ee87be98b1977ee2579 Mon Sep 17 00:00:00 2001 +From: Hylke Visser +Date: Thu, 14 Sep 2017 17:20:22 +0200 +Subject: [PATCH 1/3] Fix REST API gateway loopback address + +--- + web/web.go | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/web/web.go b/web/web.go +index 13d37dfdb..0d4e93221 100644 +--- a/web/web.go ++++ b/web/web.go +@@ -391,7 +391,14 @@ func (h *Handler) Run(ctx context.Context) error { + ) + av2.RegisterGRPC(grpcSrv) + +- hh, err := av2.HTTPHandler(grpcl.Addr().String()) ++ lAddr := grpcl.Addr().String() ++ host, port, _ := net.SplitHostPort(lAddr) ++ ip := net.ParseIP(host) ++ if ip.Equal(net.IPv4zero) || ip.Equal(net.IPv6zero) { ++ lAddr = net.JoinHostPort("localhost", port) ++ } ++ ++ hh, err := av2.HTTPHandler(lAddr) + if err != nil { + return err + } + +From 1d3d6614ffe6d04d0b6ae7046bac1709057f4f04 Mon Sep 17 00:00:00 2001 +From: Hylke Visser +Date: Thu, 14 Sep 2017 21:39:29 +0200 +Subject: [PATCH 2/3] Add err check for SplitHostPort of Listener address + +--- + web/web.go | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/web/web.go b/web/web.go +index 0d4e93221..6e5054906 100644 +--- a/web/web.go ++++ b/web/web.go +@@ -392,7 +392,10 @@ func (h *Handler) Run(ctx context.Context) error { + av2.RegisterGRPC(grpcSrv) + + lAddr := grpcl.Addr().String() +- host, port, _ := net.SplitHostPort(lAddr) ++ host, port, err := net.SplitHostPort(lAddr) ++ if err != nil { ++ return err ++ } + ip := net.ParseIP(host) + if ip.Equal(net.IPv4zero) || ip.Equal(net.IPv6zero) { + lAddr = net.JoinHostPort("localhost", port) + +From b2ca81d57eafddc0ff2cbbcf6f00a85d6f81a536 Mon Sep 17 00:00:00 2001 +From: Hylke Visser +Date: Mon, 18 Sep 2017 14:53:45 +0200 +Subject: [PATCH 3/3] Add comment to explain the reason for PR #3174 + +--- + web/web.go | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/web/web.go b/web/web.go +index 6e5054906..c063963a3 100644 +--- a/web/web.go ++++ b/web/web.go +@@ -398,6 +398,10 @@ func (h *Handler) Run(ctx context.Context) error { + } + ip := net.ParseIP(host) + if ip.Equal(net.IPv4zero) || ip.Equal(net.IPv6zero) { ++ // The gRPC server is listening on an empty/wildcard address (0.0.0.0 or ::). ++ // We should be able to connect to an empty IP just fine, but as there were ++ // some issues with this in the past (#3004, #3149), we explicitly tell ++ // the REST API gateway to connect to localhost. + lAddr = net.JoinHostPort("localhost", port) + } + diff --git a/prometheus-1.5.2.tar.xz b/prometheus-1.5.2.tar.xz deleted file mode 100644 index d5e7a34..0000000 --- a/prometheus-1.5.2.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d66277db0bcb0d4507f7944eaaa2b37e194d15ef3716403318251637428fa3d2 -size 3213792 diff --git a/prometheus-2.0.0.tar.xz b/prometheus-2.0.0.tar.xz new file mode 100644 index 0000000..ecda17a --- /dev/null +++ b/prometheus-2.0.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6500fe9e195af5a2d5a35cace1e769a2e7816eb9354ccf2c4271c821d3ad4324 +size 3489704