Compare commits
No commits in common. "922cbc9606b31da732b28c411427b52cb2fbf0d1" and "aba3d449fbcfab3b663a137936833fea2c8a0808" have entirely different histories.
922cbc9606
...
aba3d449fb
@ -1,85 +0,0 @@
|
|||||||
From 92c8d1e028bc6a102bb578e03ba19776bff379ed Mon Sep 17 00:00:00 2001
|
|
||||||
From: marie <marie.payne@hotmail.ca>
|
|
||||||
Date: Thu, 7 Oct 2021 06:10:11 -0400
|
|
||||||
Subject: [PATCH] Log shutdown gracefully (#428)
|
|
||||||
|
|
||||||
Log graceful shutdown at info level only
|
|
||||||
|
|
||||||
reference:
|
|
||||||
https://github.com/prometheus/pushgateway/commit/92c8d1e028bc6a102bb578e03ba19776bff379ed
|
|
||||||
|
|
||||||
Signed-off-by: mjip <marie.payne@hotmail.ca>
|
|
||||||
---
|
|
||||||
main.go | 29 ++++++++++++++++++-----------
|
|
||||||
1 file changed, 18 insertions(+), 11 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/main.go b/main.go
|
|
||||||
index bdf61e8..2927d71 100644
|
|
||||||
--- a/main.go
|
|
||||||
+++ b/main.go
|
|
||||||
@@ -14,6 +14,7 @@
|
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
+ "context"
|
|
||||||
"fmt"
|
|
||||||
"net"
|
|
||||||
"net/http"
|
|
||||||
@@ -25,7 +26,6 @@ import (
|
|
||||||
"path/filepath"
|
|
||||||
"strings"
|
|
||||||
"syscall"
|
|
||||||
- "time"
|
|
||||||
|
|
||||||
"github.com/go-kit/kit/log"
|
|
||||||
"github.com/go-kit/kit/log/level"
|
|
||||||
@@ -191,13 +191,20 @@ func main() {
|
|
||||||
|
|
||||||
mux.Handle(apiPath+"/v1/", http.StripPrefix(apiPath+"/v1", av1))
|
|
||||||
|
|
||||||
- go closeListenerOnQuit(l, quitCh, logger)
|
|
||||||
- err = (&http.Server{Addr: *listenAddress, Handler: mux}).Serve(l)
|
|
||||||
- level.Error(logger).Log("msg", "HTTP server stopped", "err", err)
|
|
||||||
- // To give running connections a chance to submit their payload, we wait
|
|
||||||
- // for 1sec, but we don't want to wait long (e.g. until all connections
|
|
||||||
- // are done) to not delay the shutdown.
|
|
||||||
- time.Sleep(time.Second)
|
|
||||||
+ server := &http.Server{
|
|
||||||
+ Addr: *listenAddress,
|
|
||||||
+ Handler: mux,
|
|
||||||
+ }
|
|
||||||
+ go shutdownServerOnQuit(server, quitCh, logger)
|
|
||||||
+ err = (server).Serve(l)
|
|
||||||
+
|
|
||||||
+ // In the case of a graceful shutdown, do not log the error.
|
|
||||||
+ if err == http.ErrServerClosed {
|
|
||||||
+ level.Info(logger).Log("msg", "HTTP server stopped")
|
|
||||||
+ } else {
|
|
||||||
+ level.Error(logger).Log("msg", "HTTP server stopped", "err", err)
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if err := ms.Shutdown(); err != nil {
|
|
||||||
level.Error(logger).Log("msg", "problem shutting down metric storage", "err", err)
|
|
||||||
}
|
|
||||||
@@ -237,9 +244,9 @@ func computeRoutePrefix(prefix string, externalURL *url.URL) string {
|
|
||||||
return prefix
|
|
||||||
}
|
|
||||||
|
|
||||||
-// closeListenerOnQuite closes the provided listener upon closing the provided
|
|
||||||
+// shutdownServerOnQuit shutdowns the provided server upon closing the provided
|
|
||||||
// quitCh or upon receiving a SIGINT or SIGTERM.
|
|
||||||
-func closeListenerOnQuit(l net.Listener, quitCh <-chan struct{}, logger log.Logger) {
|
|
||||||
+func shutdownServerOnQuit(server *http.Server, quitCh <-chan struct{}, logger log.Logger) error {
|
|
||||||
notifier := make(chan os.Signal, 1)
|
|
||||||
signal.Notify(notifier, os.Interrupt, syscall.SIGTERM)
|
|
||||||
|
|
||||||
@@ -251,5 +258,5 @@ func closeListenerOnQuit(l net.Listener, quitCh <-chan struct{}, logger log.Logg
|
|
||||||
level.Warn(logger).Log("msg", "received termination request via web service, exiting gracefully...")
|
|
||||||
break
|
|
||||||
}
|
|
||||||
- l.Close()
|
|
||||||
+ return server.Shutdown(context.Background())
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.30.0
|
|
||||||
|
|
||||||
File diff suppressed because it is too large
Load Diff
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
Name: pushgateway
|
Name: pushgateway
|
||||||
Version: 1.4.1
|
Version: 1.4.1
|
||||||
Release: 6
|
Release: 1
|
||||||
Summary: Prometheus pushgateway.
|
Summary: Prometheus pushgateway.
|
||||||
License: ASL 2.0
|
License: ASL 2.0
|
||||||
URL: https://github.com/prometheus/%{name}
|
URL: https://github.com/prometheus/%{name}
|
||||||
@ -17,12 +17,9 @@ Source1: %{name}.service
|
|||||||
Source2: %{name}.default
|
Source2: %{name}.default
|
||||||
Source3: vendor.tar.gz
|
Source3: vendor.tar.gz
|
||||||
Patch0: 0001-fix-promu-dependence-and-fix-not-found-web.patch
|
Patch0: 0001-fix-promu-dependence-and-fix-not-found-web.patch
|
||||||
Patch1: 0001-Log-shutdown-gracefully-428.patch
|
|
||||||
Patch2: 0001-add-loong64-support.patch
|
|
||||||
|
|
||||||
BuildRequires: golang >= 1.13
|
BuildRequires: golang >= 1.13
|
||||||
BuildRequires: promu
|
BuildRequires: promu
|
||||||
BuildRequires: systemd
|
|
||||||
%{?systemd_requires}
|
%{?systemd_requires}
|
||||||
Requires(pre): shadow-utils
|
Requires(pre): shadow-utils
|
||||||
|
|
||||||
@ -32,16 +29,13 @@ Since these kinds of jobs may not exist long enough to be scraped, they can inst
|
|||||||
The Pushgateway then exposes these metrics to Prometheus.
|
The Pushgateway then exposes these metrics to Prometheus.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -n %{name}-%{version}
|
%autosetup -p1 -n %{name}-%{version}
|
||||||
%setup -T -D -a 3 -n %{name}-%{version}
|
%setup -T -D -a 3 -n %{name}-%{version}
|
||||||
%patch0 -p1
|
|
||||||
%patch1 -p1
|
|
||||||
%patch2 -p1
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
mkdir -p $(pwd)/bin
|
mkdir -p $(pwd)/bin
|
||||||
export GOBIN=$(pwd)/bin
|
export GOBIN=$(pwd)/bin
|
||||||
go build -mod=vendor -buildmode=pie -ldflags "-s -w -linkmode=external -extldflags '-Wl,-z,relro -Wl,-z,now' " -o bin ./ ...
|
go build -mod=vendor -o bin ./ ...
|
||||||
|
|
||||||
%install
|
%install
|
||||||
mkdir -p %{buildroot}%{_bindir}
|
mkdir -p %{buildroot}%{_bindir}
|
||||||
@ -74,20 +68,5 @@ exit 0
|
|||||||
%dir %attr(755, prometheus, prometheus)%{_sharedstatedir}/prometheus
|
%dir %attr(755, prometheus, prometheus)%{_sharedstatedir}/prometheus
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Tue Jul 02 2024 zhangxianting <zhangxianting@uniontech.com> - 1.4.1-6
|
|
||||||
- add loong64 support
|
|
||||||
|
|
||||||
* Thu Feb 09 2023 xu_ping <xuping33@h-partners.com> - 1.4.1-5
|
|
||||||
- set flags for BIND_NOW
|
|
||||||
|
|
||||||
* Thu Feb 09 2023 xu_ping <xuping33@h-partners.com> - 1.4.1-4
|
|
||||||
- set flags for build
|
|
||||||
|
|
||||||
* Thu Jan 5 2023 caodongxia <caodongxia@h-partners.com> - 1.4.1-3
|
|
||||||
- Add buildRequires systemd
|
|
||||||
|
|
||||||
* Mon Oct 11 2021 chenchen <chen_aka_jan@163.com> - 1.4.1-2
|
|
||||||
- Logr shutdownr gracefully(#428
|
|
||||||
|
|
||||||
* Wed Jul 14 2021 baizhonggui <baizhonggui@huawei.com> - 1.4.1-1
|
* Wed Jul 14 2021 baizhonggui <baizhonggui@huawei.com> - 1.4.1-1
|
||||||
- Package init
|
- Package init
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user