Skip to content

Commit

Permalink
Django. Admin. Added per worker information.
Browse files Browse the repository at this point in the history
  • Loading branch information
idlesign committed Sep 15, 2019
1 parent 20189a6 commit 7cf1dfb
Show file tree
Hide file tree
Showing 3 changed files with 114 additions and 69 deletions.
72 changes: 45 additions & 27 deletions uwsgiconf/contrib/django/uwsgify/admin/realms.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,38 +107,56 @@ def contribute_onepage_context(self, request, context):
('tx', (_('Transmitted'), lambda val: filesizeformat(val))),
('avg_rt', (_('Avg. response'), lambda val: timedelta(microseconds=val))),

# todo maybe
# ('apps', (_(''), None)),
# {
# 'modifier1': 0,
# 'chdir': '',
# 'startup_time': 0,
# 'callable': 139896737453968,
# 'mountpoint': '',
# 'exceptions': 0L,
# 'interpreter': 19550368,
# 'requests': 1L,
# 'id': 0
# },
('apps', (None, lambda val: iter_items(val, info_app_map))),
])

info_app_map = OrderedDict([
('id', (_('ID'), None)),
('startup_time', (_('Serving since'), None)),
('interpreter', (_('Interpreter'), None)),
('modifier1', (_('Modifier 1'), None)),
('mountpoint', (_('Mountpoint'), None)),
('callable', (_('Callable'), None)),
('chdir', (_('Directory'), None)),
('requests', (_('Requests'), None)),
('exceptions', (_('Exceptions'), None)),
])

panels = OrderedDict()
info_workers = OrderedDict()
unknown = object()
panels[''] = {'rows': info_workers}

for info_worker in uwsgi.workers_info:
for keyname, (name, func) in info_worker_map.items():
info_apps = OrderedDict()

value = info_worker.get(keyname, unknown)
if value is unknown:
continue
def iter_items(info, mapping):

if func is not None:
value = func(value)
unknown = set()

info_workers.setdefault(name, []).append(value)
for idx, info_item in enumerate(info):
for keyname, (name, func) in mapping.items():

context.update({
'panels': {
'': {'rows': info_workers},
},
})
value = info_item.get(keyname, unknown)
if value is unknown:
continue

if func is not None:
value = func(value)

yield idx, keyname, name, value

for idx_worker, keyname_worker, name_worker, value_worker in iter_items(uwsgi.workers_info, info_worker_map):

if keyname_worker == 'apps':
# Get info about applications served by worker,
for idx_app, keyname_app, name_app, value_app in value_worker:
app_key = '%s %s. %s %s' % (_('Worker'), idx_worker + 1, _('Application'), idx_app)
info_apps.setdefault(app_key, OrderedDict())[name_app] = [value_app]

else:
info_workers.setdefault(name_worker, []).append(value_worker)

# Add panel for every app on every worker.
for title, info in info_apps.items():
panels[title] = {'rows': info}

context.update({'panels': panels})
Binary file modified uwsgiconf/contrib/django/uwsgify/locale/ru/LC_MESSAGES/django.mo
Binary file not shown.
111 changes: 69 additions & 42 deletions uwsgiconf/contrib/django/uwsgify/locale/ru/LC_MESSAGES/django.po
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-13 20:23+0700\n"
"PO-Revision-Date: 2019-09-13 20:24+0700\n"
"POT-Creation-Date: 2019-09-15 12:17+0700\n"
"PO-Revision-Date: 2019-09-15 12:18+0700\n"
"Last-Translator: Igor 'idle sign' Starikov <idlesign@yandex.ru>\n"
"Language-Team: \n"
"Language: ru\n"
Expand All @@ -28,146 +28,170 @@ msgstr "Сводка"
msgid "Configuration"
msgstr "Конфигурация"

#: admin/models.py:28 admin/models.py:29 admin/realms.py:32
#: admin/models.py:28 admin/models.py:29 admin/realms.py:48
msgid "Workers"
msgstr "Рабочие"

#: admin/realms.py:23
#: admin/realms.py:39
msgid "Version"
msgstr "Версия"

#: admin/realms.py:24
#: admin/realms.py:40
msgid "Hostname"
msgstr "Хост"

#: admin/realms.py:25
#: admin/realms.py:41 admin/realms.py:115
msgid "Serving since"
msgstr "Работает с"

#: admin/realms.py:26
#: admin/realms.py:42
msgid "Serving for"
msgstr "Время работы"

#: admin/realms.py:27
#: admin/realms.py:43
msgid "Clock"
msgstr "Часы"

#: admin/realms.py:28
#: admin/realms.py:44
msgid "Master PID"
msgstr "PID Мастера"

#: admin/realms.py:29
#: admin/realms.py:45
msgid "Memory (RSS, VSZ)"
msgstr "Память (RSS, VSZ)"

#: admin/realms.py:30
#: admin/realms.py:46
msgid "Buffer size"
msgstr "Размер буфера"

#: admin/realms.py:31
#: admin/realms.py:47
msgid "Cores"
msgstr "Ядра"

#: admin/realms.py:33
#: admin/realms.py:49
msgid "Mules"
msgstr "Мулы"

#: admin/realms.py:34
#: admin/realms.py:50
msgid "Farms"
msgstr "Фермы"

#: admin/realms.py:35
#: admin/realms.py:51
msgid "Threads support"
msgstr "Поддержка нитей"

#: admin/realms.py:36
#: admin/realms.py:52
msgid "Current worker"
msgstr "Текущий рабочий"

#: admin/realms.py:37
#: admin/realms.py:53
msgid "Requests by worker"
msgstr "Запросов на рабочем"

#: admin/realms.py:38
#: admin/realms.py:54
msgid "Requests total"
msgstr "Запросов всего"

#: admin/realms.py:39
#: admin/realms.py:55
msgid "Socket queue size"
msgstr "Размер очереди сокета"

#: admin/realms.py:40
#: admin/realms.py:56
msgid "Log size"
msgstr "Размер журнала"

#: admin/realms.py:41
#: admin/realms.py:57
msgid "RPC"
msgstr ""

#: admin/realms.py:42
#: admin/realms.py:58
msgid "Post fork hooks"
msgstr "Хуки после fork"

#: admin/realms.py:43
msgid "Available signal number"
msgstr "Доступный номер сигнала"
#: admin/realms.py:59 admin/realms.py:102
msgid "Signals"
msgstr "Сигналы"

#: admin/realms.py:75
#: admin/realms.py:91 admin/realms.py:114
msgid "ID"
msgstr ""

#: admin/realms.py:76
#: admin/realms.py:92
msgid "PID"
msgstr ""

#: admin/realms.py:77
#: admin/realms.py:93
msgid "Status"
msgstr "Статус"

#: admin/realms.py:79
#: admin/realms.py:95
msgid "Running for"
msgstr "Время работы"

#: admin/realms.py:80
#: admin/realms.py:96
msgid "Spawned at"
msgstr "Время порождения"

#: admin/realms.py:82
#: admin/realms.py:98
msgid "Respawns"
msgstr "Порождения"

#: admin/realms.py:83
#: admin/realms.py:99 admin/realms.py:121
msgid "Requests"
msgstr "Запросы"

#: admin/realms.py:84
#: admin/realms.py:100
msgid "Delta requests"
msgstr "Разница запросов"

#: admin/realms.py:85
#: admin/realms.py:101 admin/realms.py:122
msgid "Exceptions"
msgstr "Исключения"

#: admin/realms.py:86
msgid "Signals"
msgstr "Сигналы"

#: admin/realms.py:88
#: admin/realms.py:104
msgid "RSS"
msgstr ""

#: admin/realms.py:89
#: admin/realms.py:105
msgid "VSZ"
msgstr ""

#: admin/realms.py:91
#: admin/realms.py:107
msgid "Transmitted"
msgstr "Передано"

#: admin/realms.py:92
#: admin/realms.py:108
msgid "Avg. response"
msgstr "На запрос (сред.)"

#: admin/realms.py:116
msgid "Interpreter"
msgstr "Интерпретатор"

#: admin/realms.py:117
msgid "Modifier 1"
msgstr "Модификатор 1"

#: admin/realms.py:118
msgid "Mountpoint"
msgstr "Точка входа"

#: admin/realms.py:119
msgid "Callable"
msgstr "Вызываемый объект"

#: admin/realms.py:120
msgid "Directory"
msgstr "Директория"

#: admin/realms.py:152
msgid "Worker"
msgstr "Рабочий"

#: admin/realms.py:152
msgid "Application"
msgstr "Приложение"

#: config.py:8
msgid "uWSGI Integration"
msgstr "Интеграция с uWSGI"
Expand All @@ -183,3 +207,6 @@ msgid ""
msgstr ""
"Этот сайт работает на на uWSGI. Некоторая функциональность или данные могут "
"быть недоступны."

#~ msgid "Available signal number"
#~ msgstr "Доступный номер сигнала"

0 comments on commit 7cf1dfb

Please sign in to comment.