@@ -26,14 +26,28 @@ func probeSystemStatus(c http.FortiHTTP, _ *TargetMetadata) ([]prometheus.Metric
2626 mVersion := prometheus .NewDesc (
2727 "fortigate_version_info" ,
2828 "System version and build information" ,
29- []string {"serial" , "version" , "build" }, nil ,
29+ []string {"serial" , "version" , "build" , "model_name" , "model_number" , "model" , "hostname" }, nil ,
3030 )
31+ mLogDiskState := prometheus .NewDesc (
32+ "fortigate_system_status_log_disk_state" ,
33+ "System log disk availability state" ,
34+ []string {"state" }, nil ,
35+ )
36+
37+ type systemResult struct {
38+ Name string `json:"model_name"`
39+ Number string `json:"model_number"`
40+ Model string `json:"model"`
41+ Hostname string `json:"hostname"`
42+ LogDiskStatus string `json:"log_disk_status"`
43+ }
3144
3245 type systemStatus struct {
3346 Status string
3447 Serial string
3548 Version string
3649 Build int64
50+ Results systemResult
3751 }
3852 var st systemStatus
3953
@@ -43,7 +57,18 @@ func probeSystemStatus(c http.FortiHTTP, _ *TargetMetadata) ([]prometheus.Metric
4357 }
4458
4559 m := []prometheus.Metric {
46- prometheus .MustNewConstMetric (mVersion , prometheus .GaugeValue , 1.0 , st .Serial , st .Version , fmt .Sprintf ("%d" , st .Build )),
60+ prometheus .MustNewConstMetric (mLogDiskState , prometheus .GaugeValue , 0.0 , "available" ),
61+ prometheus .MustNewConstMetric (mLogDiskState , prometheus .GaugeValue , 0.0 , "need_format" ),
62+ prometheus .MustNewConstMetric (mLogDiskState , prometheus .GaugeValue , 0.0 , "not_available" ),
63+ }
64+ switch st .Results .LogDiskStatus {
65+ case "available" :
66+ m [0 ] = prometheus .MustNewConstMetric (mLogDiskState , prometheus .GaugeValue , 1.0 , st .Results .LogDiskStatus )
67+ case "need_format" :
68+ m [1 ] = prometheus .MustNewConstMetric (mLogDiskState , prometheus .GaugeValue , 1.0 , st .Results .LogDiskStatus )
69+ case "not_available" :
70+ m [2 ] = prometheus .MustNewConstMetric (mLogDiskState , prometheus .GaugeValue , 1.0 , st .Results .LogDiskStatus )
4771 }
72+ m = append (m , prometheus .MustNewConstMetric (mVersion , prometheus .GaugeValue , 1.0 , st .Serial , st .Version , fmt .Sprintf ("%d" , st .Build ), st .Results .Name , st .Results .Number , st .Results .Model , st .Results .Hostname ))
4873 return m , true
4974}
0 commit comments