# Служба диагностики `DiagnosticsService` предоставляет помощников по оперативной диагностике: - Проверка SSL-сертификата - проверка совместимости кодеков - экспорт/отправка журнала панели управления - обнаружение IP-адреса внешнего API --- ## Методы ### `getCertificateInfo(?string $certificate = null): ?array` Возвращает сведения о сертификате (`serial`, `expiration`, `subject`, `path`). Если значение `$certificate` равно null, путь к сертификату автоматически определяется из конфигурации SSL nginx. Возвращает `null`, если файл отсутствует или при анализе OpenSSL произошел сбой. --- ### `checkCompatibility(array|string $data, bool $allowHEVC = false): bool` Проверяет, совместимы ли медиакодеки с ограничениями проигрывателя. Принимает полезную нагрузку FFProbe в виде массива или строки JSON. Принятые по умолчанию кодеки включают: - видео: `h264`, `vp8`, `vp9`, `ogg`, `av1` - аудио: `aac`, `libfdk_aac`, `opus`, `vorbis`, `pcm_s16le`, `mp2`, `mp3`, `flac` При `$allowHEVC=true` допускаются значения `hevc`/`h265` и `ac3`. --- ### `downloadPanelLogs(object $db): array` Извлекает до 1000 последних строк из `panel_logs` (исключая `epg`), обрабатывает поля вывода и очищает строки журнала после экспорта. Возвращаемая форма: ```php [ 'errors' => [...], 'version' => '...' ] ``` Выдает `Exception` при сбое запроса к БД. --- ### `submitPanelLogs(object $db): string|false` Отправляет журналы панели в конечную точку удаленной диагностики и очищает отправленные журналы. Возвращает строку ответа в случае успеха, `false` в случае сбоя (например, не удается разрешить IP-адрес API). Используется для поддержки /телеметрии рабочих процессов. --- ## `panel_logs` Форма (используемые поля) |Колонка|Тип|Значение| | --- | --- | --- | | `type` |строка|тип события| | `log_message` |строка|основное сообщение| | `log_extra` |строка|дополнительный контекст| | `line` |инт|исходная строка| | `date` |инт|Временная метка UNIX| --- ### `getPIDs(int $rServerID): array` Анализирует информацию о системном процессе из ответа API сервера. Возвращает структурированные данные процесса для мониторинга. --- ### `getNVENCProcesses(int $rServerID): array` Извлекает данные процесса GPU (NVENC) из информации о графическом процессоре сервера. Используется для диагностики кодирования на графическом процессоре. --- ## Связанные файлы |Файл|Цель| | --- | --- | | `src/Core/Diagnostics/DiagnosticsService.php` |методы диагностики| | `src/Core/Logging/Logger.php` |записывает журналы| | `src/Core/Config/ConstantsInitializer.php` |метаданные версии (карта`appConfig()`)|