Jaeger
SimpleOne platform uses Jaeger, a distributed tracing observability platform, for the analysis of application performance and troubleshooting. Jaeger is based on the distributed tracing and monitoring standard OpenTelemetry.
The tracing consists of spans – separate actions in the system that can be nested inside each other. The spans may contain:
- The order of request processing.
- The time of request processing.
- The metadata of the performed action: input parameters, current record, storage requests.
When analyzing, note that a traced request requires twice as much time than a usual one to be completed.
Activate Jaeger on your instance
For On-premise instances, set Jaeger credentials at the deployment stage in the jaeger_web_login and jaeger_web_password parameters. By default, the values from the /group_vars/all/vars.yaml
inventory file are used. If you need the credentials for a Cloud instance and worker tracing setup, contact the SimpleOne customer care service.
To activate Jaeger on your instance, complete the steps below:
- Ensure that your browser supports basic authentication.
- Install browser extension for cookie configuration, for example, Cookie-Editor.
- Create a cookie with name APM_ENABLED and value 1. Preferably, enable the header for the processing of one request for a short period of time and disable it afterwards since the tracing considerably slows down the response time.
- Open Jaeger with the link
https://{your_instance_url}/tools/jaeger-ui
. - Enter the credentials for Jaeger authentication.
Traced requests
Jaeger integration allows you to trace information about the following requests:
- Backend API – requests from the client application to the server. These requests are sent while interacting with the agent interface and client portal. If the cookie is configured, these actions are traced in Jaeger.
- Rest API.
Traced spans
- db – the processing of a database request.
- redis – the processing of a request to Redis.
- grpc_request – the processing of a gRPC request.
- run_engines – the launching of engines in accordance with the execution order.
- run_business_rules – the processing of a business rule block.
- run_async_business_rules – the launching of asynchronous business rules.
- run_approval_rules – the launching of approval rules.
- run_workflows – the launching of workflows.
- run_notifications – the launching of notifications.
- run_business_rule – the processing of a specific business rule (you can see its sys_id in the metadata).
- trigger_event – the launching of platform events.
- run_handler – the launching of the platform event handler.
- save_entity – saving a record.
- delete_entity – deleting a record.
- delete_multiple_entities – multiple record deletion.
- batch_insert_entities – multiple record insertion.
- run_script – common script processing block that includes export and import of variables and classes, logging and running the script.
- run_script_internal – running a script and importing the result variables.
- worker_entrypoint – executing requests to queues in RabbitMQ from which the workers take work.