SlideShare a Scribd company logo
Application
Performance
Monitoring in Tryton
1/Why?
● Usually crashes are pretty easy to fix
● Other kind of bugs
1.1/Bugs/crashes?
● It is hard to analyze specially on production because it's
always too late
● Lots of elements:
● Server hardware
● Virtualization & OS
● PostgreSQL
● Python
● Trytond
● Trytond Modules
● Network
● Client
1.2/Performance
● Ideally: should take into account as much layers as
possible
● But, let's concentrate on Tryton
1.3/Specialized instrumentation
2/What is apm.py?
● A patch/hack on trytond/protocols
● Signals:
● SIGUSR1: Print currently running RPC calls in the log
● User ID
● Object & RPC method
● Postgres PID – APM!
● Current total execution time of the request
● SIGUSR2: Print backtrace in the log – great for finding
performance issues
2.1/The patch: Signals
● Profiling using:
● cProfile – A lof of overhead – should not be used in
production (usually)
● vmprof (from pypy project) – 2~3% overhead
● When?
● Criteria in trytond.conf (should it be dynamic??)
● Criteria can include: user, rpc request
● Storage of the trace based on criteria (same as above +
total time of request) – stores a Transaction ID
2.2/The patch: Profiling
● Logging in JSON format:
● Transaction ID
● Time spent on transaction
● RPC request
● User
● Only log based on criteria in trytond.conf
2.3/The patch: Logging
● Similar to Sentry
● Give the user a “Transaction ID” for tracking the error
● Maybe we should convert the Transaction ID into a docker-
like string: adjective_name such as angry_einstein
2.4/The patch: Friendly user message for crashes
3/What about data
gathering?
● Python
● Send and store in JSON format
● Pick information from servers to RabbitMQ server
● Store that information and query from the command line
3.1/Recull
http://www.NaN-tic.com
Albert Cervera i Areny
albert@nan-tic.com
@albertnan
linkedin.com/in/albertca
Application Performance Monitoring in Tryton

More Related Content

PDF
PostgreSQL: present and near future
ODP
Successful Joomla migrations that don't hurt Search Engine Rankings
PPTX
Test driving QML
PPTX
Stress driven development
PDF
PDF
Erlang: Software for a Concurrent world
PPTX
Rust programming-language
PostgreSQL: present and near future
Successful Joomla migrations that don't hurt Search Engine Rankings
Test driving QML
Stress driven development
Erlang: Software for a Concurrent world
Rust programming-language

What's hot (20)

PDF
Rust's Journey to Async/await
PDF
Pyconsg2014 pyston
PPT
A Practical Event Driven Model
PDF
Mongodb meetup
PDF
The Beam Vision for Portability: "Write once run anywhere"
PDF
Training Slides: 252 - Monitoring & Troubleshooting
PDF
Python debugging techniques
PDF
Play Framework
PDF
Continuous Go Profiling & Observability
PDF
How to make your ruby code faster with multithreading
PPTX
Coroutines in Kotlin
PDF
All of the thing about Postman
PDF
Introduction to K6
PPTX
Autonomous workload rebalancing in kafka
PDF
PostgreSQL and Compressed Documents (pgconf.ru 2018)
PDF
21 - IDNOG03 - Jimmy Halim (Cloudflare) - Brief Introduction of CloudFlare, t...
KEY
CPAN Gems From The Far East
PDF
Optimize Web Application Infrastructure by Rizki Nanda Agam
ODP
Neo4j Graph Database, from PHP
PDF
DIEMS Repository Server - GitLab
Rust's Journey to Async/await
Pyconsg2014 pyston
A Practical Event Driven Model
Mongodb meetup
The Beam Vision for Portability: "Write once run anywhere"
Training Slides: 252 - Monitoring & Troubleshooting
Python debugging techniques
Play Framework
Continuous Go Profiling & Observability
How to make your ruby code faster with multithreading
Coroutines in Kotlin
All of the thing about Postman
Introduction to K6
Autonomous workload rebalancing in kafka
PostgreSQL and Compressed Documents (pgconf.ru 2018)
21 - IDNOG03 - Jimmy Halim (Cloudflare) - Brief Introduction of CloudFlare, t...
CPAN Gems From The Far East
Optimize Web Application Infrastructure by Rizki Nanda Agam
Neo4j Graph Database, from PHP
DIEMS Repository Server - GitLab
Ad

Viewers also liked (17)

ODP
Cómo aprovechar tu ERP
PDF
Durabilitat de la informació (i la inversió)
PDF
Introducción a la programación en Tryton
PDF
Logistica en Tryton
PDF
La seguretat a Tryton
PDF
Reporting en tryton
PDF
Tryton como backend de páginas web
PDF
Tryton
PDF
BaBI - Basic Business Intelligence for OpenERP
PDF
Rendimiento del sistema Tryton
PDF
Seguridad en Tryton
PDF
10 coses que has de saber abans d’escollir una eina de gestió empresarial
PDF
Implantación de almacenes y producción
PDF
Kafkadb
PDF
ERPs en codi obert: una alternativa estratègica per a la gestió empresarial
PDF
Noves tendències en eines de gestió empresarial de codi obert
PDF
Introducción a tryton
Cómo aprovechar tu ERP
Durabilitat de la informació (i la inversió)
Introducción a la programación en Tryton
Logistica en Tryton
La seguretat a Tryton
Reporting en tryton
Tryton como backend de páginas web
Tryton
BaBI - Basic Business Intelligence for OpenERP
Rendimiento del sistema Tryton
Seguridad en Tryton
10 coses que has de saber abans d’escollir una eina de gestió empresarial
Implantación de almacenes y producción
Kafkadb
ERPs en codi obert: una alternativa estratègica per a la gestió empresarial
Noves tendències en eines de gestió empresarial de codi obert
Introducción a tryton
Ad

Similar to Application Performance Monitoring in Tryton (20)

PDF
Mirko Damiani - An Embedded soft real time distributed system in Go
PDF
The journey of a symfony app from 150ms to 20ms
PDF
Lcu14 306 - OP-TEE Future Enhancements
PPTX
FreeRTOS introduction
PDF
Long running php processes
PPTX
chapter 1 -Basic Structure of Computers.pptx
PDF
Task migration using CRIU
PDF
Dumb Ways To Die: How Not To Write TCP-based Network Applications
 
ODP
MicroPython&electronics prezentācija
PDF
Top 10 Tricks and Tools of an Oracle EPM Administrator
PPT
PDF
Oleksii Pedorenko and Dmytro Melnychuk "DAO Project Experience"
PDF
pgDay Asia 2016 - Swapping Pacemaker-Corosync for repmgr (1)
PDF
Swapping Pacemaker Corosync with repmgr
PDF
Plone Performance, Profiling, Power-Consumption
ODP
Turbo charge your logs
PDF
Android Internals
PDF
Liferay portals in real projects
PDF
OSMC 2014 | Naemon 1, 2, 3, N by Andreas Ericsson
Mirko Damiani - An Embedded soft real time distributed system in Go
The journey of a symfony app from 150ms to 20ms
Lcu14 306 - OP-TEE Future Enhancements
FreeRTOS introduction
Long running php processes
chapter 1 -Basic Structure of Computers.pptx
Task migration using CRIU
Dumb Ways To Die: How Not To Write TCP-based Network Applications
 
MicroPython&electronics prezentācija
Top 10 Tricks and Tools of an Oracle EPM Administrator
Oleksii Pedorenko and Dmytro Melnychuk "DAO Project Experience"
pgDay Asia 2016 - Swapping Pacemaker-Corosync for repmgr (1)
Swapping Pacemaker Corosync with repmgr
Plone Performance, Profiling, Power-Consumption
Turbo charge your logs
Android Internals
Liferay portals in real projects
OSMC 2014 | Naemon 1, 2, 3, N by Andreas Ericsson

More from NaN-tic (14)

PDF
Tryton Unfrequently Given Answers
PDF
Arquitectura de PostgreSQL
PDF
ViDSigner & Tryton ERP: integración de firma digital segura
PDF
Apps móviles para la gestión de almacenes
PDF
Gestión de poyectos de instalaciones con tryton erp
PDF
Invoke y como poner en marcha un entorno de trabajo
PDF
Contratos y servicios de facturacion recurrente
PDF
Produccion en Tryton
PDF
BaBI - El motor de anàlisis de negocio
PDF
Com aprofitar el teu ERP
PDF
NaN-tic Bitz: Del negoci als bits
PDF
Tryton
PDF
Començar des de zero sense finançament
PDF
Vertical para granjas de crianza y engorde OpenERP
Tryton Unfrequently Given Answers
Arquitectura de PostgreSQL
ViDSigner & Tryton ERP: integración de firma digital segura
Apps móviles para la gestión de almacenes
Gestión de poyectos de instalaciones con tryton erp
Invoke y como poner en marcha un entorno de trabajo
Contratos y servicios de facturacion recurrente
Produccion en Tryton
BaBI - El motor de anàlisis de negocio
Com aprofitar el teu ERP
NaN-tic Bitz: Del negoci als bits
Tryton
Començar des de zero sense finançament
Vertical para granjas de crianza y engorde OpenERP

Recently uploaded (20)

PDF
BsN 7th Sem Course GridNNNNNNNN CCN.pdf
PPTX
2025 Product Deck V1.0.pptxCATALOGTCLCIA
PDF
pdfcoffee.com-opt-b1plus-sb-answers.pdfvi
PDF
SIMNET Inc – 2023’s Most Trusted IT Services & Solution Provider
PDF
Unit 1 Cost Accounting - Cost sheet
PPTX
Lecture (1)-Introduction.pptx business communication
DOCX
Business Management - unit 1 and 2
PPTX
Principles of Marketing, Industrial, Consumers,
PDF
Stem Cell Market Report | Trends, Growth & Forecast 2025-2034
PDF
Tata consultancy services case study shri Sharda college, basrur
PDF
COST SHEET- Tender and Quotation unit 2.pdf
PDF
Chapter 5_Foreign Exchange Market in .pdf
PDF
Daniels 2024 Inclusive, Sustainable Development
PDF
IFRS Notes in your pocket for study all the time
PDF
Roadmap Map-digital Banking feature MB,IB,AB
PPTX
3. HISTORICAL PERSPECTIVE UNIIT 3^..pptx
PPTX
svnfcksanfskjcsnvvjknsnvsdscnsncxasxa saccacxsax
PPTX
HR Introduction Slide (1).pptx on hr intro
PDF
Reconciliation AND MEMORANDUM RECONCILATION
PDF
Cours de Système d'information about ERP.pdf
BsN 7th Sem Course GridNNNNNNNN CCN.pdf
2025 Product Deck V1.0.pptxCATALOGTCLCIA
pdfcoffee.com-opt-b1plus-sb-answers.pdfvi
SIMNET Inc – 2023’s Most Trusted IT Services & Solution Provider
Unit 1 Cost Accounting - Cost sheet
Lecture (1)-Introduction.pptx business communication
Business Management - unit 1 and 2
Principles of Marketing, Industrial, Consumers,
Stem Cell Market Report | Trends, Growth & Forecast 2025-2034
Tata consultancy services case study shri Sharda college, basrur
COST SHEET- Tender and Quotation unit 2.pdf
Chapter 5_Foreign Exchange Market in .pdf
Daniels 2024 Inclusive, Sustainable Development
IFRS Notes in your pocket for study all the time
Roadmap Map-digital Banking feature MB,IB,AB
3. HISTORICAL PERSPECTIVE UNIIT 3^..pptx
svnfcksanfskjcsnvvjknsnvsdscnsncxasxa saccacxsax
HR Introduction Slide (1).pptx on hr intro
Reconciliation AND MEMORANDUM RECONCILATION
Cours de Système d'information about ERP.pdf

Application Performance Monitoring in Tryton

  • 3. ● Usually crashes are pretty easy to fix ● Other kind of bugs 1.1/Bugs/crashes?
  • 4. ● It is hard to analyze specially on production because it's always too late ● Lots of elements: ● Server hardware ● Virtualization & OS ● PostgreSQL ● Python ● Trytond ● Trytond Modules ● Network ● Client 1.2/Performance
  • 5. ● Ideally: should take into account as much layers as possible ● But, let's concentrate on Tryton 1.3/Specialized instrumentation
  • 7. ● A patch/hack on trytond/protocols ● Signals: ● SIGUSR1: Print currently running RPC calls in the log ● User ID ● Object & RPC method ● Postgres PID – APM! ● Current total execution time of the request ● SIGUSR2: Print backtrace in the log – great for finding performance issues 2.1/The patch: Signals
  • 8. ● Profiling using: ● cProfile – A lof of overhead – should not be used in production (usually) ● vmprof (from pypy project) – 2~3% overhead ● When? ● Criteria in trytond.conf (should it be dynamic??) ● Criteria can include: user, rpc request ● Storage of the trace based on criteria (same as above + total time of request) – stores a Transaction ID 2.2/The patch: Profiling
  • 9. ● Logging in JSON format: ● Transaction ID ● Time spent on transaction ● RPC request ● User ● Only log based on criteria in trytond.conf 2.3/The patch: Logging
  • 10. ● Similar to Sentry ● Give the user a “Transaction ID” for tracking the error ● Maybe we should convert the Transaction ID into a docker- like string: adjective_name such as angry_einstein 2.4/The patch: Friendly user message for crashes
  • 12. ● Python ● Send and store in JSON format ● Pick information from servers to RabbitMQ server ● Store that information and query from the command line 3.1/Recull
  • 13. http://www.NaN-tic.com Albert Cervera i Areny albert@nan-tic.com @albertnan linkedin.com/in/albertca