| Action | Time Spent |
|---|---|
| Total Time | 2.7680 ms |
| Controller Time | 0.0532 ms |
| Render Time | 1.7715 ms |
| Total Time | Engine | Count | Template | Content Type |
|---|---|---|---|---|
| 1.7715 ms | kajiki | - | pubsub.templates.index | text/html |
| 1.6220 ms | kajiki | 1 | pubsub.templates.index |
| Calls | Total | Percall | Cumu | CumuPer | Func |
|---|---|---|---|---|---|
| 1 | 0.001 | 0.0010 | 0.037 | 0.0370 | <tg/configurator/components/dispatch.py:113(_call_controller)> |
| 1 | 0.007 | 0.0070 | 0.036000000000000004 | 0.0360 | <pubsub/controllers/root.py:29(index)> |
| 1 | 0.006 | 0.0060 | 0.017 | 0.0170 | <tg/predicates.py:79(is_met)> |
| 1 | 0.002 | 0.0020 | 0.011 | 0.0110 | <tg/predicates.py:239(evaluate)> |
| 1 | 0.007 | 0.0070 | 0.009000000000000001 | 0.0090 | <tg/predicates.py:39(unmet)> |
| 2/1 | 0.002 | 0.0010 | 0.008 | 0.0080 | <tg/support/objectproxy.py:18(__getattr__)> |
| 1 | 0.003 | 0.0030 | 0.006 | 0.0060 | <tg/request_local.py:239(_current_obj)> |
| 1 | 0.003 | 0.0030 | 0.004 | 0.0040 | <tg/predicates.py:235(__init__)> |
| 3/2 | 0.002 | 0.0007 | 0.004 | 0.0020 | {built-in method builtins.getattr} |
| 1 | 0.001 | 0.0010 | 0.001 | 0.0010 | <tg/predicates.py:32(__init__)> |
| 1 | 0.001 | 0.0010 | 0.001 | 0.0010 | <tg/support/registry.py:52(_current_obj)> |
| 1 | 0.001 | 0.0010 | 0.001 | 0.0010 | {method 'update' of 'dict' objects} |
| 1 | 0.001 | 0.0010 | 0.001 | 0.0010 | {method 'copy' of 'dict' objects} |
| 1 | 0.0 | 0.0000 | 0.0 | 0.0000 | {method 'disable' of '_lsprof.Profiler' objects} |
| 1 | 0.0 | 0.0000 | 0.0 | 0.0000 | {method 'get' of 'dict' objects} |
Nothing here.
Nothing here.
Nothing here.
| Name | Value |
|---|---|
| SERVER_SOFTWARE | 'gevent/1.4.0 gunicorn/20.0.4' |
| SCRIPT_NAME | '' |
| SERVER_NAME | 'mainserver-push' |
| SERVER_PORT | '8080' |
| REQUEST_METHOD | 'GET' |
| PATH_INFO | '/' |
| QUERY_STRING | '' |
| SERVER_PROTOCOL | 'HTTP/1.1' |
| REMOTE_ADDR | '172.24.0.1' |
| HTTP_HOST | 'push.sensors.staging.tigroup.dev' |
| HTTP_USER_AGENT | 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)' |
| HTTP_ACCEPT | '*/*' |
| HTTP_ACCEPT_ENCODING | 'gzip, br, zstd, deflate' |
| HTTP_X_FORWARDED_FOR | '172.24.0.1' |
| HTTP_X_FORWARDED_HOST | 'push.sensors.staging.tigroup.dev' |
| HTTP_X_FORWARDED_PORT | '443' |
| HTTP_X_FORWARDED_PROTO | 'https' |
| HTTP_X_FORWARDED_SERVER | 'mainserver-traefik' |
| HTTP_X_REAL_IP | '172.24.0.1' |
| Name | Value |
|---|---|
| identity | None |
| response | "{'_status': '200 OK', '_headers': ResponseHeaders([('Cache-Control', 'no-cache'), ('Pragma', 'no-cache'), ('Content-Length', '0'), ('Content-Type', 'text/html; charset=utf-8')]), '_headerlist': [('Cache-Control', 'no-cache'), ('Pragma', 'no-cache'), ('Content-Length', '0'), ('Content-Type', 'text/html; charset=utf-8')], 'conditional_response': False, '_app_iter': [b'']}" |
| Name | Value |
|---|---|
| GATEWAY_INTERFACE | 'CGI/1.1' |
| SERVER_SOFTWARE | 'gevent/1.4.0 gunicorn/20.0.4' |
| SCRIPT_NAME | '' |
| wsgi.version | (1, 0) |
| wsgi.multithread | True |
| wsgi.multiprocess | False |
| wsgi.run_once | False |
| wsgi.url_scheme | 'http' |
| wsgi.errors | <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7ff507873850> |
| wsgi.file_wrapper | <class 'gunicorn.http.wsgi.FileWrapper'> |
| wsgi.input_terminated | True |
| SERVER_NAME | 'mainserver-push' |
| SERVER_PORT | '8080' |
| REQUEST_METHOD | 'GET' |
| PATH_INFO | '/' |
| QUERY_STRING | '' |
| SERVER_PROTOCOL | 'HTTP/1.1' |
| REMOTE_ADDR | '172.24.0.1' |
| REMOTE_PORT | '60436' |
| HTTP_HOST | 'push.sensors.staging.tigroup.dev' |
| HTTP_USER_AGENT | 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)' |
| HTTP_ACCEPT | '*/*' |
| HTTP_ACCEPT_ENCODING | 'gzip, br, zstd, deflate' |
| HTTP_X_FORWARDED_FOR | '172.24.0.1' |
| HTTP_X_FORWARDED_HOST | 'push.sensors.staging.tigroup.dev' |
| HTTP_X_FORWARDED_PORT | '443' |
| HTTP_X_FORWARDED_PROTO | 'https' |
| HTTP_X_FORWARDED_SERVER | 'mainserver-traefik' |
| HTTP_X_REAL_IP | '172.24.0.1' |
| wsgi.input | <gevent.pywsgi.Input object at 0x7ff5076821a0> |
| webob._parsed_query_vars | (GET([]), '') |
| paste.registry | <tg.support.registry.Registry object at 0x7ff5073022d0> |
| repoze.who.api | <repoze.who.api.API object at 0x7ff5075265d0> |
| repoze.who.plugins | {'cookie': <AuthTktCookiePlugin 140690371520144>, 'form': <FastFormPlugin:/login_handler 140690371519952>, 'main_identifier': <FastFormPlugin:/login_handler 140690371519952>, 'tgappauth': <tg.configuration.auth.metadata._AuthMetadataAuthenticator object at 0x7ff5079e2b10>} |
| repoze.who.logger | <Logger auth (WARNING)> |
| paste.cookies | (<SimpleCookie: >, '') |
| tg.locals | <tg.wsgiapp.RequestLocals object at 0x7ff5074a8850> |
| beaker.cache | <beaker.cache.CacheManager object at 0x7ff5079e24d0> |
| beaker.session | {'_domain': None, '_path': '/', '_id': '702d54b12bb14bb396ee704ebeadf46a'} |
| beaker.get_session | <bound method SessionApplicationWrapper._get_session of <tg.appwrappers.session.SessionApplicationWrapper object at 0x7ff5079e2650>> |
| webob.adhoc_attrs | {'identity': None} |
| webob._parsed_cookies | ({}, '') |
| Path | Controller | Exposed Methods |
|---|---|---|
| / | <class 'pubsub.controllers.root.RootController'> | index, usage, login, post_login, post_logout |
| /admin | <class 'tgext.admin.controller.AdminController'> | index, _lookup, lookup |
| /push | <class 'pubsub.controllers.push.PushController'> | index |
| /error | <class 'pubsub.controllers.error.ErrorController'> | document |
| /_debugbar | <class 'tgext.debugbar.controller.DebugBarController'> | perform_sql, perform_ming |
| /_debugbar/statics | <class 'tgext.debugbar.controller.StaticsController'> | _default |
| Level | Time | Message | Location |
|---|---|---|---|
| INFO | 2025-12-06 02:20:54.121593 | 172.24.0.1 - - [2025-12-06 02:20:54] "GET /robots.txt HTTP/1.1" 404 27063 0.022155 | <geventwebsocket/handler.py>:242 |