@@ -463,36 +463,36 @@ services:
463
463
# ********************
464
464
# Jaeger
465
465
jaeger :
466
- image : jaegertracing/all-in-one:1.48.0
466
+ image : jaegertracing/all-in-one:1.50
467
467
container_name : jaeger
468
468
command :
469
- - " --memory.max-traces"
470
- - " 10000"
471
- - " --query.base-path"
472
- - " /jaeger/ui"
473
- - " --prometheus.server-url"
474
- - " http://${PROMETHEUS_ADDR}"
469
+ - " --memory.max-traces=8000"
470
+ - " --query.base-path=/jaeger/ui"
471
+ - " --prometheus.server-url=http://${PROMETHEUS_ADDR}"
472
+ - " --prometheus.query.normalize-calls=true"
473
+ - " --prometheus.query.normalize-duration=true"
475
474
deploy :
476
475
resources :
477
476
limits :
478
477
memory : 300M
479
478
restart : unless-stopped
480
479
ports :
481
- - " ${JAEGER_SERVICE_PORT}" # Jaeger UI
480
+ - " ${JAEGER_SERVICE_PORT}" # Jaeger UI
482
481
- " 4317" # OTLP gRPC default port
483
482
environment :
484
- - COLLECTOR_OTLP_ENABLED=true
485
483
- METRICS_STORAGE_TYPE=prometheus
486
484
logging : *logging
487
485
488
486
# Grafana
489
487
grafana :
490
- image : grafana/grafana:10.1.0
488
+ image : grafana/grafana:10.1.2
491
489
container_name : grafana
492
490
deploy :
493
491
resources :
494
492
limits :
495
493
memory : 100M
494
+ environment :
495
+ - " GF_INSTALL_PLUGINS=grafana-opensearch-datasource"
496
496
volumes :
497
497
- ./src/grafana/grafana.ini:/etc/grafana/grafana.ini
498
498
- ./src/grafana/provisioning/:/etc/grafana/provisioning/
@@ -502,30 +502,29 @@ services:
502
502
503
503
# OpenTelemetry Collector
504
504
otelcol :
505
- image : otel/opentelemetry-collector-contrib:0.84 .0
505
+ image : otel/opentelemetry-collector-contrib:0.86 .0
506
506
container_name : otel-col
507
507
deploy :
508
508
resources :
509
509
limits :
510
510
memory : 125M
511
511
restart : unless-stopped
512
- command : [ "--config=/etc/otelcol-config.yml", "--config=/etc/otelcol-observability.yml", "--config=/etc/otelcol- config-extras.yml" ]
512
+ command : [ "--config=/etc/otelcol-config.yml", "--config=/etc/otelcol-config-extras.yml" ]
513
513
volumes :
514
514
- ./src/otelcollector/otelcol-config.yml:/etc/otelcol-config.yml
515
- - ./src/otelcollector/otelcol-observability.yml:/etc/otelcol-observability.yml
516
515
- ./src/otelcollector/otelcol-config-extras.yml:/etc/otelcol-config-extras.yml
517
516
ports :
518
517
- " 4317" # OTLP over gRPC receiver
519
- - " 4318:4318" # OTLP over HTTP receiver
520
- - " 9464" # Prometheus exporter
521
- - " 8888" # metrics endpoint
518
+ - " 4318" # OTLP over HTTP receiver
522
519
depends_on :
523
520
- jaeger
524
521
logging : *logging
522
+ environment :
523
+ - ENVOY_PORT
525
524
526
525
# Prometheus
527
526
prometheus :
528
- image : quay.io/prometheus/prometheus:v2.46 .0
527
+ image : quay.io/prometheus/prometheus:v2.47 .0
529
528
container_name : prometheus
530
529
command :
531
530
- --web.console.templates=/etc/prometheus/consoles
@@ -536,6 +535,7 @@ services:
536
535
- --web.enable-lifecycle
537
536
- --web.route-prefix=/
538
537
- --enable-feature=exemplar-storage
538
+ - --enable-feature=otlp-write-receiver
539
539
volumes :
540
540
- ./src/prometheus/prometheus-config.yaml:/etc/prometheus/prometheus-config.yaml
541
541
deploy :
@@ -545,3 +545,186 @@ services:
545
545
ports :
546
546
- " ${PROMETHEUS_SERVICE_PORT}:${PROMETHEUS_SERVICE_PORT}"
547
547
logging : *logging
548
+
549
+ opensearch :
550
+ image : opensearchproject/opensearch:latest
551
+ container_name : opensearch
552
+ environment :
553
+ - cluster.name=demo-cluster
554
+ - node.name=demo-node
555
+ - bootstrap.memory_lock=true
556
+ - discovery.type=single-node
557
+ - " OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"
558
+ - " DISABLE_INSTALL_DEMO_CONFIG=true"
559
+ - " DISABLE_SECURITY_PLUGIN=true"
560
+ ulimits :
561
+ memlock :
562
+ soft : -1
563
+ hard : -1
564
+ nofile :
565
+ soft : 65536
566
+ hard : 65536
567
+ ports :
568
+ - " 9200:9200"
569
+ logging : *logging
570
+
571
+ dataprepper :
572
+ image : opensearchproject/data-prepper:latest
573
+ volumes :
574
+ - ./src/opensearch/pipelines.yaml:/usr/share/data-prepper/pipelines/pipelines.yaml
575
+ - ./src/opensearch/data-prepper-config.yaml:/usr/share/data-prepper/config/data-prepper-config.yaml
576
+ ports :
577
+ - " 21892"
578
+ logging : *logging
579
+
580
+ # *****
581
+ # Tests
582
+ # *****
583
+ # Frontend Tests
584
+ frontendTests :
585
+ image : ${IMAGE_NAME}:${IMAGE_VERSION}-frontend-tests
586
+ container_name : frontend-tests
587
+ build :
588
+ context : ./
589
+ dockerfile : ./src/frontend/Dockerfile.cypress
590
+ profiles :
591
+ - tests
592
+ volumes :
593
+ - ./src/frontend/cypress/videos:/app/cypress/videos
594
+ - ./src/frontend/cypress/screenshots:/app/cypress/screenshots
595
+ environment :
596
+ - CYPRESS_baseUrl=http://${FRONTEND_ADDR}
597
+ - FRONTEND_ADDR
598
+ - NODE_ENV=production
599
+ depends_on :
600
+ - frontend
601
+
602
+ # Integration Tests
603
+ integrationTests :
604
+ image : ${IMAGE_NAME}:${IMAGE_VERSION}-integrationTests
605
+ container_name : integrationTests
606
+ profiles :
607
+ - tests
608
+ build :
609
+ context : ./
610
+ dockerfile : ./test/Dockerfile
611
+ environment :
612
+ - AD_SERVICE_ADDR
613
+ - CART_SERVICE_ADDR
614
+ - CHECKOUT_SERVICE_ADDR
615
+ - CURRENCY_SERVICE_ADDR
616
+ - EMAIL_SERVICE_ADDR
617
+ - PAYMENT_SERVICE_ADDR
618
+ - PRODUCT_CATALOG_SERVICE_ADDR
619
+ - RECOMMENDATION_SERVICE_ADDR
620
+ - SHIPPING_SERVICE_ADDR
621
+ depends_on :
622
+ - adservice
623
+ - cartservice
624
+ - checkoutservice
625
+ - currencyservice
626
+ - emailservice
627
+ - paymentservice
628
+ - productcatalogservice
629
+ - recommendationservice
630
+ - shippingservice
631
+ - quoteservice
632
+
633
+ # Tracebased Tests
634
+ traceBasedTests :
635
+ image : ${IMAGE_NAME}:${IMAGE_VERSION}-traceBasedTests
636
+ container_name : traceBasedTests
637
+ profiles :
638
+ - tests
639
+ build :
640
+ context : ./
641
+ dockerfile : ./test/tracetesting/Dockerfile
642
+ environment :
643
+ - AD_SERVICE_ADDR
644
+ - CART_SERVICE_ADDR
645
+ - CHECKOUT_SERVICE_ADDR
646
+ - CURRENCY_SERVICE_ADDR
647
+ - EMAIL_SERVICE_ADDR
648
+ - FRONTEND_ADDR
649
+ - PAYMENT_SERVICE_ADDR
650
+ - PRODUCT_CATALOG_SERVICE_ADDR
651
+ - RECOMMENDATION_SERVICE_ADDR
652
+ - SHIPPING_SERVICE_ADDR
653
+ - KAFKA_SERVICE_ADDR
654
+ extra_hosts :
655
+ - " host.docker.internal:host-gateway"
656
+ depends_on :
657
+ tracetest-server :
658
+ condition : service_healthy
659
+ # adding demo services as dependencies
660
+ frontend :
661
+ condition : service_started
662
+ adservice :
663
+ condition : service_started
664
+ cartservice :
665
+ condition : service_started
666
+ checkoutservice :
667
+ condition : service_started
668
+ currencyservice :
669
+ condition : service_started
670
+ emailservice :
671
+ condition : service_started
672
+ paymentservice :
673
+ condition : service_started
674
+ productcatalogservice :
675
+ condition : service_started
676
+ recommendationservice :
677
+ condition : service_started
678
+ shippingservice :
679
+ condition : service_started
680
+ quoteservice :
681
+ condition : service_started
682
+ accountingservice :
683
+ condition : service_started
684
+ frauddetectionservice :
685
+ condition : service_started
686
+
687
+ tracetest-server :
688
+ image : kubeshop/tracetest:v0.13.10
689
+ platform : linux/amd64
690
+ container_name : tracetest-server
691
+ profiles :
692
+ - tests
693
+ volumes :
694
+ - type : bind
695
+ source : ./test/tracetesting/tracetest-config.yaml
696
+ target : /app/tracetest.yaml
697
+ - type : bind
698
+ source : ./test/tracetesting/tracetest-provision.yaml
699
+ target : /app/provision.yaml
700
+ command : --provisioning-file /app/provision.yaml
701
+ ports :
702
+ - 11633:11633
703
+ extra_hosts :
704
+ - " host.docker.internal:host-gateway"
705
+ depends_on :
706
+ tracetest-postgres :
707
+ condition : service_healthy
708
+ otelcol :
709
+ condition : service_started
710
+ healthcheck :
711
+ test : [ "CMD", "wget", "--spider", "localhost:11633" ]
712
+ interval : 1s
713
+ timeout : 3s
714
+ retries : 60
715
+
716
+ tracetest-postgres :
717
+ image : postgres:16.0
718
+ container_name : tracetest-postgres
719
+ profiles :
720
+ - tests
721
+ environment :
722
+ POSTGRES_PASSWORD : postgres
723
+ POSTGRES_USER : postgres
724
+ healthcheck :
725
+ test : pg_isready -U "$$POSTGRES_USER" -d "$$POSTGRES_DB"
726
+ interval : 1s
727
+ timeout : 5s
728
+ retries : 60
729
+ ports :
730
+ - 5432
0 commit comments