2015-09-26 15:36:40 +00:00
|
|
|
// Copyright 2015 The Prometheus Authors
|
|
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
// you may not use this file except in compliance with the License.
|
|
|
|
// You may obtain a copy of the License at
|
|
|
|
//
|
|
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
//
|
|
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
// See the License for the specific language governing permissions and
|
|
|
|
// limitations under the License.
|
|
|
|
|
2017-02-28 16:44:53 +00:00
|
|
|
// Package ganglia provides types for unmarshalling gmond's XML output.
|
2013-05-07 14:40:10 +00:00
|
|
|
//
|
|
|
|
// 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"
|
|
|
|
|
2017-02-28 16:44:53 +00:00
|
|
|
// ExtraElement describes EXTRA_ELEMENT elements.
|
2013-05-07 14:40:10 +00:00
|
|
|
type ExtraElement struct {
|
|
|
|
Name string `xml:"NAME,attr"`
|
|
|
|
Val string `xml:"VAL,attr"`
|
|
|
|
}
|
|
|
|
|
2017-02-28 16:44:53 +00:00
|
|
|
// ExtraData describes EXTRA_DATA elements.
|
2013-05-07 14:40:10 +00:00
|
|
|
type ExtraData struct {
|
|
|
|
ExtraElements []ExtraElement `xml:"EXTRA_ELEMENT"`
|
|
|
|
}
|
|
|
|
|
2017-02-28 16:44:53 +00:00
|
|
|
// Metric describes METRIC elements.
|
2013-05-07 14:40:10 +00:00
|
|
|
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"`
|
|
|
|
}
|
|
|
|
|
2017-02-28 16:44:53 +00:00
|
|
|
// Host describes HOST elements.
|
2013-05-07 14:40:10 +00:00
|
|
|
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"`
|
|
|
|
}
|
|
|
|
|
2017-02-28 16:44:53 +00:00
|
|
|
// Cluster describes CLUSTER elements.
|
2013-05-07 14:40:10 +00:00
|
|
|
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"`
|
|
|
|
}
|
|
|
|
|
2017-02-28 16:44:53 +00:00
|
|
|
// Ganglia describes the top-level XML structure.
|
2013-05-07 14:40:10 +00:00
|
|
|
type Ganglia struct {
|
|
|
|
XMLNAME xml.Name `xml:"GANGLIA_XML"`
|
|
|
|
Clusters []Cluster `xml:"CLUSTER"`
|
|
|
|
}
|