How to install dataclerk
on Arch Linux

dataclerk

Tim McNamara (tim-clicks)

A simple server for storing your data

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:

  • id
    1
  • created_at
    2019-04-09 08:37:42
  • uuid
    641c8210-5aa2-11e9-8b61-674d210d2b16
  • data
    {"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

Details for dataclerk

License
Other Open Source
Last updated
10 April 2019

Enable snaps on Arch Linux and install dataclerk

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.

Enable snapd

On Arch Linux, snap can be installed from the Arch User Repository (AUR). The manual build process is the Arch-supported install method for AUR packages, and you’ll need the prerequisites installed before you can install any AUR package. You can then install snap with the following:

git clone https://aur.archlinux.org/snapd.git cd snapd makepkg -si

Once installed, the systemd unit that manages the main snap communication socket needs to be enabled:

To enable classic snap support, enter the following to create a symbolic link between /var/lib/snapd/snap and /snap:

Either log out and back in again, or restart your system, to ensure snap’s paths are updated correctly.

Install dataclerk

To install dataclerk, simply use the following command:

Other popular snaps…

See more...
See more in Featured

More things to do…

Get the snap store

Browse and find snaps from the convenience of your desktop using the snap store snap.

Learn more about snaps

Interested to find out more about snaps? Want to publish your own application? Visit snapcraft.io now.