mirror of
https://github.com/pomerium/pomerium.git
synced 2025-07-30 23:09:23 +02:00
add new trace debug flags; http upstream client logic fixes; adjust timeouts
This commit is contained in:
parent
12dbe2064a
commit
80e559c817
5 changed files with 358 additions and 192 deletions
|
@ -4,21 +4,47 @@ import (
|
|||
"context"
|
||||
"io"
|
||||
"net/http"
|
||||
"os"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/pomerium/pomerium/config"
|
||||
"github.com/pomerium/pomerium/internal/telemetry/trace"
|
||||
"github.com/pomerium/pomerium/internal/testenv"
|
||||
"github.com/pomerium/pomerium/internal/testenv/scenarios"
|
||||
"github.com/pomerium/pomerium/internal/testenv/snippets"
|
||||
"github.com/pomerium/pomerium/internal/testenv/upstreams"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
oteltrace "go.opentelemetry.io/otel/trace"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/connectivity"
|
||||
"google.golang.org/grpc/credentials/insecure"
|
||||
)
|
||||
|
||||
func TestOTLPTracing(t *testing.T) {
|
||||
t.Setenv("OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", "http://localhost:4317")
|
||||
env := testenv.New(t)
|
||||
tracesEndpoint := os.Getenv("OTEL_EXPORTER_OTLP_TRACES_ENDPOINT")
|
||||
if tracesEndpoint == "" {
|
||||
tracesEndpoint = "http://localhost:4317"
|
||||
os.Setenv("OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", tracesEndpoint)
|
||||
}
|
||||
client, err := grpc.NewClient(tracesEndpoint, grpc.WithTransportCredentials(insecure.NewCredentials()))
|
||||
require.NoError(t, err)
|
||||
client.Connect()
|
||||
ctx, ca := context.WithTimeout(context.Background(), 100*time.Millisecond)
|
||||
defer ca()
|
||||
if !client.WaitForStateChange(ctx, connectivity.Ready) {
|
||||
t.Skip("OTLP server offline: " + tracesEndpoint)
|
||||
}
|
||||
client.Close()
|
||||
|
||||
env := testenv.New(t, testenv.AddTraceDebugFlags(
|
||||
trace.WarnOnIncompleteSpans|
|
||||
trace.WarnOnIncompleteTraces|
|
||||
trace.WarnOnUnresolvedReferences|
|
||||
trace.LogTraceIDMappingsOnWarn|
|
||||
trace.LogAllSpansOnWarn,
|
||||
))
|
||||
defer env.Stop()
|
||||
env.Add(testenv.ModifierFunc(func(ctx context.Context, cfg *config.Config) {
|
||||
cfg.Options.ProxyLogLevel = config.LogLevelInfo
|
||||
|
@ -43,13 +69,13 @@ func TestOTLPTracing(t *testing.T) {
|
|||
env.Start()
|
||||
snippets.WaitStartupComplete(env)
|
||||
|
||||
ctx, span := env.Tracer().Start(env.Context(), "Authenticate", trace.WithNewRoot())
|
||||
ctx, span := env.Tracer().Start(env.Context(), "Authenticate", oteltrace.WithNewRoot())
|
||||
defer span.End()
|
||||
resp, err := up.Get(route, upstreams.AuthenticateAs("foo@example.com"), upstreams.Path("/foo"), upstreams.Context(ctx))
|
||||
span.End()
|
||||
require.NoError(t, err)
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
resp.Body.Close()
|
||||
assert.NoError(t, err)
|
||||
assert.NoError(t, resp.Body.Close())
|
||||
assert.Equal(t, resp.StatusCode, 200)
|
||||
assert.Equal(t, "OK", string(body))
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue