Handle connection failures on webhook/url pings (#8204)

Properly handle connection failures while replaying events

Fixes #8194
This commit is contained in:
Praveen raj Mani
2019-09-13 05:14:51 +05:30
committed by Harshavardhana
parent ff6aabd9c0
commit 8700945cdf
7 changed files with 54 additions and 63 deletions

View File

@@ -83,11 +83,8 @@ func (target *ElasticsearchTarget) Save(eventData event.Event) error {
return target.store.Put(eventData)
}
if dErr := target.args.URL.DialHTTP(); dErr != nil {
if urlErr, ok := dErr.(*url.Error); ok {
// To treat "connection refused" errors as errNotConnected.
if IsConnRefusedErr(urlErr.Err) {
return errNotConnected
}
if xnet.IsNetworkOrHostDown(dErr) {
return errNotConnected
}
return dErr
}
@@ -157,11 +154,8 @@ func (target *ElasticsearchTarget) Send(eventKey string) error {
}
if dErr := target.args.URL.DialHTTP(); dErr != nil {
if urlErr, ok := dErr.(*url.Error); ok {
// To treat "connection refused" errors as errNotConnected.
if IsConnRefusedErr(urlErr.Err) {
return errNotConnected
}
if xnet.IsNetworkOrHostDown(dErr) {
return errNotConnected
}
return dErr
}

View File

@@ -87,11 +87,8 @@ func (target *WebhookTarget) Save(eventData event.Event) error {
return pErr
}
if dErr := u.DialHTTP(); dErr != nil {
if urlErr, ok := dErr.(*url.Error); ok {
// To treat "connection refused" errors as errNotConnected.
if IsConnRefusedErr(urlErr.Err) {
return errNotConnected
}
if xnet.IsNetworkOrHostDown(dErr) {
return errNotConnected
}
return dErr
}
@@ -136,17 +133,13 @@ func (target *WebhookTarget) send(eventData event.Event) error {
// Send - reads an event from store and sends it to webhook.
func (target *WebhookTarget) Send(eventKey string) error {
u, pErr := xnet.ParseURL(target.args.Endpoint.String())
if pErr != nil {
return pErr
}
if dErr := u.DialHTTP(); dErr != nil {
if urlErr, ok := dErr.(*url.Error); ok {
// To treat "connection refused" errors as errNotConnected.
if IsConnRefusedErr(urlErr.Err) {
return errNotConnected
}
if xnet.IsNetworkOrHostDown(dErr) {
return errNotConnected
}
return dErr
}