// Authenticate authenticates any agent and returns a heartbeat interval, a // fake entity ID and "stable" channel. It's used along with endpoint.Hub func (auth authenticator) Authenticate(agentName string, agentID string, token string, responder *endpoint.Responder, connCtx endpoint.ConnContext) endpoint.HandleCode { var result helloResult result.HeartbeatInterval = "1000" result.EntityID = "fake-entity-id-asdfghjkl" result.Channel = "stable" responder.Respond(result, nil) // return OK for any agent return endpoint.OK }
// Handle responds to check_schedule.get requests with a list of checks func (c checkScheduleHandler) Handle(req *endpoint.Request, responder *endpoint.Responder, connCtx endpoint.ConnContext) endpoint.HandleCode { var rsp checkScheduleGetResult checks := [][]interface{}{ {"agent.memory", nil}, {"agent.disk", map[string]string{"target": "/dev/mapper/precise64-root"}}, {"agent.filesystem", map[string]string{"target": "/"}}, {"agent.network", map[string]string{"target": "eth0"}}, {"agent.network", map[string]string{"target": "eth1"}}, {"agent.cpu", nil}, {"agent.load_average", nil}, } for i, v := range checks { rsp.Checks = append(rsp.Checks, check{ ID: fmt.Sprintf("check-%02d", i), Type: v[0].(string), Details: v[1], Period: scheduleInterval, Timeout: scheduleInterval, Disabled: false, }) } responder.Respond(rsp, nil) return endpoint.OK }
// Handle finalizes check_metrics.post request, writing a non-error response func (c checkMetricsFinalizeHandler) Handle(req *endpoint.Request, responder *endpoint.Responder, connCtx endpoint.ConnContext) endpoint.HandleCode { responder.Respond(0, nil) return endpoint.OK }