Skip to content
Merged
Show file tree
Hide file tree
Changes from 44 commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
094c381
start ereport ingestion task
hawkw Jun 9, 2025
b824f38
start ereport db tables
hawkw Jun 2, 2025
42fa98d
queries
hawkw Jun 2, 2025
cd78fc3
draw the rest of the owl
hawkw Jun 3, 2025
cbdb669
actually attach the owl to the rest of the software
hawkw Jun 3, 2025
2cc22c1
claude, you forgot to clone the `Arc`
hawkw Jun 3, 2025
cd2ce89
rm unused type alias
hawkw Jun 3, 2025
5434f77
claude forgot that
hawkw Jun 4, 2025
0af128d
store part/serial numbers in CRDB if present
hawkw Jun 4, 2025
c8b058c
claude forgot that one too lol
hawkw Jun 4, 2025
216652c
right, serde-json map keys must be strings...
hawkw Jun 5, 2025
65cccef
oopsie
hawkw Jun 5, 2025
49fec6a
argh
hawkw Jun 5, 2025
a240529
omdb ereport show command
hawkw Jun 5, 2025
9737b56
enough of a list command for demo purposes
hawkw Jun 5, 2025
2fc3ed7
give one of fake the switches an ereport so the table is less boring
hawkw Jun 5, 2025
a11b981
demo checkpoint
hawkw Jun 6, 2025
cb70e51
add count to ereport list
hawkw Jun 6, 2025
2775725
start omdb status command
hawkw Jun 6, 2025
094c34f
finish up status command
hawkw Jun 6, 2025
93fb64d
include whole error cause chain in statuses
hawkw Jun 9, 2025
56ee5f3
make ereports soft-deleteable
hawkw Jun 9, 2025
b96e2e8
stuff
hawkw Jun 9, 2025
69d6e82
nicer reporter list query
hawkw Jun 13, 2025
ce2858a
start adding a test
hawkw Jun 13, 2025
9887a99
fix incorrect detection of non-existing SP response
hawkw Jun 13, 2025
1698fef
log errors
hawkw Jun 13, 2025
fe6e446
fix ereport serialization that `serde_urlencoded` dislikes
hawkw Jun 13, 2025
c9a89c1
reticulating queries
hawkw Jun 13, 2025
97ab85c
add migration for ereport tables
hawkw Jun 14, 2025
19ffe30
finish test
hawkw Jun 14, 2025
ed1c4d6
only create status when ereports are received
hawkw Jun 14, 2025
3c3f555
rm unused
hawkw Jun 14, 2025
79090dc
clippy
hawkw Jun 14, 2025
f1be873
Merge branch 'main' into eliza/sp-ereport-ingester
hawkw Jun 14, 2025
82356cb
more clippy placation
hawkw Jun 14, 2025
178d963
oops, include_deleted won't do that
hawkw Jun 14, 2025
72ed5df
put back the `*`s clippy said to remove
hawkw Jun 14, 2025
97dd83e
clippy placation (REAL VERSION)
hawkw Jun 14, 2025
7a48c68
update expectorate query tests
hawkw Jun 16, 2025
e48973f
add restart ID filter to omdb ereport list
hawkw Jun 16, 2025
d4153e9
implement host ereports in omdb ereport list
hawkw Jun 16, 2025
ac0cc38
more OMDB list improvements
hawkw Jun 16, 2025
3a34cd4
add OMDB ereport commands to help output test
hawkw Jun 16, 2025
fb1ffd0
Update dbinit.sql
hawkw Jun 17, 2025
723f61e
omdb tweaks
hawkw Jun 17, 2025
7d91abf
remove query expectorate tests
hawkw Jun 17, 2025
f9c9fa0
add EXPLAIN tests for restart ID list queries
hawkw Jun 17, 2025
16f9e5b
add indices for ereports-by-serial queries
hawkw Jun 17, 2025
e0d26ae
rm dead code
hawkw Jun 17, 2025
372d582
we can reasonably panic if first_seen_at is null
hawkw Jun 17, 2025
d9f8019
add tests for parsing ENAs, make sure FromStr always roundtrips
hawkw Jun 18, 2025
06ce0a8
add `WHERE time_deleted IS NULL` to ereport indices
hawkw Jun 18, 2025
b1bce52
add not deleted filter to latest ereport queries
hawkw Jun 23, 2025
c2914b1
get list of SP IDs from MGS instead of making them up
hawkw Jun 23, 2025
543a99f
remove duplicate SP type/slot keys in logs
hawkw Jun 23, 2025
bd8c5a5
various documentation embetterment
hawkw Jun 23, 2025
b7322b9
omdb output wiggling
hawkw Jun 23, 2025
5e676c6
change ereport-by-time-collected indices to USING HASH
hawkw Jun 23, 2025
778bb67
turns out our CRDB version doesn't support hash-sharded indices :(
hawkw Jun 24, 2025
a134491
add `class` column to ereports
hawkw Jun 24, 2025
47d6b30
Merge branch 'main' into eliza/sp-ereport-ingester
hawkw Jun 24, 2025
917c6ed
update OMDB expectorate output again
hawkw Jun 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions clients/gateway-client/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ workspace = true
base64.workspace = true
chrono.workspace = true
daft.workspace = true
ereport-types.workspace = true
gateway-messages.workspace = true
gateway-types.workspace = true
omicron-uuid-kinds.workspace = true
Expand Down
5 changes: 4 additions & 1 deletion clients/gateway-client/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -70,12 +70,15 @@ progenitor::generate_api!(
SpIgnition = { derives = [PartialEq, Eq, PartialOrd, Ord] },
SpIgnitionSystemType = { derives = [Copy, PartialEq, Eq, PartialOrd, Ord] },
SpState = { derives = [PartialEq, Eq, PartialOrd, Ord] },
SpType = { derives = [daft::Diffable] },
SpType = { derives = [daft::Diffable, PartialEq, Eq, PartialOrd, Ord] },
SpUpdateStatus = { derives = [PartialEq, Hash, Eq] },
UpdatePreparationProgress = { derives = [PartialEq, Hash, Eq] },
},
replace = {
RotSlot = gateway_types::rot::RotSlot,
Ena = ereport_types::Ena,
Ereport = ereport_types::Ereport,
TypedUuidForEreporterRestartKind = omicron_uuid_kinds::EreporterRestartUuid,
TypedUuidForMupdateKind = omicron_uuid_kinds::MupdateUuid,
},
);
Expand Down
1 change: 1 addition & 0 deletions dev-tools/omdb/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ csv.workspace = true
diesel.workspace = true
dropshot.workspace = true
dyn-clone.workspace = true
ereport-types.workspace = true
futures.workspace = true
gateway-client.workspace = true
gateway-messages.workspace = true
Expand Down
7 changes: 7 additions & 0 deletions dev-tools/omdb/src/bin/omdb/db.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

use crate::Omdb;
use crate::check_allow_destructive::DestructiveOperationToken;
use crate::db::ereport::cmd_db_ereport;
use crate::helpers::CONNECTION_OPTIONS_HEADING;
use crate::helpers::DATABASE_OPTIONS_HEADING;
use crate::helpers::const_max_len;
Expand Down Expand Up @@ -180,6 +181,7 @@ use tabled::Tabled;
use uuid::Uuid;

mod alert;
mod ereport;
mod saga;

const NO_ACTIVE_PROPOLIS_MSG: &str = "<no active Propolis>";
Expand Down Expand Up @@ -356,6 +358,8 @@ enum DbCommands {
Disks(DiskArgs),
/// Print information about internal and external DNS
Dns(DnsArgs),
/// Query and display error reports
Ereport(ereport::EreportArgs),
/// Print information about collected hardware/software inventory
Inventory(InventoryArgs),
/// Print information about physical disks
Expand Down Expand Up @@ -1494,6 +1498,9 @@ impl DbArgs {
&args,
token,
).await
},
DbCommands::Ereport(args) => {
cmd_db_ereport(&datastore, &fetch_opts, &args).await
}
}
}
Expand Down
Loading
Loading