Skip to content

Commit 3e8bb5e

Browse files
committed
wip
Signed-off-by: Mark Nelson <mark.x.nelson@oracle.com>
1 parent ec816aa commit 3e8bb5e

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

‎main.go

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import (
88
"context"
99
"net/http"
1010
"os"
11+
"runtime/debug"
12+
"time"
1113

1214
"github.com/go-kit/log/level"
1315
"github.com/prometheus/client_golang/prometheus"
@@ -21,7 +23,7 @@ import (
2123
"github.com/prometheus/common/promlog/flag"
2224

2325
// Required for debugging
24-
// _ "net/http/pprof"
26+
_ "net/http/pprof"
2527

2628
"github.com/oracle/oracle-db-appdev-monitoring/collector"
2729
"github.com/oracle/oracle-db-appdev-monitoring/vault"
@@ -93,6 +95,24 @@ func main() {
9395
w.Write([]byte("<html><head><title>Oracle DB Exporter " + Version + "</title></head><body><h1>Oracle DB Exporter " + Version + "</h1><p><a href='" + *metricPath + "'>Metrics</a></p></body></html>"))
9496
})
9597

98+
// start a ticker to cause rebirth
99+
ticker := time.NewTicker(time.Minute * 10)
100+
defer ticker.Stop()
101+
102+
go func() {
103+
for {
104+
<-ticker.C
105+
level.Info(logger).Log("msg", "Attempting to free OS memory...")
106+
debug.FreeOSMemory()
107+
}
108+
// level.Info(logger).Log("msg", "Restarting the universe...")
109+
// executable, _ := os.Executable()
110+
// execErr := syscall.Exec(executable, os.Args, os.Environ())
111+
// if execErr != nil {
112+
// panic(execErr)
113+
// }
114+
}()
115+
96116
server := &http.Server{}
97117
if err := web.ListenAndServe(server, toolkitFlags, logger); err != nil {
98118
level.Error(logger).Log("msg", "Listening error", "error", err)

0 commit comments

Comments
 (0)