Skip to content

Commit 2429fcf

Browse files
authored
Merge pull request #7 from lutfailham96/feat-disk-ip
diskstatus: add IP field info
2 parents 8c1bef4 + bd71bc5 commit 2429fcf

File tree

1 file changed

+40
-4
lines changed

1 file changed

+40
-4
lines changed

services/diskstatus/diskstatus.go

Lines changed: 40 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import (
44
"encoding/json"
55
"fmt"
66
"log"
7+
"net"
8+
"net/url"
79
"time"
810

911
"github.com/telkomdev/tob/config"
@@ -51,6 +53,37 @@ func (d *DiskStatus) Name() string {
5153
return "diskstatus"
5254
}
5355

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+
5487
// Ping will try to ping the service
5588
func (d *DiskStatus) Ping() []byte {
5689
resp, err := httpx.HTTPGet(fmt.Sprintf("%s/check-disk", d.url), nil, 5)
@@ -96,20 +129,23 @@ func (d *DiskStatus) Ping() []byte {
96129
diskUsed := util.InterfaceToFloat64(target.Data["diskUsed"])
97130
filesystem := target.Data["filesystem"]
98131

132+
ipv4 := d.resolveIPv4()
133+
99134
if d.verbose {
135+
d.logger.Println("IP :", ipv4)
100136
d.logger.Println("threshold disk usage: ", thresholdDiskUsage)
101137
d.logger.Println("disk used: ", diskUsed)
102138
d.logger.Println("file system: ", filesystem)
103139
}
104140

105141
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, "-------------------------------------"))
108144
return []byte("NOT_OK")
109145
}
110146

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, "-------------------------------------"))
113149
return []byte("OK")
114150
}
115151

0 commit comments

Comments
 (0)