Skip to main content
This walkthrough assumes bronto is installed and you have a management API key from Settings > API Keys in the Bronto web app. The examples use a small demo org: a checkout-service in the prod collection that started returning 502 errors because calls to payments-api time out.

The five-minute path

1. Log in

Paste the key at the prompt. The CLI finds the region the key belongs to and stores the key in your OS keychain. Authentication has the details, including the non-interactive --key-stdin form.

2. Check the connection

At a terminal this prints one line with the API URL and the round-trip time, for example OK — https://api.eu.bronto.io (42ms). If it fails, run bronto auth status to see which key and region the CLI picked up.

3. See what data you have

Bronto stores logs in datasets, grouped into collections. Wherever a command takes -d/--dataset, you can pass a dataset name instead of its id. A name that exists in more than one collection needs the collection in front of it, like prod/checkout-service. If you mostly work with one dataset, make it the default and drop -d:
The query is a Bronto WHERE expression (see the search syntax). At a terminal the result is a table, newest first: the CLI picks the most informative fields as columns and prints a hint on stderr about how to see more. Fields parsed out of the log line appear under message_kvs., so status in the query is the message_kvs.status field in the output. To see every field of a single event, untruncated, add -x:
To look up a field name, bronto fields lists the fields in a dataset with sample values:

5. Pipe it

When stdout isn’t a terminal, search prints JSON Lines (one JSON object per event), so you can pipe it into jq, wc, or a script. Each event is flattened into dotted keys:
--fields keeps only the keys you name. A bare name such as status finds message_kvs.status, and the output key is the name you typed. --jq runs a jq expression on each result without needing jq installed, and -r prints strings without quotes:
Without --fields, --jq sees the whole event, so it uses the full message_kvs. key names. With --fields, --jq runs on the narrowed result and sees the names you typed: --fields host --jq .host.

Where next

  • Searching: filter flags, aggregates, histograms, patterns, and the interactive REPL.
  • Live tail: follow new events as they arrive.
  • Traces: find the slow payments-api span behind those 502s.
  • Scripting and agents: output formats, exit codes, and jq recipes.