| Commit message (Collapse) | Author | Age | |
|---|---|---|---|
| * | 4 fields is more than enough for Entity to be a fully-fledged type | Dan Goodliffe | 7 days |
| | | |||
| * | Replace use of crc32 for entity id | Dan Goodliffe | 7 days |
| | | | | | | Entity value is MD5 hashed same as DB unique key, but the id itself is now taken from the DB primary key which is sequence generated. | ||
| * | Introduce MD5 from libmd, use it for hashing queuedLines for park path | Dan Goodliffe | 11 days |
| | | |||
| * | Return path of parked lines log file from parkQueuedLogLines | Dan Goodliffe | 12 days |
| | | | | | Or the last errno on failure. | ||
| * | Revise stats and add signal handlers to log them and reset themwebstat-0.3 | Dan Goodliffe | 2026-03-25 |
| | | | | | Also logs them on main loop exit. | ||
| * | Employ temporary/short files to handle errors reading/writing park logs | Dan Goodliffe | 2026-03-22 |
| | | |||
| * | Add missing -Wshadow | Dan Goodliffe | 2026-03-22 |
| | | |||
| * | Add logging :-o | Dan Goodliffe | 2026-03-20 |
| | | | | | | | | Adds virtual log function, real implementation writes to syslog. Test implementation writes to BOOST_TEST_MESSAGE, perf implementation discards. Replaces existing prints to stderr and adds logs to all key points. | ||
| * | Insert log entries in batches | Dan Goodliffe | 2026-03-20 |
| | | | | | | | | | | | Store log lines in memory until threshold is reach or idle occurs, then insert all the lines in a single transaction. Save points handle the case of insertion errors. On success the queue is cleared. Parked lines also saved in bulk, only necessary if queued lines could not be inserted on shutdown, else the queue simply grows until ability to insert is restored. Importing parked lines just adds them to the queue and the normal process then follows. | ||
| * | Gracefully handle SIGTERM | Dan Goodliffe | 2026-03-19 |
| | | | | | | Apache sends SIGTERM to the logger process to it shutdown. Honestly I thought it would just close stdin and I should have checked. | ||
| * | Count and return the number of parked lines ingested | Dan Goodliffe | 2026-03-18 |
| | | |||
| * | Use std::future over std::thread for background jobs | Dan Goodliffe | 2026-03-17 |
| | | | | | | Easier checking if a job has completed [successfully] and reseting state for the next time. | ||
| * | Don't start new curl operations outside the main thread | Dan Goodliffe | 2026-03-17 |
| | | | | | | Neither the curl handle, not the operation map is thread safe. This isn't ideal, but it does solve the problem in a safe manor. | ||
| * | Execute jobs even when processing incoming logs | Dan Goodliffe | 2026-03-17 |
| | | | | | | Jobs run on background threads now, so we can happily run them even when we're busy. | ||
| * | Run jobs on a background thread | Dan Goodliffe | 2026-03-17 |
| | | |||
| * | Process new field, content-type, in input stream | Dan Goodliffe | 2026-01-18 |
| | | |||
| * | Attempt to save uninsertable log lines to the entities table | Dan Goodliffe | 2026-01-17 |
| | | | | | | | If that fails, we still park them as before, such as when the DB is unavailable. Those which are saved as entities require investigation why they couldn't be saved, much like UnparsableLines. | ||
| * | Add job for puring old access log entries from the database | Dan Goodliffe | 2025-12-20 |
| | | |||
| * | Add a few no lint comments | Dan Goodliffe | 2025-12-20 |
| | | |||
| * | Replace that awful magic number heavy mapping function | Dan Goodliffe | 2025-10-16 |
| | | | | | | Now a tuple of mapping functors and we pass each value through its corresponding converter. | ||
| * | Refactor handling of new entity insert | Dan Goodliffe | 2025-10-15 |
| | | | | | | Replaces weird select with one thing with a function pointer stored in the type definition array. | ||
| * | Update comments on custom_log format | Dan Goodliffe | 2025-10-15 |
| | | |||
| * | Allows handle curl things if there are anywebstat-0.2.2 | Dan Goodliffe | 2025-10-10 |
| | | |||
| * | Fix premature remembering of saved entity idswebstat-0.2.1 | Dan Goodliffe | 2025-10-09 |
| | | | | | | | | Don't persist entity ids saved to the DB until the transaction is committed. Prevents the issue where a later DB operation fails, the transaction is rolled back, but we still think the entity has been saved. | ||
| * | Add parked line import jobwebstat-0.2 | Dan Goodliffe | 2025-10-06 |
| | | | | | Periodically, on idle, scan for and import previously parked lines. | ||
| * | Add point to execute scheduled jobs when idle | Dan Goodliffe | 2025-10-02 |
| | | |||
| * | Write log lines to files on error | Dan Goodliffe | 2025-09-30 |
| | | | | | | We call this parking, later we can reattempt ingestion after whatever caused the failure has been fixed. | ||
| * | Create settings structure | Dan Goodliffe | 2025-09-24 |
| | | | | | | | | Holds all the settings and their defaults for use in program_options and tests. Disables missing-field-initializers in tests because its over sensitive to structures with defaults where you only provide some values specifically. | ||
| * | Write unparsable lines to the entity table | Dan Goodliffe | 2025-09-23 |
| | | | | | Diagnostics and the ability to ingest later. | ||
| * | Make DB pool protected for access from unit tests | Dan Goodliffe | 2025-09-23 |
| | | |||
| * | Create and perform UA lookup curl op when new user agent is encountered | Dan Goodliffe | 2025-09-13 |
| | | |||
| * | Perform background curl operations when not processing log input | Dan Goodliffe | 2025-09-13 |
| | | |||
| * | Simplify storeEntities with bindMany | Dan Goodliffe | 2025-09-10 |
| | | |||
| * | Use curl_multi_poll in main ingestLog loop | Dan Goodliffe | 2025-09-10 |
| | | | | | Preparation step for having background curl operations. | ||
| * | Store utsname details in the host's detail field | Dan Goodliffe | 2025-09-02 |
| | | |||
| * | Tag entities with their typewebstat-0.1.1 | Dan Goodliffe | 2025-09-01 |
| | | |||
| * | Reuse same insert entity command | Dan Goodliffe | 2025-09-01 |
| | | |||
| * | Use a DB connection pool rather than a single connection | Dan Goodliffe | 2025-09-01 |
| | | |||
| * | Insert new entities and log entry in a transaction | Dan Goodliffe | 2025-08-25 |
| | | | | | If no new entities are required, no transaction is created. | ||
| * | Merge storeEntities into a single thing | Dan Goodliffe | 2025-08-25 |
| | | | | | Add visitSum for tuples and makes storeEntities into a single lambda. | ||
| * | Track existing entities, don't attempt reinsert | Dan Goodliffe | 2025-08-25 |
| | | | | | | This is an ever growing set, but in theory should be finite, and is only 4bytes per entity. | ||
| * | Return count of entities passed to the database | Dan Goodliffe | 2025-08-25 |
| | | |||
| * | Store log lines in full using entity ids | Dan Goodliffe | 2025-08-25 |
| | | |||
| * | Store the entities for each log line | Dan Goodliffe | 2025-08-25 |
| | | |||
| * | Provide hostname to Ingestor | Dan Goodliffe | 2025-08-25 |
| | | | | | Store its Entity immediately for later use. | ||
| * | Add helpers and SQL for storing an entity | Dan Goodliffe | 2025-08-25 |
| | | |||
| * | Pass a DB connection to Ingestor | Dan Goodliffe | 2025-08-25 |
| | | |||
| * | Add helpers for hashing values extracted from log input | Dan Goodliffe | 2025-08-25 |
| | | | | | | zlib's crc32 used here, the interface is a bit C and as a result a bit casty, but it'll work. | ||
| * | Initial commit; basic Apache log parsing | Dan Goodliffe | 2025-08-25 |
