Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
85005fb
docs: added metabase dashboard creating guide
VBStudi0s Apr 7, 2026
dde4cfa
docs: metabase dashboards guide improved
VBStudi0s Apr 7, 2026
036da23
MVP metabase prototype
Margarita-Chi Apr 7, 2026
f67f33e
feat: adding env example
kmaltsev2006 Apr 7, 2026
416f7d9
docs: add backup guide
Mkz-Prog Apr 7, 2026
a088b3b
docs: added metabase features research
VBStudi0s Apr 8, 2026
be4b82f
feat: Metabase integration
VBStudi0s May 24, 2026
c2446de
add queries
Margarita-Chi May 24, 2026
67f47f7
fix: docker-compose
Margarita-Chi May 24, 2026
5e2414d
fix: style and docs improvements
VBStudi0s May 24, 2026
440942d
fix: rename iperf3
Margarita-Chi May 24, 2026
ca065d2
add queries
Margarita-Chi May 24, 2026
3ea7656
fix: rename iperf3 box plot
Margarita-Chi May 24, 2026
7c9b704
add box plot for udp
Margarita-Chi May 26, 2026
60080ff
add box plot for tcp
Margarita-Chi May 26, 2026
e163c4e
fix: improved README and docs
VBStudi0s May 26, 2026
826f1db
fix: README style improvements
VBStudi0s May 26, 2026
17bfeaf
feat: solving conflicts via rebase
kmaltsev2006 May 27, 2026
47b1886
feat: fixing check-style
kmaltsev2006 May 27, 2026
137450f
feat: fix check-style
kmaltsev2006 May 27, 2026
711e14f
feat: .env fix. Added metabase port and addresses
NikitaKrinkin Jun 6, 2026
033a5c7
fix: added metabase to index, backup link change
NikitaKrinkin Jun 9, 2026
930e198
fix: sql compare queries syntax fix
NikitaKrinkin Jun 10, 2026
b5d2110
queries actualization
NikitaKrinkin Jun 15, 2026
a9d02a3
fix: style fix
NikitaKrinkin Jun 15, 2026
3ed431a
fix: revert some queries changes
NikitaKrinkin Jun 16, 2026
d6db4f0
feat: queries actualization
NikitaKrinkin Jun 16, 2026
0820749
Merge branch 'main' into metabase
NikitaKrinkin Jun 19, 2026
607b40b
docs: readme and docs improvements (moved and merged docs from metaba…
NikitaKrinkin Jun 19, 2026
129508e
feat: db dump update + docs: readme fix
NikitaKrinkin Jun 23, 2026
a7873cb
fix: Makefile
NikitaKrinkin Jun 23, 2026
4dede93
new metabase dump + README instruction for dumps improvements; horrib…
NikitaKrinkin Jun 26, 2026
86d07c7
Merge main
NikitaKrinkin Jul 7, 2026
7106a87
Init metabase dump by default
NikitaKrinkin Jul 7, 2026
f855031
new graphs -> new dump
NikitaKrinkin Jul 12, 2026
e2d4eff
Style fix
NikitaKrinkin Jul 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .env.dist
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,15 @@ BENCHER_API_ADDRESS=10.5.0.14
BENCHER_CLI_ADDRESS=10.5.0.15
POSTGRES_ADDRESS=10.5.0.20
VMETRICS_ADDRESS=10.5.0.25
METABASE_ADDRESS=10.5.0.30
METABASE_META_DB_ADDRESS=10.5.0.35
# IP address for QEMU monitor. Used for creating and restoring snapshoots
QEMU_MONITOR_ADDRESS=10.0.2.2

# Ports
# Metabase port
METABASE_PORT=3200
METABASE_META_DB_PORT=5445
# Ports for Bencher
BENCHER_API_PORT=61016
BENCHER_CLI_PORT=3000
Expand Down Expand Up @@ -81,3 +86,8 @@ SSH_SUSE_PORT_156=1616
SSH_QEMU_PORT=2222
# Internal SSH port for Yocto and Suse VMs
SSH_TO_QEMU_PORT=22

# Metabase
METABASE_META_DB_NAME=metabase
METABASE_META_USER=metabase
METABASE_META_PASS=metabase
6 changes: 5 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,16 @@ BENCHER_API_CONF_VOLUME := ${DOCKER_PREFIX}-bencher-conf
BENCHER_API_DB_VOLUME := ${DOCKER_PREFIX}-bencher-database
BENCHER_API_LOGS_VOLUME := ${DOCKER_PREFIX}-bencher-logs
VMETRICS_DATA_VOLUME := ${DOCKER_PREFIX}-vmetrics-data
METABASE_META_VOLUME := ${DOCKER_PREFIX}-metabase-meta-data
METABASE_APP_VOLUME := ${DOCKER_PREFIX}-metabase-app

# Paths
HOST_LAYERS_PATH := ${CURDIR}/layers
HOST_CONF_PATH := ${CURDIR}/conf
HOST_SCRIPTS_PATH := ${CURDIR}/scripts
TESTS_DIR := ${CURDIR}/tests
METABASE_BACKUP_SCRIPT := ${CURDIR}/metabase_prototype/db/init/backup_init.sh
METABASE_DEFAULT_DUMP := ${CURDIR}/metabase_prototype/metabase_backup.dump

# Python
define get_python_required_libs
Expand Down Expand Up @@ -67,7 +71,7 @@ docker-compose-down:

.PHONY: ensure-volumes
ensure-volumes: docker
@for volume in ${DOCKER_OPENSUSE_VOLUME} ${BENCHER_API_CONF_VOLUME} ${BENCHER_API_DB_VOLUME} \
@for volume in ${DOCKER_OPENSUSE_VOLUME} ${BENCHER_API_CONF_VOLUME} ${BENCHER_API_DB_VOLUME} ${METABASE_META_VOLUME} ${METABASE_APP_VOLUME} \
${BENCHER_API_LOGS_VOLUME} ${VMETRICS_DATA_VOLUME} ${DOCKER_POSTGRES_VOLUME}; do \
if ! docker volume inspect $$volume > /dev/null 2>&1; then \
docker volume create $$volume; \
Expand Down
25 changes: 15 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,16 @@ Performance and Endurance Testing of OS images.

### Repository structure

| Folder | Description |
|-------------------|------------------------------------------|
| [conf](conf) | Configuration files |
| [docker](docker) | Essential Docker-related files |
| [docs](docs) | Markdown documentation of the repository |
| [layers](layers) | Layers content (for Poky) |
| [scripts](scripts)| Shell scripts |
| [src](src) | Source code and core development files |
| [tests](tests) | Unit tests and other |
| Folder | Description |
|---------------------------------------------|--------------------------------------------|
| [conf](conf) | Configuration files |
| [docker](docker) | Essential Docker-related files |
| [docs](docs) | Markdown documentation of the repository |
| [layers](layers) | Layers content (for Poky) |
| [metabase_prototype](metabase_prototype) | Metabase files: queries and synthetic data |
| [scripts](scripts) | Shell scripts |
| [src](src) | Source code and core development files |
| [tests](tests) | Unit tests and other |

### Methodologies

Expand Down Expand Up @@ -85,6 +86,10 @@ After initializing both Docker image and volumes, starts the following container

- Victoria Metrics container (port:VMETRICS_PORT) collects metrics from the Yocto and Suse-156 container provided by node exporters.

- Metabase container: (port:METABASE_PORT) used to create queries and dashboards with collected metrics

- Metabase meta data container: (port:METABASE_META_DB_PORT) needed by Metabase to save settings: queries, dashboards, connection information

Results can be obtained from the Python container logs after all the tests are finished:

```bash
Expand All @@ -95,7 +100,7 @@ Note: To create an image with all the packages specified in [packages.conf](conf

To add a new utility, you need to update the [packages.conf](conf/packages.conf), [local.conf](conf/local.conf) and write the appropriate [recipe](layers/meta-image-tests/).

### 3. Enviroment configuration
### 3. Environment configuration

[.env.dist](.env.dist) is used to store env variables, which is included by Makefile. It describes the parameters:
* Common variables (users, passwords)
Expand Down
42 changes: 42 additions & 0 deletions docker/compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,44 @@ services:
yocto-network:
ipv4_address: ${BENCHER_CLI_ADDRESS}

imgtests-metabase-meta-db:
image: postgres:17.7
environment:
POSTGRES_DB: ${METABASE_META_DB_NAME}
POSTGRES_USER: ${METABASE_META_USER}
POSTGRES_PASSWORD: ${METABASE_META_PASS}
PGPORT: ${METABASE_META_DB_PORT}
volumes:
- ${METABASE_BACKUP_SCRIPT}:/docker-entrypoint-initdb.d/init.sh
- ${METABASE_DEFAULT_DUMP}:/docker-entrypoint-initdb.d/def.dump
- ${METABASE_META_VOLUME}:/var/lib/postgresql/data
networks:
yocto-network:
ipv4_address: ${METABASE_META_DB_ADDRESS}
command: -p ${METABASE_META_DB_PORT}
restart: unless-stopped
Comment thread
Artanias marked this conversation as resolved.

imgtests-metabase:
image: metabase/metabase:v0.61.2.6
depends_on:
- imgtests-metabase-meta-db
- imgtests-postgres
environment:
MB_DB_TYPE: postgres
MB_DB_DBNAME: ${METABASE_META_DB_NAME}
MB_DB_PORT: ${METABASE_META_DB_PORT}
MB_DB_USER: ${METABASE_META_USER}
MB_DB_PASS: ${METABASE_META_PASS}
MB_DB_HOST: imgtests-metabase-meta-db
ports:
- "${METABASE_PORT}:3000"
volumes:
- ${METABASE_APP_VOLUME}:/metabase-data
networks:
yocto-network:
ipv4_address: ${METABASE_ADDRESS}
restart: unless-stopped

volumes:
imgtests-yocto-build:
external: true
Expand All @@ -187,6 +225,10 @@ volumes:
external: true
imgtests-analyzer-data:
external: true
imgtests-metabase-meta-data:
external: true
imgtests-metabase-app:
external: true

networks:
yocto-network:
Expand Down
63 changes: 63 additions & 0 deletions docs/guides/metabase-backup-guide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Руководство по созданию и использованию бэкапов для metabase
Comment thread
NikitaKrinkin marked this conversation as resolved.

В этом рукводстве расписаны основные шаги для создания бэкапов запущенного сервиса metabase, а также переноса его на другие системы с последующей инциализацией.

## Создание бэкапов

**Metabase** поднимается вместе со своей дополнительной базой данных, где хранит все данные для входа, а также данные о графиках и дашбордах.

Для того чтобы сделать бэкап у вас должна быть запущена эта БД `os-image-testing-imgtests-metabase-meta-db-1`.

Далее выполните команду в терминале:

```bash
docker exec os-image-testing-imgtests-metabase-meta-db-1 pg_dump -U metabase -d metabase -F c -b -v > metabase_backup_$(date +%Y%m%d).dump
```

После выполнения этой команды в текущей директории создастся дамп БД metabase *(пр. metabase_backup_20260407.dump)*. Далее можно передать его другому разработчику. Также, не забудьте передать ему данные для входа на сайт.

## Импорт бэкапа

Предположим, у вас есть файл дампа metabase_backup.dump, который Вы положили в папку с проектом, а также данные для входа.

### **Шаг 1. Запустите проект**

```bash
make docker-run-metabase
```

### **Шаг 2. Остановите контейнер metabase**

```bash
docker stop os-image-testing-imgtests-metabase-1
```

### **Шаг 3. Очистите текущую пустую базу**

Так как Metabase при первом старте уже успел создать пустые таблицы, их надо удалить, чтобы не было конфликтов при восстановлении.

```bash
docker exec -i os-image-testing-imgtests-metabase-meta-db-1 psql -U metabase -d postgres -c "DROP DATABASE metabase;"

docker exec -i os-image-testing-imgtests-metabase-meta-db-1 psql -U metabase -d postgres -c "CREATE DATABASE metabase;"
```

### **Шаг 4. Запишите дамп в базу**

```bash
docker exec -i os-image-testing-imgtests-metabase-meta-db-1 pg_restore -U metabase -d metabase < ваш_дамп_файл.dump
```

### **Шаг 5. Снова запустите Metabase**

```bash
docker start os-image-testing-imgtests-metabase-1
```

У вас поднимется заполненный **metabase** со всеми графиками и дашбордами.

## Полезные ссылки

* [Руководство по созданию дампов БД metabase](https://mintlify.wiki/metabase/metabase/operations/backing-up)

* [Установка metabase в production](https://www.metabase.com/docs/latest/installation-and-operation/running-metabase-on-docker#production-installation)
Loading
Loading