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.