more
Build and Publish / Metadata (push) Successful in 3s
Build and Publish / BuildAndDeployAmd64 (push) Successful in 1m35s

This commit is contained in:
mats committed 2026-09-19 20:06:36 +02:00
1 parent 8f670dfa2f
commit 2237fbda55
15 files changed
+594 -52

No files matched your search

@@ -15,7 +15,7 @@ import type {
} from "../lib/types"
import { ObservabilityContext, type TimeRangeFilter } from "./ObservabilityContextValue"
import { getServiceName, formatAttributeValue, isSpanError } from "../lib/otel-utils"
import { partitionMessages, mergeLogsByTraceId } from "../lib/ingest"
import { addFifoSet, appendFifo, partitionMessages, mergeLogsByTraceId, STREAM_LIMITS } from "../lib/ingest"
import { authFetch, tokens } from "../lib/auth"
interface ObservabilityProviderProps {
@@ -257,21 +257,17 @@ export function ObservabilityProvider({
if (queued.length > 0) {
const partitioned = partitionMessages(queued)
if (partitioned.traces.length) {
setTraces((prev) => [...prev, ...partitioned.traces])
setTraces((prev) => appendFifo(prev, partitioned.traces, STREAM_LIMITS.traces))
}
if (partitioned.metrics.length) {
setMetrics((prev) => [...prev, ...partitioned.metrics])
setMetrics((prev) => appendFifo(prev, partitioned.metrics, STREAM_LIMITS.metrics))
}
if (partitioned.logs.length) {
setLogs((prev) => [...prev, ...partitioned.logs])
setLogs((prev) => appendFifo(prev, partitioned.logs, STREAM_LIMITS.logs))
setLogsByTraceId((prev) => mergeLogsByTraceId(prev, partitioned.logsByTraceId))
}
if (partitioned.traceIds.size) {
setKnownTraceIds((prev) => {
const next = new Set(prev)
partitioned.traceIds.forEach((id) => next.add(id))
return next
})
setKnownTraceIds((prev) => addFifoSet(prev, partitioned.traceIds, STREAM_LIMITS.knownTraceIds))
}
}
}, [])
@@ -623,11 +619,11 @@ export function ObservabilityProvider({
partitioned.metrics.length, "metrics",
)
setTraces(partitioned.traces)
setMetrics(partitioned.metrics)
setLogs(partitioned.logs)
setLogsByTraceId(partitioned.logsByTraceId)
setKnownTraceIds(partitioned.traceIds)
setTraces(partitioned.traces.slice(-STREAM_LIMITS.traces))
setMetrics(partitioned.metrics.slice(-STREAM_LIMITS.metrics))
setLogs(partitioned.logs.slice(-STREAM_LIMITS.logs))
setLogsByTraceId(mergeLogsByTraceId({}, partitioned.logsByTraceId))
setKnownTraceIds(addFifoSet(new Set(), partitioned.traceIds, STREAM_LIMITS.knownTraceIds))
} catch (error) {
console.error("Error fetching history:", error)
}
@@ -660,7 +656,11 @@ export function ObservabilityProvider({
// If stream is paused, buffer the incoming signal
if (!isStreamingRef.current) {
bufferedMessagesRef.current.push(data as OtelMessage)
bufferedMessagesRef.current = appendFifo(
bufferedMessagesRef.current,
[data as OtelMessage],
STREAM_LIMITS.bufferedMessages,
)
setBufferedCount(bufferedMessagesRef.current.length)
return
}
@@ -668,21 +668,17 @@ export function ObservabilityProvider({
const partitioned = partitionMessages([data as OtelMessage])
if (partitioned.traces.length) {
setTraces((prev) => [...prev, ...partitioned.traces])
setTraces((prev) => appendFifo(prev, partitioned.traces, STREAM_LIMITS.traces))
}
if (partitioned.metrics.length) {
setMetrics((prev) => [...prev, ...partitioned.metrics])
setMetrics((prev) => appendFifo(prev, partitioned.metrics, STREAM_LIMITS.metrics))
}
if (partitioned.logs.length) {
setLogs((prev) => [...prev, ...partitioned.logs])
setLogs((prev) => appendFifo(prev, partitioned.logs, STREAM_LIMITS.logs))
setLogsByTraceId((prev) => mergeLogsByTraceId(prev, partitioned.logsByTraceId))
}
if (partitioned.traceIds.size) {
setKnownTraceIds((prev) => {
const next = new Set(prev)
partitioned.traceIds.forEach((id) => next.add(id))
return next
})
setKnownTraceIds((prev) => addFifoSet(prev, partitioned.traceIds, STREAM_LIMITS.knownTraceIds))
}
} catch (error) {
console.error("Error parsing WebSocket message:", error)
@@ -734,21 +730,22 @@ export function ObservabilityProvider({
const partitioned = partitionMessages(data ?? [])
if (partitioned.traces.length) {
setTraces((prev) => [...prev, ...partitioned.traces])
setTraces((prev) => appendFifo(prev, partitioned.traces, STREAM_LIMITS.traces))
}
if (partitioned.metrics.length) {
setMetrics((prev) => [...prev, ...partitioned.metrics])
setMetrics((prev) => appendFifo(prev, partitioned.metrics, STREAM_LIMITS.metrics))
}
if (partitioned.logs.length) {
setLogs((prev) => [...prev, ...partitioned.logs])
setLogs((prev) => appendFifo(prev, partitioned.logs, STREAM_LIMITS.logs))
setLogsByTraceId((prev) => mergeLogsByTraceId(prev, partitioned.logsByTraceId))
}
setKnownTraceIds((prev) => {
const next = new Set(prev)
partitioned.traceIds.forEach((id) => next.add(id))
next.add(activeTraceId)
return next
return addFifoSet(
prev,
new Set([...partitioned.traceIds, activeTraceId]),
STREAM_LIMITS.knownTraceIds,
)
})
})
.catch((error) => {