- Changed API responses and internal calculations to use binary megabytes (MiB) instead of octets for traffic metrics. - Updated relevant endpoints in AGGREGATE.md to reflect the new metric units. - Modified handler and merge logic to accommodate the new data structure and ensure accurate traffic reporting. - Enhanced tests to validate the changes in traffic calculations and summary data. - Deprecated the use of total_octets in favor of total_megabytes for consistency across the API.
telemt-api
HTTP‑шлюз на Go для Telemt Control API: один порт, белый список IP (CIDR), маршруты вида /api/{alias}/… → {base_url}/v1/…, агрегация нескольких инстансов — /api/agg/…, метрики Prometheus на /metrics.
Быстрый старт (Linux)
Предполагается установлены Docker и Docker Compose v2.
Рекомендуется брать уже собранный образ из Container Registry Gitea (после каждого push в репозиторий CI обновляет теги, в том числе latest):
# при необходимости (закрытый registry): логин Gitea + PAT с read:package
docker login git.shts.su
docker pull git.shts.su/denozord/telemt-api:latest
Конфиг возьмите из репозитория или создайте свой config.yaml (см. config.example.yaml):
git clone <url-репозитория> && cd telemt-api
cp config.example.yaml config.yaml
# отредактируйте config.yaml: servers, whitelist_cidrs или allow_all для разработки
docker run -d --name telemt-gateway \
-p 8080:8080 \
-v "$(pwd)/config.yaml:/etc/telemt-gateway/config.yaml:ro" \
-e CONFIG_PATH=/etc/telemt-gateway/config.yaml \
git.shts.su/denozord/telemt-api:latest
curl -sS http://127.0.0.1:8080/health
curl -sS http://127.0.0.1:8080/api/main_srv/health
Обновление образа: docker pull git.shts.su/denozord/telemt-api:latest и пересоздайте контейнер (docker rm -f telemt-gateway и снова docker run …).
Compose
Тот же образ подтягивается из registry (без локальной сборки):
git clone <url-репозитория> && cd telemt-api
docker compose pull
docker compose up -d
docker compose logs -f gateway
Локальная сборка образа
Если нужен образ из исходников на этой машине: docker build -t telemt-api-gateway:local . и в docker run укажите тег telemt-api-gateway:local. Подробнее — docs/GATEWAY_RUN.md.
Документация
| Документ | Содержание |
|---|---|
| docs/GATEWAY_RUN.md | Полная инструкция: конфиг, pull/registry, Docker CLI, Compose, CI/CD, неполадки |
| docs/API.md | Контракт Telemt Control API (/v1/…) |
| docs/AGGREGATE.md | Агрегирующие эндпоинты шлюза (/api/agg/…) |
Сборка и тесты без Docker
go mod tidy && go test ./...
CI/CD
В репозитории: .gitea/workflows/docker.yaml — тесты Go, сборка и публикация образа в Container Registry Gitea (см. раздел «Обновление и CI/CD» в docs/GATEWAY_RUN.md).