コード例 #1
0
func main() {
	h := handler.New("/etc/sensu/conf.d/handler-elasticsearch.json")
	lines := strings.Split(strings.TrimRight(h.Event.Check.Output, "\n"), "\n")

	for _, line := range lines {
		request, err := http.NewRequest("POST", url(&h.Event, &h.Config), strings.NewReader(payload(line)))
		if err != nil {
			continue
		}
		request.Header.Set("Content-Type", "application/json")

		http.DefaultClient.Do(request)
	}
}
コード例 #2
0
func main() {
	h := handler.New("/etc/sensu/conf.d/handler-delete.json")

	status := h.Config.GetPath("delete", "status").MustInt()
	contain := contains(h.Event.Client.Subscriptions, h.Config.GetPath("delete", "subscriptions").MustArray())
	if h.Event.Check.Name != "keepalive" || h.Event.Check.Status != status || !contain {
		return
	}

	sensu.DefaultAPI = &sensu.API{
		Host:     h.Config.GetPath("delete", "host").MustString(),
		Port:     h.Config.GetPath("delete", "port").MustInt(),
		User:     h.Config.GetPath("delete", "user").MustString(),
		Password: h.Config.GetPath("delete", "password").MustString(),
	}
	sensu.DefaultAPI.DeleteClientsClient(h.Event.Client.Name)
}