2026-08-20 22:37:44 +03:00
# Служба диагностики
`DiagnosticsService` предоставляет помощников по оперативной диагностике:
- Проверка SSL-сертификата
- проверка совместимости кодеков
2026-08-21 16:31:01 +03:00
- экспорт/отправка журнала панели управления
2026-08-20 22:37:44 +03:00
- обнаружение IP-адреса внешнего API
---
## Методы
### `getCertificateInfo(?string $certificate = null): ?array`
Возвращает сведения о сертификате (`serial` , `expiration` , `subject` , `path` ).
2026-08-21 16:31:01 +03:00
Если значение `$certificate` равно null, путь к сертификату автоматически определяется из конфигурации SSL nginx.
2026-09-16 22:04:48 +03:00
Возвращает `null` , если файл отсутствует или при анализе OpenSSL произошел сбой.
2026-08-20 22:37:44 +03:00
---
### `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`
2026-08-21 16:31:01 +03:00
При `$allowHEVC=true` допускаются значения `hevc` /`h265` и `ac3` .
2026-08-20 22:37:44 +03:00
---
### `downloadPanelLogs(object $db): array`
2026-08-21 16:31:01 +03:00
Извлекает до 1000 последних строк из `panel_logs` (исключая `epg` ), обрабатывает поля вывода и очищает строки журнала после экспорта.
2026-08-20 22:37:44 +03:00
Возвращаемая форма:
```php
[
'errors' => [ ... ],
'version' => '...'
]
```
2026-09-16 22:04:48 +03:00
Выдает `Exception` при сбое запроса к БД.
2026-08-20 22:37:44 +03:00
---
### `submitPanelLogs(object $db): string|false`
Отправляет журналы панели в конечную точку удаленной диагностики и очищает отправленные журналы.
Возвращает строку ответа в случае успеха, `false` в случае сбоя (например, не удается разрешить IP-адрес API).
Используется для поддержки /телеметрии рабочих процессов.
---
## `panel_logs` Форма (используемые поля)
|Колонка|Тип|Значение|
| --- | --- | --- |
| `type` |строка|тип события|
| `log_message` |строка|основное сообщение|
| `log_extra` |строка|дополнительный контекст|
| `line` |инт|исходная строка|
| `date` |инт|Временная метка UNIX|
---
### `getPIDs(int $rServerID): array`
2026-08-27 18:07:43 +03:00
Анализирует информацию о системном процессе из ответа API сервера. Возвращает структурированные данные процесса для мониторинга.
2026-08-20 22:37:44 +03:00
---
### `getNVENCProcesses(int $rServerID): array`
Извлекает данные процесса GPU (NVENC) из информации о графическом процессоре сервера. Используется для диагностики кодирования на графическом процессоре.
---
## Связанные файлы
|Файл|Цель|
| --- | --- |
| `src/Core/Diagnostics/DiagnosticsService.php` |методы диагностики|
| `src/Core/Logging/Logger.php` |записывает журналы|
2026-09-16 22:04:48 +03:00
| `src/Core/Config/ConstantsInitializer.php` |метаданные версии (карта`appConfig()` )|