Hi Michael, only a partial part 2 messages. I have tried to teach the rsyslog dev assistant a bit helpfulness for your case, but I am not sure if it went for better or worse ;-)
In case you would like to have try, it is here: https://www.rsyslog.com/tool_rsyslog-dev-assistant Unfortunately, I now need to look at other tasks scheduled for today. I hope to be back with better doc and AI soon. In the meantime just keep asking if s/t is unclear. Thx, Rainer El lun, 15 sept 2025 a las 9:07, Rainer Gerhards (<[email protected]>) escribió: > > Hi Michael, and David, > > @david: thanks for your great and timely responses, as always. I > really appreciate them, even though I haven't been very vocal about it > since the pandemics... > > @michael: thanks for your questions and welcome. We highly appreciate > your interest. > > David already pointed you in the right direction. I will now answer in > two steps: > > 1. immediately for the most pressing things > 2. a bit later after I added some developer docs > > #2 is because I think you asked questions that probably many potential > contributors have, so I would like to have the answer better > accessible. Also make sure they are sufficiently well. I would > appreciate feedback on all material and answers. Note that I am so > deeply involved for many years with the project that I may overlook > the obvious. Just tell me than! > > Immediate needs: > > Prometheus: there has already work done already, and native prometheus > format is supported by impstats. imhttp now also provides an endpoint > for publishing these values. A sidecar container w/ external process > is also coming up for native cloud integration. > > See this PR: https://github.com/rsyslog/rsyslog/pull/5983 > > Note that we do NOT use JSON arrays - I simple was not aware this also > works with Prometheus. > --- > > Workflow: > As David said: fork repo and keep it in sync. This is best practice. > Right now the development is rapid and the base you work on may > otherwise become outdated. > > Create Pull requests, this will also automatically trigger AI review > (usually very useful) and ~40 CI test runs executing each one > executing 1000+ tests. Good at catching regression, sometime there are > flakes (test the fail albeit there is not real issue). I'll usually > baby-sit such flakes. With PR, no harm can be done, I or co-maintainer > will always rdo manual review before final merge (so the > responsibility ultimately is mine if something goes wrong). > --- > > Likelihood of acceptance: > We are highly interested in contributions of all types, be it small or > large, code, doc or otherwise. We are also interested to learn use > cases and recently in missing feature for cloud-native. Good Feature > requests can in a number of cases be addressed by AI workflow for > rapid implementation (does not work for large features but > increasingly good for small and smallest). > > Often small things have big effect, so do not be shy. > --- > > Seprate Plugin: definitely not, you took the right approach. Beside > prometheus, I think your change makes a lot of sense. Jsut be sure to > make it configurable. We insist on backwards compatibility. > --- > > Note: besides the general "rsyslog assitant" AI advisor at > https://rsyslog.ai I also work on a developer-focussed AI, > experimentally available at > > https://chatgpt.com/g/g-68ab335c662c8191853b11fe69877f45-ryslog-dev-assistant?model=gpt-5 > > But be warned: it is in its infancy, the quality is not yet very good. > > As it looks, I dug a bit deeper than I originally intended, so the > part 2 is probably no longer that much ;-) > > Any questions pls let us know. > > I would strongly suggest to open either a PR or Feature issue on > github - this platform is better suited to to development work,e.g. > because of interlinking capabilities. > > Once again: many thanks for your interest, and this for sure will > become an important addition! > > Rainer > > > > > El lun, 15 sept 2025 a las 3:58, Redbourne,Michael via rsyslog > (<[email protected]>) escribió: > > > > Hey Folks, > > > > My advance apologies for the rather beginner questions and a wall of text. > > I'm not accustomed to sharing code with enterprise projects that large > > scale integrations. I'm also not a C-developer (or really a developer at > > all beyond bash scripting). I'm also still testing this to make sure it'll > > integrate correctly with my systems (and hopefully others). Once I'm done > > verifying this works for both rsyslog (stability, performance, etc.) and my > > systems, I'll submit this if it's of interest. > > > > High Level Overview > > We use the impstats module to monitor the performance of rsyslog in our SAM > > system. One of the predominant issues we have on two of our servers is our > > pipelines are periodically updated to incorporate new pipelines. This is > > notable for applications such as Kafka (our use case), where each topic we > > connect to has it's own configuration (SAS Key, topic, broker, etc.) The > > long standing issue between rsyslog and our SAM system is rsyslog's > > implementation of the JSON format. Pre-processed, the implementation of > > rsyslog's JSON isn't technically incorrect, but it lacks compatibility with > > dynamic discovery in our SAM system. This is because rsyslog outputs a new > > line for each statistic, rather than concat'ing the statistics into a > > single JSON object. > > > > The way I explained this to GPT-5 was this: > > > > Mon Sep 15 10:32:45 2025: action-0-builtin:omfile: origin=core.action > > processed=4444 failed=0 suspended=0 suspended.duration=0 resumed=0 > > [...] > > Mon Sep 15 10:32:45 2025: action-3-builtin:omfile: origin=core.action > > processed=1111 failed=0 suspended=0 suspended.duration=0 resumed=0 > > > > should be turned into (these logs aren't identical): > > > > {"timedate": "Mon Sep 15 10:52:54 2025", "stats": [{ "name": > > "action-0-builtin:omfile", "origin": "core.action", "processed": 2641, > > "failed": 0, "suspended": 0, "suspended.duration": 0, "resumed": 0 },{ > > "name": "imtcp(514)", "origin": "imtcp", "submitted": 0 },{ "name": > > "w1\/imtcp", "origin": "imtcp", "runs": 0, "read": 0, "emptyread": 0, > > "starvation_protect": 0, "accept": 0 }]} > > > > The difference lies in the stats: [] JSON array. This can be iterated > > through in programs like Zabbix to dynamically discover (create) or delete > > items automatically, rather than having to manually create new items each > > time we update the Kafka pipelines to incorporate new environments. > > > > To do this, we took the original impstats.c plugin code and added a new > > format type called "Prometheus". (Prometheus is a common monitoring > > application used in conjunction with something like Grafana, for those who > > don't use it.) This keeps the legacy formats intact (legacy, cee, json, > > json-es, etc.) allowing backwards compatibility with current installations, > > while enabling the new format for individuals seeking this functionality. > > The new impstats.c file modifies implements some new functions such as > > generatePrometheusStats() > > > > Again, I still have some testing to do, code to remove (some debug print > > statements), etc. But the modified impstats.c file can be seen here > > (https://github.com/MRedbourne-BPSI/rsyslog/blob/main/plugins/impstats/impstats.c) > > > > Note: I know rsyslog is AI-friendly. The prometheus section was generated > > in part by GPT-5, with a lot of prompting and describing issues that were > > arising (specifically: UAF bugs with elastic strings.) It's been the better > > part of a decade since I've done any C-development, and nothing with > > mutexs, threads, or anything remotely complex. > > > > Which brings me to my final questions: > > > > 1. > > Assuming this is stable and performant, what is the procedure to submit > > this to rsyslog? I'm assuming I just fork the repository and create a pull > > request for impstats.c? > > 2. > > (Again, assume this is stable/performant): What is the likelihood that this > > type of contribution is accepted? It's not a particularly novel approach, > > and I haven't seen much discussion around this in the community. > > 3. > > Does rsyslog have a testing pipeline (unit files, etc.) that might help me > > test functionality? I compiled this in the available stable tarball > > (8.2508.0) via Rocky EL9. > > 4. > > Would this be better contributed as an individual plugin (eg: > > impstats-prometheus) or as a drop-in replacement for the current impstats > > module? > > > > ________________________________________ > > This e-mail communication (including any or all attachments) is intended > > only for the use of the person or entity to which it is addressed and may > > contain confidential and/or privileged material. If you are not the > > intended recipient of this e-mail, any use, review, retransmission, > > distribution, dissemination, copying, printing, or other use of, or taking > > of any action in reliance upon this e-mail, is strictly prohibited. If you > > have received this e-mail in error, please contact the sender and delete > > the original and any copy of this e-mail and any printout thereof, > > immediately. If you have any questions or concerns, please contact our > > Customer Service Desk at 1-877-274-2349. Your co-operation is appreciated. > > > > Le présent courriel (y compris toute pièce jointe) s'adresse uniquement à > > son destinataire, qu'il soit une personne ou un organisme, et pourrait > > comporter des renseignements privilégiés ou confidentiels. Si vous n'êtes > > pas le destinataire du courriel, il est interdit d'utiliser, de revoir, de > > retransmettre, de distribuer, de disséminer, de copier ou d'imprimer ce > > courriel, d'agir en vous y fiant ou de vous en servir de toute autre façon. > > Si vous avez reçu le présent courriel par erreur, prière de communiquer > > avec l'expéditeur et d'éliminer l'original du courriel, ainsi que toute > > copie électronique ou imprimée de celui-ci, immédiatement. Si vous avez des > > questions ou des préoccupations, veuillez contacter notre centre de service > > à la clientèle au 1-877-274-2349. Nous sommes reconnaissants de votre > > collaboration. > > ________________________________________ > > _______________________________________________ > > rsyslog mailing list > > https://lists.adiscon.net/mailman/listinfo/rsyslog > > http://www.rsyslog.com/professional-services/ > > What's up with rsyslog? Follow https://twitter.com/rgerhards > > NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of > > sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T > > LIKE THAT. _______________________________________________ rsyslog mailing list https://lists.adiscon.net/mailman/listinfo/rsyslog http://www.rsyslog.com/professional-services/ What's up with rsyslog? Follow https://twitter.com/rgerhards NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE THAT.

