Commit Graph

29 Commits

Author SHA1 Message Date
ionutboangiu
a1ed51b301 Comment services tests 2024-11-14 17:48:09 +01:00
ionutboangiu
bb9bfbb19b Rename CommonListenerS constructor
NewServer -> NewCommonListenerS
2024-11-14 17:48:09 +01:00
ionutboangiu
5bf8f1756c Extract cores.Server into new commonlisteners package
Functionality is the same.
Server has been renamed to CommonListenerS.
2024-11-04 21:23:15 +01:00
ionutboangiu
792bbb3aff Add set_versions flag to cgr-engine
If set to true, it sets/overwrites all versions to the
current ones.
2024-11-01 15:59:39 +01:00
ionutboangiu
c7dbcaea03 Revise CPU/Memory profiling
CPU profiling changes:

cgr-engine.go:
- use filepath.Join instead of path.Join
- handle *CoreService.StopCPUProfiling error inside deferred function
- same with the error from *os.File.Close()

cores/core.go:
- StartCPUProfile now returns an *os.File (as opposed to an io.WriteCloser),
  because os.File.Stat is used beforehand to check if a handler of the file is
  already active and confirm the status of profiling.  Asserting the type would
  have worked as well.
- handle pprof.StartCPUProfile error and ensure file is closed before returning
- log file close error as a warning if it occurs
- return missing mandatory error with correct path field name ('DirPath')
- no need to check if fileCPU is nil for profiling status
  - pprof.StartCPUProfiling will return an error if profiling is already started
  - os.File.Close() will return ErrClosed if profiling is already stopped
- differentiate between calling StopCPUProfiling when profiling hasn't started
and when it was already stopped by returning appropriate errors

Memory profiling changes:

- 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
- added the possibility to disable timestamps in the memory profile file names
  and use increments of 1 instead.

Other changes:

- improved integration tests for flags (now table tests)
- improved profiling integration tests
2024-11-01 15:59:39 +01:00
ionutboangiu
60a4da69e0 Implement start/stop/status methods for servmanager + tests 2022-10-21 10:16:23 +02:00
andronache98
ecdf5e54ea Changed headers 2022-03-09 14:14:30 +01:00
andronache98
9ec56f5155 Changed headers 2022-03-09 14:14:30 +01:00
ionutboangiu
b55dc3d3a8 Fix tests after updating loggers 2021-12-19 17:12:47 +01:00
Trial97
6a3f8ddc57 Updated config 2021-09-20 10:45:14 +02:00
Trial97
0ed0b0e7a6 Updated more services 2021-09-13 16:08:39 +02:00
Trial97
87ce843810 Updated services 2021-09-13 16:08:39 +02:00
Trial97
f96dfab0ab Updated sessions opts constants 2021-08-26 16:48:48 +02:00
porosnicuadrian
a210b12447 Changed config foar loders_it_test 2021-07-09 17:37:07 +02:00
porosnicuadrian
fe1f6c37da Fixes in cores/services and cgr-engine by adding memoryPorfiling 2021-07-03 16:42:03 +02:00
porosnicuadrian
320f14157e Fixed tests 2021-07-03 16:42:03 +02:00
nickolasdaniel
8748ad29c8 Implemented Shutdown API and renamed cmd/cgr- test files 2021-06-14 15:54:58 +02:00
porosnicuadrian
7d57296860 No more Path Field in ArgsReload struct 2021-06-11 12:34:51 +02:00
Trial97
b4768ce99a Added ConfigSv1 and RateSv1 APIs back 2021-04-16 17:53:36 +02:00
Trial97
c04c0a5adb Added ConfigDB and option to read config from DB 2021-04-16 17:53:36 +02:00
Trial97
3406d3c7c9 Updated based on new rpc library 2021-04-13 13:35:03 +02:00
Trial97
7e90a42c1f Added filtered replication for dataDB items 2021-03-09 17:37:59 +01:00
andronache
c42bffcd23 Fixed integration tests in services 2021-02-24 18:17:56 +01:00
root
d20a1de9ed Integration tests in services 2021-01-15 19:20:32 +01:00
andronache
881ca92059 Coverage tests in services 2020-12-20 17:03:26 +01:00
andronache
570e909aae Tests in services 2020-12-18 17:51:52 +01:00
andronache
a97fd0ed22 Continuing tests for services 2020-12-17 17:08:39 +01:00
andronache
13cbdcfb91 Continuing tests for services 2020-12-17 17:08:39 +01:00
andronache
54653d0b24 Continuing tests in services 2020-12-16 17:54:21 +02:00