(ctx context.Context, cfg Config)
| 116 | } |
| 117 | |
| 118 | func (s *Server) Start(ctx context.Context, cfg Config) error { |
| 119 | s.address = cfg.Address |
| 120 | s.logger = cfg.Logger |
| 121 | s.artificialLatency = cfg.ArtificialLatency |
| 122 | s.responsePayloadSize = cfg.ResponsePayloadSize |
| 123 | |
| 124 | if cfg.TraceEnable { |
| 125 | otel.SetTextMapPropagator( |
| 126 | propagation.NewCompositeTextMapPropagator( |
| 127 | propagation.TraceContext{}, |
| 128 | propagation.Baggage{}, |
| 129 | ), |
| 130 | ) |
| 131 | |
| 132 | tracerProvider, closeTracing, err := tracing.TracerProvider(ctx, "llm-mock", tracing.TracerOpts{ |
| 133 | Default: cfg.TraceEnable, |
| 134 | }) |
| 135 | if err != nil { |
| 136 | s.logger.Warn(ctx, "failed to initialize tracing", slog.Error(err)) |
| 137 | } else { |
| 138 | s.tracerProvider = tracerProvider |
| 139 | s.closeTracing = closeTracing |
| 140 | } |
| 141 | } |
| 142 | |
| 143 | if err := s.startAPIServer(ctx); err != nil { |
| 144 | return xerrors.Errorf("start API server: %w", err) |
| 145 | } |
| 146 | |
| 147 | return nil |
| 148 | } |
| 149 | |
| 150 | func (s *Server) Stop() error { |
| 151 | if s.httpServer != nil { |
nothing calls this directly
no test coverage detected