Go to file
Tobias Schmidl 126f0518c0 Merge branch 'develop' 2022-10-06 11:24:21 +02:00
.clang-format added first batch 2022-10-06 05:29:33 +02:00
.cmake-format.yaml Added dir_monitor 2022-10-06 11:22:08 +02:00
.gitignore added first batch 2022-10-06 05:29:33 +02:00
CMakeLists.txt added main routine 2022-10-06 11:22:08 +02:00
LICENSE added first batch 2022-10-06 05:29:33 +02:00
README.md added initial 2022-09-28 12:28:23 +02:00
collector.hpp Added collector 2022-10-06 11:22:08 +02:00
main.cpp added main routine 2022-10-06 11:22:08 +02:00
monitor.hpp monitor is complete 2022-10-06 11:22:08 +02:00
requirements.txt added first batch 2022-10-06 05:29:33 +02:00
test.cpp Added collector 2022-10-06 11:22:08 +02:00
version.hpp.in added first batch 2022-10-06 05:29:33 +02:00

README.md

Data collector

Task

Implement a service that collects system information upon reception of a trigger event. The trigger event is raised when existence of a file with a certain name in a specified directory is detected.

The following features must be implemented:

  • Trigger detection
    • Detect creation of a file in a somehow specified directory
    • Make the directory configurable via commandline parameter
    • Only trigger on files with names following this format:
      • Starts with core.<variable name of a service>.
      • Ends with lz4
      • Contains one or more hexadecimal id separated by dots
      • Example: core.ServiceName.3057.57dd721409bc4ab4b38a3c33a36a608a.3717.1647975805000000.lz4
  • Collected data shall be:
    • Individual files, as well as whole directories and their contents, recursively, configured via command line parameter
  • Store the collected data in a configurable directory, create a tar-archive of the aforementioned contents
    • Give the resulting file a unique name.
  • Add tests to make sure your application is working,
    • How tests are implemented is up to you

Things to keep in mind

  • Implement your collection in a way such that it can be extended to collect other data of various forms later.
  • Use modern C++!
  • Use the platform of your choice (Linux, BSD, MacOS, Windows, etc.)
    • We use Linux but everything else is cool, too.