Skip to content
Snippets Groups Projects
Commit 8b30f143 authored by Jamie Tanna's avatar Jamie Tanna
Browse files

chore(telemetry): automagically instrument HTTP clients

As part of #621, we want to have insight across everything `dmd` does.

To automagically instrument our HTTP calls, we can use `otelhttp`'s
inbuilt automagic `http.Transport` for this.

This also improves the duplication by calling out to a central method
for creating our HTTP client.
parent 45c605de
No related branches found
No related tags found
Loading
......@@ -2,7 +2,6 @@ package cmd
import (
"fmt"
"net/http"
"os"
"dmd.tanna.dev/internal/advisory"
......@@ -47,7 +46,7 @@ Known issues:
sqlDB, err := openDatabaseForWrite(ctx, databasePath)
cobra.CheckErr(err)
httpClient := http.DefaultClient
httpClient := tracing.NewHTTPClient()
pw := view.NewProgressWriter(os.Stdout, noProgress)
......
......@@ -2,7 +2,6 @@ package cmd
import (
"fmt"
"net/http"
"os"
"dmd.tanna.dev/internal/dependencyhealth"
......@@ -39,7 +38,7 @@ Known issues:
sqlDB, err := openDatabaseForWrite(ctx, databasePath)
cobra.CheckErr(err)
httpClient := http.DefaultClient
httpClient := tracing.NewHTTPClient()
pw := view.NewProgressWriter(os.Stdout, noProgress)
go pw.Render()
......
......@@ -2,7 +2,6 @@ package cmd
import (
"fmt"
"net/http"
"os"
"dmd.tanna.dev/internal/libyear"
......@@ -37,7 +36,7 @@ Known issues:
sqlDB, err := openDatabaseForWrite(ctx, databasePath)
cobra.CheckErr(err)
httpClient := http.DefaultClient
httpClient := tracing.NewHTTPClient()
pw := view.NewProgressWriter(os.Stdout, noProgress)
go pw.Render()
......
......@@ -2,7 +2,6 @@ package cmd
import (
"fmt"
"net/http"
"os"
"dmd.tanna.dev/internal/depsdev"
......@@ -37,7 +36,7 @@ Known issues:
sqlDB, err := openDatabaseForWrite(ctx, databasePath)
cobra.CheckErr(err)
httpClient := http.DefaultClient
httpClient := tracing.NewHTTPClient()
pw := view.NewProgressWriter(os.Stdout, noProgress)
......
......@@ -58,7 +58,7 @@ dmd db import scorecard --db dmd.db '*.json'
}
pw.AppendTracker(&tracker)
httpClient := http.DefaultClient
httpClient := tracing.NewHTTPClient()
ecosystemsClient, err := ecosystems.NewClientWithResponses(ecosystems.BaseURL, ecosystems.WithHTTPClient(httpClient))
if err != nil {
cobra.CheckErr(fmt.Errorf("failed to construct API client for Ecosyste.ms' Packages API: %w", err))
......
......@@ -2,7 +2,6 @@ package cmd
import (
"fmt"
"net/http"
"os"
"dmd.tanna.dev/internal/domain"
......@@ -61,7 +60,7 @@ If a GITHUB_TOKEN is not provided, we will use the cached data in Ecosystems, wh
},
}
tw, err := reports.Hacktoberfest(ctx, logger, sqlDB, pw, http.DefaultClient, githubToken, params)
tw, err := reports.Hacktoberfest(ctx, logger, sqlDB, pw, tracing.NewHTTPClient(), githubToken, params)
cobra.CheckErr(err)
if tw == nil {
......
package tracing
import (
"net/http"
"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
)
func NewHTTPClient() *http.Client {
return &http.Client{
Transport: otelhttp.NewTransport(http.DefaultTransport),
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment