Файл состояния ej-contests

From EjudgeWiki

Навигация: Главная страница/Система ejudge/Использование/Файл состояния ej-contests

Поддерживается с версии 3.10.1.

Компонент ej-contests экспортирует некоторые показатели работы в файл ej-contests-status. Этот файл отображается в память процесса ej-contests, поэтому обновления этих показателей становятся доступными для чтения немедленно.

Файл размещается в следующем каталоге (в порядке приоритета):

  • если при конфигурации системы была задана опция --enable-contests-status-dir, то файл размещается непосредственно в этом каталоге, например

/var/lib/ejudge/status/ej-contests-status.

  • если при конфигурации системы была задана опция --enable-local-dir, то файл размещается в подкаталоге status,

например /var/lib/ejudge/status/ej-contests-status.

  • иначе файл находится в каталоге CONTESTS_HOME_DIR/var, например

/home/judges/var/ej-contests-status.

Для чтения информации из файла ej-contests-status его можно также отобразить в память в режиме "только чтение" и обращаться непосредственно к полям структуры.

Файл перезаписывается с нуля при каждом рестарте ej-contests.

Файл имеет следующую структуру:

struct metrics_contest_data
{
    uint32_t size;
    unsigned char pad0[12];
    struct timeval start_time;
    struct timeval update_time;
    long long client_serial;
    int loaded_contests;
    int runs_submitted;
    long long total_compile_time_ms;
    long long total_testing_time_ms;
};
  • Поле size содержит размер структуры в байтах (sizeof(struct metrics_contest_data)). В следующих версиях структуры ее размер может увеличиться за счет добавления новых полей, но существующие поля сохранятся.
  • Поле start_time содержит время старта компонента ej-contests.
  • Поле update_time содержит время последнего обновления значения в структуре.
  • Поле client_serial содержит текущий номер внутреннего запроса, обрабатываемого ej-contests. При обращении к ej-contests по протоколу http(s) создаются два внутренних запроса, поэтому количество http(s) запросов к ej-contests с момента старта программы можно получить, поделив это значение на 2.
  • Поле loaded_contests содержит число турниров, полная информация о которых загружена в память ej-contests.
  • Поле runs_submitted содержит число посылок, присланных на проверку с момента запуска ej-contests.
  • Поле total_compile_time_ms содержит суммарное время, потраченное на компиляцию всех посылок (включая перетестирования) в миллисекундах.
  • Поле total_testing_time_ms содержит суммарное время, потраченное на тестирование всех посылок (включая перетестирования) в миллисекундах.