CI
github-actions:test
12 runs
Average
82 ms
median 89 ms
max 102 ms
max 102 ms
Phases
Setup 0.67 ms
Call 81 ms
Teardown 0.17 ms
Categories
Database 56 ms
App code 1 ms
Other (Libraries, Unsampled, pytest) 25 ms
47 database queries per run
Needs 103 KB of memory (max 264 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 16 hours ago ·
open run
setup0.70 ms0.7%
call93 ms99.0%
McpTest.test_get_overviewapps/mcp/tests.py:18957 ms61.5%
McpTest.callapps/mcp/tests.py:8257 ms61.5%
McpTest.rpcapps/mcp/tests.py:7557 ms61.5%
McpTest.postapps/mcp/tests.py:67 return self.client.post(57 ms61.5%
Client.postdjango/test/client.py:115357 ms61.5%
RequestFactory.postdjango/test/client.py:49957 ms61.5%
RequestFactory.genericdjango/test/client.py:67157 ms61.5%
Client.requestdjango/test/client.py:108257 ms61.5%
ClientHandler.__call__django/test/client.py:18646 ms49.5%
BaseHandler.get_responsedjango/core/handlers/base.py:14146 ms49.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5546 ms49.5%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13046 ms49.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5546 ms49.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30946 ms49.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5546 ms49.5%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12346 ms49.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5546 ms49.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30946 ms49.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5546 ms49.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30946 ms49.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5546 ms49.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30946 ms49.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5546 ms49.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30946 ms49.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5546 ms49.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30946 ms49.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5546 ms49.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30946 ms49.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5546 ms49.5%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3446 ms49.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5546 ms49.5%
BaseHandler._get_responsedjango/core/handlers/base.py:19846 ms49.5%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:6546 ms49.5%
mcpapps/mcp/urls.py:14746 ms49.5%
handleapps/mcp/urls.py:11546 ms49.5%
call_toolapps/mcp/urls.py:7546 ms49.5%
Tools.callapps/mcp/tools.py:18846 ms49.5%
Tools.get_overviewapps/mcp/tools.py:21246 ms49.5%
overviewapps/projects/analytics.py:300 ).aggregate(wall=Avg("duration"), test_time=Avg("test_time"))26 ms27.3%
QuerySet.aggregatedjango/db/models/query.py:59426 ms27.3%
Query.get_aggregationdjango/db/models/sql/query.py:63324 ms25.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:162421 ms22.2%
CursorWrapper.executedjango/db/backends/utils.py:7921 ms22.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9221 ms22.2%
CursorWrapper._executedjango/db/backends/utils.py:10521 ms22.2%
Cursor.executepsycopg/cursor.py:11321 ms22.2%
Connection.waitpsycopg/connection.py:49521 ms22.2%
BaseCursor._execute_genpsycopg/_cursor_base.py:20621 ms22.2%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:28619 ms20.5%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:7819 ms20.5%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3122 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.7%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7952 ms1.7%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms1.7%
WhereNode.as_sqldjango/db/models/sql/where.py:1512 ms1.7%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms1.7%
BuiltinLookup.as_sqldjango/db/models/lookups.py:2382 ms1.7%
BuiltinLookup.process_lhsdjango/db/models/lookups.py:2302 ms1.7%
Lookup.process_lhsdjango/db/models/lookups.py:1092 ms1.7%
BaseExpression.resolve_expressiondjango/db/models/expressions.py:2972 ms1.7%
BaseExpression.copydjango/db/models/expressions.py:4442 ms1.7%
copy<stdlib>/copy.py:1002 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16222 ms1.7%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.7%
BaseDatabaseWrapper.cursordjango/db/backends/base/base.py:3202 ms1.7%
BaseDatabaseWrapper._cursordjango/db/backends/base/base.py:2982 ms1.7%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.7%
DatabaseWrapper.create_cursordjango/db/backends/postgresql/base.py:4302 ms1.7%
Connection.cursorpsycopg/connection.py:2592 ms1.7%
Query.get_aggregationdjango/db/models/sql/query.py:4842 ms1.7%
BaseExpression.replace_expressionsdjango/db/models/expressions.py:4222 ms1.7%
Expression.__hash__django/db/models/expressions.py:5622 ms1.7%
cached_property.__get__django/utils/functional.py:472 ms1.7%
Expression.identitydjango/db/models/expressions.py:5432 ms1.7%
overviewapps/projects/analytics.py:30313 ms13.7%
flaky_reportapps/projects/flakiness.py:25313 ms13.7%
compute_flaky_reportapps/projects/flakiness.py:27213 ms13.7%
observations_forapps/projects/flakiness.py:165 test_runs = list(test_runs)13 ms13.7%
QuerySet.__iter__django/db/models/query.py:39013 ms13.7%
QuerySet._fetch_alldjango/db/models/query.py:200013 ms13.7%
ValuesListIterable.__iter__django/db/models/query.py:23813 ms13.7%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:157313 ms13.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:162413 ms13.7%
CursorWrapper.executedjango/db/backends/utils.py:7913 ms13.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9213 ms13.7%
CursorWrapper._executedjango/db/backends/utils.py:10513 ms13.7%
Cursor.executepsycopg/cursor.py:11313 ms13.7%
Connection.waitpsycopg/connection.py:49513 ms13.7%
BaseCursor._execute_genpsycopg/_cursor_base.py:20613 ms13.7%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:28611 ms11.9%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:7811 ms11.9%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3122 ms1.7%
overviewapps/projects/analytics.py:3018 ms8.5%
latest_profilesapps/projects/analytics.py:2635 ms5.1%
Scope.scoped_environmentsapps/projects/analytics.py:185 return list(Environment.objects.filter(project=self.project))5 ms5.1%
QuerySet.__iter__django/db/models/query.py:3903 ms3.4%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms3.4%
ModelIterable.__iter__django/db/models/query.py:953 ms3.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.7%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.7%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms1.7%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms1.7%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:2682 ms1.7%
SQLCompiler.get_select.<locals>.<genexpr>django/db/models/sql/compiler.py:2642 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.7%
QuerySet.filterdjango/db/models/query.py:15422 ms1.7%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms1.7%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms1.7%
Query.add_qdjango/db/models/sql/query.py:16712 ms1.7%
Query._add_qdjango/db/models/sql/query.py:17032 ms1.7%
Query.build_filterdjango/db/models/sql/query.py:15772 ms1.7%
Query.setup_joinsdjango/db/models/sql/query.py:19172 ms1.7%
latest_profilesapps/projects/analytics.py:264 profile = scope.profiles().filter(environment=environment).order_by("-started_at").first()3 ms3.4%
QuerySet.firstdjango/db/models/query.py:11453 ms3.4%
QuerySet.__iter__django/db/models/query.py:3903 ms3.4%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms3.4%
ModelIterable.__iter__django/db/models/query.py:953 ms3.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.7%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.7%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms1.7%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms1.7%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms1.7%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5742 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
ClientHandler.__call__django/test/client.py:17311 ms11.9%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6211 ms11.9%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10411 ms11.9%
WhiteNoise.add_fileswhitenoise/base.py:10811 ms11.9%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12010 ms10.2%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:1316 ms6.8%
WhiteNoise.get_static_filewhitenoise/base.py:2086 ms6.8%
StaticFile.__init__whitenoise/responders.py:773 ms3.4%
StaticFile.get_alternativeswhitenoise/responders.py:2003 ms3.4%
StaticFile.__init__whitenoise/responders.py:723 ms3.4%
StaticFile.get_file_statswhitenoise/responders.py:1612 ms1.7%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1152 ms1.7%
scantreewhitenoise/base.py:2622 ms1.7%
scantreewhitenoise/base.py:2622 ms1.7%
scantreewhitenoise/base.py:2622 ms1.7%
scantreewhitenoise/base.py:2622 ms1.7%
scantreewhitenoise/base.py:2622 ms1.7%
scantreewhitenoise/base.py:2642 ms1.7%
McpTest.test_get_overviewapps/mcp/tests.py:195 ci = self.call("get_overview", environment="ci")35 ms37.6%
McpTest.callapps/mcp/tests.py:8235 ms37.6%
McpTest.rpcapps/mcp/tests.py:7535 ms37.6%
McpTest.postapps/mcp/tests.py:67 return self.client.post(35 ms37.6%
Client.postdjango/test/client.py:115335 ms37.6%
RequestFactory.postdjango/test/client.py:49935 ms37.6%
RequestFactory.genericdjango/test/client.py:67135 ms37.6%
Client.requestdjango/test/client.py:108235 ms37.6%
ClientHandler.__call__django/test/client.py:18635 ms37.6%
BaseHandler.get_responsedjango/core/handlers/base.py:14135 ms37.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5535 ms37.6%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13035 ms37.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5535 ms37.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30935 ms37.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5535 ms37.6%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12335 ms37.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5535 ms37.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30935 ms37.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5535 ms37.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30935 ms37.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5535 ms37.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30935 ms37.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5535 ms37.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30935 ms37.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5535 ms37.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30935 ms37.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5535 ms37.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30935 ms37.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5535 ms37.6%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3435 ms37.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5535 ms37.6%
BaseHandler._get_responsedjango/core/handlers/base.py:19835 ms37.6%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:6535 ms37.6%
mcpapps/mcp/urls.py:12524 ms25.6%
authenticateapps/mcp/urls.py:55 project = Project.objects.filter(secrettokens__token=token).first()22 ms23.9%
QuerySet.firstdjango/db/models/query.py:114522 ms23.9%
QuerySet.__iter__django/db/models/query.py:39022 ms23.9%
QuerySet._fetch_alldjango/db/models/query.py:200022 ms23.9%
ModelIterable.__iter__django/db/models/query.py:9522 ms23.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:162422 ms23.9%
CursorWrapper.executedjango/db/backends/utils.py:7922 ms23.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9222 ms23.9%
CursorWrapper._executedjango/db/backends/utils.py:10522 ms23.9%
Cursor.executepsycopg/cursor.py:11322 ms23.9%
Connection.waitpsycopg/connection.py:49521 ms22.2%
BaseCursor._execute_genpsycopg/_cursor_base.py:20621 ms22.2%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:28621 ms22.2%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:7821 ms22.2%
authenticateapps/mcp/urls.py:57 SecretTokens.objects.filter(token=token).update(date_last_used=timezone.now())2 ms1.7%
QuerySet.updatedjango/db/models/query.py:13002 ms1.7%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.7%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms1.7%
mcpapps/mcp/urls.py:14711 ms11.9%
handleapps/mcp/urls.py:11511 ms11.9%
call_toolapps/mcp/urls.py:7511 ms11.9%
Tools.callapps/mcp/tools.py:18811 ms11.9%
Tools.get_overviewapps/mcp/tools.py:2128 ms8.5%
overviewapps/projects/analytics.py:3013 ms3.4%
latest_profilesapps/projects/analytics.py:264 profile = scope.profiles().filter(environment=environment).order_by("-started_at").first()3 ms3.4%
QuerySet.filterdjango/db/models/query.py:15422 ms1.7%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms1.7%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms1.7%
Query.add_qdjango/db/models/sql/query.py:16712 ms1.7%
Query._add_qdjango/db/models/sql/query.py:16992 ms1.7%
QuerySet.firstdjango/db/models/query.py:11452 ms1.7%
QuerySet.__iter__django/db/models/query.py:3902 ms1.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.7%
ModelIterable.__iter__django/db/models/query.py:952 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
overviewapps/projects/analytics.py:3033 ms3.4%
flaky_reportapps/projects/flakiness.py:2533 ms3.4%
compute_flaky_reportapps/projects/flakiness.py:2683 ms3.4%
failing_test_idsapps/projects/flakiness.py:202 ids = set(2 ms1.7%
QuerySet.__iter__django/db/models/query.py:3902 ms1.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.7%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 ms1.7%
Query.get_compilerdjango/db/models/sql/query.py:3702 ms1.7%
failing_test_idsapps/projects/flakiness.py:212 ids |= set(2 ms1.7%
QuerySet.__iter__django/db/models/query.py:3902 ms1.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.7%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 ms1.7%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
overviewapps/projects/analytics.py:3022 ms1.7%
result_countsapps/projects/analytics.py:274 sessions = Session.objects.filter(scope.environment_q(), project=scope.project, date_created__gte=since).aggregate(2 ms1.7%
QuerySet.aggregatedjango/db/models/query.py:5942 ms1.7%
Query.chaindjango/db/models/sql/query.py:4332 ms1.7%
Query.clonedjango/db/models/sql/query.py:4252 ms1.7%
Tools.get_overviewapps/mcp/tools.py:2113 ms3.4%
Tools.scopeapps/mcp/tools.py:1803 ms3.4%
resolve_scopeapps/projects/analytics.py:198 selected = Environment.objects.filter(project=project, name=env).first()2 ms1.7%
QuerySet.firstdjango/db/models/query.py:11452 ms1.7%
QuerySet.__iter__django/db/models/query.py:3902 ms1.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.7%
ModelIterable.__iter__django/db/models/query.py:952 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
resolve_scopeapps/projects/analytics.py:206 environments=list(Environment.objects.filter(project=project, kind=env)),2 ms1.7%
QuerySet.__iter__django/db/models/query.py:3902 ms1.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.7%
ModelIterable.__iter__django/db/models/query.py:952 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
Estimated from 59 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
apps/projects/analytics.py:300
).aggregate(wall=Avg("duration"), test_time=Avg("test_time"))
overview
· Database
|
26 ms |
|
apps/mcp/urls.py:55
project = Project.objects.filter(secrettokens__token=token).first()
authenticate
· Database
|
22 ms |
|
apps/projects/flakiness.py:165
test_runs = list(test_runs)
observations_for
· Database
|
13 ms |
|
apps/mcp/tests.py:67
return self.client.post(
McpTest.post
· Libraries
|
11 ms |
|
apps/projects/analytics.py:264
profile = scope.profiles().filter(environment=environment).order_by("-started_at").first()
latest_profiles
· Database
|
6 ms |
|
apps/projects/analytics.py:185
return list(Environment.objects.filter(project=self.project))
Scope.scoped_environments
· Database
|
5 ms |
|
apps/mcp/urls.py:57
SecretTokens.objects.filter(token=token).update(date_last_used=timezone.now())
authenticate
· Database
|
2 ms |
|
apps/projects/analytics.py:198
selected = Environment.objects.filter(project=project, name=env).first()
resolve_scope
· Database
|
2 ms |
|
apps/projects/analytics.py:206
environments=list(Environment.objects.filter(project=project, kind=env)),
resolve_scope
· Database
|
2 ms |
|
apps/projects/analytics.py:274
sessions = Session.objects.filter(scope.environment_q(), project=scope.project, date_created__gte=since).aggregate(
result_counts
· Database
|
2 ms |
Fixtures
Exact setup time| _dj_autoclear_mailbox function | 0.05 ms |
| _django_db_marker function | 0.05 ms |
| _template_string_if_invalid_marker function | 0.04 ms |
| _django_clear_site_cache function | 0.03 ms |
| _django_set_urlconf function | 0.03 ms |
| _live_server_helper function | 0.03 ms |
| monkeypatch function | 0.02 ms |
Database
47 queries · 22 ms
Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).
4×
SELECT "projects_environment"."id", "projects_environment"."project_id", "projects_environment"."name", "projects_environment"."kind", "projects_environment"."provider", "projects_environment"."details", "projects_environment"."date_first_seen", "projects_environment"."date_last_seen" FROM "project…
3×
SELECT "projects_profile"."id", "projects_profile"."project_id", "projects_profile"."number", "projects_profile"."environment_id", "projects_profile"."session_id", "projects_profile"."run_id", "projects_profile"."commit_id", "projects_profile"."ingest_id", "projects_profile"."external_id", "project…
Biggest pieces of work
|
call test body
apps/mcp/tests.py:195
|
93 ms |
| setup pytest internals | 0.70 ms |
Reliability
12 results · 0 CI failures · 0 local failuresThis test hasn't failed recently.
History
Latest 12 results, oldest first in the strip| When | Environment | Outcome | Duration | |
|---|---|---|---|---|
| 16 hours ago | CI github-actions:test | passed | 93 ms | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 54 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 83 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 75 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 100 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 59 ms | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 93 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 90 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 88 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 102 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 51 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 92 ms | Profile |