Skip to content

Commit

Permalink
add test
Browse files Browse the repository at this point in the history
  • Loading branch information
endorama committed Jun 12, 2024
1 parent 49fc649 commit 046ad35
Showing 1 changed file with 47 additions and 0 deletions.
47 changes: 47 additions & 0 deletions appender_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ import (
sdkmetric "go.opentelemetry.io/otel/sdk/metric"
"go.opentelemetry.io/otel/sdk/metric/metricdata"
"go.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest"
sdktrace "go.opentelemetry.io/otel/sdk/trace"
"go.opentelemetry.io/otel/sdk/trace/tracetest"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"go.uber.org/zap/zaptest/observer"
Expand Down Expand Up @@ -1647,6 +1649,51 @@ func TestAppenderTracing(t *testing.T) {
testAppenderTracing(t, 400, "failure")
}

func TestAppenderOtelTracing(t *testing.T) {
client := docappendertest.NewMockElasticsearchClient(t, func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(200)
_, result := docappendertest.DecodeBulkRequest(r)
json.NewEncoder(w).Encode(result)
})

core, observed := observer.New(zap.NewAtomicLevelAt(zapcore.DebugLevel))

exp := tracetest.NewInMemoryExporter()
tp := sdktrace.NewTracerProvider(
sdktrace.WithSyncer(exp),
)
defer tp.Shutdown(context.Background())

tr := tp.Tracer("test")
indexer, err := docappender.New(client, docappender.Config{
FlushInterval: time.Minute,
Logger: zap.New(core),
// NOTE: Tracer must be nil to use otel tracing
Tracer: nil,
OtelTracer: tr,
})
require.NoError(t, err)

const N = 100
for i := 0; i < N; i++ {
addMinimalDoc(t, indexer, "logs-foo-testing")
}

// Closing the indexer flushes enqueued documents.
require.NoError(t, indexer.Close(context.Background()))

require.NoError(t, tp.Shutdown(context.Background()))
err = exp.Shutdown(context.Background())
require.NoError(t, err)

spans := exp.GetSpans()
fmt.Println(len(spans))
assert.NotEmpty(t, spans)

correlatedLogs := observed.FilterFieldKey("transaction.id").All()
assert.NotEmpty(t, correlatedLogs)
}

func testAppenderTracing(t *testing.T, statusCode int, expectedOutcome string) {
client := docappendertest.NewMockElasticsearchClient(t, func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(statusCode)
Expand Down

0 comments on commit 046ad35

Please sign in to comment.