Руководство по системному администрированию Platform V Exchange Rates#
Термины и сокращения#
Термин |
Определение |
|---|---|
API |
Application programming interface — программный интерфейс приложения |
OTT |
One Time Token — одноразовый пароль |
АС |
Автоматизированная система |
БД |
База данных |
Сценарии администрирования#
Администратору рекомендуется регулярно выполнять:
контроль состояния работы Platform V Exchange Rates;
мониторинг производительности Platform V Exchange Rates.
При выявлении нештатных ситуаций необходимо:
проверить работоспособность всех сервисов Platform V Exchange Rates;
проверить логи на наличие ошибок, возможно c помощью компонента Журналирование (LOGA) продукта Platform V Monitor (примеры логов представлены в разделе События системного журнала настоящего документа).
В рамках выполнения требований безопасной работы Platform V Exchange Rates Администратор выполняет следующие функции:
несет ответственность за качество проводимых им работ;
следит за сроками действия сертификатов.
Доступ к Platform V Exchange Rates имеют только те сотрудники, которым он необходим в соответствии с их должностными обязанностями. Доступ должен ограничиваться минимально необходимым объемом данных. Должны разделяться среды разработки, тестирования и эксплуатации, при этом, необходимо производить разделение обязанностей между разработчиками АС, тестирующим персоналом.
Специалисты, занимающиеся администрированием Platform V Exchange Rates, должны обладать следующими навыками:
развертывание и администрирование приложений в Wildfly;
работа с СУБД PostgreSQL.
Сценарии администрирования, выполняемые системными администраторами при установке дистрибутива, приведены в документе Руководство по установке Продукта Platform V Exchange Rates в разделе Установка.
Описание настроек#
В Platform V Exchange Rates настройки конфигурации выполняются через опциональный инструмент Platform V Configuration. Подробная инструкция по работе с Platform V Configuration представлена в документации Platform V Configuration в разделе Руководство оператора.
События системного журнала#
Для системного журнала применимы следующие уровни логирования:
FATAL — критические ошибки, при которых невозможна работа приложения.
Error — записываются сообщения обо всех ситуациях или событиях в приложении, которые считаются ошибочными:
ошибки вызова компонентов платформы;
ошибки интеграционных вызовов.
Warning — предупреждения.
Info — информация о работе приложения и текущем состоянии процессов.
Debug — подробности о работе приложения, позволяющие восстановить последовательность выполнения операций при обслуживании вызовов и вызовах внешних систем.
TRACE — подробные записи о действиях приложения. Нужны в исключительных случаях для отладки.
Все события попадают в платформенный журнал.
Описание событий error:
Класс |
Сообщение |
Причина возникновения |
|---|---|---|
CachePersistenceImpl |
cache {} is null |
Возникает если кэш с нужным именем не найден |
ObjectUtils |
Возникла ошибка в момент парсинга объекта |
Возникает если парсинг объекта произошел с ошибкой |
ContextAvailabilityMonitor |
Ошибка мониторинга |
Возникает если при установке значения метрики для сервиса мониторинга произошла ошибка |
ContextAvailabilityMonitor |
Ошибка при проверке доступности БД ЕКПиТ ({}) |
Возникает при ошибках проверки доступности БД ЕКПиТ |
ContextAvailabilityMonitor |
Ошибка при проверке доступности БД Platform V Exchange Rates ({}) |
Возникает при ошибках проверки доступности БД Platform V Exchange Rates |
OfficesCacheWarmer |
cache {} is null |
Возникает если кэш с нужным именем не найден |
CompensationServiceImpl |
При компенсации объектов произошла ошибка |
Возникает при ошибках компенсации объектов |
WarmUpCacheServiceImpl |
Error in warming |
Возникает при ошибках при разогреве кэшей с данными |
RateRequestDaoHibernateImpl |
segmentsIds are empty |
Возникает, когда при подготовке sql запроса для поиска распоряжений передан пустой список ай ди сегментов |
RateRequestDaoHibernateImpl |
Сегментов нашлось больше, чем может поместиться в in условие запроса. Срочно обратитесь к разработчикам Platform V Exchange Rates. количество {} шт |
Возникает, когда при подготовке sql запроса для поиска распоряжений передан список ай ди сегментов содержащий более 1000 записей |
DataBasePropertyUtil |
Ошибка при получении информации о СУБД |
Возникает при попытке получения дополнительной информации из объекта connection о параметрах подключения к БД и результирующему набору, извлекаемому из БД |
CurrencyAuditServiceImpl |
Ошибка аудита |
Возникает если при отправке события в аудит произошла ошибка |
CurrencyRatesSaverServiceImpl |
Ошибка сохранения курсов из Platform V Exchange Rates |
Общая ошибка при неудачном сохранения курсов из Platform V Exchange Rates |
CurrencyRatesSaverServiceImpl |
Ошибка валидации входящего распоряжения |
Возникает при ошибки валидации входящего распоряжения |
CurrencyRatesSaverServiceImpl |
Ошибка при сохранении входящего распоряжения |
Общая ошибка при неудачном сохранении входящего распоряжения |
CurrencyRatesSaverServiceImpl |
Something is wrong with saving EOD price [unknown rquid] from PJ: %s |
Общая ошибка происходит при неудачном сохранении сообщения |
CurrencyRatesSaverServiceImpl |
Ошибка обработки сообщения от Platform V Exchange Rates |
Общая ошибка при проблемах с обработкой сообщения от Platform V Exchange Rates |
CurrencyRatesSaverServiceImpl |
Ошибка при сохранении входящего распоряжения |
Общая ошибка возникает при ошибках сохранения распоряжение на сохранение курса ЮЛ от АС АРК |
CurrencyRatesSaverServiceImpl |
Ошибка обработки сообщения от Platform V Exchange Rates: {} |
Возникает при ошибках сохранения Platform V Exchange Rates |
CurrencyRatesSaverServiceImpl |
Произошла ошибка при компенсации данных |
Возникает если случаются ошибки при компенсации данных, начатой из-за ошибки при отправке сообщения в опциональный компонент Прикладной журнал продукта Platform V Data Tools |
LegalRateServiceImpl |
Все входные параметры обязательны и не могут быть пустыми |
Возникает если какой либо параметр для поиска курсов пустой |
ExrRateServiceImpl |
Курс ЦБ для валюты %s отсутствует |
Возникает если в БД не удалось найти курс ЦБ |
ExrRateServiceImpl |
Переданные валюты не найдены в справочнике %s |
Возникает если в БД не удалось найти валюты по переданным кодам |
IndividualRateServiceImpl |
Все входные параметры обязательны и не могут быть пустыми |
Возникает если какой либо параметр для поиска курсов пустой |
IndividualRateServiceImpl |
Подходящее распоряжение не найдено: [%s%s%s] - [{%s}] - [{%s}] |
Возникает когда по текущим входным данным не найдено распоряжение в БД |
IndividualRateServiceImpl |
Модуль курса валют. Подходящее распоряжение не найдено: [%s%s%s] - [{%s}] - [{%s}] |
Возникает когда переданы пустая коллекция распоряжений для поиска курсов валют |
IndividualRateServiceImpl |
Модуль курса валют. Распоряжение относится к курсам для мерных слитков. Rquid: %s |
Возникает когда распоряжение не содержит курсов валют |
IndividualRateServiceImpl |
сообщение от исключения |
Возникает если единица измерения не найдена |
IndividualRateServiceImpl |
Модуль курса валют. Отсутствует курс валют. Регион: %s; Региональное отделение: %s; ВСП: %s; тип валюты: %s; Код базовой валюты: %s |
Ошибка возникает когда не удалось найти курс валют для заданных кодов |
IndividualRateServiceImpl |
Модуль курса валют. Отсутствует курс для металла. Регион: %s; Региональное отделение: %s; ВСП: %s; тип валюты: %s;Код металла: %s; Покупка: %s |
Ошибка возникает когда не удалось найти курс для металла для заданных кодов |
IndividualRateServiceImpl |
Отсутствуют диапазоны курса |
Ошибка в методе подготовки курсов для распоряжений если не переданы выборочные распоряжения |
ExchangeRatesForLegalEntitiesImpl |
Отсутствует обязательный параметр [%s] |
Возникает в методе для получения курсов ЮЛ при валидации запроса для курса ЮЛ в случае когда дата запроса отсутствует |
ExchangeRatesForLegalEntitiesImpl |
Отсутствует обязательный параметр [%s] |
Возникает в методе для получения курсов ЮЛ при валидации запроса для курса ЮЛ в случае когда в запросе отсутствуют курсы |
ExchangeRatesForLegalEntitiesImpl |
Не поддерживаемый тип финансовых инструментов [%s] |
Возникает в методе для получения курсов ЮЛ когда передан неизвестный тип инструмента |
ExchangeRatesForLegalEntitiesImpl |
{сообщение от пойманного исключения} |
Возникает при пойманных исключениях во время выполнения запроса для курса ЮЛ |
RatesXlsxImportFromResourceServiceImpl |
Ошибка при импорте исторических данных {} |
Возникает при импорте исторических данных когда статус ответа при сохранении курсов КФИ не равен статусу ОК |
RatesXlsxImportFromResourceServiceImpl |
Ошибка при импорте исторических данных {} |
Возникает при импорте исторических данных когда во время сохранения курсов КФИ произошла ошибка |
RatesXlsxImportFromResourceServiceImpl |
Ошибка при импорте исторических данных. Отсутствует источник |
Возникает при импорте исторических данных когда не удалось обнаружить источник с данным |
RatesXlsxImportFromResourceServiceImpl |
Ошибка при импорте исторических данных |
Возникает при импорте исторических данных когда произошло что-то не так. Общая ошибка |
Описание событий warning:
Класс |
Сообщение |
Причина возникновения |
|---|---|---|
WarmUpCacheServiceImpl |
Error in warming |
При любом пойманном исключении при разогреве кэшей |
RateRequestDaoHibernateImpl |
запрос {} был уже изменен |
Возникает в случае когда проверка номера версии или метки не выполнилась |
RatesTypeDaoImpl |
В запросе присутствуют взаимоисключающие даты |
Происходит при получении ставки межбанковского кредитования, когда дата использования совпадает с датой публикации |
RatesTypeDaoImpl |
В запросе отсутствуют даты |
Происходит при получении ставки межбанковского кредитования, когда дата использования и дата публикации переданы пустыми |
RatesTypeDaoImpl |
На указанные наименование [%s] и дату [%s] ставки отсутствуют |
Возникает если не удалось найти ставку в БД для переданной даты запроса имени ставки |
JsonServiceImpl |
Не удалось сериализовать объект |
Возникают при ошибках сериализации |
CurrencyRatesSaverServiceImpl |
Ошибка обработки сообщения от Platform V Exchange Rates: {} |
Общая ошибка возникает при обработке сообщения-запроса для передачи курсов валют и курсов металлов |
RateAveragesServiceImpl |
Не найдены курсы ЦБ для валюты %s в интервале %s-%s |
Возникает когда не удалось найти курсы ЦБ в указанный период дат |
RateRequestMonitorServiceImpl |
Ошибка сортировки списка распоряжений |
Возникает при ошибка сортировки распоряжений |
CurrencyRateFilterImpl |
фильтрация использует неоптимальную версию |
Возникает при ошибка в методе получения подходящего сегмента для запроса |
SanitizedStringSerializer |
Разные строки после санитайза. Было: {}, Стало {} |
Происходит во время сериализации когда санитизированная строка не равна исходной строке |
События мониторинга#
Все микросервисы продукта публикуют прикладные метрики стандартным для управляемой среды выполнения способом (через «сервис» prometheus). Прикладные метрики Platform V Exchange Rates.
Идентификатор метрики |
Описание |
|---|---|
currency-rates.availability |
Метрика контроля доступности модуля currency-rates |
currency-rates.health.db.main |
Метрика контроля доступности базы данных для модуля currency-rates |
currency-rates.health.db.si |
Метрика контроля доступности базы данных для модуля currency-rates |
currency-rates.health.db.ekpit.main |
Метрика контроля доступности базы данных для модуля currency-rates |
currency-rates.health.db.ekpit.si |
Метрика контроля доступности базы данных для модуля currency-rates |
currency-rates.version |
Информация о версии модуля currency-rates |
currency-rates.getRate |
Метрика-таймер времени предоставления курса |
currency-rates.saveRate |
Метрика-таймер времени сохранения курсов |
currency-rates.successfulApiCall |
Количество успешных вызовов API КВ |
currency-rates.failedApiCall |
Количество неуспешных вызовов API КВ |
Для времени выполнения метода также предоставляются данные, для построения гистограммы по процентному соотношению (для отсечек в 50%, 80%, 95% случаев). Кроме того отдельно регистрируются непредвиденные долгие и быстрые случаи выполнения методов (более 2 сек, и менее 5мс), а также отклонения от ожидаемого значения (100мс). Метрики по длительности выполнения одного из методов API, передаются в мониторинг, который производит их анализ.
Часто встречающиеся проблемы и пути их устранения#
В данном разделе собраны наиболее частые проблемы и описаны пути их устранения.
Проблема |
Причина |
Способ устранения |
|---|---|---|
Загрузка конфигурационных элементов |
Некорректная загрузка |
Просмотреть логи на наличие ошибок |
При накате скриптов Liquibase |
— |
Обратиться в команду разработки |
При развертывании Продукта |
— |
Обратиться к администраторам Wildfly |