Files
XC_VM/docs/ru/guides/diagnostics-api.md
T
2026-09-16 22:04:48 +03:00

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()`)|