|
|
@@ -39,8 +39,8 @@ import (
|
|
|
)
|
|
|
|
|
|
var (
|
|
|
- version = "unknown"
|
|
|
- sendNetDataInterval = 1 * time.Minute
|
|
|
+ version = "unknown"
|
|
|
+ sendNetDataInterval = 1 * time.Minute
|
|
|
)
|
|
|
|
|
|
const minSupportedKernelVersion = "4.18"
|
|
|
@@ -214,10 +214,11 @@ func main() {
|
|
|
//namedpipe初始化
|
|
|
npCtl, err := namedpipe.NewNamedPipeCtl(nil)
|
|
|
if err != nil {
|
|
|
- log.Fatalf("get namedpipeCtl occurs error: %s", err.Error())
|
|
|
+ log.Errorf("get namedpipeCtl occurs error: %s", err.Error())
|
|
|
+ } else {
|
|
|
+ //监听&处理-熔断信号
|
|
|
+ npCtl.AcceptAndDisposeMsg(cr)
|
|
|
}
|
|
|
- //监听&处理-熔断信号
|
|
|
- npCtl.AcceptAndDisposeMsg(cr)
|
|
|
}
|
|
|
|
|
|
//heartbeat
|
|
|
@@ -234,10 +235,10 @@ func main() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- // 创建正则表达式对象
|
|
|
- regex, err := regexp.Compile(`^process_.+_queries_total$`)
|
|
|
- if err != nil {
|
|
|
- return
|
|
|
+ // 创建正则表达式对象
|
|
|
+ regex, err := regexp.Compile(`^process_.+_queries_total$`)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
}
|
|
|
|
|
|
var postData PostData
|
|
|
@@ -272,7 +273,7 @@ func main() {
|
|
|
metric.GetName() != "process_net_tcp_bytes_sent_total" &&
|
|
|
metric.GetName() != "process_net_tcp_data_latency" &&
|
|
|
metric.GetName() != "process_net_tcp_data_duration" &&
|
|
|
- metric.GetName() != "process_net_tcp_est_time"{
|
|
|
+ metric.GetName() != "process_net_tcp_est_time" {
|
|
|
continue
|
|
|
}
|
|
|
|
|
|
@@ -320,44 +321,44 @@ func main() {
|
|
|
return
|
|
|
}
|
|
|
log.Infoln("netdata is:", string(jsonData))
|
|
|
- // 创建请求
|
|
|
+ // 创建请求
|
|
|
urlRoute := "/api/v2/ebpf/receive"
|
|
|
// req, err := http.NewRequest("POST", "http://10.0.7.115:18080/api/v2/ebpf/receive", bytes.NewBuffer(jsonData))
|
|
|
- req, err := http.NewRequest("POST", *flags.DataServer + urlRoute, bytes.NewBuffer(jsonData))
|
|
|
- if err != nil {
|
|
|
- fmt.Println("Error:", err)
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- // 添加 Content-Type header
|
|
|
- req.Header.Add("Content-Type", "application/json")
|
|
|
-
|
|
|
- // 添加一个自定义 header
|
|
|
- req.Header.Add("DataCount", strconv.Itoa(len(postData.Data)))
|
|
|
- req.Header.Add("Account-Id", strconv.Itoa(nodeInfo.AccountID))
|
|
|
- req.Header.Add("ip", nodeInfo.HostIp)
|
|
|
-
|
|
|
- // 创建 HTTP 客户端
|
|
|
- client := &http.Client{}
|
|
|
-
|
|
|
- // 发送 HTTP POST 请求
|
|
|
- response, err := client.Do(req)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("Error:", err)
|
|
|
- return
|
|
|
- }
|
|
|
- defer response.Body.Close()
|
|
|
-
|
|
|
- // 读取响应内容
|
|
|
- responseData, err := io.ReadAll(response.Body)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("Error:", err)
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- // 输出响应状态码和响应正文
|
|
|
- fmt.Println("Status Code:", response.StatusCode)
|
|
|
- fmt.Println("Response Body:", string(responseData))
|
|
|
+ req, err := http.NewRequest("POST", *flags.DataServer+urlRoute, bytes.NewBuffer(jsonData))
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("Error:", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 添加 Content-Type header
|
|
|
+ req.Header.Add("Content-Type", "application/json")
|
|
|
+
|
|
|
+ // 添加一个自定义 header
|
|
|
+ req.Header.Add("DataCount", strconv.Itoa(len(postData.Data)))
|
|
|
+ req.Header.Add("Account-Id", strconv.Itoa(nodeInfo.AccountID))
|
|
|
+ req.Header.Add("ip", nodeInfo.HostIp)
|
|
|
+
|
|
|
+ // 创建 HTTP 客户端
|
|
|
+ client := &http.Client{}
|
|
|
+
|
|
|
+ // 发送 HTTP POST 请求
|
|
|
+ response, err := client.Do(req)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("Error:", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer response.Body.Close()
|
|
|
+
|
|
|
+ // 读取响应内容
|
|
|
+ responseData, err := io.ReadAll(response.Body)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("Error:", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 输出响应状态码和响应正文
|
|
|
+ fmt.Println("Status Code:", response.StatusCode)
|
|
|
+ fmt.Println("Response Body:", string(responseData))
|
|
|
}
|
|
|
sendNetDataDone := make(chan struct{})
|
|
|
go func() {
|