From b3122c66b128b2a76882cd9dfc6a406b0e4d5ce9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E8=AF=9A?= Date: Mon, 10 Mar 2025 15:59:13 +0800 Subject: [PATCH] 1 --- docker-compose.yml | 10 +++++- src/Core/Core.csproj | 2 ++ src/Service/Jobs/DiskMonitorRegistry.cs | 43 ++++++++++++++++++++++++- src/Service/Service.csproj | 1 - 4 files changed, 53 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 20079b0..6fcf14c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,6 +5,8 @@ dockerfile: Dockerfile container_name: nas_robot restart: always + networks: + - all_in environment: - TZ=Asia/Shanghai volumes: @@ -19,10 +21,16 @@ image: beevelop/nginx-basic-auth:v2023.10.1 container_name: nas_robot_proxy restart: always + networks: + - all_in ports: - 14902:80 # 开放端口 environment: - TZ=Asia/Shanghai - HTPASSWD=suncheng:$$apr1$$2QX32QHP$$HIGAbCuTt8jxdc4uDzNLI1 - FORWARD_PORT=8080 - - FORWARD_HOST=nas_robot \ No newline at end of file + - FORWARD_HOST=nas_robot + +networks: + all_in: + external: true \ No newline at end of file diff --git a/src/Core/Core.csproj b/src/Core/Core.csproj index 200c948..36d3a95 100644 --- a/src/Core/Core.csproj +++ b/src/Core/Core.csproj @@ -10,6 +10,8 @@ + + diff --git a/src/Service/Jobs/DiskMonitorRegistry.cs b/src/Service/Jobs/DiskMonitorRegistry.cs index ea3c266..d7815d3 100644 --- a/src/Service/Jobs/DiskMonitorRegistry.cs +++ b/src/Service/Jobs/DiskMonitorRegistry.cs @@ -1,6 +1,9 @@ using System.Diagnostics; using System.Text; using FluentScheduler; +using InfluxDB.Client; +using InfluxDB.Client.Api.Domain; +using InfluxDB.Client.Writes; using Interface.Jobs; namespace Service.Jobs; @@ -28,6 +31,9 @@ public class DiskMonitorRegistry : Registry, IDiskMonitorRegistry process.WaitForExit(); Console.WriteLine(FormatResult(result)); + + + WriteToInfluxDB(result); } private string FormatResult(string result) @@ -40,10 +46,45 @@ public class DiskMonitorRegistry : Registry, IDiskMonitorRegistry if (line.Contains("/host/wd/")) { - sb.AppendLine($"{cols[5].Substring("/host".Length)}, {cols[1]}, {cols[4].TrimEnd('%')}, {cols[3]}"); + sb.AppendLine($"{cols[5].Substring("/host".Length)},{cols[1]},{cols[4].TrimEnd('%')},{cols[3]}"); } } return sb.ToString(); } + + private void WriteToInfluxDB(string result) + { + /* + /wd/apps,916G,53,410G + /wd/volc,3.6T,69,1.1T + /wd/volb,3.6T,60,1.4T + /wd/vola,3.6T,88,440G + */ + + var lines = result.Split("\n"); + + using var client = new InfluxDBClient("http://influxdb:8086", "BD4A71llb9_XbCA5mmKDbc_yTYwadPPLwyk4nAQ0l_yR_WJmw_-dMOWIs0KlS7-pZtHot_HrejY5GcOohKElmA=="); + using var writeApi = client.GetWriteApi(); + + foreach (var line in lines) + { + var cols = line.Split(",", StringSplitOptions.RemoveEmptyEntries); + + var path = cols[0]; + var totalSize = cols[1]; + var usedPercent = cols[2]; + var available = cols[3]; + + var point = PointData + .Measurement("disk_usage") + .Tag("path", path) + .Field("total_size", totalSize) + .Field("used_percent", double.Parse(usedPercent)) + .Field("available", available) + .Timestamp(DateTime.UtcNow, WritePrecision.Ns); + + writeApi.WritePoint(point, "def-bucket", "def-org"); + } + } } \ No newline at end of file diff --git a/src/Service/Service.csproj b/src/Service/Service.csproj index 721a80e..c5e7e32 100644 --- a/src/Service/Service.csproj +++ b/src/Service/Service.csproj @@ -12,7 +12,6 @@ -