Skip to content

Observability Linker MVP: manifest レーン化と Datadog monitor 自動解決#29

Merged
keyskey merged 14 commits into
mainfrom
feat/observability-linker-mvp
May 25, 2026
Merged

Observability Linker MVP: manifest レーン化と Datadog monitor 自動解決#29
keyskey merged 14 commits into
mainfrom
feat/observability-linker-mvp

Conversation

@keyskey

@keyskey keyskey commented May 25, 2026

Copy link
Copy Markdown
Owner

概要

Observability Linker の MVP として、evidence.observabilityslo / monitor / dashboard の役割別レーンに再設計し、各レーンで refsdiscovery_type: manual|auto)・任意 providerdiscovery を扱えるようにした。hado charge --datadog-discover で Datadog モニターを探索し、monitor.refsdiscovery_type: auto を書き込む。gate / fire は各レーンの refs[].url の存在で observability.*_exists を判定する。

あわせて internal/manifest をドメイン別ファイル構成に整理し、参考 YAML 生成を refdoc/ サブパッケージへ分離した。未実装だった observability.log レーンは削除し、構造化ログ・PII マスキング等は将来 Compliance / Security で扱う方針を docs に明記した。

主な変更

Manifest スキーマ

  • 複数形リスト(slos / monitors 等)→ 単数レーン(slo / monitor / dashboard
  • refs[] + discovery_type: manual|auto に統一(手入力と charge 自動解決を同一列で管理)
  • discoverdiscovery にリネーム
  • YAML 配列だけの省略形(= refs 列、discovery_type 省略時 manual)を observability_yaml.go でサポート

CLI / gate

  • hado charge --datadog-discover: monitor.discovery.datadog を読み、ちょうど 1 件マッチ時に monitor.refs を upsert
  • internal/gate / cmd/hado/fire: slo / monitor / dashboard の existence ゲートをレーン refs ベースに更新

internal/manifest 再構成

  • types.go(型のみ)、io.gocoverage.go / operations.go / observability.go / infra.go / release.go(gate 向けヘルパ)
  • refdoc/field_docs.go, generate.go, paths.go)で参考 YAML 生成
  • internal/manifest/README.md に設計ポリシーを追加

ドキュメント

  • docs/observability-readiness.md 新規
  • docs/hado.manifest.reference.yaml 再生成
  • docs/implementation-status.md 等を実装に同期

テスト

  • go test ./...
  • pre-push: yamllint, markdownlint, go vet

マージ後の注意

  • 既存 manifest で旧キー(slos / monitors / discover 等)を使っている場合は、新スキーマ(slo / monitor / discovery / refs)へ移行が必要
  • Datadog 自動解決には DD_API_KEY / DD_APP_KEY(任意 DD_SITE)が必要。manifest には API キーを書かない

Made with Cursor

keyskey and others added 14 commits May 25, 2026 22:59
Replace plural link lists (slos/monitors/dashboards) with singular
lanes (slo/monitor/dashboard/log), unified refs[], discovery_type,
and discovery.datadog criteria for charge.

Co-authored-by: Cursor <cursoragent@cursor.com>
Update field_docs and refyaml sample paths for refs, discovery_type,
and discovery.datadog, then regenerate hado.manifest.reference.yaml.

Co-authored-by: Cursor <cursoragent@cursor.com>
Read slo/monitor/dashboard existence from role lane helpers and update
gate messages and fire tests for the refs-based manifest shape.

Co-authored-by: Cursor <cursoragent@cursor.com>
Discover exactly one monitor via monitor.discovery.datadog, upsert an
auto ref in monitor.refs, and fail without writing manifest on 0/N matches.

Co-authored-by: Cursor <cursoragent@cursor.com>
Document refs/discovery manifest shape, charge --datadog-discover flow,
and update README, implementation-status, and related design docs.

Co-authored-by: Cursor <cursoragent@cursor.com>
Align custom UnmarshalYAML file naming with observability_test.go and
other domain-centric manifest sources.

Co-authored-by: Cursor <cursoragent@cursor.com>
…LaneEvidence

Drop the Role suffix so nested observability types follow the same
Evidence naming pattern as ReleaseAutomationEvidence and other domains.

Co-authored-by: Cursor <cursoragent@cursor.com>
Add coverage, operations, observability, infra, and release helpers;
merge load/write into io.go; rename path and scaffold files; keep
types.go struct-only.

Co-authored-by: Cursor <cursoragent@cursor.com>
Route operations, release, and infra metrics through manifest
ForGate helpers instead of inline TrimSpace in fire.

Co-authored-by: Cursor <cursoragent@cursor.com>
Consolidate tests per evidence domain plus io/path/scaffold; move
reference YAML generation to internal/manifest/refdoc.

Co-authored-by: Cursor <cursoragent@cursor.com>
Update doc.go layout table, internal-go-packages rule, implementation
status, and regenerate reference YAML header for refdoc/field_docs.go.

Co-authored-by: Cursor <cursoragent@cursor.com>
Document file roles, gate-to-domain mapping, naming rules, and refdoc
workflow so future manifest changes stay on the established rails.

Co-authored-by: Cursor <cursoragent@cursor.com>
Log PRR checks belong under compliance/security later; drop the unused
placeholder lane from types, refdoc, and generated reference YAML.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@keyskey keyskey self-assigned this May 25, 2026
@keyskey keyskey merged commit 8869f3a into main May 25, 2026
2 checks passed
@keyskey keyskey deleted the feat/observability-linker-mvp branch May 25, 2026 15:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant