A fast, reliable, small data remote logging tool with a very small
footprint. dataclerk is similar to a log file, but you can send
it messages over the web.
If Apache Kafka is too bulky for you, consider dataclerk.
It's intended to be a zero-fuss solution that will easily get out of your way when you outgrow it.
Example Session
To start, we create a server that's listening locally:
$ dataclerk localhost:4499 iot-logs.sqlite
Its primary user interface is curl (or perhaps httpie). Assuming
a dataclerk server is live at clerk.example.com:4499, we're able to
register channels and begin to record entries:
$ curl -X PUT localhost:4499/v1/channel/mesh
$ curl localhost:4499/+/mesh -d unit=borg-h1a42 -d status=ok
On the backend, a new table has been created within Sqlite database at iot-logs.sqlite called "mesh". The second line has created a new row within that within that table:
1
2019-04-09 08:37:42
641c8210-5aa2-11e9-8b61-674d210d2b16
{"unit":"borg-h1a42","status":"ok"}
Adding data to dataclerk should be very fast. You should expect a response within 10ms, although the system may be constrained by how long things take to be stored onto physical storage media. You can see from the logs generated from this session that that we used around 3-4ms to make changes:
$ dataclerk localhost:4499 iot-logs.sqlite
[2019-04-09T09:04:48Z INFO dataclerk] Hello!
[2019-04-09T09:04:48Z INFO actix_server::builder] Starting 12 workers
[2019-04-09T09:04:48Z INFO actix_server::builder] Starting server on 127.0.0.1:4499
[2019-04-09T09:05:14Z INFO dataclerk] registering channel "mesh"
[2019-04-09T09:05:14Z INFO actix_web::middleware::logger] "PUT /v1/channel/mesh HTTP/1.1" 201 0 "-" "curl/7.61.0" 0.033640
[2019-04-09T09:05:46Z DEBUG dataclerk] recv: channel:"mesh", data: {"status": "ok", "unit": "borg-h1a42"}
[2019-04-09T09:05:46Z INFO actix_web::middleware::logger] "POST /+/mesh HTTP/1.1" 204 0 "-" "curl/7.61.0" 0.04191
^C[2019-04-09T09:07:53Z INFO actix_server::builder] SIGINT received, exiting
[2019-04-09T09:07:53Z INFO dataclerk] Goodbye
You are about to open
Do you wish to proceed?
Thank you for your report. Information you provided will help us investigate further.
There was an error while sending your report. Please try again later.
Snaps are applications packaged with all their dependencies to run on all popular Linux distributions from a single build. They update automatically and roll back gracefully.
Snaps are discoverable and installable from the Snap Store, an app store with an audience of millions.
Snap is available for Red Hat Enterprise Linux (RHEL) 8 and RHEL 7, from the 7.6 release onward.
The packages for RHEL 7, RHEL 8, and RHEL 9 are in each distribution’s respective Extra Packages for Enterprise Linux (EPEL) repository. The instructions for adding this repository diverge slightly between RHEL 7, RHEL 8 and RHEL 9, which is why they’re listed separately below.
The EPEL repository can be added to RHEL 9 with the following command:
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
sudo dnf upgrade
The EPEL repository can be added to RHEL 8 with the following command:
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf upgrade
The EPEL repository can be added to RHEL 7 with the following command:
sudo rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Adding the optional and extras repositories is also recommended:
sudo subscription-manager repos --enable "rhel-*-optional-rpms" --enable "rhel-*-extras-rpms"
sudo yum update
Snap can now be installed as follows:
sudo yum install snapd
Once installed, the systemd unit that manages the main snap communication socket needs to be enabled:
sudo systemctl enable --now snapd.socket
To enable classic snap support, enter the following to create a symbolic link between /var/lib/snapd/snap and /snap:
sudo ln -s /var/lib/snapd/snap /snap
Either log out and back in again or restart your system to ensure snap’s paths are updated correctly.
To install dataclerk, simply use the following command:
sudo snap install dataclerk
Browse and find snaps from the convenience of your desktop using the snap store snap.
Interested to find out more about snaps? Want to publish your own application? Visit snapcraft.io now.