VIZOR v2{{ activeNav.label }}
MongoDB{{ status.mongo?.enabled && status.mongo?.configured ? 'ON' : 'OFF' }}{{ status.mongo?.newDb || status.mongo?.message || 'primary source' }}
Server Sync{{ status.serverSync?.enabled && status.serverSync?.configured ? 'ON' : 'OFF' }}{{ status.serverSync?.running ? 'running' : 'idle' }}
Записи cache{{ counts.records || 0 }}для аналитики
Паттерны{{ counts.patterns || 0 }}bundled + custom
Alerts{{ counts.alerts || 0 }}rules
Уведомления{{ counts.unreadNotifications || 0 }}{{ counts.notifications || 0 }} всего

Рабочий центр

Состояние VIZOR

MongoDB{{ status.mongo?.enabled && status.mongo?.configured ? 'Подключена' : 'Не настроена' }}{{ status.mongo?.newDb || status.mongo?.message || 'primary source' }}
Server Sync{{ status.serverSync?.running ? 'Идёт' : (status.serverSync?.enabled ? 'Готов' : 'Отключён') }}{{ formatDate(status.serverSync?.lastRun?.finishedAt) || 'запусков не было' }}
Паттерны{{ counts.patterns || patternsList.length || 0 }}модули поиска и парсинга
Cache записей{{ counts.records || records.length || 0 }}для быстрых расследований

Пайплайн данных

актуальность
1Game server logs{{ status.serverSync?.configured ? 'remote path настроен' : 'нужен SERVER_SYNC_*' }}
2Parser / Patterns{{ patternsList.length }} паттернов доступно
3MongoDB collections{{ status.mongo?.enabled ? 'основной источник' : 'выключено' }}
4Analytics cache{{ counts.records || 0 }} записей
MongoDB new{{ status.mongo?.newDb || '-' }}
MongoDB old{{ status.mongo?.oldDb || '-' }}
Последний Server Sync{{ formatDate(status.serverSync?.lastRun?.finishedAt) || '-' }}
Последний cache sync{{ formatDate(status.mongo?.lastSync?.at) || '-' }}

Быстрые действия

workflows

Последние записи

{{ records.length }}
{{ r.patternName || r.patternKey || r.__patternID }}{{ entityLabel(r) }}
{{ formatDate(r.unix) }}
Cache пуст. Запустите MongoDB → cache.

Контроль

уведомления и подсказки
{{ counts.unreadNotifications || 0 }}непрочитанных уведомлений
{{ alerts.length || counts.alerts || 0 }}alert rules
{{ suggestions.length || 0 }}локальных suggestions

Синхронизация

{{ status.serverSync?.running ? 'идёт' : 'ожидание' }}
{{ status.serverSync?.running ? 'Выполняется' : 'Автоматический режим' }} Интервал: {{ status.serverSync?.intervalSeconds || '-' }} сек.
Настроена{{ status.serverSync?.configured ? 'Да' : 'Нет' }}
Серверы{{ (status.serverSync?.servers || []).join(', ') || '-' }}
Последний запуск{{ formatDate(status.serverSync?.lastRun?.startedAt) || '-' }}
Завершение{{ formatDate(status.serverSync?.lastRun?.finishedAt) || '-' }}
Файлов найдено{{ status.serverSync?.lastRun?.scannedFiles || 0 }}
Файлов скачано{{ status.serverSync?.lastRun?.downloadedFiles || 0 }}
Записей распознано{{ status.serverSync?.lastRun?.parsedRecords || 0 }}
Записей в MongoDB{{ status.serverSync?.lastRun?.insertedRecords || 0 }}

Файлы последнего прохода

{{ status.serverSync?.lastRun?.files?.length || 0 }}
СтатусСерверПаттернФайлParsedInserted
{{ f.status }}{{ f.serverID }}{{ f.patternID }}{{ f.filePath }}{{ f.parsedRecords || 0 }}{{ f.insertedRecords || 0 }}
Данных по файлам пока нет

История запусков

{{ status.serverSync?.recentRuns?.length || 0 }}
{{ formatDate(run.startedAt) }}{{ run.ok ? 'OK' : 'ERROR' }} · файлов {{ run.scannedFiles }} · записей {{ run.insertedRecords }}

Формула по срезу

{{ analyticsResult.records || 0 }} записей
Дополнительные условия
{{ x.key || x.label }}
{{ formatNumber(x.value) }}

Сводка

{{ analyticsResult.operation }}
Total{{ formatNumber(analyticsResult.total) }}
Records{{ analyticsResult.records || 0 }}
Groups{{ analyticsResult.series?.length || 0 }}

{{ investTabTitle }}

investigation
{{ formatDate(item.unix) }}
{{ item.title }}

{{ item.subtitle || item.bucket }}

Timeline пуст

Nodes

{{ n.label }} · {{ n.count }}

Edges

{{ e.source }}{{ e.target }}{{ e.count }}
{{ tree.rootField }}: {{ node.key }}{{ node.count }} операций · {{ formatNumber(node.total) }}
{{ tree.branchField }}: {{ br.key }}

{{ br.count }} операций · {{ formatNumber(br.total) }}

{{ r.patternName }} · {{ formatDate(r.unix) }}

Дерево пустое

Entity Profile

{{ entityResult.records || 0 }} операций
{{ formatNumber(entityResult.query.total || entityResult.records || 0) }}в срезе
{{ formatNumber(entityResult.query.loaded || entityResult.records || 0) }}обработано
{{ entityResult.query.safety?.rangeCapped ? 'Да' : 'Нет' }}срез ограничен
{{ entityResult.summary?.operations || 0 }}операций
{{ formatNumber(entityResult.summary?.totalSum || 0) }}total sum
{{ entityResult.related?.length || 0 }}связей

Связанные сущности

{{ entityResult.related?.length || 0 }}
{{ rel.field }}: {{ rel.value }}{{ rel.count }} совпадений
{{ formatDate(rel.lastUnix) }}
Нет связей

Timeline сущности

{{ entityResult.timeline?.length || 0 }}
{{ formatDate(r.unix) }}
{{ r.patternName || r.patternKey }}

{{ entityLabel(r) }}

Raw Log Quality

{{ qualityResult.coverage || 0 }}%
Total lines{{ qualityResult.totalLines || 0 }}
Matched{{ qualityResult.matchedLines || 0 }}
Unmatched{{ qualityResult.unmatchedLines || 0 }}
{{ f.name }}{{ f.matched }}/{{ f.lines }} · {{ f.coverage }}%

Anomaly Detection

{{ anomalyResult.items?.length || 0 }}
{{ a.type }}{{ a.message }}
{{ a.score }}

Alert rules

{{ alerts.length }}

Визуальный редактор Alert

{{ alertEditor.id || 'new' }}

Пресеты

{{ presets.length }}

Визуальный редактор пресета

{{ presetEditor.id || 'new' }}
Фильтры
Аналитика

Saved Views

{{ savedViews.length }}

Сохранить рабочий экран

{{ view }}

Локальные подсказки

{{ suggestions.length }}
{{ s.title }}{{ s.reason }}
{{ s.priority }}
Нет подсказок

Элементы

{{ elements.length }}

Редактор элемента

{{ elementEditor.id || 'new' }}

Параметры элемента

{{ elementEditor.params?.length || 0 }}

Паттерны

{{ patternsList.length }}

JSON редактор

{{ patternEditor.id || 'new' }}

Паттерн

{{ visualPattern.id || 'new' }}
Паттерн сохранён, но не используется в поиске до пересчёта серверной синхронизацией.

Редактор правила

{{ activeVisualEntry?.id }}
{{ visualValidation.ok ? 'Regex корректен' : visualValidation.errors?.join('; ') }}
#Поле логаТипЭлементПараметрRaw / связь
#{{ i+1 }} {{ buildRawLineKey(k) }}

Тест строки

capture preview
#{{ i+1 }} {{ activeVisualEntry.lineKeys[i]?.field }}{{ c.value }}{{ activeVisualEntry.lineKeys[i]?.type }} · {{ visualPattern.elements?.[activeVisualEntry.lineKeys[i]?.field]?.entity }}

Pattern Tester

regex check
{{ JSON.stringify(testerResult, null, 2) }}

Генератор паттерна

из sample строки
{{ JSON.stringify(generatedPattern, null, 2) }}

Diff Mode

{{ diffResult.rows?.length || 0 }} строк
Дополнительные условия
КлючABDelta%A countB count
{{ r.key }}{{ formatNumber(r.aValue) }}{{ formatNumber(r.bValue) }}{{ formatNumber(r.delta) }}{{ r.deltaPct }}%{{ r.aCount }}{{ r.bCount }}

Notification Center

{{ notifications.length }}
{{ n.title }}{{ n.type }} · {{ n.status }} · {{ formatDate(n.createdAt) }}

{{ n.message }}

{{ n.severity }}
Уведомлений нет