rsyslog-module
Encodes technical requirements for rsyslog modules, including concurrency, metadata, and initialization.
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Encodes technical requirements for rsyslog modules, including concurrency, metadata, and initialization.
How to use
Zapoznaj się z regułą "Belt and Suspenders" – każdy dostęp do stanu współdzielonego (pData) musi być chroniony asercją i warunkiem if, aby obsłużyć błędy gracefully w wysokowspółbieżnym modelu worker'ów rsyslog v8.
Rozróżnij stan współdzielony od per-worker'a: pData zawiera mutable state dostępny dla wszystkich worker'ów i musi być chroniony mutexem, natomiast wrkrInstanceData_t nigdy nie powinno być współdzielone między worker'ami.
Zaimplementuj standardowe punkty wejścia modułu: modInit() do inicjalizacji danych statycznych i rejestracji interfejsów, modExit() do finalizacji i czyszczenia, oraz beginTransaction() i commitTransaction() dla efektywnego batch'owania outputu.
Dodaj blok nagłówka "Concurrency & Locking" do każdego modułu output'u, aby dokumentować strategię synchronizacji i typ stanu.
Utrzymuj spójność metadanych: utwórz lub zaktualizuj MODULE_METADATA.yaml w katalogu modułu i synchronizuj zmiany dotyczące locking'u i współbieżności z doc/ai/module_map.yaml.
Skonfiguruj build: zaktualizuj plugins/Makefile.am i configure.ac przy dodawaniu nowych modułów, użyj makr z runtime/module-template.h (np. MODULE_TYPE(eMOD_OUT)), i postępuj zgodnie z wzorcem "Define at Top, Distribute Unconditionally, Register Conditionally" w tests/Makefile.am, aby zapewnić poprawność make distcheck.