|
4 | 4 | "encoding/json" |
5 | 5 | "fmt" |
6 | 6 | "log" |
| 7 | + "net" |
| 8 | + "net/url" |
7 | 9 | "time" |
8 | 10 |
|
9 | 11 | "github.com/telkomdev/tob/config" |
@@ -51,6 +53,37 @@ func (d *DiskStatus) Name() string { |
51 | 53 | return "diskstatus" |
52 | 54 | } |
53 | 55 |
|
| 56 | +// Resolve hostname to IPv4 address |
| 57 | +func (d *DiskStatus) resolveIPv4() string { |
| 58 | + ipv4 := "N/A" |
| 59 | + |
| 60 | + hostUrl, err := url.Parse(d.url) |
| 61 | + if err != nil { |
| 62 | + if d.verbose { |
| 63 | + d.logger.Println(err) |
| 64 | + } |
| 65 | + return ipv4 |
| 66 | + } |
| 67 | + hostname := hostUrl.Hostname() |
| 68 | + |
| 69 | + ips, err := net.LookupIP(hostname) |
| 70 | + if err != nil { |
| 71 | + if d.verbose { |
| 72 | + d.logger.Println(err) |
| 73 | + } |
| 74 | + return ipv4 |
| 75 | + } |
| 76 | + |
| 77 | + for _, ip := range ips { |
| 78 | + if ip.To4() != nil { |
| 79 | + ipv4 = ip.String() |
| 80 | + break |
| 81 | + } |
| 82 | + } |
| 83 | + |
| 84 | + return ipv4 |
| 85 | +} |
| 86 | + |
54 | 87 | // Ping will try to ping the service |
55 | 88 | func (d *DiskStatus) Ping() []byte { |
56 | 89 | resp, err := httpx.HTTPGet(fmt.Sprintf("%s/check-disk", d.url), nil, 5) |
@@ -96,20 +129,23 @@ func (d *DiskStatus) Ping() []byte { |
96 | 129 | diskUsed := util.InterfaceToFloat64(target.Data["diskUsed"]) |
97 | 130 | filesystem := target.Data["filesystem"] |
98 | 131 |
|
| 132 | + ipv4 := d.resolveIPv4() |
| 133 | + |
99 | 134 | if d.verbose { |
| 135 | + d.logger.Println("IP :", ipv4) |
100 | 136 | d.logger.Println("threshold disk usage: ", thresholdDiskUsage) |
101 | 137 | d.logger.Println("disk used: ", diskUsed) |
102 | 138 | d.logger.Println("file system: ", filesystem) |
103 | 139 | } |
104 | 140 |
|
105 | 141 | if diskUsed >= thresholdDiskUsage { |
106 | | - d.SetMessage(fmt.Sprintf("disk used exceeds the threshold\nthreshold: %d%s\ndisk used: %d%s\nfile system: %s\n%s", |
107 | | - int(thresholdDiskUsage), "%", int(diskUsed), "%", filesystem, "-------------------------------------")) |
| 142 | + d.SetMessage(fmt.Sprintf("disk used exceeds the threshold\nIP: %s\nthreshold: %d%s\ndisk used: %d%s\nfile system: %s\n%s", |
| 143 | + ipv4, int(thresholdDiskUsage), "%", int(diskUsed), "%", filesystem, "-------------------------------------")) |
108 | 144 | return []byte("NOT_OK") |
109 | 145 | } |
110 | 146 |
|
111 | | - d.SetMessage(fmt.Sprintf("disk storage has been increased\nthreshold: %d%s\ndisk used: %d%s\nfile system: %s\n%s", |
112 | | - int(thresholdDiskUsage), "%", int(diskUsed), "%", filesystem, "-------------------------------------")) |
| 147 | + d.SetMessage(fmt.Sprintf("disk storage has been increased\nIP: %s\nthreshold: %d%s\ndisk used: %d%s\nfile system: %s\n%s", |
| 148 | + ipv4, int(thresholdDiskUsage), "%", int(diskUsed), "%", filesystem, "-------------------------------------")) |
113 | 149 | return []byte("OK") |
114 | 150 | } |
115 | 151 |
|
|
0 commit comments