Commit Graph

1416 Commits

Author SHA1 Message Date
gezimbll
378e8fd000 moving opts to each dbconn 2025-11-05 17:56:34 +01:00
arberkatellari
38a02535f0 Make Attribute Profiles storable in MySQL and Postgres 2025-11-05 17:52:03 +01:00
arberkatellari
eda80242eb Make Charger Profiles storable in MySQL and Postgres 2025-11-05 17:52:03 +01:00
arberkatellari
d78f34bdc5 Make Action Profiles storable in MySQL and Postgres 2025-11-05 17:52:03 +01:00
arberkatellari
89653a9c80 Add *redis DBType case to it_tests 2025-11-05 17:52:03 +01:00
arberkatellari
1657f015fc make accounts storable in mysql 2025-11-05 17:52:03 +01:00
arberkatellari
7273384828 make accounts storable in postgres 2025-10-29 19:45:33 +01:00
arberkatellari
8af781fb75 Add tests for multiple DB conns 2025-10-20 21:13:51 +02:00
arberkatellari
a3f25d1ec5 Adjust tests and sample json files 2025-10-19 13:15:57 +02:00
arberkatellari
119481b3d1 Update ERs SQL functionalities 2025-10-13 09:58:45 +02:00
ionutboangiu
37acdd1723 sessions: port session APIs and flag handling 2025-08-30 14:02:48 +02:00
ionutboangiu
44df79fe7b add RADIUS IP auth reject test case 2025-08-21 10:14:30 +02:00
arberkatellari
7678bf181f Add ce_applications to diameter_agent config 2025-08-15 13:20:57 +02:00
armirveliaj
1f49779685 Add integration tests for StatusServer messages in RadiusAgent 2025-07-27 11:44:34 +02:00
arberkatellari
2ab652ebdd Add tests for ActionProfile modifications 2025-07-21 13:40:22 +02:00
ionutboangiu
c3c5b617d2 ips: integrate CDRs into RADIUS IPAM integration test 2025-07-10 16:56:08 +02:00
ionutboangiu
f68b6e8f79 radius: pass ips flag to sessions via opts 2025-07-10 16:56:08 +02:00
ionutboangiu
7845074db5 ips: add RADIUS IPAM integration test 2025-07-10 16:56:08 +02:00
arberkatellari
baf767c966 Correct addition of vendor at radReplyAppendAttributes & IT test for it 2025-07-08 08:18:30 +02:00
arberkatellari
e9a1b93229 Add action type *dynamic_threshold & add admins_conns to ActionS module 2025-07-02 21:46:10 +02:00
arberkatellari
1d8e84892a Revise postgres tp tables creation & fix tests 2025-07-02 21:45:29 +02:00
ionutboangiu
180eb6cbfd extract resources apis to different file 2025-05-29 15:46:42 +02:00
ionutboangiu
d02bfac20b Fix rsyslog config to capture logs across distros
Add three conditions to properly capture CGRateS logs:

- programname startswith 'cgr-engine': catches logs from external
  libraries that don't use our syslogger (e.g. diameter conn errors)
- programname startswith 'CGRateS': handles deb-based distros
  where our syslog tag becomes the program name
- msg contains 'CGRateS': handles rpm-based distros where systemd
  journal overrides programname but our tag remains in message content
2025-05-27 17:30:30 +02:00
arberkatellari
5847ceab00 Add and revise tests for offline internal DB 2025-05-13 17:07:17 +02:00
ionutboangiu
2c8c9b326e remove previous prometheus integration 2025-03-09 17:27:31 +01:00
gezimbll
5628a31852 updated rsyslog conf to include logs with tag CGRateS 2025-02-26 16:17:03 +01:00
ionutboangiu
36a7d174ab Remove RSRSep opt from general section
- allows RSRParser to be split gracefully from config (was depending on
  RSRSep, which was retrieved from the global config variable)
- default separator (;) was the only one used except for splitting
  inline attribute values (where ANDSep is used)
2025-02-24 13:36:32 +01:00
ionutboangiu
9bc51e7e64 Revise elasticsearch exporter integration test 2025-01-29 10:52:24 +01:00
ionutboangiu
f1b8fb8f40 Update default config sample 2025-01-29 10:52:24 +01:00
ionutboangiu
c1331531a7 Remove unusable elasticsearch opts 2025-01-29 10:52:24 +01:00
gezimbll
c602dbc2a5 added rsparser field in dynamicOpts
changed Value field to unexported and created a Value() method
on each dynOpts type that contains logic to create a rsparser
in case the value field a configuration starts with prefix "~"
otherwise it will return the specified value
2025-01-22 17:36:26 +01:00
armirveliaj
4ce506faa9 Clean up redundant tests 2025-01-17 17:29:46 +01:00
armirveliaj
7db65ca62c Clean up DispatcherS 2025-01-17 17:29:46 +01:00
ionutboangiu
ff929c9f2a Revise and document rpc exporter it test 2025-01-08 20:32:55 +01:00
ionutboangiu
e51eed46e7 Revise analyzers integration test 2024-12-05 20:12:08 +01:00
gezimbll
1c6c733a3f added dispatcher methods for rankings and trends 2024-11-22 20:29:27 +01:00
gezimbll
bb0116c543 added it test && loaders templates for ranking and trend profiles 2024-11-22 20:29:27 +01:00
ionutboangiu
40c5d65af6 Add benchmark for diameter+caps
unusable until sessions is finished
2024-11-04 21:22:58 +01:00
ionutboangiu
213b67fbb0 Revise registrarc integration test 2024-11-04 21:22:58 +01:00
ionutboangiu
ad104573e9 Remove concurrent_requests diameter opt
Will be replaced by caps.
2024-11-04 21:22:58 +01:00
ionutboangiu
0dfe689d8e Add postgres stor_db SSL opts 2024-11-03 13:19:45 +01:00
ionutboangiu
b2e25047bb Improve alignment inside config_defaults file 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
8447952c4c Update sample json configuration file 2024-10-23 21:11:25 +02:00
ionutboangiu
682f52e3dd Revise kafka SSL test
- Updated to use the test suite
- Deleted kafka_ssl sample configuration (moved to test file)
- Revised Kafka server SSL setup comment
- Ensured exporters are synchronous to avoid missing errors
- Implemented helper function to create and clean up kafka topics
- ERs sometimes took too long to receive a message.
  Setting kafkaGroupID to "" prevents this.
- Kafka reader took 10s to close (default MaxWait).
  Set MaxWait to 1ms.
- Exporters took 1s each to export due to BatchSize
  not being hit. Set BatchSize to 1 to prevent it.
2024-10-23 21:11:25 +02:00
ionutboangiu
9b8ac3199b Revise EfSv1.ReplayEvents API + tests
- renamed parameter type: ArgsReplyFailedPosts -> ReplayEventsParams
- renamed param fields:
  - FailedRequestsInDir -> SourcePath
  - FailedRequestsOutDir -> FailedPath
  - TypeProvider -> Provider
- changed param fields types from *string to string
- used the SourcePath and FailedPath params directly instead of creating separate variables
- used filepath.WalkDir instead of reading the directory and looping over the entries
- used slices.ContainsFunc to check if the file belongs to any module (if 1+ is specified)
- used filepath.Join instead of path.Join
- used the path provided by WalkFunc instead of building the file paths ourselves
- made error returns more descriptive
- added logs for directories/files that are skipped
- paths that cannot be accessed are skipped after logging the error
2024-09-25 20:58:51 +02:00
ionutboangiu
5e27106e48 Update main cgr-engine config sample 2024-09-23 20:28:26 +02:00
ionutboangiu
edfe2b5ef7 Revise nats reader integration tests
They were failing after the ERs structure changes.

Added a commented helper program at the end of the test to
help generate credentials for testing nats JWT functionality
2024-09-20 11:24:37 +02:00
ionutboangiu
3764594fcc revise logging .conf files 2024-09-05 20:46:40 +02:00
arberkatellari
91630f39a5 Add exporter id within the *vars in EEs for templates 2024-08-14 14:06:03 +02:00