docs: visual guides with platform screenshots (Gitea, ArgoCD, Grafana, Prometheus)
@@ -99,6 +99,10 @@ export default defineConfig({
|
|||||||
collapsed: false,
|
collapsed: false,
|
||||||
items: [
|
items: [
|
||||||
{ text: 'Обзор', link: '/infrastructure/test-contour/' },
|
{ text: 'Обзор', link: '/infrastructure/test-contour/' },
|
||||||
|
{ text: 'Визуальные гайды', link: '/infrastructure/test-contour/guides/' },
|
||||||
|
{ text: 'Gitea: теги и CI/CD', link: '/infrastructure/test-contour/guides/gitea-ci' },
|
||||||
|
{ text: 'ArgoCD: приложения', link: '/infrastructure/test-contour/guides/argocd' },
|
||||||
|
{ text: 'Grafana / Prometheus / Loki', link: '/infrastructure/test-contour/guides/monitoring' },
|
||||||
{ text: 'Что сделано + перенос на сервер', link: '/infrastructure/test-contour/test-contour-article' },
|
{ text: 'Что сделано + перенос на сервер', link: '/infrastructure/test-contour/test-contour-article' },
|
||||||
{ text: 'Система тегов CI/CD', link: '/infrastructure/test-contour/tags' },
|
{ text: 'Система тегов CI/CD', link: '/infrastructure/test-contour/tags' },
|
||||||
{ text: 'ArgoCD: sova-root и data-test', link: '/infrastructure/test-contour/argocd-apps' }
|
{ text: 'ArgoCD: sova-root и data-test', link: '/infrastructure/test-contour/argocd-apps' }
|
||||||
|
|||||||
@@ -13,3 +13,21 @@
|
|||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
height: auto;
|
height: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Platform guide screenshots */
|
||||||
|
.vp-doc img[src*="/screenshots/"] {
|
||||||
|
display: block;
|
||||||
|
margin: 1rem auto 0.5rem;
|
||||||
|
max-width: 100%;
|
||||||
|
border: 1px solid var(--vp-c-divider);
|
||||||
|
border-radius: 10px;
|
||||||
|
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
|
||||||
|
}
|
||||||
|
|
||||||
|
.vp-doc img[src*="/screenshots/"] + em,
|
||||||
|
.vp-doc p:has(+ img[src*="/screenshots/"]) {
|
||||||
|
display: block;
|
||||||
|
text-align: center;
|
||||||
|
color: var(--vp-c-text-2);
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
|||||||
@@ -0,0 +1,105 @@
|
|||||||
|
# ArgoCD: приложения test-контура
|
||||||
|
|
||||||
|
ArgoCD — GitOps UI: следит за `sova-deploy` и `sova-mocks`, раскатывает Helm charts в кластер.
|
||||||
|
|
||||||
|
Краткая теория: [sova-root и data-test](../argocd-apps).
|
||||||
|
|
||||||
|
## 1. Вход
|
||||||
|
|
||||||
|
http://argocd.sova.local — логин **admin**, пароль:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
kubectl -n argocd get secret argocd-initial-admin-secret \
|
||||||
|
-o jsonpath='{.data.password}' | base64 -d && echo
|
||||||
|
```
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 2. Список Applications
|
||||||
|
|
||||||
|
На главной — все приложения test-контура:
|
||||||
|
|
||||||
|
| Application | Что деплоит | Есть URL? |
|
||||||
|
|-------------|-------------|-----------|
|
||||||
|
| `backend-test` | Symfony API | api.test.sova.local |
|
||||||
|
| `adminpanel-test` | React admin | admin.test.sova.local |
|
||||||
|
| `cabinet-test` | Symfony ЛК | cabinet.test.sova.local |
|
||||||
|
| `docs-test` | VitePress docs | docs.sova.local |
|
||||||
|
| `mocks-test` | WireMock, Mailpit | internal |
|
||||||
|
| `data-test` | PostgreSQL, MySQL, Redis | нет (БД) |
|
||||||
|
| `sova-root` | другие Application CR | нет (meta) |
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
**Sync Status `Unknown`** часто нормален для local — смотрите **Health** и pod'ы в namespace.
|
||||||
|
|
||||||
|
## 3. Пользовательское приложение: `backend-test`
|
||||||
|
|
||||||
|
Откройте карточку → дерево ресурсов: Deployment, Service, Ingress, CronJob, Secret.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Sync вручную
|
||||||
|
|
||||||
|
Кнопка **Sync** → **Synchronize** — подтянуть последний `main` из Gitea.
|
||||||
|
|
||||||
|
### Terminal в pod (миграции, отладка)
|
||||||
|
|
||||||
|
1. Deployment `backend` → Pod
|
||||||
|
2. Container **php-fpm** → иконка **Terminal**
|
||||||
|
3. Пример: `php bin/console cache:clear --env=prod`
|
||||||
|
|
||||||
|
Exec включён в `platform/argocd/values-test.yaml` (`exec.enabled: true`).
|
||||||
|
|
||||||
|
### CronJob в UI
|
||||||
|
|
||||||
|
Фильтр по label `app.kubernetes.io/component: console` — видны `backend-sync-doctors`, `backend-clear-schedule-cache` и т.д.
|
||||||
|
|
||||||
|
## 4. `sova-root` — app-of-apps
|
||||||
|
|
||||||
|
**Не приложение с URL.** Только создаёт/обновляет другие Application из `argocd/apps/`.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
«Войти» сюда нельзя — открывайте дочерние apps (`backend-test`, `docs-test`, …).
|
||||||
|
|
||||||
|
## 5. `data-test` — слой данных
|
||||||
|
|
||||||
|
PostgreSQL (backend + cabinet), MySQL Bitrix, Redis. **Без Ingress.**
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Подключение из pod'ов приложений:
|
||||||
|
|
||||||
|
```
|
||||||
|
postgresql-test.sova-data-test.svc.cluster.local:5432
|
||||||
|
mysql-bitrix-test.sova-data-test.svc.cluster.local:3306
|
||||||
|
redis-test-master.sova-data-test.svc.cluster.local:6379
|
||||||
|
```
|
||||||
|
|
||||||
|
Инициализация schema/seed — Job `db-init` (отдельный чарт), не через браузер.
|
||||||
|
|
||||||
|
## 6. Типичный цикл после CI
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
sequenceDiagram
|
||||||
|
participant Dev as Разработчик
|
||||||
|
participant Gitea as Gitea tag
|
||||||
|
participant CI as Actions
|
||||||
|
participant Deploy as sova-deploy
|
||||||
|
participant Argo as ArgoCD
|
||||||
|
participant K8s as Kubernetes
|
||||||
|
|
||||||
|
Dev->>Gitea: release-test-tag.sh
|
||||||
|
Gitea->>CI: push tag
|
||||||
|
CI->>Deploy: bump values-test.yaml
|
||||||
|
Argo->>Deploy: poll main
|
||||||
|
Argo->>K8s: helm upgrade
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Push тега в Gitea
|
||||||
|
2. CI обновляет `apps/backend/values-test.yaml`
|
||||||
|
3. ArgoCD auto-sync (или Sync вручную)
|
||||||
|
4. Новый pod с образом из registry
|
||||||
|
|
||||||
|
Дальше: [Grafana, Prometheus, Loki](./monitoring).
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
# Gitea: теги, CI/CD и registry
|
||||||
|
|
||||||
|
В test-контуре каждый сервис (`backend`, `adminpanel`, `cabinet`, `docs`) — **отдельный репозиторий** в Gitea. Релиз = **git-тег** → Gitea Actions → Docker-образ → обновление `sova-deploy` → ArgoCD sync.
|
||||||
|
|
||||||
|
Подробнее о формате тегов: [Система тегов CI/CD](../tags).
|
||||||
|
|
||||||
|
## 1. Вход в Gitea
|
||||||
|
|
||||||
|
Откройте http://git.sova.local и войдите под `gitea_admin` (пароль — из bootstrap или `.generated/platform-credentials.env`).
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 2. Репозитории организации `sova`
|
||||||
|
|
||||||
|
Все сервисы и GitOps лежат в org **sova**:
|
||||||
|
|
||||||
|
| Репозиторий | Назначение |
|
||||||
|
|-------------|------------|
|
||||||
|
| `backend`, `adminpanel`, `cabinet`, `docs` | код + `.gitea/workflows/build.yml` |
|
||||||
|
| `sova-deploy` | Helm values, ArgoCD manifests |
|
||||||
|
| `sova-mocks` | WireMock, Mailpit |
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 3. Gitea Actions — pipeline на push тега
|
||||||
|
|
||||||
|
Workflow в каждом app-репозитории:
|
||||||
|
|
||||||
|
1. **test** — unit/build проверки
|
||||||
|
2. **build-and-push** — образ в Container Registry
|
||||||
|
3. **deploy-gitops** — commit в `sova-deploy` (`values-test.yaml`)
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Откройте последний успешный run — все три job должны быть зелёными:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
::: tip Terminal на runner
|
||||||
|
Логи runner: `kubectl logs -n gitea -l app.kubernetes.io/name=actions-runner -c runner -f`
|
||||||
|
:::
|
||||||
|
|
||||||
|
## 4. Как выкатить тег (с Mac)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd k3s-test
|
||||||
|
./scripts/release-test-tag.sh backend backend-v1.0.1-test
|
||||||
|
./scripts/release-test-tag.sh adminpanel adminpanel-v1.0.1-test
|
||||||
|
./scripts/release-test-tag.sh cabinet cabinet-v1.0.1-test
|
||||||
|
./scripts/release-test-tag.sh docs docs-v1.0.1-test
|
||||||
|
```
|
||||||
|
|
||||||
|
Скрипт создаёт аннотированный тег и пушит в Gitea. Тег виден в репозитории:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Формат: `{component}-v{semver}-{env}` → например `backend-v1.0.1-test`.
|
||||||
|
|
||||||
|
## 5. Container Registry
|
||||||
|
|
||||||
|
После успешного `build-and-push` образ появляется в **Packages** репозитория:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
В Helm `values-test.yaml` используется pull через `git.sova.local/sova/backend:backend-v1.0.1-test` (см. `./scripts/configure-k3s-registry.sh`).
|
||||||
|
|
||||||
|
## 6. Чеклист после релиза
|
||||||
|
|
||||||
|
1. http://git.sova.local/sova/backend/actions — все jobs **success**
|
||||||
|
2. http://argocd.sova.local — `backend-test` **Synced / Healthy**
|
||||||
|
3. `curl http://api.test.sova.local/news/list?page=1` → **200**
|
||||||
|
|
||||||
|
Дальше: [ArgoCD — приложения и sync](./argocd).
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
# Визуальные гайды test-контура
|
||||||
|
|
||||||
|
Пошаговые инструкции со **скриншотами** реального UI песочницы: Gitea CI, ArgoCD, Grafana, Prometheus и Loki.
|
||||||
|
|
||||||
|
Перед просмотром добавьте в `/etc/hosts` IP VM (см. `./scripts/print-urls.sh`):
|
||||||
|
|
||||||
|
```
|
||||||
|
192.168.252.2 git.sova.local argocd.sova.local grafana.sova.local prometheus.sova.local docs.sova.local
|
||||||
|
```
|
||||||
|
|
||||||
|
## Разделы
|
||||||
|
|
||||||
|
| Гайд | О чём |
|
||||||
|
|------|--------|
|
||||||
|
| [Gitea: теги и CI/CD](./gitea-ci) | push тега → Actions → registry → deploy-gitops |
|
||||||
|
| [ArgoCD: приложения](./argocd) | Applications, sync, backend vs sova-root vs data-test |
|
||||||
|
| [Grafana, Prometheus, Loki](./monitoring) | метрики, targets, логи в Explore |
|
||||||
|
|
||||||
|
## Обновление скриншотов
|
||||||
|
|
||||||
|
Скрины лежат в [`../screenshots/`](../screenshots/). Переснять после изменений UI:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd k3s-test
|
||||||
|
./scripts/capture-platform-screenshots/run.sh
|
||||||
|
cd sova-docs && npm run build # локальная проверка
|
||||||
|
```
|
||||||
|
|
||||||
|
Скрипт использует Playwright и логинится в сервисы test-контура автоматически (креды из `.generated/platform-credentials.env` и kubectl).
|
||||||
@@ -0,0 +1,123 @@
|
|||||||
|
# Grafana, Prometheus и Loki
|
||||||
|
|
||||||
|
В test-контуре мониторинг разделён:
|
||||||
|
|
||||||
|
| Инструмент | URL | Задача |
|
||||||
|
|------------|-----|--------|
|
||||||
|
| **Prometheus** | http://prometheus.sova.local | метрики, targets, PromQL |
|
||||||
|
| **Grafana** | http://grafana.sova.local | дашборды + **логи через Loki** |
|
||||||
|
| **Loki** | только через Grafana Explore | агрегация логов pod'ов |
|
||||||
|
|
||||||
|
Prometheus **не хранит логи** — для логов используйте Grafana → Explore → datasource **Loki**.
|
||||||
|
|
||||||
|
Установка Loki/Promtail: `./scripts/deploy-monitoring-logs.sh`
|
||||||
|
|
||||||
|
## Grafana
|
||||||
|
|
||||||
|
### Вход
|
||||||
|
|
||||||
|
http://grafana.sova.local — **admin** / пароль:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
kubectl -n monitoring get secret kube-prometheus-grafana \
|
||||||
|
-o jsonpath='{.data.admin-password}' | base64 -d && echo
|
||||||
|
```
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Главная
|
||||||
|
|
||||||
|
Дашборды kube-prometheus (CPU, memory, pod restarts). Полезно для общего health кластера:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Loki — логи приложений
|
||||||
|
|
||||||
|
**Explore** (иконка компаса) → datasource **Loki** → LogQL:
|
||||||
|
|
||||||
|
```logql
|
||||||
|
{namespace="sova-test"}
|
||||||
|
```
|
||||||
|
|
||||||
|
Уточнение по pod:
|
||||||
|
|
||||||
|
```logql
|
||||||
|
{namespace="sova-test", pod=~"backend.*"} |= "error"
|
||||||
|
```
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
::: tip Нет логов?
|
||||||
|
1. `./scripts/deploy-monitoring-logs.sh`
|
||||||
|
2. Проверьте Promtail: `kubectl get pods -n monitoring -l app.kubernetes.io/name=promtail`
|
||||||
|
3. В Grafana: Configuration → Data sources → Loki должен быть **green**
|
||||||
|
:::
|
||||||
|
|
||||||
|
### Типовые сценарии
|
||||||
|
|
||||||
|
| Задача | Действие |
|
||||||
|
|--------|----------|
|
||||||
|
| 500 от API | Loki `{namespace="sova-test", pod=~"backend.*"}` |
|
||||||
|
| CronJob упал | `{namespace="sova-test"} \|= "backend-sync-doctors"` |
|
||||||
|
| Ingress 502 | `{namespace="ingress-nginx"}` |
|
||||||
|
|
||||||
|
## Prometheus
|
||||||
|
|
||||||
|
Отдельный UI без логина (test-контур).
|
||||||
|
|
||||||
|
### Graph — PromQL запросы
|
||||||
|
|
||||||
|
http://prometheus.sova.local/graph
|
||||||
|
|
||||||
|
Примеры:
|
||||||
|
|
||||||
|
```promql
|
||||||
|
up # живые targets
|
||||||
|
rate(http_requests_total[5m]) # RPS (если есть метрика)
|
||||||
|
container_memory_working_set_bytes{namespace="sova-test"}
|
||||||
|
```
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Targets — кто отдаёт метрики
|
||||||
|
|
||||||
|
http://prometheus.sova.local/targets
|
||||||
|
|
||||||
|
**UP** (зелёный) — scrape OK. **DOWN** — проверьте ServiceMonitor / pod.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Быстрая проверка «всё живо»
|
||||||
|
|
||||||
|
Запрос `up` за последний час:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Значение **1** — target доступен, **0** — проблема.
|
||||||
|
|
||||||
|
## Сводка: куда смотреть
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
subgraph metrics["Метрики"]
|
||||||
|
prom["Prometheus<br/>prometheus.sova.local"]
|
||||||
|
graf_m["Grafana dashboards"]
|
||||||
|
end
|
||||||
|
subgraph logs["Логи"]
|
||||||
|
loki["Loki"]
|
||||||
|
graf_l["Grafana Explore"]
|
||||||
|
promtail["Promtail"]
|
||||||
|
end
|
||||||
|
pods["Pod logs"] --> promtail --> loki --> graf_l
|
||||||
|
pods --> prom
|
||||||
|
prom --> graf_m
|
||||||
|
```
|
||||||
|
|
||||||
|
| Симптом | Куда |
|
||||||
|
|---------|------|
|
||||||
|
| Медленный API, restarts | Grafana dashboards / Prometheus `container_*` |
|
||||||
|
| Ошибка в коде, stack trace | Grafana → Loki |
|
||||||
|
| ServiceMonitor не работает | Prometheus → Targets |
|
||||||
|
| Нет datasource Loki | `./scripts/deploy-monitoring-logs.sh` |
|
||||||
|
|
||||||
|
Назад: [Gitea CI/CD](./gitea-ci) · [ArgoCD](./argocd)
|
||||||
@@ -6,6 +6,15 @@
|
|||||||
|
|
||||||
## Разделы
|
## Разделы
|
||||||
|
|
||||||
|
### Визуальные гайды (скриншоты)
|
||||||
|
|
||||||
|
- [Обзор гайдов](./guides/) — Gitea, ArgoCD, Grafana, Prometheus, Loki
|
||||||
|
- [Gitea: теги и CI/CD](./guides/gitea-ci)
|
||||||
|
- [ArgoCD: приложения](./guides/argocd)
|
||||||
|
- [Grafana / Prometheus / Loki](./guides/monitoring)
|
||||||
|
|
||||||
|
### Текстовая документация
|
||||||
|
|
||||||
- [Test-контур: что сделано и перенос на сервер](./test-contour-article) — полная статья
|
- [Test-контур: что сделано и перенос на сервер](./test-contour-article) — полная статья
|
||||||
- [Система тегов CI/CD](./tags) — формат тегов и release-скрипт
|
- [Система тегов CI/CD](./tags) — формат тегов и release-скрипт
|
||||||
- [ArgoCD: sova-root и data-test](./argocd-apps) — зачем эти приложения и почему «нельзя войти»
|
- [ArgoCD: sova-root и data-test](./argocd-apps) — зачем эти приложения и почему «нельзя войти»
|
||||||
|
|||||||
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 104 KiB |
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 63 KiB |
|
After Width: | Height: | Size: 66 KiB |
|
After Width: | Height: | Size: 690 KiB |
|
After Width: | Height: | Size: 160 KiB |
|
After Width: | Height: | Size: 165 KiB |
|
After Width: | Height: | Size: 143 KiB |
|
After Width: | Height: | Size: 97 KiB |
|
After Width: | Height: | Size: 82 KiB |
|
After Width: | Height: | Size: 249 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 139 KiB |
|
After Width: | Height: | Size: 53 KiB |
@@ -0,0 +1,25 @@
|
|||||||
|
# Platform screenshots (test contour)
|
||||||
|
|
||||||
|
Автоматически сгенерировано `./scripts/capture-platform-screenshots/run.sh`.
|
||||||
|
|
||||||
|
| File | Title |
|
||||||
|
|------|-------|
|
||||||
|
| 01-gitea-login.png | Gitea: страница входа |
|
||||||
|
| 02-gitea-org-sova.png | Gitea: организация sova |
|
||||||
|
| 03-gitea-backend-actions.png | Gitea Actions |
|
||||||
|
| 04-gitea-action-run.png | Pipeline run |
|
||||||
|
| 05-gitea-backend-tags.png | Теги backend |
|
||||||
|
| 06-gitea-backend-packages.png | Container Registry |
|
||||||
|
| 07-argocd-login.png | ArgoCD login |
|
||||||
|
| 08-argocd-applications.png | Applications list |
|
||||||
|
| 09-argocd-backend-test.png | backend-test |
|
||||||
|
| 10-argocd-sova-root.png | sova-root |
|
||||||
|
| 11-argocd-data-test.png | data-test |
|
||||||
|
| 12-grafana-login.png | Grafana login |
|
||||||
|
| 13-grafana-home.png | Grafana home |
|
||||||
|
| 14-grafana-loki-explore.png | Loki Explore |
|
||||||
|
| 15-prometheus-graph.png | Prometheus Graph |
|
||||||
|
| 16-prometheus-targets.png | Prometheus Targets |
|
||||||
|
| 17-prometheus-up-query.png | PromQL up |
|
||||||
|
|
||||||
|
Полный manifest: `manifest.json`
|
||||||
@@ -0,0 +1,91 @@
|
|||||||
|
{
|
||||||
|
"capturedAt": "2026-05-28T09:37:54.363Z",
|
||||||
|
"vmIp": "192.168.252.2",
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"file": "01-gitea-login.png",
|
||||||
|
"title": "Gitea: страница входа",
|
||||||
|
"notes": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "02-gitea-org-sova.png",
|
||||||
|
"title": "Gitea: организация sova и репозитории",
|
||||||
|
"notes": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "03-gitea-backend-actions.png",
|
||||||
|
"title": "Gitea Actions: workflow backend",
|
||||||
|
"notes": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "04-gitea-action-run.png",
|
||||||
|
"title": "Gitea Actions: прогон pipeline (jobs)",
|
||||||
|
"notes": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "05-gitea-backend-tags.png",
|
||||||
|
"title": "Gitea: теги релиза backend-v*",
|
||||||
|
"notes": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "06-gitea-backend-packages.png",
|
||||||
|
"title": "Gitea: Container Registry (образы)",
|
||||||
|
"notes": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "07-argocd-login.png",
|
||||||
|
"title": "ArgoCD: вход",
|
||||||
|
"notes": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "08-argocd-applications.png",
|
||||||
|
"title": "ArgoCD: список Applications",
|
||||||
|
"notes": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "09-argocd-backend-test.png",
|
||||||
|
"title": "ArgoCD: backend-test (ресурсы и sync)",
|
||||||
|
"notes": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "10-argocd-sova-root.png",
|
||||||
|
"title": "ArgoCD: sova-root (app-of-apps, без pod URL)",
|
||||||
|
"notes": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "11-argocd-data-test.png",
|
||||||
|
"title": "ArgoCD: data-test (PostgreSQL/MySQL/Redis)",
|
||||||
|
"notes": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "12-grafana-login.png",
|
||||||
|
"title": "Grafana: вход",
|
||||||
|
"notes": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "13-grafana-home.png",
|
||||||
|
"title": "Grafana: главная / дашборды",
|
||||||
|
"notes": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "14-grafana-loki-explore.png",
|
||||||
|
"title": "Grafana Explore: логи Loki (namespace sova-test)",
|
||||||
|
"notes": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "15-prometheus-graph.png",
|
||||||
|
"title": "Prometheus: Graph / PromQL",
|
||||||
|
"notes": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "16-prometheus-targets.png",
|
||||||
|
"title": "Prometheus: Status → Targets",
|
||||||
|
"notes": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "17-prometheus-up-query.png",
|
||||||
|
"title": "Prometheus: запрос up (живые targets)",
|
||||||
|
"notes": ""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||