62 lines
1.5 KiB
Go
62 lines
1.5 KiB
Go
// Types for unmarshalling gmond's XML output.
|
|
//
|
|
// Not used elements in gmond's XML output are commented.
|
|
// In case you want to use them, please change the names so that one
|
|
// can understand without needing to know what the acronym stands for.
|
|
package ganglia
|
|
|
|
import "encoding/xml"
|
|
|
|
type ExtraElement struct {
|
|
Name string `xml:"NAME,attr"`
|
|
Val string `xml:"VAL,attr"`
|
|
}
|
|
|
|
type ExtraData struct {
|
|
ExtraElements []ExtraElement `xml:"EXTRA_ELEMENT"`
|
|
}
|
|
|
|
type Metric struct {
|
|
Name string `xml:"NAME,attr"`
|
|
Value float64 `xml:"VAL,attr"`
|
|
/*
|
|
Unit string `xml:"UNITS,attr"`
|
|
Slope string `xml:"SLOPE,attr"`
|
|
Tn int `xml:"TN,attr"`
|
|
Tmax int `xml:"TMAX,attr"`
|
|
Dmax int `xml:"DMAX,attr"`
|
|
*/
|
|
ExtraData ExtraData `xml:"EXTRA_DATA"`
|
|
}
|
|
|
|
type Host struct {
|
|
Name string `xml:"NAME,attr"`
|
|
/*
|
|
Ip string `xml:"IP,attr"`
|
|
Tags string `xml:"TAGS,attr"`
|
|
Reported int `xml:"REPORTED,attr"`
|
|
Tn int `xml:"TN,attr"`
|
|
Tmax int `xml:"TMAX,attr"`
|
|
Dmax int `xml:"DMAX,attr"`
|
|
Location string `xml:"LOCATION,attr"`
|
|
GmondStarted int `xml:"GMOND_STARTED",attr"`
|
|
*/
|
|
Metrics []Metric `xml:"METRIC"`
|
|
}
|
|
|
|
type Cluster struct {
|
|
Name string `xml:"NAME,attr"`
|
|
/*
|
|
Owner string `xml:"OWNER,attr"`
|
|
LatLong string `xml:"LATLONG,attr"`
|
|
Url string `xml:"URL,attr"`
|
|
Localtime int `xml:"LOCALTIME,attr"`
|
|
*/
|
|
Hosts []Host `xml:"HOST"`
|
|
}
|
|
|
|
type Ganglia struct {
|
|
XMLNAME xml.Name `xml:"GANGLIA_XML"`
|
|
Clusters []Cluster `xml:"CLUSTER"`
|
|
}
|