mirror of
https://github.com/Vateron-Media/XC_VM.git
synced 2026-10-04 12:02:33 +02:00
93 lines
3.8 KiB
Markdown
93 lines
3.8 KiB
Markdown
# Служба диагностики
|
|
|
|
`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()`)|
|