From 0404e0dd2de3e2d25109eb281b0ae372b6cbd919 Mon Sep 17 00:00:00 2001 From: tiennm99 Date: Tue, 23 Jun 2026 09:06:28 +0700 Subject: [PATCH] docs(component): add component id monitoring report --- docs/component-id-monitoring-report.md | 66 ++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 docs/component-id-monitoring-report.md diff --git a/docs/component-id-monitoring-report.md b/docs/component-id-monitoring-report.md new file mode 100644 index 0000000..f2ff5da --- /dev/null +++ b/docs/component-id-monitoring-report.md @@ -0,0 +1,66 @@ +--- +date: 2026-06-23 +status: monitoring +--- + +# Component ID Monitoring Report + +## Summary + +We saw a component notification like: + +```text +Component: Embeddings +Status: unknown -> Operational +``` + +Current decision: monitor next incidents/component updates before changing storage behavior. + +## Findings + +- Component checkpoints are stored in Redis as `component_id -> last_status`. +- Redis key: `openai-status:component-statuses`. +- Component names are not stored in that checkpoint hash. +- Component names come from live OpenAI `summary.json` during each poll. +- The bot compares component status by `component.ID`, then formats the alert with `component.Name`. +- Incident `page_id` is not used to detect components. +- `page_id` identifies the OpenAI status page, not a specific component. +- `unknown -> Operational` means current component found, but no previous checkpoint existed for that component ID. + +## Possible Problem + +OpenAI/Statuspage may have changed, recreated, or migrated the component ID. + +If component ID changed: + +- Bot treats the component as new. +- Previous status becomes `unknown`. +- Old Redis component ID remains unused. +- Component-filtered subscriptions using old ID may stop matching. +- Unfiltered component subscriptions still receive updates. + +Other possible causes: + +- Redis checkpoint was cleared or partially lost. +- `openai-status:initialized` exists while `openai-status:component-statuses` is missing entries. +- OpenAI added a new component. + +## Current State + +- No code change now. +- Monitor upcoming incidents and component updates. +- Compare current OpenAI component IDs with stored Redis component IDs. +- Decide later whether ID-only storage is enough. + +## Future Options + +- Keep ID-based storage if OpenAI component IDs prove stable. +- Store component name alongside ID for easier debugging. +- Add name fallback/alias logic if component IDs change in practice. +- Make component-filtered subscriptions survive ID changes by matching name when ID missing. + +## Unresolved Questions + +- Did OpenAI actually change the component ID? +- Are old component IDs present in Redis but absent from current `summary.json`? +- Should component subscriptions survive ID changes by matching component name?