mix bellwether.agent (bellwether v0.1.0)

Copy Markdown

Put the Agent on the device.

mix bellwether.agent --endpoint https://devices.example.com --key bwk_...

The Adapter captures crashes; the Agent is what gets them off the board, and it is a static aarch64 binary rather than an Elixir dependency. This copies it into rootfs_overlay/usr/bin/ and writes a matching bellwether.toml, so the socket path is stated once instead of in two files that must agree.

Where the binary comes from

In order, whichever is found first:

  1. --from PATH, a directory holding bellwetherd.
  2. BELLWETHER_AGENT_DIR in the environment.
  3. This package, for the target's architecture. aarch64 is bundled; nothing else is, because a Hex package cannot carry every target and 2 MB of the wrong architecture helps nobody.
  4. A sibling checkout of the Agent source, if you have one.
  5. Built with Docker, if one is running.

Nothing is downloaded. A binary that arrived from the network with no provenance is not something to put in firmware, and until there are signed releases that is all a download would be.

Options

  • --endpoint - where Ingest lives. Required on first run.
  • --key - the Product API key. Required on first run.
  • --from - a directory holding prebuilt binaries.
  • --overlay - default rootfs_overlay.
  • --force - overwrite an existing bellwether.toml.