mirror of
https://github.com/pomerium/pomerium.git
synced 2025-05-31 18:07:17 +02:00
New tracing system (#5388)
* update tracing config definitions * new tracing system * performance improvements * only configure tracing in envoy if it is enabled in pomerium * [tracing] refactor to use custom extension for trace id editing (#5420) refactor to use custom extension for trace id editing * set default tracing sample rate to 1.0 * fix proxy service http middleware * improve some existing auth related traces * test fixes * bump envoyproxy/go-control-plane * code cleanup * test fixes * Fix missing spans for well-known endpoints * import extension apis from pomerium/envoy-custom
This commit is contained in:
parent
832742648d
commit
396c35b6b4
121 changed files with 6096 additions and 1946 deletions
72
internal/telemetry/trace/trace_export_test.go
Normal file
72
internal/telemetry/trace/trace_export_test.go
Normal file
|
@ -0,0 +1,72 @@
|
|||
package trace
|
||||
|
||||
import (
|
||||
"cmp"
|
||||
"io"
|
||||
"slices"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
oteltrace "go.opentelemetry.io/otel/trace"
|
||||
)
|
||||
|
||||
var (
|
||||
NewSpanObserver = newSpanObserver
|
||||
NewSpanTracker = newSpanTracker
|
||||
)
|
||||
|
||||
type XStackTraceProcessor = stackTraceProcessor
|
||||
|
||||
func (obs *spanObserver) XWait() {
|
||||
obs.wait(5 * time.Second)
|
||||
}
|
||||
|
||||
func (obs *spanObserver) XUnobservedIDs() []oteltrace.SpanID {
|
||||
obs.cond.L.Lock()
|
||||
defer obs.cond.L.Unlock()
|
||||
ids := []oteltrace.SpanID{}
|
||||
for k, v := range obs.referencedIDs {
|
||||
if v.IsValid() {
|
||||
ids = append(ids, k)
|
||||
}
|
||||
}
|
||||
slices.SortFunc(ids, func(a, b oteltrace.SpanID) int {
|
||||
return cmp.Compare(a.String(), b.String())
|
||||
})
|
||||
return ids
|
||||
}
|
||||
|
||||
func (obs *spanObserver) XObservedIDs() []oteltrace.SpanID {
|
||||
obs.cond.L.Lock()
|
||||
defer obs.cond.L.Unlock()
|
||||
ids := []oteltrace.SpanID{}
|
||||
for k, v := range obs.referencedIDs {
|
||||
if !v.IsValid() {
|
||||
ids = append(ids, k)
|
||||
}
|
||||
}
|
||||
slices.SortFunc(ids, func(a, b oteltrace.SpanID) int {
|
||||
return cmp.Compare(a.String(), b.String())
|
||||
})
|
||||
return ids
|
||||
}
|
||||
|
||||
func (t *spanTracker) XInflightSpans() []oteltrace.SpanID {
|
||||
ids := []oteltrace.SpanID{}
|
||||
t.inflightSpansMu.LockAll()
|
||||
t.inflightSpans.Range(func(key oteltrace.SpanID) {
|
||||
ids = append(ids, key)
|
||||
})
|
||||
t.inflightSpansMu.UnlockAll()
|
||||
slices.SortFunc(ids, func(a, b oteltrace.SpanID) int {
|
||||
return cmp.Compare(a.String(), b.String())
|
||||
})
|
||||
return ids
|
||||
}
|
||||
|
||||
func SetDebugMessageWriterForTest(t testing.TB, w io.Writer) {
|
||||
debugMessageWriter = w
|
||||
t.Cleanup(func() {
|
||||
debugMessageWriter = nil
|
||||
})
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue