0.1.0 • Published 9 months ago

nomallard v0.1.0

Weekly downloads
-
License
ISC
Repository
-
Last release
9 months ago

Nomallard

Turn an hcdiag support bundle into a DuckDB in one command!

Prerequisites

  1. DuckDB brew install duckdb
  2. A bundle generated by hcdiag (relatively recently, one with ndjson files in the interval directories of the nomad bundle)

Running Nomallard

Right now Nomallard is just a node project, eventually it'll be bundled as an executable.

  1. Clone the repo
  2. perform npm i
  3. perform node index.js -d <path_to_unzipped_bundle>

Alternatively, you can perform node index.js -z <path_to_zip> and Nomallard will unzip and extract the bundle for you. One less step!

After running the command, you will have a new <name>.duck file. That's your database, do with it what you'd like.

$ duckdb test-db.duck
D select * from jobs;
D .tables

Sample queries!

Evaluations by year/month/day

select
  year(to_timestamp(createtime // 1000000000)) as y,
  month(to_timestamp(createtime // 1000000000)) as m,
  day(to_timestamp(createtime // 1000000000)) as d,
  count(*) as c
from evaluations group by y, m, d order by y asc, m asc, d asc;

Jobs by type

select type, count(*) as c from jobs group by type order by c desc;

How many jobs are configured to have auto-reverting deployments?

select Namespace, ar, count(*) as c from (
  select Namespace, JobID, unnest(map_values(TaskGroups)).AutoRevert as ar from deployments
) group by Namespace, ar order by c desc;

What's the distribution of log levels across servers/clients and categories?

select Mode, Level, Category, Count(*) c
  from serverlogs group by Mode, Level, Category order by Category;

Which of my agents are spitting out errors and warnings?

Note that fields in Duck aren't case sensitive.

select mode, server, level, count(*) from serverlogs
  where level in ('ERROR', 'WARN')
  group by mode, server, level
  order by level;
0.1.0

9 months ago