Skip to content

Commit a3dc868

Browse files
Reuse transport to avoid the unnecessary connections (#31)
* Reuse trasport to avoid uncessary connections * Fix typo Co-authored-by: Kanwen Li 🐼 <[email protected]> Co-authored-by: Mustafa Akın <[email protected]>
1 parent 9847b8c commit a3dc868

File tree

1 file changed

+14
-12
lines changed

1 file changed

+14
-12
lines changed

pkg/sinks/webhook.go

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ import (
55
"context"
66
"errors"
77
"fmt"
8-
"github.com/rs/zerolog/log"
98
"io/ioutil"
109
"net/http"
1110

11+
12+
"github.com/rs/zerolog/log"
1213
"github.com/resmoio/kubernetes-event-exporter/pkg/kube"
1314
)
1415

@@ -20,15 +21,23 @@ type WebhookConfig struct {
2021
}
2122

2223
func NewWebhook(cfg *WebhookConfig) (Sink, error) {
23-
return &Webhook{cfg: cfg}, nil
24+
tlsClientConfig, err := setupTLS(&cfg.TLS)
25+
if err != nil {
26+
return nil, fmt.Errorf("failed to setup TLS: %w", err)
27+
}
28+
return &Webhook{cfg: cfg, transport: &http.Transport{
29+
Proxy: http.ProxyFromEnvironment,
30+
TLSClientConfig: tlsClientConfig,
31+
}}, nil
2432
}
2533

2634
type Webhook struct {
27-
cfg *WebhookConfig
35+
cfg *WebhookConfig
36+
transport *http.Transport
2837
}
2938

3039
func (w *Webhook) Close() {
31-
// No-op
40+
w.transport.CloseIdleConnections()
3241
}
3342

3443
func (w *Webhook) Send(ctx context.Context, ev *kube.EnhancedEvent) error {
@@ -54,15 +63,8 @@ func (w *Webhook) Send(ctx context.Context, ev *kube.EnhancedEvent) error {
5463
}
5564
}
5665

57-
tlsClientConfig, err := setupTLS(&w.cfg.TLS)
58-
if err != nil {
59-
return fmt.Errorf("failed to setup TLS: %w", err)
60-
}
6166
client := http.DefaultClient
62-
client.Transport = &http.Transport{
63-
Proxy: http.ProxyFromEnvironment,
64-
TLSClientConfig: tlsClientConfig,
65-
}
67+
client.Transport = w.transport
6668
resp, err := client.Do(req)
6769
if err != nil {
6870
return err

0 commit comments

Comments
 (0)