Documentation
¶
Index ¶
- Constants
- Variables
- func AddCORS(w http.ResponseWriter)
- func Alert(event dguard.Event)
- func CriticalExit(s string)
- func DeleteContainer(c *dguard.Container) error
- func GetContainerByCID(cid string) (dguard.Container, error)
- func GetContainersByProbe(probeName string) ([]dguard.Container, error)
- func GetProbesInfos() []dguard.ProbeInfos
- func GetSimpleContainersByProbe(probeName string) ([]dguard.SimpleContainer, error)
- func HTTPHandlerContainerCID(w http.ResponseWriter, r *http.Request)
- func HTTPHandlerContainers(w http.ResponseWriter, r *http.Request)
- func HTTPHandlerContainersProbeName(w http.ResponseWriter, r *http.Request)
- func HTTPHandlerProbes(w http.ResponseWriter, r *http.Request)
- func HTTPHandlerProbesName(w http.ResponseWriter, r *http.Request)
- func HTTPHandlerStats(w http.ResponseWriter, r *http.Request)
- func HTTPHandlerStatsCID(w http.ResponseWriter, r *http.Request)
- func HTTPHandlerStatsProbeName(w http.ResponseWriter, r *http.Request)
- func HTTPSecureAPI(r *http.Request, rm *mux.RouteMatch) bool
- func HTTPServer()
- func HTTPURILogger(r *http.Request, rm *mux.RouteMatch) bool
- func Init()
- func InitConfig(path string)
- func InitContainersController()
- func InitDB()
- func InitLogger(l1, l2, l3 bool) *logo.Logger
- func InsertContainer(c *dguard.Container) error
- func InsertStats(stats []Stat, probeName string) error
- func LoadListFromFile() error
- func MonitorProbe(p Probe)
- func NotFoundHandler(w http.ResponseWriter, r *http.Request)
- func SaveListToFile() error
- type Config
- type Options
- type Probe
- type Stat
- type StatPopulated
- type Transport
Constants ¶
View Source
const (
// File to store containerList
ContainerListFilePath = "./containers.json"
)
View Source
const (
StatsMeasurements = "cstats"
)
Variables ¶
View Source
var ( // HTTP client used to get probe infos HTTPClient = &http.Client{} Probes []*Probe ProbeLastStats map[string][]dguard.Container )
View Source
var ( // containerList's Mutex ContainerListMutex sync.Mutex )
View Source
var ( // DB DB *influxdb.Client )
Client variables
Functions ¶
func DeleteContainer ¶
Delete a container in containerList
func GetContainerByCID ¶
Get a container by cid in containerList
func GetContainersByProbe ¶
Get containers by probe name in containerList
func GetSimpleContainersByProbe ¶
func GetSimpleContainersByProbe(probeName string) ([]dguard.SimpleContainer, error)
Get []dguard.SimpleContainer by probe name in containerList
func HTTPHandlerContainerCID ¶
func HTTPHandlerContainerCID(w http.ResponseWriter, r *http.Request)
Return container infos
func HTTPHandlerContainers ¶
func HTTPHandlerContainers(w http.ResponseWriter, r *http.Request)
Return containers infos
func HTTPHandlerContainersProbeName ¶
func HTTPHandlerContainersProbeName(w http.ResponseWriter, r *http.Request)
Return probe's containers infos
func HTTPHandlerProbes ¶
func HTTPHandlerProbes(w http.ResponseWriter, r *http.Request)
Return simplified probes array
func HTTPHandlerProbesName ¶
func HTTPHandlerProbesName(w http.ResponseWriter, r *http.Request)
Return one probe
func HTTPHandlerStats ¶
func HTTPHandlerStats(w http.ResponseWriter, r *http.Request)
Return containers stats
func HTTPHandlerStatsCID ¶
func HTTPHandlerStatsCID(w http.ResponseWriter, r *http.Request)
Return containers stats by container ID
func HTTPHandlerStatsProbeName ¶
func HTTPHandlerStatsProbeName(w http.ResponseWriter, r *http.Request)
Return containers stats by probe name
func HTTPURILogger ¶
func HTTPURILogger(r *http.Request, rm *mux.RouteMatch) bool
Log HTTP requests' URI
func InsertContainer ¶
Insert a Container in containerList
func NotFoundHandler ¶
func NotFoundHandler(w http.ResponseWriter, r *http.Request)
Types ¶
type Config ¶
type Config struct {
DockerGuard struct {
API struct {
ListenInterface string `yaml:"listen-interface"`
ListenPort string `yaml:"listen-port"`
APILogin string `yaml:"api-login"`
APIPassword string `yaml:"api-password"`
}
InfluxDB struct {
IP string `yaml:"ip"`
Port int `yaml:"port"`
DB string `yaml:"db"`
} `yaml:"influxdb"`
Event struct {
Watch []string `yaml:"watch"`
Transports []Transport `yaml:"transports"`
} `yaml:"event"`
} `yaml:"docker-guard"`
Probes []Probe `yaml:"probes"`
}
Program config struct
var ( // Program config DGConfig Config )
type Probe ¶
type Probe struct {
Name string `yaml:"name"`
URI string `yaml:"uri"`
APIPassword string `yaml:"api-password"`
ReloadTime float64 `yaml:"reload-time"`
Infos *dguard.ProbeInfos
}
Probe
type Stat ¶
type Stat struct {
ContainerID string
Time time.Time
SizeRootFs float64
SizeRw float64
SizeMemory float64
NetBandwithRX float64
NetBandwithTX float64
CPUUsage float64
Running bool
}
Container's stats
func GetStatsByContainerCID ¶
Get stats by container id
func GetStatsByContainerProbeID ¶
Get stats by probe name
type StatPopulated ¶
type StatPopulated struct {
Container dguard.Container
Time time.Time
SizeRootFs float64
SizeRw float64
SizeMemory float64
NetBandwithRX float64
NetBandwithTX float64
CPUUsage float64
Running bool
}
Stat populated
func GetStatsPByContainerProbeID ¶
func GetStatsPByContainerProbeID(probeName string, o Options) ([]StatPopulated, error)
Get stats populated by probe name
Click to show internal directories.
Click to hide internal directories.