@@ -15,42 +15,57 @@ package probe
1515
1616import (
1717 "log"
18+ "strconv"
1819
1920 "github.com/prometheus-community/fortigate_exporter/pkg/http"
2021 "github.com/prometheus/client_golang/prometheus"
2122)
2223
23- func probeSystemSandboxStatus (c http.FortiHTTP , meta * TargetMetadata ) ([]prometheus.Metric , bool ) {
24+ func probeSystemSandboxStatus (c http.FortiHTTP , meta * TargetMetadata ) ([]prometheus.Metric , bool ) {
2425 var (
25- signatureCount = prometheus .NewDesc (
26- "fortigate_sandbox_status_signature_count " ,
27- "Sandbox signature counts " ,
28- []string {"server" , "region " , "version " , "type " }, nil ,
26+ Count = prometheus .NewDesc (
27+ "fortigate_system_sandbox_status_signatures_count " ,
28+ "The number of signatures that have been loaded on the FortiSandbox. " ,
29+ []string {"configured" , "type" , "cloud_region" , " server" , "malware_package_version " , "signatures_loaded " , "vdom " }, nil ,
2930 )
3031 )
3132
3233 type SystemSandboxStatus struct {
33- Server string `json:"server"`
34- Type string `json:"type"`
35- Region string `json:"cloud_region"`
36- Version string `json:"malware_package_version"`
37- Count float64 `json:"signatures_count"`
34+ Configured bool `json:"configured"`
35+ Type string `json:"type"`
36+ Cloud string `json:"cloud_region"`
37+ Server string `json:"server"`
38+ MPV string `json:"malware_package_version"`
39+ Loaded bool `json:"signatures_loaded"`
40+ Count float64 `json:"signatures_count"`
3841 }
3942
4043 type SystemSandboxStatusResult struct {
41- Results []SystemSandboxStatus `json:"results"`
44+ Result SystemSandboxStatus `json:"results"`
45+ VDOM string `json:"vdom"`
4246 }
4347
4448 var res SystemSandboxStatusResult
45- if err := c .Get ("api/v2/monitor/system/sandbox/status" ,"" , & res ); err != nil {
49+ if err := c .Get ("api/v2/monitor/system/sandbox/status" , "" , & res ); err != nil {
4650 log .Printf ("Warning: %v" , err )
4751 return nil , false
4852 }
49-
5053 m := []prometheus.Metric {}
51- for _ , r := range res .Results {
52- m = append (m , prometheus .MustNewConstMetric (signatureCount , prometheus .GaugeValue , r .Count , r .Server , r .Region , r .Version , r .Type ))
54+ cloude := "null"
55+ if res .Result .Cloud != "" {
56+ cloude = res .Result .Cloud
5357 }
54-
58+ m = append (m , prometheus .MustNewConstMetric (
59+ Count ,
60+ prometheus .GaugeValue ,
61+ res .Result .Count ,
62+ strconv .FormatBool (res .Result .Configured ),
63+ res .Result .Type ,
64+ cloude ,
65+ res .Result .Server ,
66+ res .Result .MPV ,
67+ strconv .FormatBool (res .Result .Loaded ),
68+ res .VDOM ),
69+ )
5570 return m , true
5671}
0 commit comments