Nms-reporting

From I Will Fear No Evil
Revision as of 16:56, 1 February 2024 by Chubbard (talk | contribs) (Created page with "=Basic Flow= As of right now, I am beginning the ability to create reporting on events seen in Vigilare. Not working against metrics other than events and historical events currently. I do not see it as likely going against perf when we are dealing with RRDTool. That will just be a futile exercise. I could do something against Graphite, but suspect the ROI will be minimal at best. InfluxDb however would be a nice candidate for performance in the future. I will have...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Basic Flow

As of right now, I am beginning the ability to create reporting on events seen in Vigilare. Not working against metrics other than events and historical events currently. I do not see it as likely going against perf when we are dealing with RRDTool. That will just be a futile exercise. I could do something against Graphite, but suspect the ROI will be minimal at best. InfluxDb however would be a nice candidate for performance in the future. I will have to think about getting support for that in place once Influx has code against it.

Templates

  • The templates are residing in <root>/templates/reporting.
  • Still ironing out details, but the first three reports are there.
  • Default will be to store the results in the database (no emailing out ATM)
  • Kinda thinking of defining vars and help system in the template itself. Interesting idea to pursue for a bit I think. User would have to know the schema beforehand to create the template correctly.

GUI

Normal Crud under the reporting link

  • Of note, since we are going to be placing variables in here at one point or another the creation is going to have to be VERY well documented in the GUI. TBH, this will kinda suck, as someone will make very bad queries and not test them. I cannot see a good way to keep this from happening.

Generation

  • This is actually going to be controlled via housekeeping. When a report is requested, housekeeping is going to fire off a process to deal with it. Still deciding if that is the best way to go, or if a daemon is a better solution. Donno that having a daemon that is idle 99.9% of the time is all that useful however.
  • Housekeeping needs a way to programmatically run this as well like a cheap cron for ongoing reporting

Logic

User says gimme report XYZ with these values (usually a time limit) as a POST API generates the initial Reporting record with no data inside it. Housekeeping checks once a minute, and sees report not done yet. Sets flag stating it is running it Once result is complete array of returns is set in database

Notification

Initially none. However possibly a pubsub type system in the future telling you that your report has been completed?

Future

Not sure yet. Reporting has always seemed to be very specific on what people want for data. Also query by the foot is a real problem. The reports could cripple the database, and normally will be done against a secondary RO server, so not to damage things. Initially however for small reports with a limited number of devices it is not that critical yet.