ObjectOS
運維

可觀測性

日誌、請求 id、指標、錯誤、會話與審計日誌。

ObjectOS 的運維既需要基礎設施層訊號,也需要應用層訊號。框架提供 請求 id、指標、錯誤上報和審計原語;由部署方決定把它們匯出到哪裡。

請求標識

每個生產部署都應當傳遞或生成一個請求 id:

X-Request-Id

用它來關聯:

  • 入口日誌;
  • ObjectOS 日誌;
  • 資料庫慢查詢;
  • 錯誤上報;
  • 客戶支援工單。

指標與錯誤

執行時暴露可插拔的指標介面和錯誤上報介面。請將其對接到客戶選定 的系統,例如 Prometheus、OpenTelemetry、Datadog、Sentry 或其他經過 審批的後端。

至少跟蹤:

訊號用途
按路由/狀態碼統計的請求數檢測錯誤激增
請求時延檢測時延迴歸
5xx 錯誤對執行時故障告警
認證失敗發現配置錯誤或攻擊模式
產物/核心快取未命中理解冷啟動行為

最小化 Prometheus 示例

啟用指標服務後,ObjectOS 暴露一個 Prometheus 相容的指標端點:

# prometheus.yml
scrape_configs:
  - job_name: objectos
    metrics_path: /metrics
    static_configs:
      - targets: ['objectos:3000']

可以作為起點的告警規則:

groups:
  - name: objectos
    rules:
      - alert: ObjectOS5xxSpike
        expr: |
          sum(rate(http_requests_total{status=~"5.."}[5m]))
            / sum(rate(http_requests_total[5m])) > 0.02
        for: 5m
        annotations:
          summary: "ObjectOS 5xx rate above 2% for 5 minutes"

      - alert: ObjectOSAuthFailureSpike
        expr: rate(auth_failures_total[5m]) > 5
        for: 10m
        annotations:
          summary: "Sustained auth failure rate — check for misconfiguration or attack"

      - alert: ObjectOSKernelColdStartHigh
        expr: rate(kernel_cache_misses_total[15m]) > 1
        for: 15m
        annotations:
          summary: "Frequent project kernel cold starts — consider raising OS_KERNEL_CACHE_SIZE"

對於 OpenTelemetry,設定 OS_OBS_EXPORTER=otlp 以及 OS_OTLP_ENDPOINT (例如 https://<collector>/otlp),ObjectOS 會以 OTLP 格式發出 trace 與 指標。匯出器預設為 noop(執行時零成本),因此 OTLP 匯出為按需啟用 —— 僅設定端點而不設 OS_OBS_EXPORTER=otlp 不會發出任何資料。本地除錯用 OS_OBS_EXPORTER=consolejson,用 OS_OBS_DEPLOYMENT_ENV 標記部署 (預設 production)。span 的形狀與 請求流程一致。

審計日誌

啟用審計能力後,ObjectOS 將審計記錄寫入 sys_audit_log

審計日誌用於:

  • 許可權敏感的變更;
  • 設定變更;
  • 使用者/會話排查;
  • 整合活動;
  • 拒絕訪問的分析。

在受監管環境中,將審計表在資料庫或儲存層設為僅追加,並定義保留 策略。

Console 診斷

Console 暴露面向運維的功能頁面,例如:

  • 會話;
  • 審計日誌;
  • 通知;
  • 啟用 webhook 時的 Webhook 投遞記錄;
  • 系統與安全總覽儀表盤。

這些頁面面向運維與支援工程師,而不僅僅是開發者。

On this page