Розгортання Docker

Попередні вимоги

Отримання та запуск демо

  1. Клонуйте репозиторій Demo:

    git clone https://github.com/open-telemetry/opentelemetry-demo.git
    
  2. Перейдіть до теки з демо:

    cd opentelemetry-demo/
    
  3. Запустіть демо1:

    make start
    
    docker compose --env-file .env --env-file .env.override \
      -f compose.yaml -f compose.full.yaml \
      -f compose.observability.yaml -f compose.extras.yaml \
      up --force-recreate --remove-orphans --detach
    

    Режими розгортання

    Демо підтримує кілька режимів розгортання. Стандартний make start запускає повне демо зі всіма сервісами та стеком спостережуваності. Інші режими дозволяють зменшити використання ресурсів або виключити певні компоненти:

    РежимMake targetОпис
    Повнийmake startУсі сервіси та бекенди спостережуваності (стандартно)
    Мінімальнийmake start-minimalВиключає Kafka та її залежні сервіси (accounting, fraud-detection, kafka), зменшує використання памʼяті до ~3 ГБ
    Без o11ymake start-no-o11yУсі сервіси без бекендів спостережуваності (Jaeger, Grafana, Prometheus, OpenSearch)
    Мін., без o11ymake start-minimal-no-o11yМін. сервіси без бекендів спостережуваності
    Профілюванняmake start-profilingПовний режим з eBPF профайлером та UI Firepit для даних профілювання
    Агентнийmake start-agenticПовний режим з AI агентом, MCP сервером та чатботом для взаємодії з демо

    Наприклад, щоб запустити демо в мінімальному режимі:

    make start-minimal
    
    docker compose --env-file .env --env-file .env.override \
      -f compose.yaml -f compose.observability.yaml -f compose.extras.yaml \
      up --force-recreate --remove-orphans --detach
    
  4. (Опціонально) Запустіть тести телеметрії:

    Демо включає набір тестів перевірки телеметрії, які перевіряють, що кожен сервіс генерує траси, метрики та логи, і що вони потрапляють до очікуваних бекендів (Jaeger, Prometheus, OpenSearch). Детальніше див. test/telemetry/README.md.

    Область тестуMake targetЗапускає
    Повнийmake run-telemetry-testsПовне розгортання (make start)
    Мінімальнийmake run-telemetry-tests-minimalМін. розгортання (make start-minimal)
    Агентmake run-telemetry-tests-agenticАгентне розгортання (з агентом, MCP, чатботом)

    Кожен target збирає тестовий образ з ./test/telemetry, запускає відповідне розгортання, виконує тести, а потім зупиняє демо.

    make run-telemetry-tests
    
    # The demo must be running before you start the tests.
    docker build -t opentelemetry-demo-telemetry-tests ./test/telemetry
    docker run --rm --network opentelemetry-demo \
      --env-file .env --env-file .env.override \
      -e TEST_SCOPE=full \
      opentelemetry-demo-telemetry-tests
    

Перевірка роботи вебмагазину та телеметрії

Після того, як образи будуть зібрані та контейнери запущені, ви можете отримати доступ до:

Наступні доступні при запущеному стеку спостережуваності (тобто не в режимах *-no-o11y):

Наступні доступні лише в певних режимах розгортання:

Зміна номера основного порту демо

Стандартно, демонстраційний застосунок запустить проксі для всього трафіку з вебоглядача, привʼязаного до порту 8080. Щоб змінити номер порту, встановіть змінну середовища ENVOY_PORT перед запуском демо.

  • Наприклад, щоб використовувати порт 80811:

    ENVOY_PORT=8081 make start
    
    ENVOY_PORT=8081 docker compose --env-file .env --env-file .env.override \
      -f compose.yaml -f compose.full.yaml \
      -f compose.observability.yaml -f compose.extras.yaml \
      up --force-recreate --remove-orphans --detach
    

Використання власного бекенду

Ймовірно, ви хочете використовувати вебмагазин як демонстраційний застосунок для наявного бекенду спостережуваності (наприклад, поточного екземпляра Jaeger, Zipkin або одного з вибраних вами постачальників).

OpenTelemetry Collector можна використовувати для експорту даних телеметрії до кількох бекендів. Стандартно, колектор у демонстраційному застосунку обʼєднує конфігурацію з наступних файлів (у порядку):

  • otelcol-config.yml — базові приймачі, процесори та конвеєри
  • otelcol-config-full.yml — приймачі метрик Kafka та PostgreSQL (повний режим)
  • otelcol-config-observability.yml — експортери Jaeger, Prometheus та OpenSearch (при використанні стеку спостережуваності)
  • otelcol-config-extras.yml — порожня заглушка для кастомізацій, завжди завантажується останньою

Щоб додати свій бекенд, відкрийте файл src/otelcollector/otelcol-config-extras.yml за допомогою редактора.

  • Почніть з додавання нового експортера. Наприклад, якщо ваш бекенд підтримує OTLP через HTTP, додайте наступне:

    exporters:
      otlphttp/example:
        endpoint: <your-endpoint-url>
    
  • Потім зробіть перевизначення exporters для телеметричних конвеєрів, які ви хочете використовувати для вашого бекенду.

    service:
      pipelines:
        traces:
          exporters: [debug, otlp_grpc/jaeger, span_metrics, otlphttp/example]
    

Бекенди постачальників можуть вимагати додавання додаткових параметрів для автентифікації, будь ласка, перевірте їх документацію. Деякі бекенди вимагають різних експортерів, ви можете знайти їх і їх документацію на opentelemetry-collector-contrib/exporter.

Після оновлення otelcol-config-extras.yml, запустіть демо, виконавши make start. Через деякий час ви повинні побачити, як трасування надходять до вашого бекенду.


  1. docker-compose is deprecated. For details, see Migrate to Compose V2↩︎ ↩︎


Востаннє змінено July 12, 2026: [uk] Ukrainian documentation for OpenTelemetry (83a19542)