Runtime events
The Operational Decision Manager runtime emits events that can be used to monitor applications and diagnose issues.
A runtime event sends information on a running application to a monitoring system. The following list shows common events:
- Contention events
- These events collect information about monitor lock contentions.
- Garbage collection events
- These events collect information pertaining to garbage collection. They help in diagnostics and debugging, including determining how many times garbage collection was performed, and how much memory was freed during garbage collection.
- Exception events
- These runtime events capture information about exceptions that are thrown.
- Interop events
- These runtime events capture information about Common Intermediate Language (CIL) stub generation.
- Loader and binder events
- These events collect information that are related to loading and unloading assemblies and modules.
- Method events
- These events collect information that is specific to methods. The payload of these events is required for symbol resolution. In addition, these events provide helpful information such as the number of times a method was called.
- Thread events
- These events collect information about worker and I/O threads.
- Type events
- These events collect information about the type system.
- Tiered compilation events
- These events collect information about tiered compilation.
Examples
The following list shows examples of some of the events, depending on how you set the ruleset properties.
- Minimal event
- Do as follows:
- Set the
event.emitter.enabledproperty to true. - Set the other
emitter-relatedproperties to false, or just set theevent.emitter.traceproperty to false.
{ "business-events-envelope-version": "1.0.1", "business-events-extension-version": "odm/1.0.0", "category": "odm:Execution", "id": "string", "timestamp": "2025-06-05T17:27:14.096+02:00", "type": "odm:Execution:EXECUTION_SUCCESS", "source": { "type": "ruleset", "id": "/test_deployment/1.0/loan_validation_production/1.0" }, "data": { "odm": { "total-duration-ms": 5 } } } - Set the
- Event with decision trace
- Do as follows:
- Set the
event.emitter.enabledproperty to true. - If necessary, set the
event.emitter.traceproperty to true. (By default, the it is already active.) - Set the other
emitter-relatedproperties to false.
{ "business-events-envelope-version": "1.0.1", "business-events-extension-version": "odm/1.0.0", "category": "odm:Execution", "id": "string", "timestamp": "2025-06-05T17:21:58.901+02:00", "type": "odm:Execution:EXECUTION_SUCCESS", "source": { "type": "ruleset", "id": "/test_deployment/1.0/loan_validation_production/1.0" }, "data": { "odm": { "total-duration-ms": 18, "decision-events": [ { "type": "task", "end-date": 1749136918918, "start-date": 1749136918906, "decision-events": [ { "type": "task", "end-date": 1749136918907, "start-date": 1749136918907, "name": "loanvalidation>initResult" }, { "type": "task", "end-date": 1749136918912, "start-date": 1749136918911, "name": "loanvalidation>validation" }, { "type": "task", "end-date": 1749136918913, "start-date": 1749136918913, "name": "loanvalidation>computation" }, { "type": "task", "end-date": 1749136918914, "start-date": 1749136918914, "name": "loanvalidation>eligibility" }, { "type": "task", "end-date": 1749136918917, "start-date": 1749136918915, "decision-events": [ { "type": "rule", "name": "insurance.defaultInsurance" } ], "name": "loanvalidation>insurance" } ], "name": "loanvalidation" } ] } } } - Set the
- Event with input and/or output parameters
- Do as follows:
- Set the
event.emitter.enabledproperty to true. - Set the
event.emitter.inputproperty to true and/or set theevent.emitter.outputproperty to true.
event.emitter.traceproperty to true (or do not set it at all because it is active by default). For example, if you set allemitter-relatedproperties to true, you get the most complete event possible:{ "business-events-envelope-version": "1.0.1", "business-events-extension-version": "odm/1.0.0", "category": "odm:Execution", "id": "string", "timestamp": "2025-06-05T17:24:46.220+02:00", "type": "odm:Execution:EXECUTION_SUCCESS", "source": { "type": "ruleset", "id": "/test_deployment/1.0/loan_validation_production/1.0" }, "data": { "odm": { "total-duration-ms": 7, "input-parameters": { "loan": { "numberOfMonthlyPayments": 3, "startDate": 1010156982000, "amount": 3, "loanToValue": 1.051732e7, "duration": 1 }, "borrower": { "firstName": "string", "lastName": "string", "birth": 1275634317000, "yearlyIncome": 3, "zipCode": "string", "creditScore": 3, "spouse": { "firstName": null, "lastName": null, "birth": 1749137086219, "yearlyIncome": 0, "zipCode": null, "creditScore": 0, "spouse": null, "latestBankruptcy": { "date": null, "chapter": 0, "reason": null }, "ssn": { "areaNumber": "", "groupCode": "", "serialNumber": "", "digits": 0, "fullNumber": "--" }, "birthDate": 1749137086219, "ssncode": "--", "latestBankruptcyDate": null, "latestBankruptcyReason": null, "latestBankruptcyChapter": 0 }, "latestBankruptcy": { "date": 1046583680000, "chapter": 3, "reason": "string" }, "ssn": { "areaNumber": "string", "groupCode": "string", "serialNumber": "string", "digits": 18, "fullNumber": "string-string-string" }, "birthDate": 1275634317000, "ssncode": "string-string-string", "latestBankruptcyDate": 1046583680000, "latestBankruptcyReason": "string", "latestBankruptcyChapter": 3 } }, "output-parameters": { "report": { "borrower": { "firstName": "string", "lastName": "string", "birth": 1275634317000, "yearlyIncome": 3, "zipCode": "string", "creditScore": 3, "spouse": { "firstName": null, "lastName": null, "birth": 1749137086219, "yearlyIncome": 0, "zipCode": null, "creditScore": 0, "spouse": null, "latestBankruptcy": { "date": null, "chapter": 0, "reason": null }, "ssn": { "areaNumber": "", "groupCode": "", "serialNumber": "", "digits": 0, "fullNumber": "--" }, "birthDate": 1749137086219, "ssncode": "--", "latestBankruptcyDate": null, "latestBankruptcyReason": null, "latestBankruptcyChapter": 0 }, "latestBankruptcy": { "date": 1046583680000, "chapter": 3, "reason": "string" }, "ssn": { "areaNumber": "string", "groupCode": "string", "serialNumber": "string", "digits": 18, "fullNumber": "string-string-string" }, "birthDate": 1275634317000, "ssncode": "string-string-string", "latestBankruptcyDate": 1046583680000, "latestBankruptcyReason": "string", "latestBankruptcyChapter": 3 }, "loan": { "numberOfMonthlyPayments": 3, "startDate": 1010156982000, "amount": 3, "loanToValue": 1.051732e7, "duration": 1 }, "validData": true, "insuranceRequired": true, "insuranceRate": 0.04, "approved": true, "messages": [], "yearlyInterestRate": 0.0, "monthlyRepayment": 0.0, "insurance": "4%", "message": "", "yearlyRepayment": 0.0 } }, "decision-events": [ { "type": "task", "end-date": 1749137086227, "start-date": 1749137086223, "decision-events": [ { "type": "task", "end-date": 1749137086223, "start-date": 1749137086223, "name": "loanvalidation>initResult" }, { "type": "task", "end-date": 1749137086224, "start-date": 1749137086223, "name": "loanvalidation>validation" }, { "type": "task", "end-date": 1749137086224, "start-date": 1749137086224, "name": "loanvalidation>computation" }, { "type": "task", "end-date": 1749137086225, "start-date": 1749137086225, "name": "loanvalidation>eligibility" }, { "type": "task", "end-date": 1749137086226, "start-date": 1749137086226, "decision-events": [ { "type": "rule", "name": "insurance.defaultInsurance" } ], "name": "loanvalidation>insurance" } ], "name": "loanvalidation" } ] } } } - Set the