diff --git a/0001-Do-not-force-the-pure-Go-name-resolver.patch b/0001-Do-not-force-the-pure-Go-name-resolver.patch index 8d8967b..e240904 100644 --- a/0001-Do-not-force-the-pure-Go-name-resolver.patch +++ b/0001-Do-not-force-the-pure-Go-name-resolver.patch @@ -1,6 +1,6 @@ -From 2d3ffcec3eca92e678077b64afc14b45b6e33643 Mon Sep 17 00:00:00 2001 -From: Silvio Moioli -Date: Tue, 28 Mar 2017 14:08:03 +0200 +From 29211c2f5e1ed47715789aa75d755002cddeba02 Mon Sep 17 00:00:00 2001 +From: Jan Fajerski +Date: Fri, 8 Feb 2019 09:17:06 +0100 Subject: [PATCH] Do not force the pure Go name resolver Revert to Go's default mechanism that will decide between the `netgo` @@ -8,23 +8,25 @@ pure-Go implementation and the `netcgo` cgo-based implementation depending on OS and environment variables. This allows, among other things, to use Prometheus to scrape mDNS targets. + +Signed-off-by: Jan Fajerski --- .promu.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.promu.yml b/.promu.yml -index 27aa3aa..6ad3011 100644 +index 5937513b..468ba2b5 100644 --- a/.promu.yml +++ b/.promu.yml -@@ -6,7 +6,7 @@ build: +@@ -10,7 +10,7 @@ build: path: ./cmd/prometheus - name: promtool path: ./cmd/promtool -- flags: -a -tags netgo -+ flags: -a +- flags: -mod=vendor -a -tags netgo ++ flags: -mod=vendor -a ldflags: | - -X {{repoPath}}/vendor/github.com/prometheus/common/version.Version={{.Version}} - -X {{repoPath}}/vendor/github.com/prometheus/common/version.Revision={{.Revision}} + -X github.com/prometheus/common/version.Version={{.Version}} + -X github.com/prometheus/common/version.Revision={{.Revision}} -- -2.7.4 +2.20.1 diff --git a/0002-Default-settings.patch b/0002-Default-settings.patch index b23e0e8..c745862 100644 --- a/0002-Default-settings.patch +++ b/0002-Default-settings.patch @@ -1,7 +1,18 @@ -diff -ruN -x '*~' -x '*.o' -x '*.a' -x '*.so' -x '*.so.[0-9]' -x autom4te.cache -x .deps -x .libs ../orig-prometheus-2.1.0/cmd/prometheus/main.go ./cmd/prometheus/main.go ---- ../orig-prometheus-2.1.0/cmd/prometheus/main.go 2018-01-19 12:54:28.000000000 +0100 -+++ ./cmd/prometheus/main.go 2018-01-25 12:07:27.050849457 +0100 -@@ -114,7 +114,7 @@ +From 6b1180bc4cb98e20afa0db6e738f5790a0c982c7 Mon Sep 17 00:00:00 2001 +From: Jan Fajerski +Date: Fri, 8 Feb 2019 09:28:12 +0100 +Subject: [PATCH] Adjust default settings + +Signed-off-by: Jan Fajerski +--- + cmd/prometheus/main.go | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/cmd/prometheus/main.go b/cmd/prometheus/main.go +index 045ec537..380296ab 100644 +--- a/cmd/prometheus/main.go ++++ b/cmd/prometheus/main.go +@@ -134,7 +134,7 @@ func main() { a.HelpFlag.Short('h') a.Flag("config.file", "Prometheus configuration file path."). @@ -10,7 +21,7 @@ diff -ruN -x '*~' -x '*.o' -x '*.a' -x '*.so' -x '*.so.[0-9]' -x autom4te.cache a.Flag("web.listen-address", "Address to listen on for UI, API, and telemetry."). Default("0.0.0.0:9090").StringVar(&cfg.web.ListenAddress) -@@ -144,13 +144,13 @@ +@@ -164,16 +164,16 @@ func main() { Default("false").BoolVar(&cfg.web.EnableAdminAPI) a.Flag("web.console.templates", "Path to the console template directory, available at /consoles."). @@ -21,9 +32,15 @@ diff -ruN -x '*~' -x '*.o' -x '*.a' -x '*.so' -x '*.so.[0-9]' -x autom4te.cache - Default("console_libraries").StringVar(&cfg.web.ConsoleLibrariesPath) + Default("/etc/prometheus/console_libraries").StringVar(&cfg.web.ConsoleLibrariesPath) + a.Flag("web.page-title", "Document title of Prometheus instance."). + Default("Prometheus Time Series Collection and Processing Server").StringVar(&cfg.web.PageTitle) + 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. For use in testing."). Hidden().Default("2h").SetValue(&cfg.tsdb.MinBlockDuration) +-- +2.20.1 + diff --git a/_service b/_service index ec31a14..5072cde 100644 --- a/_service +++ b/_service @@ -3,8 +3,8 @@ https://github.com/prometheus/prometheus.git git .git - 2.0.0 - v2.0.0 + 2.7.1 + v2.7.1 prometheus-*.tar diff --git a/golang-github-prometheus-prometheus.changes b/golang-github-prometheus-prometheus.changes index 36400ae..6b28318 100644 --- a/golang-github-prometheus-prometheus.changes +++ b/golang-github-prometheus-prometheus.changes @@ -1,3 +1,240 @@ +------------------------------------------------------------------- +Fri Feb 22 09:20:11 UTC 2019 - Jan Fajerski + +- fix spec file: actually ship promtool + +------------------------------------------------------------------- +Fri Feb 8 07:24:59 UTC 2019 - Jan Fajerski + +- Update to 2.7.1: + + Bug Fixes: + * Fix a Stored DOM XSS vulnerability with query history (boo#1124610) + * prometheus_rule_group_last_duration_seconds now reports seconds instead of nanoseconds + * Make sure the targets are consistently sorted in the targets page +- Update to 2.7.0: + + cli flag depreacted: storage.tsdb.retention use storage.tsdb.retention.time + instead; depreacted flag will be removed in 3.0 + + Features: + * Add subqueries to PromQL + * Add support for disk size based retention. Note that we don't + consider the WAL size which could be significant and the time + based retention policy also applies (experimental) + * Add CORS origin flag + + Bug Fixes: + * Don't depend on given order when comparing samples in alert unit testing + * Make sure the retention period doesn't overflow + * Don't generate blocks with no samples +- Update to 2.6.0: + + Remove default flags from the container's entrypoint, run Prometheus from + /etc/prometheus and symlink the storage directory to /etc/prometheus/data + + Promtool: Remove the update command + + Features: + * Add JSON log format via the --log.format flag + * API: Add /api/v1/labels endpoint to get all label names + * Web: Allow setting the page's title via the --web.ui-title flag + + Enhancements: + * Add prometheus_tsdb_lowest_timestamp_seconds, prometheus_tsdb_head_min_time_seconds + and prometheus_tsdb_head_max_time_seconds metrics + * Add rule_group_last_evaluation_timestamp_seconds metric + * Add prometheus_template_text_expansion_failures_total and prometheus_template_text_expansions_total metrics + * Set consistent User-Agent header in outgoing requests + * Azure SD: Error out at load time when authentication parameters are missing + * EC2 SD: Add the machine's private DNS name to the discovery metadata + * EC2 SD: Add the operating system's platform to the discovery metadata + * Kubernetes SD: Add the pod's phase to the discovery metadata + * Kubernetes SD: Log Kubernetes messages + * Promtool: Collect CPU and trace profiles + * Promtool: Support writing output as JSON + * Remote Read: Return available data if remote read fails partially + * Remote Write: Improve queue performance + * Remote Write: Add min_shards parameter to set the minimum number of shards + * TSDB: Improve WAL reading + * TSDB: Memory improvements + * Web: Log stack traces on panic + * Web UI: Add copy to clipboard button for configuration + * Web UI: Support console queries at specific times + * Web UI: group targets by job then instance + + Bug Fixes: + * Deduplicate handler labels for HTTP metrics + * Fix leaked queriers causing shutdowns to hang + * Fix configuration loading panics on nil pointer slice elements + * API: Correctly skip mismatching targets on /api/v1/targets/metadata + * API: Better rounding for incoming query timestamps + * Discovery: Remove all targets when the scrape configuration gets empty + * PromQL: Fix a goroutine leak in the lexer/parser + * Scrape: Fix deadlock in the scrape's manager + * Scrape: Scrape targets at fixed intervals even after Prometheus restarts + * TSDB: Support restored snapshots including the head properly + * TSDB: Repair WAL when the last record in a segment is torn +- Update to 2.5.0 + + Group targets by scrape config instead of job name + + Marathon SD: Various changes to adapt to Marathon 1.5+ + + Discovery: Split prometheus_sd_discovered_targets metric by scrape and + notify (Alertmanager SD) as well as by section in the respective configuration + + Enhancements: + * Support s390x platform for Linux + * API: Add prometheus_api_remote_read_queries metric tracking currently + executed or waiting remote read API requests + * Remote Read: Add prometheus_remote_storage_remote_read_queries metric + tracking currently in-flight remote read queries + * Remote Read: Reduced memory usage + * Discovery: Add prometheus_sd_discovered_targets, + prometheus_sd_received_updates_total, prometheus_sd_updates_delayed_total, + and prometheus_sd_updates_total metrics for discovery subsystem + * Discovery: Improve performance of previously slow updates of changes of targets + * Kubernetes SD: Add extended metrics + * OpenStack SD: Support discovering instances from all projects + * OpenStack SD: Discover all interfaces + * OpenStack SD: Support tls_config for the used HTTP client + * Triton SD: Add ability to filter triton_sd targets by pre-defined groups + * Web UI: Avoid browser spell-checking in expression field + * Web UI: Add scrape duration and last evaluation time in targets and rules pages + * Web UI: Improve rule view by wrapping lines + * Rules: Error out at load time for invalid templates, rather than at evaluation time + + Bug Fixes: + * Change max/min over_time to handle NaNs properly + * Check label name for count_values PromQL function + * Ensure that vectors and matrices do not contain identical label-sets +- Update to 2.4.3 + + Bug Fixes: + [BUGFIX] Fix panic when using custom EC2 API for SD #4672 + [BUGFIX] Fix panic when Zookeeper SD cannot connect to servers #4669 + [BUGFIX] Make the skip_head an optional parameter for snapshot API #4674 +- Update to 2.4.2 + + Bug Fixes: + [BUGFIX] Handle WAL corruptions properly prometheus/tsdb#389 + [BUGFIX] Handle WAL migrations correctly on Windows prometheus/tsdb#392 +- Update to 2.4.1 + + New TSDB metrics + + Bug Fixes: + Render UI correctly for Windows +- Update to 2.4.0 + + The WAL implementation has been re-written so the storage is not forward + compatible. Prometheus 2.3 storage will work on 2.4 but not vice-versa + + Reduce remote write default retries + + Remove /heap endpoint + + Features: + * Persist alert 'for' state across restarts + * Add API providing per target metric metadata + * Add API providing recording and alerting rules + + Enhancements: + * Brand new WAL implementation for TSDB. Forwards incompatible with previous WAL. + * Show rule evaluation errors in UI + * Throttle resends of alerts to Alertmanager + * Send EndsAt along with the alert to Alertmanager + * Limit the samples returned by remote read endpoint + * Limit the data read in through remote read + * Coalesce identical SD configuations + * promtool: Add new commands for debugging and querying + * Update console examples for node_exporter v0.16.0 + * Optimize PromQL aggregations + * Remote read: Add Offset to hints + * consul_sd: Add support for ServiceMeta field + * ec2_sd: Maintain order of subnet_id label + * ec2_sd: Add support for custom endpoint to support EC2 compliant APIs + * ec2_sd: Add instance_owner label + * azure_sd: Add support for VMSS discovery and multiple environments + * gce_sd: Add instance_id label + * Forbid rule-abiding robots from indexing + * Log virtual memory limits on startup + + Bug Fixes: + * Wait for service discovery to stop before exiting + * Render SD configs properly + * Only add LookbackDelta to vector selectors + * ec2_sd: Handle panic-ing nil pointer + * consul_sd: Stop leaking connections + * Use templated labels also to identify alerts + * Reduce floating point errors in stddev and related functions + * Log errors while encoding responses +- Update to 2.3.2 + + Bug Fixes: + * Fix various tsdb bugs + * Reorder startup and shutdown to prevent panics. + * Exit with non-zero code on error + * discovery/kubernetes/ingress: fix scheme discovery + * Fix race in zookeeper sd + * Better timeout handling in promql + * Propogate errors when selecting series from the tsdb +- Update to 2.3.1 + + Bug Fixes: + * Avoid infinite loop on duplicate NaN values. + * Fix nil pointer deference when using various API endpoints + * config: set target group source index during unmarshalling + * discovery/file: fix logging + * kubernetes_sd: fix namespace filtering + * web: restore old path prefix behavior + * web: remove security headers added in 2.3.0 +- Update to 2.3.0 + + marathon_sd: use auth_token and auth_token_file for token-based authentication + instead of bearer_token and bearer_token_file respectively + + Metric names for HTTP server metrics changed + + Features: + * Add query commands to promtool + * Add security headers to HTTP server responses + * Pass query hints via remote read API + * Basic auth passwords can now be configured via file across all configuration + + Enhancements: + * Optimise PromQL and API serialization for memory usage and allocations + * Limit number of dropped targets in web UI + * Consul and EC2 service discovery allow using server-side filtering for performance improvement + * Add advanced filtering configuration to EC2 service discovery + * marathon_sd: adds support for basic and bearer authentication, plus all + other common HTTP client options (TLS config, proxy URL, etc.) + * Provide machine type metadata and labels in GCE service discovery + * Add pod controller kind and name to Kubernetes service discovery data + * Move TSDB to flock-based log file that works with Docker containers + + Bug Fixes: + * Properly propagate storage errors in PromQL + * Fix path prefix for web pages + * Fix goroutine leak in Consul service discovery + * Fix races in scrape manager + * Fix OOM for very large k in PromQL topk() queries + * Make remote write more resilient to unavailable receivers + * Make remote write shutdown cleanly + * Don't leak files on errors in TSDB's tombstone cleanup + * Unary minus expressions now removes the metric name from results + * Fix bug that lead to wrong amount of samples considered for time range expressions +- Update to 2.2.1 + + Bug Fixes: + * Fix data loss in TSDB on compaction + * Correctly stop timer in remote-write path + * Fix deadlock triggered by loading targets page + * Fix incorrect buffering of samples on range selection queries + * Handle large index files on windows properly +- Update to 2.2.0 + + This release introduces improvements to the storage format and fixes a + regression introduced in 2.1. As a result Prometheus servers upgraded + to 2.2 cannot be downgraded to a lower version anymore! + + Rename file SD mtime metric + + Send target update on empty pod IP in Kubernetes SD + + Features: + * Add API endpoint for flags. + * Add API endpoint for dropped targets. + * Display annotations on alerts page. + * Add option to skip head data when taking snapshots + + Enhancements: + * Federation performance improvement. + * Read bearer token file on every scrape. + * Improve typeahead on /graph page. + * Change rule file formatting. + * Set consul server default to localhost:8500. + * Add dropped Alertmanagers to API info endpoint. + * Add OS type meta label to Azure SD. + * Validate required fields in SD configuration. + + Bug Fixes: + * Prevent stack overflow on deep recursion in TSDB. + * Correctly read offsets in index files that are greater than 4GB. + * Fix scraping behavior for empty labels. + * Drop metric name for bool modifier. + * Fix races in discovery. + * Fix Kubernetes endpoints SD for empty subsets. + * Throttle updates from SD providers, which caused increased CPU usage and allocations. + * Fix TSDB block reload issue. + * Fix PromQL printing of empty without(). + * Don't reset FiredAt for inactive alerts. + * Fix erroneous file version changes and repair existing data. +- remove pr-3174.patch, has been fixed in https://github.com/prometheus/prometheus/pull/3517 + ------------------------------------------------------------------- Wed Mar 14 07:20:23 UTC 2018 - jan.fajerski@suse.com diff --git a/golang-github-prometheus-prometheus.spec b/golang-github-prometheus-prometheus.spec index a8acc77..324873e 100644 --- a/golang-github-prometheus-prometheus.spec +++ b/golang-github-prometheus-prometheus.spec @@ -1,6 +1,7 @@ # # spec file for package golang-github-prometheus-prometheus # +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2017 Silvio Moioli # # All modifications and additions to the file contributed by third parties @@ -12,26 +13,25 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # + %{go_nostrip} Name: golang-github-prometheus-prometheus -Version: 2.1.0 +Version: 2.7.1 Release: 0 -License: Apache-2.0 Summary: The Prometheus monitoring system and time series database -Url: https://prometheus.io/ +License: Apache-2.0 Group: System/Management +Url: https://prometheus.io/ Source: prometheus-%{version}.tar.xz Source1: prometheus.service -Source2: prometheus.yml +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 @@ -49,6 +49,7 @@ BuildRequires: fdupes BuildRequires: golang-github-prometheus-promu BuildRequires: golang-packaging BuildRequires: xz +BuildRequires: golang(API) >= 1.11 BuildRoot: %{_tmppath}/%{name}-%{version}-build %{?systemd_requires} Requires(pre): shadow @@ -68,7 +69,6 @@ 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 @@ -77,7 +77,7 @@ GOPATH=%{_builddir}/go promu build %install %goinstall install -D -m0755 %{_builddir}/prometheus-%{version}/prometheus %{buildroot}/%{_bindir}/prometheus -install -D -m0755 %{_builddir}/prometheus-%{version}/prometheus %{buildroot}/%{_bindir}/promtool +install -D -m0755 %{_builddir}/prometheus-%{version}/promtool %{buildroot}/%{_bindir}/promtool %gosrc install -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/prometheus.service install -Dd -m 0755 %{buildroot}%{_sbindir} @@ -104,7 +104,8 @@ getent passwd prometheus >/dev/null || %{_sbindir}/useradd -r -g prometheus -d % %files -f file.lst %defattr(-,root,root,-) -%doc README.md LICENSE +%doc README.md +%license LICENSE %{_bindir}/prometheus %{_bindir}/promtool %{_unitdir}/prometheus.service diff --git a/pr-3174.patch b/pr-3174.patch deleted file mode 100644 index 6ea70e8..0000000 --- a/pr-3174.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff -ruN -x '*~' -x '*.o' -x '*.a' -x '*.so' -x '*.so.[0-9]' -x autom4te.cache -x .deps -x .libs ../orig-prometheus-2.1.0/web/web.go ./web/web.go ---- ../orig-prometheus-2.1.0/web/web.go 2018-01-19 12:54:28.000000000 +0100 -+++ ./web/web.go 2018-01-25 12:11:59.152359023 +0100 -@@ -414,7 +414,21 @@ - ) - av2.RegisterGRPC(grpcSrv) - -- hh, err := av2.HTTPHandler(h.options.ListenAddress) -+ lAddr := h.options.ListenAddress -+ host, port, err := net.SplitHostPort(lAddr) -+ if err != nil { -+ return err -+ } -+ 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) -+ } -+ -+ hh, err := av2.HTTPHandler(lAddr) - if err != nil { - return err - } diff --git a/prometheus-2.1.0.tar.xz b/prometheus-2.1.0.tar.xz deleted file mode 100644 index b45843d..0000000 --- a/prometheus-2.1.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7bfdcd36e75448465e1cbc5a8ca46721f3035a896b401130f406d2deb84ed3cf -size 3527616 diff --git a/prometheus-2.7.1.tar.xz b/prometheus-2.7.1.tar.xz new file mode 100644 index 0000000..9abc647 --- /dev/null +++ b/prometheus-2.7.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dba76906f00f2ecb379f6a183487574201cc98d7b2b4465e432c92d70b1f9667 +size 4268468