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