diff --git a/Dockerfile b/Dockerfile index 055ae8d..6ea7c76 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,7 +10,7 @@ COPY otel-ui/ . RUN npm install && npm run build # Go build stage -FROM --platform=$BUILDPLATFORM golang:1.25-alpine AS go-builder +FROM --platform=$BUILDPLATFORM golang:1.27-alpine AS go-builder WORKDIR /app diff --git a/go.mod b/go.mod index 321300b..1110493 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module git.tornberg.me/go-otel -go 1.26.0 +go 1.27.0 require ( github.com/gorilla/websocket v1.5.3 @@ -8,6 +8,7 @@ require ( go.opentelemetry.io/collector/consumer v1.55.0 go.opentelemetry.io/collector/pdata v1.55.0 go.opentelemetry.io/proto/otlp v1.10.0 + golang.org/x/time v0.16.0 google.golang.org/grpc v1.80.0 google.golang.org/protobuf v1.36.11 ) @@ -26,7 +27,6 @@ require ( golang.org/x/net v0.52.0 // indirect golang.org/x/sys v0.42.0 // indirect golang.org/x/text v0.35.0 // indirect - golang.org/x/time v0.16.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20260401024825-9d38bb4040a9 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20260401024825-9d38bb4040a9 // indirect gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect diff --git a/internal/collector/issue_extract.go b/internal/collector/issue_extract.go index 3204dbe..26d0699 100644 --- a/internal/collector/issue_extract.go +++ b/internal/collector/issue_extract.go @@ -60,11 +60,18 @@ func extractLogErrors(tracker *issues.Tracker, ld plog.Logs, timestamp int64) { } title := logErrorTitle(record) - tracker.Record("log_error", service, title, issues.Sample{ + kind := "log_error" + var url string + if attrString(record.Attributes(), "source") == "frontend" { + kind = "frontend_error" + url = attrString(record.Attributes(), "browser.url") + } + tracker.Record(kind, service, title, issues.Sample{ Timestamp: timestamp, TraceID: idString(record.TraceID()), SpanID: idString(record.SpanID()), Message: title, + URL: url, }) } } diff --git a/internal/issues/tracker.go b/internal/issues/tracker.go index 0d03374..36b585b 100644 --- a/internal/issues/tracker.go +++ b/internal/issues/tracker.go @@ -23,6 +23,9 @@ type Sample struct { TraceID string `json:"traceId,omitempty"` SpanID string `json:"spanId,omitempty"` Message string `json:"message"` + // URL is the page URL an occurrence happened on, populated only for + // browser-originated (otel-rum) errors. + URL string `json:"url,omitempty"` } // Issue is a deduplicated group of related errors, fingerprinted by kind,