Files
cgrates/docs/cgr-engine.rst
ionutboangiu 1c490a9020 Revise memory profiling implementation
- merge StopChanMemProf with StopMemoryProfiling
- remove fileMEM and stopMemProf from struct and constructors
- add separate mutex for memory profiling, ensure thread safety
- handle all significant errors
- log error if StopMemoryProfiling fails during CoreS Shutdown
- ignore errors if profiling inactive in Shutdown and deferred Stop
- move validations inside V1 functions
- return error if StartMemoryProfiling already started
- return error if StopMemoryProfiling already stopped or never started
- close profiling loop on error, not the cgr-engine
- StopMemoryProfiling closes channel and profiling loop writes final profile
- rename Path to DirPath for mandatory field error
- rename memprof_nrfiles flag to memprof_maxfiles
- increase default memprof_interval
- consider MaxFiles <= 0 as unlimited
- move memory profiling logic after starting services
- use CoreService Start/StopMemoryProfiling in main
- remove final memory profile block (created by deferred Stop)
- convert MemProfiling to method on CoreService and rename to profileMemory
- use Ticker for recurrent actions instead of Timer
- compute mem_final.prof full path in StartMemoryProfiling
- suffix profile files with current time instead of numbers
- update dispatcher methods after changes
- move MemoryPrf from utils to cores, rename to MemoryProfilingParams
- add logs for starting/stopping profiling
2024-08-02 09:35:36 +02:00

87 lines
2.0 KiB
ReStructuredText

.. _cgr-engine:
cgr-engine
==========
Groups most of functionality from services and components.
Customisable through the use of *json* :ref:`JSON configuration <configuration>` or command line arguments (higher prio).
Able to read the configuration from either a local directory of *.json* files with an unlimited number of subfolders (ordered alphabetically) or a list of http paths (separated by ";").
::
$ cgr-engine -help
Usage of cgr-engine:
-config_path string
Configuration directory path (default "/etc/cgrates/")
-cpuprof_dir string
Directory for CPU profiles
-http_pprof
Enable HTTP pprof profiling
-log_level int
Log level (0=emergency to 7=debug) (default -1)
-logger string
Logger type <*syslog|*stdout>
-memprof_dir string
Directory for memory profiles
-memprof_interval duration
Interval between memory profile saves (default 15s)
-memprof_maxfiles int
Number of memory profiles to keep (most recent) (default 1)
-node_id string
Node ID of the engine
-pid string
Path to write the PID file
-preload string
Loader IDs used to load data before engine starts
-print_config
Print configuration object in JSON format
-scheduled_shutdown duration
Shutdown the engine after the specified duration
-set_versions
Overwrite database versions (equivalent to cgr-migrator -exec=*set_versions)
-singlecpu
Run on a single CPU core
-version
Print application version and exit
.. hint:: $ cgr-engine -config_path=/etc/cgrates
.. figure:: images/CGRateSInternalArchitecture.png
:alt: CGRateS Internal Architecture
:align: Center
:scale: 75 %
Internal Architecture of **cgr-engine**
The components from the diagram can be found documented in the links bellow:
.. toctree::
:maxdepth: 1
agents
sessions
rals
cdrs
ees
attributes
chargers
resources
routes
stats
thresholds
filters
dispatchers
schedulers
apiers
loaders
caches
datadb
stordb