issue tracker

This commit is contained in:
mats committed 2026-09-17 20:42:19 +00:00
1 parent c20a0b77f3
commit 9620e3bfa6
4 files changed
+14 -4

No files matched your search

+1 -1
View File
@@ -10,7 +10,7 @@ COPY otel-ui/ .
RUN npm install && npm run build RUN npm install && npm run build
# Go build stage # 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 WORKDIR /app
+2 -2
View File
@@ -1,6 +1,6 @@
module git.tornberg.me/go-otel module git.tornberg.me/go-otel
go 1.26.0 go 1.27.0
require ( require (
github.com/gorilla/websocket v1.5.3 github.com/gorilla/websocket v1.5.3
@@ -8,6 +8,7 @@ require (
go.opentelemetry.io/collector/consumer v1.55.0 go.opentelemetry.io/collector/consumer v1.55.0
go.opentelemetry.io/collector/pdata v1.55.0 go.opentelemetry.io/collector/pdata v1.55.0
go.opentelemetry.io/proto/otlp v1.10.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/grpc v1.80.0
google.golang.org/protobuf v1.36.11 google.golang.org/protobuf v1.36.11
) )
@@ -26,7 +27,6 @@ require (
golang.org/x/net v0.52.0 // indirect golang.org/x/net v0.52.0 // indirect
golang.org/x/sys v0.42.0 // indirect golang.org/x/sys v0.42.0 // indirect
golang.org/x/text v0.35.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/api v0.0.0-20260401024825-9d38bb4040a9 // indirect
google.golang.org/genproto/googleapis/rpc 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 gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
+8 -1
View File
@@ -60,11 +60,18 @@ func extractLogErrors(tracker *issues.Tracker, ld plog.Logs, timestamp int64) {
} }
title := logErrorTitle(record) 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, Timestamp: timestamp,
TraceID: idString(record.TraceID()), TraceID: idString(record.TraceID()),
SpanID: idString(record.SpanID()), SpanID: idString(record.SpanID()),
Message: title, Message: title,
URL: url,
}) })
} }
} }
+3
View File
@@ -23,6 +23,9 @@ type Sample struct {
TraceID string `json:"traceId,omitempty"` TraceID string `json:"traceId,omitempty"`
SpanID string `json:"spanId,omitempty"` SpanID string `json:"spanId,omitempty"`
Message string `json:"message"` 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, // Issue is a deduplicated group of related errors, fingerprinted by kind,