docker-compose up -d pg
, а затем make local && make dev-db-data
- запустит бота локально. Вся остальная
инфраструктура (например БД) будет запущена в контейнерах вокруг.
make docker-run
- запустит приложение полностью в контейнерах.
-
/category <название категории> - добавление новой категории для пользователя
-
/add <сумма> - добавляет новую трату без категории, в качестве даты берет текущую
-
/add <сумма> <категория> - добавляет новую трату в категорию, в качестве даты берет текущую
-
/add <сумма> <категория> <dd.mm.yyyy> - добавляет новую трату в категорию и выставляет соответствующую дату
-
/report <week|month|year> - собирает отчет за указанный промежуток. Отчет отправляет в виде текста и круговой диаграммы. Понимает разное количество дней в месяцах и високосные годы.
-
/currency <RUB|USD|EUR|CNY> - сменить основную валюту пользователя. После этой команды отчеты и добавления трат будут в этой валюте. По умолчанию у каждого пользователя установлена RUB.
-
/limit <сумма> - установить лимит на траты в календарный месяц. Для снятия лимита отправить -1.
.
├── bin
├── cmd
├── go.mod
├── go.sum
├── cmd
│ ├── financial-tg-bot - основное приложение
│ └── financial-reports - сервис отчетов (для эмуляции межсервисного взаимодействия)
├── internal
│ ├── app - grpc сервер для financial-tg-bot
│ ├── clients
│ │ ├── financial-tg-bot - grpc клиент financial-tg-bot для financial-reports
│ │ ├── tg - клиент телеграма
│ │ ├── redis - клиент рэдиса
│ │ └── fixer - клиент fixer - апи для получения курсов валют
│ ├── config
│ ├── env
│ ├── kafka - логика консьюмеров и продюсеров кафки
│ ├── model
│ │ ├── chart_drawing - модель рисовальщика, здесь лежит логика по рисованию диаграмм для отчетов
│ │ ├── currency - модель валют
│ │ ├── db - база данных
│ │ ├── exchange-rates - модель курсов валют, оборачивает склиент fixer в необходимую нам бизнес-логику
│ │ ├── messages - выполняет функции контроллера и отлавливает команды
│ │ ├── normalize - требуется для нормализации входящих от пользователя данных
│ │ ├── purchases - основная бизнес-логика financial-tg-bot, здесь описана логика добавления трат, категорий и составления отчетов
│ │ └── report - основная бизнес-логика financial-reports, здесь описана логика добавления создания отчетов
│ ├── utils - вспомогательные инстументы
│ └── wrappers - обертки для пакетов
├── logs
├── metrics
├── migrations - миграции для базы данных
├── pkg
├── test_data - тестовые данные, в том числе фикстуры для интеграционных тестов
├── tracing
├── Makefile
├── migrate.go - пакет с функция ми для накатки миграций на тестовые контейнеры БД
├── README.md
└── config - секреты приложения
make logs
Graylog: http://127.0.0.1:7555/ (admin/admin)
System->Inputs, добавляем инпут типа GELF tcp, все значения по-умолчанию
make metrics
Prometheus: http://127.0.0.1:9090/
Grafana: http://127.0.0.1:3000/ (admin/admin)
При первом логине в Графану она попросит установить новый пароль, ставим.
Заходим в шестеренку слева, выбираем Data sources, добавляем Prometheus, адрес http://prometheus:9090
make tracing
Jaeger: http://127.0.0.1:16686/