Skip to content

Commit

Permalink
[exporter/datadogexporter] Rely on http.Client's timeout instead of i…
Browse files Browse the repository at this point in the history
…n exporterhelper's (open-telemetry#6414)
  • Loading branch information
mx-psi committed Nov 30, 2021
1 parent 1e92cc8 commit 90abdb2
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 10 deletions.
6 changes: 4 additions & 2 deletions exporter/datadogexporter/factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,8 @@ func createMetricsExporter(
cfg,
set,
pushMetricsFn,
exporterhelper.WithTimeout(cfg.TimeoutSettings),
// explicitly disable since we rely on http.Client timeout logic.
exporterhelper.WithTimeout(exporterhelper.TimeoutSettings{Timeout: 0 * time.Second}),
exporterhelper.WithRetry(cfg.RetrySettings),
exporterhelper.WithQueue(cfg.QueueSettings),
exporterhelper.WithShutdown(func(context.Context) error {
Expand Down Expand Up @@ -207,7 +208,8 @@ func createTracesExporter(
cfg,
set,
pushTracesFn,
exporterhelper.WithTimeout(cfg.TimeoutSettings),
// explicitly disable since we rely on http.Client timeout logic.
exporterhelper.WithTimeout(exporterhelper.TimeoutSettings{Timeout: 0 * time.Second}),
exporterhelper.WithRetry(cfg.RetrySettings),
exporterhelper.WithQueue(cfg.QueueSettings),
exporterhelper.WithShutdown(func(context.Context) error {
Expand Down
2 changes: 1 addition & 1 deletion exporter/datadogexporter/internal/metadata/metadata.go
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ func pushMetadata(cfg *config.Config, buildInfo component.BuildInfo, metadata *H
req, _ := http.NewRequest(http.MethodPost, path, bytes.NewBuffer(buf))
utils.SetDDHeaders(req.Header, buildInfo, cfg.API.Key)
utils.SetExtraHeaders(req.Header, utils.JSONHeaders)
client := utils.NewHTTPClient(10 * time.Second)
client := utils.NewHTTPClient(cfg.TimeoutSettings)
resp, err := client.Do(req)

if err != nil {
Expand Down
5 changes: 3 additions & 2 deletions exporter/datadogexporter/internal/utils/http.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import (
"time"

"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/exporter/exporterhelper"
)

var (
Expand All @@ -38,9 +39,9 @@ var (
)

// NewHTTPClient returns a http.Client configured with the Agent options.
func NewHTTPClient(timeout time.Duration) *http.Client {
func NewHTTPClient(settings exporterhelper.TimeoutSettings) *http.Client {
return &http.Client{
Timeout: timeout,
Timeout: settings.Timeout,
Transport: &http.Transport{
Proxy: http.ProxyFromEnvironment,
DialContext: (&net.Dialer{
Expand Down
2 changes: 1 addition & 1 deletion exporter/datadogexporter/metrics_exporter.go
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ func translatorFromConfig(logger *zap.Logger, cfg *config.Config) (*translator.T
func newMetricsExporter(ctx context.Context, params component.ExporterCreateSettings, cfg *config.Config) (*metricsExporter, error) {
client := utils.CreateClient(cfg.API.Key, cfg.Metrics.TCPAddr.Endpoint)
client.ExtraHeader["User-Agent"] = utils.UserAgent(params.BuildInfo)
client.HttpClient = utils.NewHTTPClient(10 * time.Second)
client.HttpClient = utils.NewHTTPClient(cfg.TimeoutSettings)

utils.ValidateAPIKey(params.Logger, client)

Expand Down
6 changes: 3 additions & 3 deletions exporter/datadogexporter/trace_connection.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import (
"github.com/DataDog/datadog-agent/pkg/trace/exportable/stats"
"github.com/gogo/protobuf/proto"
"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/exporter/exporterhelper"

"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter/internal/utils"
)
Expand All @@ -45,19 +46,18 @@ type traceEdgeConnectionImpl struct {
}

const (
traceEdgeTimeout time.Duration = 10 * time.Second
traceEdgeRetryInterval time.Duration = 10 * time.Second
)

// createTraceEdgeConnection returns a new traceEdgeConnection
func createTraceEdgeConnection(rootURL, apiKey string, buildInfo component.BuildInfo) traceEdgeConnection {
func createTraceEdgeConnection(rootURL, apiKey string, buildInfo component.BuildInfo, settings exporterhelper.TimeoutSettings) traceEdgeConnection {

return &traceEdgeConnectionImpl{
traceURL: rootURL + "/api/v0.2/traces",
statsURL: rootURL + "/api/v0.2/stats",
buildInfo: buildInfo,
apiKey: apiKey,
client: utils.NewHTTPClient(traceEdgeTimeout),
client: utils.NewHTTPClient(settings),
}
}

Expand Down
2 changes: 1 addition & 1 deletion exporter/datadogexporter/traces_exporter.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ func newTracesExporter(ctx context.Context, params component.ExporterCreateSetti
params: params,
cfg: cfg,
ctx: ctx,
edgeConnection: createTraceEdgeConnection(cfg.Traces.TCPAddr.Endpoint, cfg.API.Key, params.BuildInfo),
edgeConnection: createTraceEdgeConnection(cfg.Traces.TCPAddr.Endpoint, cfg.API.Key, params.BuildInfo, cfg.TimeoutSettings),
obfuscator: obfuscator,
client: client,
denylister: denylister,
Expand Down

0 comments on commit 90abdb2

Please sign in to comment.