pub struct Issue {Show 18 fields
pub active: bool,
pub created_at: Timestamp,
pub description: Option<String>,
pub device_id: Option<Uuid>,
pub first_seen: Timestamp,
pub id: Uuid,
pub last_seen: Timestamp,
pub message: String,
pub ref_: String,
pub resolved_at: Option<Timestamp>,
pub resolved_by: Option<String>,
pub resolved_reason: Option<String>,
pub server_group_id: Option<Uuid>,
pub server_id: Option<Uuid>,
pub severity: Severity,
pub snoozed_until: Option<Timestamp>,
pub source: String,
pub updated_at: Timestamp,
}Expand description
A tracked problem or condition on a server, or on a server group as a whole. An issue is opened the first time its source reports it and stays open (accumulating events) until the source reports it as no longer active or an operator resolves it. Issues are the basic unit that drives incidents, Slack notifications, and the fleet health view.
JSON schema
{
"description": "A tracked problem or condition on a server, or on a server group as a\nwhole. An issue is opened the first time its source reports it and stays\nopen (accumulating events) until the source reports it as no longer\nactive or an operator resolves it. Issues are the basic unit that drives\nincidents, Slack notifications, and the fleet health view.",
"type": "object",
"required": [
"active",
"created_at",
"first_seen",
"id",
"last_seen",
"message",
"ref",
"severity",
"source",
"updated_at"
],
"properties": {
"active": {
"description": "Whether the condition behind this issue is still ongoing. Set to\n`false` when the source reports the condition has cleared.",
"type": "boolean"
},
"created_at": {
"description": "When this issue was first created.",
"type": "string",
"format": "date-time"
},
"description": {
"description": "A short, single-line title for the issue, shown as its headline in\nthe UI and in Slack notifications. `None` if no title was given.",
"type": [
"string",
"null"
]
},
"device_id": {
"description": "The device that reported this issue, if it was raised by a device\npush. `None` for issues raised by an operator or by the platform\nitself.",
"type": [
"string",
"null"
],
"format": "uuid"
},
"first_seen": {
"description": "When this issue was first reported.",
"type": "string",
"format": "date-time"
},
"id": {
"description": "Unique identifier for this issue.",
"type": "string",
"format": "uuid"
},
"last_seen": {
"description": "When this issue was most recently reported or updated.",
"type": "string",
"format": "date-time"
},
"message": {
"description": "The full body text describing the issue.",
"type": "string"
},
"ref": {
"description": "A caller-chosen identifier for this issue within its `source`. The\nsame `(source, ref)` pair reported again updates this issue instead\nof creating a new one.",
"type": "string"
},
"resolved_at": {
"description": "When an operator marked this issue resolved. `None` if it hasn't\nbeen resolved.",
"type": [
"string",
"null"
],
"format": "date-time"
},
"resolved_by": {
"description": "The operator who resolved this issue. `None` if it hasn't been\nresolved.",
"type": [
"string",
"null"
]
},
"resolved_reason": {
"description": "The reason given when the issue was resolved (for example: fixed,\nfalse positive, won't fix). `None` if it hasn't been resolved.",
"type": [
"string",
"null"
]
},
"server_group_id": {
"description": "The server group this issue is attached to, for a control-plane issue\n(e.g. backup corruption, a failed preflight check) that isn't tied to\nany single server. `None` for an ordinary server-scoped issue.\nGroup-scoped issues are always considered even if an individual\nserver in the group has monitoring turned off.",
"type": [
"string",
"null"
],
"format": "uuid"
},
"server_id": {
"description": "The server this issue is attached to. `None` for a group-scoped issue\n(see `server_group_id`) — exactly one of the two is always set.",
"type": [
"string",
"null"
],
"format": "uuid"
},
"severity": {
"description": "The issue's current severity.",
"$ref": "#/components/schemas/Severity"
},
"snoozed_until": {
"description": "If set, this issue is snoozed until this time: it's temporarily\nexcluded from incidents and notifications even while still active.",
"type": [
"string",
"null"
],
"format": "date-time"
},
"source": {
"description": "Identifies what raised this issue — a healthcheck, a backup pipeline,\nan operator, etc. Used together with `ref` to detect repeat reports\nof the same underlying problem.",
"type": "string"
},
"updated_at": {
"description": "When this issue was last modified.",
"type": "string",
"format": "date-time"
}
}
}Fields§
§active: boolWhether the condition behind this issue is still ongoing. Set to
false when the source reports the condition has cleared.
created_at: TimestampWhen this issue was first created.
description: Option<String>A short, single-line title for the issue, shown as its headline in
the UI and in Slack notifications. None if no title was given.
device_id: Option<Uuid>The device that reported this issue, if it was raised by a device
push. None for issues raised by an operator or by the platform
itself.
first_seen: TimestampWhen this issue was first reported.
id: UuidUnique identifier for this issue.
last_seen: TimestampWhen this issue was most recently reported or updated.
message: StringThe full body text describing the issue.
ref_: StringA caller-chosen identifier for this issue within its source. The
same (source, ref) pair reported again updates this issue instead
of creating a new one.
resolved_at: Option<Timestamp>When an operator marked this issue resolved. None if it hasn’t
been resolved.
resolved_by: Option<String>The operator who resolved this issue. None if it hasn’t been
resolved.
resolved_reason: Option<String>The reason given when the issue was resolved (for example: fixed,
false positive, won’t fix). None if it hasn’t been resolved.
server_group_id: Option<Uuid>The server group this issue is attached to, for a control-plane issue
(e.g. backup corruption, a failed preflight check) that isn’t tied to
any single server. None for an ordinary server-scoped issue.
Group-scoped issues are always considered even if an individual
server in the group has monitoring turned off.
server_id: Option<Uuid>The server this issue is attached to. None for a group-scoped issue
(see server_group_id) — exactly one of the two is always set.
severity: SeverityThe issue’s current severity.
snoozed_until: Option<Timestamp>If set, this issue is snoozed until this time: it’s temporarily excluded from incidents and notifications even while still active.
source: StringIdentifies what raised this issue — a healthcheck, a backup pipeline,
an operator, etc. Used together with ref to detect repeat reports
of the same underlying problem.
updated_at: TimestampWhen this issue was last modified.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Issue
impl<'de> Deserialize<'de> for Issue
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for Issue
impl RefUnwindSafe for Issue
impl Send for Issue
impl Sync for Issue
impl Unpin for Issue
impl UnsafeUnpin for Issue
impl UnwindSafe for Issue
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more