Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type HealthHandler ¶
type HealthHandler struct {
// contains filtered or unexported fields
}
func NewHealthHandler ¶
func NewHealthHandler(service services.HealthServiceInterface) *HealthHandler
func (*HealthHandler) GetDetailedHealth ¶
func (handler *HealthHandler) GetDetailedHealth(ctx *gin.Context)
GetDetailedHealth godoc @Summary Detailed health check @Description Get detailed health information including database stats and table counts @Tags system @Accept json @Produce json @Success 200 {object} object{status=string,timestamp=string,database=object,database_stats=object,table_counts=object} @Failure 503 {object} models.ErrorResponse @Router /health/detailed [get]
func (*HealthHandler) GetHealth ¶
func (handler *HealthHandler) GetHealth(ctx *gin.Context)
GetHealth godoc @Summary Health check @Description Check API and database health status @Tags system @Accept json @Produce json @Success 200 {object} models.HealthResponse @Failure 503 {object} models.ErrorResponse @Router /health [get]
type HealthHandlerInterface ¶
type HealthHandlerInterface interface {
GetHealth(ctx *gin.Context)
GetDetailedHealth(ctx *gin.Context)
}
HealthHandlerInterface defines methods for health check handlers
type HostHandler ¶
type HostHandler struct {
// contains filtered or unexported fields
}
func NewHostHandler ¶
func NewHostHandler(service services.HostServiceInterface) *HostHandler
func (*HostHandler) Create ¶
func (handler *HostHandler) Create(ctx *gin.Context)
Create godoc @Summary Register a new host @Description Register a new Raspberry Pi host in the monitoring system or update if already exists @Tags hosts @Accept json @Produce json @Param request body models.CreateHostRequest true "Host information" @Success 201 {object} object{message=string,id=int64} @Failure 400 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /hosts [post]
func (*HostHandler) Delete ¶
func (handler *HostHandler) Delete(ctx *gin.Context)
Delete godoc @Summary Delete a host @Description Delete a host and all its associated metrics @Tags hosts @Accept json @Produce json @Param id path int true "Host ID" @Success 200 {object} object{message=string} @Failure 400 {object} models.ErrorResponse @Failure 404 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /hosts/{id} [delete]
func (*HostHandler) Get ¶
func (handler *HostHandler) Get(ctx *gin.Context)
Get List godoc @Summary List all hosts @Description Get a list of all registered hosts in the monitoring system @Tags hosts @Accept json @Produce json @Param id query int false "Filter by host ID" @Param hostname query string false "Filter by hostname" @Param ip_address query string false "Filter by IP address" @Success 200 {object} models.HostListResponse @Failure 400 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /hosts [get]
func (*HostHandler) Update ¶
func (handler *HostHandler) Update(ctx *gin.Context)
Update godoc @Summary Update a host @Description Update an existing host's information @Tags hosts @Accept json @Produce json @Param id path int true "Host ID" @Param request body models.CreateHostRequest true "Host information" @Success 200 {object} object{message=string} @Failure 400 {object} models.ErrorResponse @Failure 404 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /hosts/{id} [put]
type HostHandlerInterface ¶
type HostHandlerInterface interface {
Create(ctx *gin.Context)
Get(ctx *gin.Context)
Update(ctx *gin.Context)
Delete(ctx *gin.Context)
}
HostHandlerInterface defines methods for host handlers
type MetricHandler ¶
type MetricHandler struct {
// contains filtered or unexported fields
}
func NewMetricHandler ¶
func NewMetricHandler(service services.MetricServiceInterface) *MetricHandler
func (*MetricHandler) Create ¶
func (handler *MetricHandler) Create(ctx *gin.Context)
Create godoc @Summary Submit system metrics @Description Submit new system metrics from a monitoring agent @Tags metrics @Accept json @Produce json @Param request body models.CreateMetricRequest true "Metric data" @Success 201 {object} object{message=string,id=int64} @Failure 400 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /metrics [post]
func (*MetricHandler) Get ¶
func (handler *MetricHandler) Get(ctx *gin.Context)
Get godoc @Summary Get system metrics @Description Retrieve system metrics with optional filtering and time range @Tags metrics @Accept json @Produce json @Param host_id query int false "Filter by host ID" @Param limit query int false "Limit results (max 1000)" default(100) @Param order query string false "Sort order (ASC or DESC)" default(DESC) @Param start_time query int false "Start timestamp (Unix)" @Param end_time query int false "End timestamp (Unix)" @Success 200 {object} models.MetricListResponse @Failure 400 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /metrics [get]
func (*MetricHandler) GetLatest ¶
func (handler *MetricHandler) GetLatest(ctx *gin.Context)
GetLatest godoc @Summary Get latest metrics @Description Retrieve the most recent metrics for each host or a specific host @Tags metrics @Accept json @Produce json @Param host_id query int false "Filter by host ID" @Success 200 {object} object{metric=models.SystemMetric} @Failure 400 {object} models.ErrorResponse @Failure 404 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /metrics/latest [get]