MCPcopy
hub / github.com/grafana/tempo / startMicroservices

Method startMicroservices

integration/util/harness.go:508–575  ·  view source on GitHub ↗

startMicroservices starts all Tempo microservices and waits for them to be ready

(t *testing.T, config TestHarnessConfig)

Source from the content-addressed store, hash-verified

506
507// startMicroservices starts all Tempo microservices and waits for them to be ready
508func (h *TempoHarness) startMicroservices(t *testing.T, config TestHarnessConfig) error {
509 t.Helper()
510
511 s := h.TestScenario
512 readinessProbe := e2e.ReadinessProbe(e2e.NewHTTPReadinessProbe(3200, "/ready", 200, 299))
513 if h.readinessProbe != nil {
514 readinessProbe = h.readinessProbe
515 }
516
517 if config.Components&componentsLiveStore != 0 {
518 liveStoreZoneA := NewTempoService("live-store-zone-a-0", "live-store", readinessProbe, nil, "-live-store.instance-availability-zone=zone-a")
519 h.Services[ServiceLiveStoreZoneA] = liveStoreZoneA
520 if err := s.StartAndWaitReady(liveStoreZoneA); err != nil {
521 return fmt.Errorf("failed to start live store zone a: %w", err)
522 }
523
524 liveStoreZoneB := NewTempoService("live-store-zone-b-0", "live-store", readinessProbe, nil, "-live-store.instance-availability-zone=zone-b")
525 h.Services[ServiceLiveStoreZoneB] = liveStoreZoneB
526 if err := s.StartAndWaitReady(liveStoreZoneB); err != nil {
527 return fmt.Errorf("failed to start live store zone b: %w", err)
528 }
529 }
530
531 if config.Components&componentsDistributor != 0 {
532 h.Services[ServiceDistributor] = NewTempoService("distributor", "distributor",
533 readinessProbe,
534 []int{14250, 4317, 4318, 9411}, // jaeger grpc ingest, otlp grpc, otlp http, zipkin ingest
535 )
536 if err := s.StartAndWaitReady(h.Services[ServiceDistributor]); err != nil {
537 return fmt.Errorf("failed to start distributor: %w", err)
538 }
539 }
540
541 if config.Components&componentsQueryFrontendQuerier != 0 {
542 h.Services[ServiceQueryFrontend] = NewTempoService("query-frontend", "query-frontend", readinessProbe, nil)
543 h.Services[ServiceQuerier] = NewTempoService("querier", "querier", readinessProbe, nil)
544 if err := s.StartAndWaitReady(h.Services[ServiceQueryFrontend], h.Services[ServiceQuerier]); err != nil {
545 return fmt.Errorf("failed to start query frontend and querier: %w", err)
546 }
547 }
548
549 if config.Components&componentsBlockBuilder != 0 {
550 blockBuilder := NewTempoService("block-builder-0", "block-builder", readinessProbe, nil)
551 h.Services[ServiceBlockBuilder] = blockBuilder
552 if err := s.StartAndWaitReady(blockBuilder); err != nil {
553 return fmt.Errorf("failed to start block builder: %w", err)
554 }
555 }
556
557 if config.Components&componentsMetricsGenerator != 0 {
558 h.Services[ServiceMetricsGenerator] = NewTempoService("metrics-generator", "metrics-generator", readinessProbe, nil)
559 if err := s.StartAndWaitReady(h.Services[ServiceMetricsGenerator]); err != nil {
560 return fmt.Errorf("failed to start metrics generator: %w", err)
561 }
562 }
563
564 if config.Components&componentsBackendSchedulerWorker != 0 {
565 scheduler := NewTempoService("backend-scheduler", "backend-scheduler", readinessProbe, []int{9095})

Callers 1

runTempoHarnessFunction · 0.95

Calls 1

NewTempoServiceFunction · 0.85

Tested by

no test coverage detected