Skip to content
programavimas.xyz docs

System statistics

The Statistics page for system administrators, what each number means, where it comes from and how fresh it is.

Administration → Statistics shows how the whole system is used and how it is doing: activity per day and per hour, recent work and its outcomes, the judge queue, background work, accounts, organisations, content and storage. Open it from the sidebar (Statistics, under Administration) or from the section pills at the top of any administration page.

Only system administrators. Organisation administrators, teachers and students don’t see the link, and opening the address gives them a “page not found”. The server checks the role for the page and again for every section, so hiding the link is not the protection.

The page shows totals only: counts, sizes and times over the whole system. It never shows a person’s name, username or individual results. The only names on it are organisation names, next to their activity counts.

The numbers are the same for every system administrator, so they are calculated once and kept for a short while: 5 minutes for most sections, 30 seconds for the judge queue (the Judging section shows the time it was read). Refresh in the page header recalculates everything now. Each section loads on its own, so a slow section never holds up the others; if one fails to load, it says so and the rest still works.

All days and hours are Vilnius time (Europe/Vilnius, as everywhere in the app), including the days when clocks change: the spring day has 23 hours, the autumn day 25.

A calendar of activity per day, one column per week (Monday first), the newest week on the right; on a phone it scrolls and opens at the newest week. Darker cells mean more activity. The four shades are the quarters of the active days in the period shown (the busiest quarter is the darkest), so the scale fits the period rather than a fixed number.

  • Activity to show (?metric= in the address): All (code submissions, quiz attempts and Excel uploads added up; the default), Code (graded code submissions), Quizzes (quiz attempts started) or Excel (Excel uploads). Practice runs (Run samples, Run with own input) are never counted.
  • Period (?year=): Last 12 months (53 weeks ending this week, as on GitHub) or a calendar year from the first year with activity. The current year runs to today.
  • Point at a day, or focus the calendar and move with the arrow keys (Home and End jump to the first and last day), to see the date and the counts of each kind. The calendar is a table, so screen readers can read it day by day.
  • Under the calendar: the busiest day of the period.

Busiest hours adds up the same activity by hour of the week over the period: weekdays as rows, the 24 hours as columns, in the calendar’s shades. It shows when the system is busiest, for example for planning updates outside those hours.

Number What it counts
Submissions · 24 hours / 7 days / 30 days Graded code submissions in that window, with the change against the window of the same length before it (for example the 7 days before the last 7).
Quiz attempts · 30 days, Excel uploads · 30 days Quiz attempts started and Excel workbooks uploaded, with the change against the 30 days before.
Outcomes · 30 days The official result of each code submission of the last 30 days: its verdict, or Waiting / Being judged while there is none, or System error when the judge failed.
Languages · 30 days The programming languages of those submissions, most used first.

A change is shown as a percentage, or as a plain difference when the previous window had nothing. Neither direction is good or bad in itself, so changes are not coloured.

Number What it counts
Waiting for the judge Judgements (graded submissions and rejudges) waiting for a free judge now, and how long the oldest one has waited.
Being judged Judgements being compiled or tested now, and practice runs waiting and running.
Judging time · 24 hours For the last 24 hours’ submissions: the median time from the start of compiling to the verdict, and the time within which 95 % finished.
Time in queue · 24 hours The same for the time from the submission to the start of judging.
System errors · 24 hours Last 24 hours’ submissions whose official judgement ended with a system error (they don’t count as attempts).

Background work lists every Excel check, similarity check and quiz attempt by its state. A growing Waiting count usually means a background worker has stopped: tell whoever runs the servers.

  • Accounts: every account, with the number created in the last 30 days.
  • Active · 7 days / 30 days: accounts that signed in or used the app in that time (use is recorded at most once an hour per session).
  • By role: each account counted once, by its main role, as the users list’s role filter counts them: administrators (system or organisation; the card says how many are system administrators), teachers (the organisation’s teacher role, group teachers, course staff), students, and accounts with no role.
  • By status: active, must change password, no password (can’t sign in with a password yet), disabled.
  • Rows that match a filter of the users list (the roles, Must change password, Disabled) open the list with that filter.
  • Organisations, Groups, Courses: active ones, with archived ones below; for courses, how many belong to the current school year.
  • Problems: published problems (students can be given them), with those never published and those archived below; the line under the tiles splits the active problems into programming and Excel tasks. New problems · 30 days compares with the 30 days before.
  • Most active organisations · 30 days: the five organisations with the most code submissions, quiz attempts and Excel uploads in their courses, with the number of organisations that had any. A row opens the organisation in Administration → Organisations.

The total size and number of stored files, and what they are used for: test data, problem files (statement images, attachments, checkers), Excel uploads, quiz files (question images and uploaded answers) and wiki files. Identical files are stored once, and a file used in two places counts in both uses, so the uses can add up to more than the total. Sizes come from the database’s file index only; the page never reads the files themselves.

The numbers are recalculated at most every 5 minutes (the judge queue every 30 seconds), the same for every system administrator. Refresh recalculates them now.