Перейти к содержимому

Immich

Успевает ли Immich за тем, что загружается: очереди задач, застрявшие или стоящие на паузе, обновления, диск, хранящий библиотеку, сколько фотографий и видео в ней, и — для каждого телефона, планшета и десктопа, вошедшего в учётную запись, — его последнее подключение и последняя резервная копия.

DumbMonit читает API Immich с помощью ключа API, ограниченного восемью правами на чтение. Ключ не может видеть фотографию, альбом или человека, и не может ничего изменить.

Отказ, за которым стоит следить: задачи, которые больше не выполняются. Очередь, поставленная на паузу во время большого импорта и забытая, либо воркер задач, который остановился, — и новые фотографии не получают ни миниатюры, ни метаданных, ни распознавания лиц, ни умного поиска, в то время как загрузки продолжают проходить успешно. Immich показывает это только на своей странице Jobs.

Все метрики с префиксом dumbmonit_immich_.

МетрикаЧтоМетки
version_infoзначение 1version
update_available1, когда собственная проверка версии Immich знает о более новом релизе (отсутствует, когда проверка отключена)latest_version
maintenance_mode1, пока Immich в режиме обслуживания
storage_used_percent, storage_available_bytes, storage_size_bytesдиск, хранящий библиотеку
photos, videos, usage_bytes, usersразмер библиотеки, по всем пользователям вместе
jobs_waiting, jobs_active, jobs_failed, queues_pausedвсе очереди вместе
queue_waiting, queue_active, queue_failed, queue_pausedна очередь: ожидающие (включая отложенные и удержанные паузой), выполняющиеся, отказавшие, на паузеqueue
statistics_readable0, когда ключ принадлежит обычной учётной записи, и счётчики и очереди пропускаются
scrape_errorsвызовы, завершившиеся ошибкой при последней проверке

Современные версии Immich убирают отказавшие задачи из очереди, как только они залогированы, поэтому queue_failed обычно читается как 0; отказавшая задача видна в собственном журнале Immich.

Применяемые встроенные правила: «Задания Immich застряли», «Очередь Immich на паузе», «Хранилище Immich почти заполнено», «Доступно обновление Immich», плюс «Монитор недоступен».

Каждое устройство, вошедшее в учётную запись, которой принадлежит ключ, со своим последним подключением и последней резервной копией, публикуется в общем семействе, разделяемом каждой интеграцией DumbMonit, отслеживающей клиентские устройства — dumbmonit_client_device_*, с префиксом без immich, полностью описанным в разделе Клиентские устройства:

МетрикаЧтоМетки
last_seen_timestamp_secondsПоследнее подключение (последняя активность сессии)device, type, os, user, kind
last_backup_timestamp_secondsПоследняя резервная копия; см. ограничение нижеdevice, type, os, user, kind
stale_secondsПоложительно, когда устройство превысило device_stale_days (по умолчанию 3) без подключения или резервной копии; управляет правилом Клиентское устройство устарелоdevice, type, os, user, kind, signal (connection или backup)

Ограничение, о котором стоит знать: API Immich не записывает, какое устройство загрузило конкретную фотографию, поэтому last_backup_timestamp_seconds — это самая последняя загрузка во всей библиотеке, одно и то же значение для каждого устройства, опубликованное под устройством с именем library, а не реальным. Это отслеживает остановку сразу всех устройств (диск заполнен, выход из учётной записи везде); но не отследит, когда замолчит одно устройство, пока другие продолжают загружать. По-настоящему на устройство — только last_seen_timestamp_seconds, последний раз, когда была активна сессия каждого устройства.

Таблица на странице монитора показывает эти цифры для каждого устройства, со статусом OK или Stale.

Панель над графиками читает то, что сохранила проверка; открытие страницы никогда не обращается к Immich. Сначала она сообщает, что не так (застрявшие очереди, очереди на паузе, обслуживание), затем — обновления, затем — фотографии, видео, размер библиотеки, использование диска и ожидающие и выполняющиеся задачи, затем — очереди, у которых есть работа, по имени, затем — таблицу устройств (имя, тип, ОС, последнее подключение, последняя резервная копия, статус).

  1. Войдите в Immich учётной записью, которая может открывать Administration: только такие учётные записи могут читать счётчики фотографий и очереди задач в Immich. Откройте Account Settings → API Keys → New API Key, назовите его так, и отметьте эти восемь прав: первые пять — для очередей задач, счётчиков и версии, последние три — чтобы перечислять устройства учётной записи, их последнее подключение и резервную копию.

    dumbmonit
    server.about server.versionCheck server.storage server.statistics queue.read session.read asset.read user.read
  2. Скопируйте ключ сразу: Immich показывает его только один раз. Он читает эти восемь страниц и ничего больше: ни фотографии, ни альбома, ни настройки. Если ваш Immich не предлагает queue.read, отметьте вместо этого job.read.

  3. Ключ, созданный обычной учётной записью, тоже работает: версия, обновления, место на диске и устройства читаются, счётчики фотографий и очереди задач пропускаются.

  4. В DumbMonit введите адрес Immich, например «immich.lan» (порт 2283) или «https://photos.example.com» за обратным прокси, и вставьте ключ.

Что открывает каждое право: server.about — версию (/api/server/about), server.versionCheck — последний известный Immich релиз, server.storage — диск, server.statistics — счётчики фотографий и видео, queue.read — очереди задач (/api/queues; более старые версии отвечают на /api/jobs с job.read), session.read — устройства учётной записи (/api/sessions), asset.read — самую последнюю загрузку в библиотеке (/api/search/metadata), user.read — отображаемое имя учётной записи (/api/users/me).

Учётные данныеПоля
Ключ APIОтправляется в заголовке x-api-key.

Адрес: имя хоста (immich.lan), host:port, или полный URL с префиксом пути; завершающий /api допускается. Опции: протокол (по умолчанию HTTP), порт (2283), проверка сертификата, таймаут запроса (15 с), и устаревание устройства (device_stale_days, по умолчанию 3 дня).

Проверено на Immich v3.2.4 (официальные образы, машинное обучение отключено); конечные точки устройств проверены по тегу v3.2.4 собственной спецификации OpenAPI Immich (immich-app/immich), которая подтвердила, что /api/search/metadata больше не принимает фильтр deviceId — причина, почему «последняя резервная копия» общая для всей библиотеки, а не для каждого устройства.