Skip to content

Commit 0cab93f

Browse files
committed
Enhance OpenTelemetry configuration by adding a filter for session tokens and updating processors. Modify server registration to include configuration parameters. Update session token handler to utilize dynamic base URL for OTLP endpoints.
1 parent e8b923a commit 0cab93f

5 files changed

Lines changed: 16 additions & 7 deletions

File tree

cmd/server/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ func main() {
6060

6161
e := echo.New()
6262
otelTracer := otel.Tracer(cfg.ServiceName)
63-
httpserver.Register(e, database, otelTracer)
63+
httpserver.Register(e, database, otelTracer, &cfg)
6464

6565
srv := &http.Server{
6666
Addr: ":" + cfg.Port,

internal/config/config.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ type Config struct {
1212
LogLevel string `env:"LOG_LEVEL" envDefault:"info"`
1313
ServiceName string `env:"SERVICE_NAME" envDefault:"default"`
1414
ShutdownTimeoutS int `env:"SHUTDOWN_TIMEOUT_SECONDS" envDefault:"10"`
15+
BaseURL string `env:"BASE_URL" envDefault:"otelmap.com"`
1516
ShutdownTimeout time.Duration `env:"-"`
1617
}
1718

internal/handlers/session_token.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"net/http"
55

66
"github.com/google/uuid"
7+
"github.com/jack5341/otel-map-server/internal/config"
78
errorz "github.com/jack5341/otel-map-server/internal/errors"
89
"github.com/jack5341/otel-map-server/internal/models"
910
"github.com/labstack/echo/v4"
@@ -14,10 +15,11 @@ import (
1415
type SessionTokenHandler struct {
1516
db *gorm.DB
1617
otelTracer trace.Tracer
18+
config *config.Config
1719
}
1820

19-
func NewSessionTokenHandler(db *gorm.DB, otelTracer trace.Tracer) *SessionTokenHandler {
20-
return &SessionTokenHandler{db: db, otelTracer: otelTracer}
21+
func NewSessionTokenHandler(db *gorm.DB, otelTracer trace.Tracer, config *config.Config) *SessionTokenHandler {
22+
return &SessionTokenHandler{db: db, otelTracer: otelTracer, config: config}
2123
}
2224

2325
func (h *SessionTokenHandler) Create(c echo.Context) error {
@@ -31,7 +33,8 @@ func (h *SessionTokenHandler) Create(c echo.Context) error {
3133
resp := map[string]any{
3234
"token": token.String(),
3335
"ingest": map[string]any{
34-
"otlp_http_url": "https://collector.example.com/v1/traces",
36+
"otlp_http_url": "https://" + h.config.BaseURL + "/v1/traces",
37+
"otlp_grpc_url": "https://" + h.config.BaseURL + "/opentelemetry.proto",
3538
"header_key": "X-OTEL-SESSION",
3639
"header_value": token.String(),
3740
"resource_attribute": map[string]any{

internal/http/server.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@ import (
66

77
"github.com/labstack/echo/v4"
88

9+
"github.com/jack5341/otel-map-server/internal/config"
910
"github.com/jack5341/otel-map-server/internal/handlers"
1011
imw "github.com/jack5341/otel-map-server/internal/http/middleware"
1112
)
1213

13-
func Register(e *echo.Echo, db *gorm.DB, otelTracer trace.Tracer) {
14+
func Register(e *echo.Echo, db *gorm.DB, otelTracer trace.Tracer, config *config.Config) {
1415
imw.Apply(e, otelTracer)
1516

1617
api := e.Group("/api")
@@ -19,7 +20,7 @@ func Register(e *echo.Echo, db *gorm.DB, otelTracer trace.Tracer) {
1920
// Handlers
2021
health := handlers.NewHealthHandler(db, otelTracer)
2122
serviceMap := handlers.NewServiceMapHandler(db, otelTracer)
22-
sessionToken := handlers.NewSessionTokenHandler(db, otelTracer)
23+
sessionToken := handlers.NewSessionTokenHandler(db, otelTracer, config)
2324

2425
// Health endpoints
2526
v1.GET("/healthz", health.Liveness)

otel-config.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ processors:
2222
- key: service.name
2323
value: "serviceName"
2424
action: upsert
25+
filter:
26+
traces:
27+
span:
28+
- 'resource.attributes["otelmap.session_token"] != nil'
2529
exporters:
2630
clickhouse:
2731
endpoint: tcp://clickhouse:9000
@@ -61,7 +65,7 @@ service:
6165
exporters: [clickhouse]
6266
traces:
6367
receivers: [otlp]
64-
processors: [memory_limiter, resourcedetection/system, resource, batch]
68+
processors: [memory_limiter, resourcedetection/system, resource, filter, batch]
6569
exporters: [clickhouse]
6670
metrics:
6771
receivers: [otlp]

0 commit comments

Comments
 (0)