profiler

profiler
REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/14.0/profiler
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYTests
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Therp BV, Vauxoo
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Therp BV, Vauxoo
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, Tom Blauwendraat, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/server-tools
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:06
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - web_tour
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
view_profile_form view profile form profiler.profile form New
view_profile_list view profile list profiler.profile tree New
view_profiling_lines view profiling_lines profiler.profile.python.line tree New
view_profiling_lines_search view.profiling.lines.search profiler.profile.python.line search New
view_request_lines view request_lines profiler.profile.request.line tree New
Models touched (3)

New fields (18)
  • attachment_count Integer
    compute='_compute_attachment_count'
  • date_finished Char
    readonly=True
  • date_started Char
    readonly=True
  • description Text
    readonly=True
  • enable_postgresql Boolean
    default=False help='It requires postgresql server logs seudo-enabled'
  • enable_python Boolean
    default=True
  • name Char
    required=True
  • pg_log_path Char
    default=_find_loggers_path help='Getting the path to the logger'
  • pg_remote Char
  • pg_stats_most_frequent_html Html
    readonly=True args: 'PostgreSQL Stats - Most Frequent'
  • pg_stats_slowest_html Html
    readonly=True args: 'PostgreSQL Stats - Slowest'
  • pg_stats_time_consuming_html Html
    readonly=True args: 'PostgreSQL Stats - Time Consuming'
  • py_request_lines One2many → profiler.profile.request.line
    args: 'profiler.profile.request.line', 'profile_id', 'HTTP requests'
  • py_stats_lines One2many → profiler.profile.python.line
    args: 'profiler.profile.python.line', 'profile_id', 'PY Stats Lines'
  • python_method Selection
    default='full' required=True selection=_SELECTION_PYTHON_METHOD
  • session Char
  • state Selection
    default='disabled' readonly=True required=True args: [('enabled', 'Enabled'), ('disabled', 'Disabled')]
  • use_py_index Boolean
    default=False help='Index human-readable cProfile attachment.\nTo access this report, you must open the cprofile attachment view using debug mode.\nWarning: Uses more resources.' name='Get cProfiling report'
Public methods (14)
  • action_view_attachment(self)
  • clear(self, reset_date=True)
  • create_request_line(self)
    Create a record corresponding to the current HTTP request and return it. If no HTTP request is available, return None.
  • disable(self)
  • dump_postgresql_logs(self, indexed=None)
  • dump_stats(self)
    This is used in 'full' mode only
  • enable(self)
  • get_psql_params(cr, params)
    @staticmethod
  • get_stats_string(self, cprofile_path)
  • now_utc(self)
    @api.model
  • onchange_enable_postgresql(self)
    @api.onchange('enable_postgresql')
  • profiling()
    @staticmethod@contextmanager
  • set_pgoptions_enabled(self)
    @api.model
    Verify if postgresql has configured the parameters for logging
  • unlink(self)

New fields (8)
  • cprof_ctpercall Float
    args: 'CT per call'
  • cprof_cumtime Float
    args: 'Cumulative time'
  • cprof_fname Char
    args: 'Filename:lineno(method)'
  • cprof_ncalls Float
    args: 'Calls'
  • cprof_nrcalls Float
    args: 'Recursive Calls'
  • cprof_tottime Float
    args: 'Total time'
  • cprof_ttpercall Float
    args: 'Time per call'
  • profile_id Many2one → profiler.profile
    ondelete='cascade' required=True args: 'profiler.profile'
Public methods (1)
  • unlink(self)

New fields (8)
  • attachment_id Reference
    compute='_compute_attachment_id' selection=[('ir.attachment', 'ir.attachment')] string='pStats file'
  • display_name Char
    compute='_compute_display_name' args: 'Name'
  • name Char
    args: 'Path'
  • profile_id Many2one → profiler.profile
    ondelete='cascade' required=True args: 'profiler.profile'
  • root_url Char
    args: 'Root URL'
  • total_time Float
    args: 'Time in ms'
  • user_context Char
    args: 'Context'
  • user_id Many2one → res.users
    string='User' args: 'res.users'
Public methods (2)
  • dump_stats(self, profile)
    @api.model
    This is called in 'request' mode only
  • dump_stats_db(self, cprofile_fname, cprofile_path)
    This is called in 'request' mode only
REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/13.0/profiler
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYTests
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Sunflower IT, Vauxoo
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Sunflower IT, Vauxoo
COMMITTERS
COMMITTERSOCA-git-bot, Tom Blauwendraat, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/server-tools
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:17
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - web_tour
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
assets_backend profiler assets ir.ui.view qweb Inherits web.assets_backend
view_profile_form view profile form profiler.profile form New
view_profile_list view profile list profiler.profile tree New
view_profiling_lines view profiling_lines profiler.profile.python.line tree New
view_profiling_lines_search view.profiling.lines.search profiler.profile.python.line search New
view_request_lines view request_lines profiler.profile.request.line tree New
Models touched (3)

New fields (18)
  • attachment_count Integer
    compute='_compute_attachment_count'
  • date_finished Char
    readonly=True
  • date_started Char
    readonly=True
  • description Text
    readonly=True
  • enable_postgresql Boolean
    default=False help='It requires postgresql server logs seudo-enabled'
  • enable_python Boolean
    default=True
  • name Char
    required=True
  • pg_log_path Char
    default=_find_loggers_path help='Getting the path to the logger'
  • pg_remote Char
  • pg_stats_most_frequent_html Html
    readonly=True args: 'PostgreSQL Stats - Most Frequent'
  • pg_stats_slowest_html Html
    readonly=True args: 'PostgreSQL Stats - Slowest'
  • pg_stats_time_consuming_html Html
    readonly=True args: 'PostgreSQL Stats - Time Consuming'
  • py_request_lines One2many → profiler.profile.request.line
    args: 'profiler.profile.request.line', 'profile_id', 'HTTP requests'
  • py_stats_lines One2many → profiler.profile.python.line
    args: 'profiler.profile.python.line', 'profile_id', 'PY Stats Lines'
  • python_method Selection
    default='full' required=True selection=_SELECTION_PYTHON_METHOD
  • session Char
  • state Selection
    default='disabled' readonly=True required=True args: [('enabled', 'Enabled'), ('disabled', 'Disabled')]
  • use_py_index Boolean
    default=False help='Index human-readable cProfile attachment.\nTo access this report, you must open the cprofile attachment view using debug mode.\nWarning: Uses more resources.' name='Get cProfiling report'
Public methods (14)
  • action_view_attachment(self)
  • clear(self, reset_date=True)
  • create_request_line(self)
    Create a record corresponding to the current HTTP request and return it. If no HTTP request is available, return None.
  • disable(self)
  • dump_postgresql_logs(self, indexed=None)
  • dump_stats(self)
    This is used in 'full' mode only
  • enable(self)
  • get_psql_params(cr, params)
    @staticmethod
  • get_stats_string(self, cprofile_path)
  • now_utc(self)
    @api.model
  • onchange_enable_postgresql(self)
    @api.onchange('enable_postgresql')
  • profiling()
    @staticmethod@contextmanager
  • set_pgoptions_enabled(self)
    @api.model
    Verify if postgresql has configured the parameters for logging
  • unlink(self)

New fields (8)
  • cprof_ctpercall Float
    args: 'CT per call'
  • cprof_cumtime Float
    args: 'Cumulative time'
  • cprof_fname Char
    args: 'Filename:lineno(method)'
  • cprof_ncalls Float
    args: 'Calls'
  • cprof_nrcalls Float
    args: 'Recursive Calls'
  • cprof_tottime Float
    args: 'Total time'
  • cprof_ttpercall Float
    args: 'Time per call'
  • profile_id Many2one → profiler.profile
    ondelete='cascade' required=True args: 'profiler.profile'
Public methods (1)
  • unlink(self)

New fields (8)
  • attachment_id Reference
    compute='_compute_attachment_id' selection=[('ir.attachment', 'ir.attachment')] string='pStats file'
  • display_name Char
    compute='_compute_display_name' args: 'Name'
  • name Char
    args: 'Path'
  • profile_id Many2one → profiler.profile
    ondelete='cascade' required=True args: 'profiler.profile'
  • root_url Char
    args: 'Root URL'
  • total_time Float
    args: 'Time in ms'
  • user_context Char
    args: 'Context'
  • user_id Many2one → res.users
    string='User' args: 'res.users'
Public methods (2)
  • dump_stats(self, profile)
    @api.model
    This is called in 'request' mode only
  • dump_stats_db(self, cprofile_fname, cprofile_path)
    This is called in 'request' mode only
REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/12.0/profiler
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYTests
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Therp BV, Vauxoo
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Therp BV, Vauxoo
COMMITTERS
COMMITTERSOCA-git-bot, Tom Blauwendraat, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/server-tools
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:22
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - document
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
view_profile_form view profile form profiler.profile form New
view_profile_list view profile list profiler.profile tree New
view_profiling_lines view profiling_lines profiler.profile.python.line tree New
view_profiling_lines_search view.profiling.lines.search profiler.profile.python.line search New
view_request_lines view request_lines profiler.profile.request.line tree New
Models touched (3)

New fields (18)
  • attachment_count Integer
    compute='_compute_attachment_count'
  • date_finished Char
    readonly=True
  • date_started Char
    readonly=True
  • description Text
    readonly=True
  • enable_postgresql Boolean
    default=False help='It requires postgresql server logs seudo-enabled'
  • enable_python Boolean
    default=True
  • name Char
    required=True
  • pg_log_path Char
    default=_find_loggers_path help='Getting the path to the logger'
  • pg_remote Char
  • pg_stats_most_frequent_html Html
    readonly=True args: 'PostgreSQL Stats - Most Frequent'
  • pg_stats_slowest_html Html
    readonly=True args: 'PostgreSQL Stats - Slowest'
  • pg_stats_time_consuming_html Html
    readonly=True args: 'PostgreSQL Stats - Time Consuming'
  • py_request_lines One2many → profiler.profile.request.line
    args: 'profiler.profile.request.line', 'profile_id', 'HTTP requests'
  • py_stats_lines One2many → profiler.profile.python.line
    args: 'profiler.profile.python.line', 'profile_id', 'PY Stats Lines'
  • python_method Selection
    default='full' required=True selection=_SELECTION_PYTHON_METHOD
  • session Char
  • state Selection
    default='disabled' readonly=True required=True args: [('enabled', 'Enabled'), ('disabled', 'Disabled')]
  • use_py_index Boolean
    default=False help='Index human-readable cProfile attachment.\nTo access this report, you must open the cprofile attachment view using debug mode.\nWarning: Uses more resources.' name='Get cProfiling report'
Public methods (14)
  • action_view_attachment(self)
    @api.multi
  • clear(self, reset_date=True)
    @api.multi
  • create_request_line(self)
    @api.multi
    Create a record corresponding to the current HTTP request and return it. If no HTTP request is available, return None.
  • disable(self)
    @api.multi
  • dump_postgresql_logs(self, indexed=None)
    @api.multi
  • dump_stats(self)
    @api.multi
    This is used in 'full' mode only
  • enable(self)
    @api.multi
  • get_psql_params(cr, params)
    @staticmethod
  • get_stats_string(self, cprofile_path)
  • now_utc(self)
    @api.model
  • onchange_enable_postgresql(self)
    @api.onchange('enable_postgresql')
  • profiling()
    @staticmethod@contextmanager
  • set_pgoptions_enabled(self)
    @api.model
    Verify if postgresql has configured the parameters for logging
  • unlink(self)
    @api.multi

New fields (8)
  • cprof_ctpercall Float
    args: 'CT per call'
  • cprof_cumtime Float
    args: 'Cumulative time'
  • cprof_fname Char
    args: 'Filename:lineno(method)'
  • cprof_ncalls Float
    args: 'Calls'
  • cprof_nrcalls Float
    args: 'Recursive Calls'
  • cprof_tottime Float
    args: 'Total time'
  • cprof_ttpercall Float
    args: 'Time per call'
  • profile_id Many2one → profiler.profile
    ondelete='cascade' required=True args: 'profiler.profile'
Public methods (1)
  • unlink(self)
    @api.multi

New fields (8)
  • attachment_id Reference
    compute='_compute_attachment_id' selection=[('ir.attachment', 'ir.attachment')] string='pStats file'
  • display_name Char
    compute='_compute_display_name' args: 'Name'
  • name Char
    args: 'Path'
  • profile_id Many2one → profiler.profile
    ondelete='cascade' required=True args: 'profiler.profile'
  • root_url Char
    args: 'Root URL'
  • total_time Float
    args: 'Time in ms'
  • user_context Char
    args: 'Context'
  • user_id Many2one → res.users
    string='User' args: 'res.users'
Public methods (2)
  • dump_stats(self, profile)
    @api.model
    This is called in 'request' mode only
  • dump_stats_db(self, cprofile_fname, cprofile_path)
    @api.multi
    This is called in 'request' mode only
REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/11.0/profiler
VERSION
VERSION 2.0.0
CATEGORY
CATEGORYTests
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Sunflower IT, Vauxoo
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Sunflower IT, Vauxoo
COMMITTERS
COMMITTERSEnric Tobella, oca-travis, OCA-git-bot, Tom Blauwendraat
WEBSITE
WEBSITEhttps://github.com/OCA/server-tools
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:24:00
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - document
    - web
    - base
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
assets_backend profiler assets ir.ui.view qweb Inherits web.assets_backend
view_profile_form view profile form profiler.profile form New
view_profile_list view profile list profiler.profile tree New
view_profiling_lines view profiling_lines profiler.profile.python.line tree New
view_profiling_lines_search view.profiling.lines.search profiler.profile.python.line search New
view_request_lines view request_lines profiler.profile.request.line tree New
Models touched (4)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (17)
  • attachment_count Integer
    compute='_compute_attachment_count'
  • date_finished Char
    readonly=True
  • date_started Char
    readonly=True
  • description Text
    readonly=True
  • enable_postgresql Boolean
    default=False help='It requires postgresql server logs seudo-enabled'
  • enable_python Boolean
    default=True
  • name Char
    required=True
  • pg_log_path Char
    default=_find_loggers_path help='Getting the path to the logger'
  • pg_remote Char
  • pg_stats_most_frequent_html Html
    readonly=True args: 'PostgreSQL Stats - Most Frequent'
  • pg_stats_slowest_html Html
    readonly=True args: 'PostgreSQL Stats - Slowest'
  • pg_stats_time_consuming_html Html
    readonly=True args: 'PostgreSQL Stats - Time Consuming'
  • py_request_lines One2many → profiler.profile.request.line
    args: 'profiler.profile.request.line', 'profile_id', 'HTTP requests'
  • py_stats_lines One2many → profiler.profile.python.line
    args: 'profiler.profile.python.line', 'profile_id', 'PY Stats Lines'
  • python_method Selection
    default='full' required=True selection=_SELECTION_PYTHON_METHOD
  • state Selection
    default='disabled' readonly=True required=True args: [('enabled', 'Enabled'), ('disabled', 'Disabled')]
  • use_py_index Boolean
    default=False help='Index human-readable cProfile attachment.\nTo access this report, you must open the cprofile attachment view using debug mode.\nWarning: Uses more resources.' name='Get cProfiling report'
Public methods (14)
  • action_view_attachment(self)
    @api.multi
  • clear(self, reset_date=True)
    @api.multi
  • create_request_line(self)
    @api.multi
    Create a record corresponding to the current HTTP request and return it. If no HTTP request is available, return None.
  • disable(self)
    @api.multi
  • dump_postgresql_logs(self, indexed=None)
    @api.multi
  • dump_stats(self)
    @api.multi
  • enable(self)
    @api.multi
  • get_psql_params(cr, params)
    @staticmethod
  • get_stats_string(self, cprofile_path)
  • now_utc(self)
    @api.model
  • onchange_enable_postgresql(self)
    @api.onchange('enable_postgresql')
  • profiling()
    @staticmethod@contextmanager
    Thread local profile management, according to the shared "enabled"
  • set_pgoptions_enabled(self)
    @api.model
    Verify if postgresql has configured the parameters for logging
  • unlink(self)
    @api.multi

New fields (8)
  • cprof_ctpercall Float
    args: 'CT per call'
  • cprof_cumtime Float
    args: 'Cumulative time'
  • cprof_fname Char
    args: 'Filename:lineno(method)'
  • cprof_ncalls Float
    args: 'Calls'
  • cprof_nrcalls Float
    args: 'Recursive Calls'
  • cprof_tottime Float
    args: 'Total time'
  • cprof_ttpercall Float
    args: 'Time per call'
  • profile_id Many2one → profiler.profile
    ondelete='cascade' required=True args: 'profiler.profile'
Public methods (1)
  • unlink(self)
    @api.multi

New fields (8)
  • attachment_id Reference
    compute='_compute_attachment_id' selection=[('ir.attachment', 'ir.attachment')] string='pStats file'
  • display_name Char
    compute='_compute_display_name' args: 'Name'
  • name Char
    args: 'Path'
  • profile_id Many2one → profiler.profile
    ondelete='cascade' required=True args: 'profiler.profile'
  • root_url Char
    args: 'Root URL'
  • total_time Float
    args: 'Time in ms'
  • user_context Char
    args: 'Context'
  • user_id Many2one → res.users
    string='User' args: 'res.users'
Public methods (1)
  • dump_stats(self)
    @api.multi
REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/8.0/profiler
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Vauxoo, Anybox
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Vauxoo, Anybox
COMMITTERS
COMMITTERSMoisés López, OCA Transbot, oca-travis, OCA-git-bot
WEBSITE
WEBSITEhttps://odoo-community.org
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:25
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - website
    - web
    - base
    - share
    - mail
    - base_setup
    - web_kanban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES pstats_print2list
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
assets_backend_test_profiler Profiler Tests ir.ui.view qweb Inherits website.assets_backend
profiler_assets_backend profiler assets ir.ui.view qweb Inherits web.assets_backend
Models touched (0)

No models found for this module.