1
0
Stephan Kulow 2019-02-28 20:42:37 +00:00 committed by Git OBS Bridge
commit deca19e5cd
8 changed files with 287 additions and 56 deletions

View File

@ -1,6 +1,6 @@
From 2d3ffcec3eca92e678077b64afc14b45b6e33643 Mon Sep 17 00:00:00 2001 From 29211c2f5e1ed47715789aa75d755002cddeba02 Mon Sep 17 00:00:00 2001
From: Silvio Moioli <smoioli@suse.de> From: Jan Fajerski <jfajerski@suse.com>
Date: Tue, 28 Mar 2017 14:08:03 +0200 Date: Fri, 8 Feb 2019 09:17:06 +0100
Subject: [PATCH] Do not force the pure Go name resolver Subject: [PATCH] Do not force the pure Go name resolver
Revert to Go's default mechanism that will decide between the `netgo` 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. on OS and environment variables.
This allows, among other things, to use Prometheus to scrape mDNS targets. This allows, among other things, to use Prometheus to scrape mDNS targets.
Signed-off-by: Jan Fajerski <jfajerski@suse.com>
--- ---
.promu.yml | 2 +- .promu.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.promu.yml b/.promu.yml diff --git a/.promu.yml b/.promu.yml
index 27aa3aa..6ad3011 100644 index 5937513b..468ba2b5 100644
--- a/.promu.yml --- a/.promu.yml
+++ b/.promu.yml +++ b/.promu.yml
@@ -6,7 +6,7 @@ build: @@ -10,7 +10,7 @@ build:
path: ./cmd/prometheus path: ./cmd/prometheus
- name: promtool - name: promtool
path: ./cmd/promtool path: ./cmd/promtool
- flags: -a -tags netgo - flags: -mod=vendor -a -tags netgo
+ flags: -a + flags: -mod=vendor -a
ldflags: | ldflags: |
-X {{repoPath}}/vendor/github.com/prometheus/common/version.Version={{.Version}} -X github.com/prometheus/common/version.Version={{.Version}}
-X {{repoPath}}/vendor/github.com/prometheus/common/version.Revision={{.Revision}} -X github.com/prometheus/common/version.Revision={{.Revision}}
-- --
2.7.4 2.20.1

View File

@ -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 From 6b1180bc4cb98e20afa0db6e738f5790a0c982c7 Mon Sep 17 00:00:00 2001
--- ../orig-prometheus-2.1.0/cmd/prometheus/main.go 2018-01-19 12:54:28.000000000 +0100 From: Jan Fajerski <jfajerski@suse.com>
+++ ./cmd/prometheus/main.go 2018-01-25 12:07:27.050849457 +0100 Date: Fri, 8 Feb 2019 09:28:12 +0100
@@ -114,7 +114,7 @@ Subject: [PATCH] Adjust default settings
Signed-off-by: Jan Fajerski <jfajerski@suse.com>
---
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.HelpFlag.Short('h')
a.Flag("config.file", "Prometheus configuration file path."). 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."). a.Flag("web.listen-address", "Address to listen on for UI, API, and telemetry.").
Default("0.0.0.0:9090").StringVar(&cfg.web.ListenAddress) 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) Default("false").BoolVar(&cfg.web.EnableAdminAPI)
a.Flag("web.console.templates", "Path to the console template directory, available at /consoles."). 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("console_libraries").StringVar(&cfg.web.ConsoleLibrariesPath)
+ Default("/etc/prometheus/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."). a.Flag("storage.tsdb.path", "Base path for metrics storage.").
- Default("data/").StringVar(&cfg.localStoragePath) - Default("data/").StringVar(&cfg.localStoragePath)
+ Default("/var/lib/prometheus/metrics/").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."). 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) Hidden().Default("2h").SetValue(&cfg.tsdb.MinBlockDuration)
--
2.20.1

View File

@ -3,8 +3,8 @@
<param name="url">https://github.com/prometheus/prometheus.git</param> <param name="url">https://github.com/prometheus/prometheus.git</param>
<param name="scm">git</param> <param name="scm">git</param>
<param name="exclude">.git</param> <param name="exclude">.git</param>
<param name="versionformat">2.0.0</param> <param name="versionformat">2.7.1</param>
<param name="revision">v2.0.0</param> <param name="revision">v2.7.1</param>
</service> </service>
<service name="recompress" mode="disabled"> <service name="recompress" mode="disabled">
<param name="file">prometheus-*.tar</param> <param name="file">prometheus-*.tar</param>

View File

@ -1,3 +1,240 @@
-------------------------------------------------------------------
Fri Feb 22 09:20:11 UTC 2019 - Jan Fajerski <jan.fajerski@suse.com>
- fix spec file: actually ship promtool
-------------------------------------------------------------------
Fri Feb 8 07:24:59 UTC 2019 - Jan Fajerski <jan.fajerski@suse.com>
- 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 Wed Mar 14 07:20:23 UTC 2018 - jan.fajerski@suse.com

View File

@ -1,6 +1,7 @@
# #
# spec file for package golang-github-prometheus-prometheus # spec file for package golang-github-prometheus-prometheus
# #
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2017 Silvio Moioli <moio@suse.com> # Copyright (c) 2017 Silvio Moioli <moio@suse.com>
# #
# All modifications and additions to the file contributed by third parties # 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) # license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative. # 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} %{go_nostrip}
Name: golang-github-prometheus-prometheus Name: golang-github-prometheus-prometheus
Version: 2.1.0 Version: 2.7.1
Release: 0 Release: 0
License: Apache-2.0
Summary: The Prometheus monitoring system and time series database Summary: The Prometheus monitoring system and time series database
Url: https://prometheus.io/ License: Apache-2.0
Group: System/Management Group: System/Management
Url: https://prometheus.io/
Source: prometheus-%{version}.tar.xz Source: prometheus-%{version}.tar.xz
Source1: prometheus.service Source1: prometheus.service
Source2: prometheus.yml Source2: prometheus.yml
Patch1: 0001-Do-not-force-the-pure-Go-name-resolver.patch Patch1: 0001-Do-not-force-the-pure-Go-name-resolver.patch
# Lifted from Debian's prometheus package # Lifted from Debian's prometheus package
Patch2: 0002-Default-settings.patch Patch2: 0002-Default-settings.patch
# Fix loopback address for REST API gateway (v2) #3174
Patch100: pr-3174.patch
%ifarch aarch64 %ifarch aarch64
# For some reason the aarch64 build fails with: # For some reason the aarch64 build fails with:
# + promu build # + promu build
@ -49,6 +49,7 @@ BuildRequires: fdupes
BuildRequires: golang-github-prometheus-promu BuildRequires: golang-github-prometheus-promu
BuildRequires: golang-packaging BuildRequires: golang-packaging
BuildRequires: xz BuildRequires: xz
BuildRequires: golang(API) >= 1.11
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%{?systemd_requires} %{?systemd_requires}
Requires(pre): shadow Requires(pre): shadow
@ -68,7 +69,6 @@ Prometheus's main features are:
%setup -q -n prometheus-%{version} %setup -q -n prometheus-%{version}
%patch1 -p 1 %patch1 -p 1
%patch2 -p 1 %patch2 -p 1
%patch100 -p 1
%build %build
%goprep github.com/prometheus/prometheus %goprep github.com/prometheus/prometheus
@ -77,7 +77,7 @@ GOPATH=%{_builddir}/go promu build
%install %install
%goinstall %goinstall
install -D -m0755 %{_builddir}/prometheus-%{version}/prometheus %{buildroot}/%{_bindir}/prometheus 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 %gosrc
install -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/prometheus.service install -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/prometheus.service
install -Dd -m 0755 %{buildroot}%{_sbindir} 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 %files -f file.lst
%defattr(-,root,root,-) %defattr(-,root,root,-)
%doc README.md LICENSE %doc README.md
%license LICENSE
%{_bindir}/prometheus %{_bindir}/prometheus
%{_bindir}/promtool %{_bindir}/promtool
%{_unitdir}/prometheus.service %{_unitdir}/prometheus.service

View File

@ -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
}

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7bfdcd36e75448465e1cbc5a8ca46721f3035a896b401130f406d2deb84ed3cf
size 3527616

3
prometheus-2.7.1.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:dba76906f00f2ecb379f6a183487574201cc98d7b2b4465e432c92d70b1f9667
size 4268468