|
|
@@ -15,8 +15,11 @@ import (
|
|
|
"net/http"
|
|
|
_ "net/http/pprof"
|
|
|
"os"
|
|
|
+ "os/signal"
|
|
|
"path"
|
|
|
"path/filepath"
|
|
|
+ "syscall"
|
|
|
+
|
|
|
// "regexp"
|
|
|
"runtime"
|
|
|
"strconv"
|
|
|
@@ -28,10 +31,8 @@ import (
|
|
|
"github.com/coroot/coroot-node-agent/flags"
|
|
|
"github.com/coroot/coroot-node-agent/logs"
|
|
|
"github.com/coroot/coroot-node-agent/node"
|
|
|
- "github.com/coroot/coroot-node-agent/prom"
|
|
|
"github.com/coroot/coroot-node-agent/tracing"
|
|
|
"github.com/prometheus/client_golang/prometheus"
|
|
|
- "github.com/prometheus/client_golang/prometheus/promhttp"
|
|
|
"golang.org/x/mod/semver"
|
|
|
"golang.org/x/sys/unix"
|
|
|
"golang.org/x/time/rate"
|
|
|
@@ -140,7 +141,7 @@ func main() {
|
|
|
MaxSize: 50, // 日志文件最大尺寸,单位MB
|
|
|
MaxBackups: 3, // 最多保留的旧日志文件数
|
|
|
MaxAge: 3, // 日志文件保留的最长时间,单位天
|
|
|
- Console: false,
|
|
|
+ Console: true,
|
|
|
})
|
|
|
|
|
|
if err != nil {
|
|
|
@@ -206,7 +207,7 @@ func main() {
|
|
|
if err != nil {
|
|
|
log.Fatalln(err)
|
|
|
}
|
|
|
- defer cr.Close()
|
|
|
+ //defer cr.Close()
|
|
|
log.Infoln("START_TRACE")
|
|
|
|
|
|
if *flags.RunInOmniagent {
|
|
|
@@ -379,7 +380,7 @@ func main() {
|
|
|
}
|
|
|
}()
|
|
|
|
|
|
- metricsHandler := func(w http.ResponseWriter, r *http.Request) {
|
|
|
+ /* metricsHandler := func(w http.ResponseWriter, r *http.Request) {
|
|
|
// 从注册表中获取指标数据
|
|
|
metrics, err := registry.Gather()
|
|
|
if err != nil {
|
|
|
@@ -515,17 +516,31 @@ func main() {
|
|
|
// 输出响应状态码和响应正文
|
|
|
log.Debugln("Status Code:", response.StatusCode)
|
|
|
log.Infoln("Response Body:", string(responseData))
|
|
|
- }
|
|
|
+ }*/
|
|
|
|
|
|
- if err := prom.StartAgent(SystemUUID); err != nil {
|
|
|
+ /*if err := prom.StartAgent(SystemUUID); err != nil {
|
|
|
log.Fatalln(err)
|
|
|
}
|
|
|
|
|
|
http.Handle("/metrics", promhttp.HandlerFor(registry, promhttp.HandlerOpts{ErrorLog: logger{}, Registry: registerer}))
|
|
|
http.HandleFunc("/metrics2", metricsHandler)
|
|
|
log.Infoln("listening on:", *flags.ListenAddress)
|
|
|
- log.Errorln(http.ListenAndServe(*flags.ListenAddress, nil))
|
|
|
- close(sendNetDataDone)
|
|
|
+ log.Errorln(http.ListenAndServe(*flags.ListenAddress, nil))*/
|
|
|
+ sigs := make(chan os.Signal, 1)
|
|
|
+ signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
|
|
|
+
|
|
|
+ done := make(chan struct{})
|
|
|
+ go func() {
|
|
|
+ <-sigs
|
|
|
+ log.Infoln("Signal received, shutting down...")
|
|
|
+ cr.Close()
|
|
|
+ close(sendNetDataDone)
|
|
|
+ close(done)
|
|
|
+ }()
|
|
|
+ select {
|
|
|
+ case <-done:
|
|
|
+ log.Infoln(flags.AgentName + " exited successfully.")
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
func info(name, version string) prometheus.Collector {
|