Datadog Monitor 探索を Module Runner 化し chargeflow を導入#32
Merged
Conversation
Extend the module contract with ObservabilityRef so observability modules can return lane-specific evidence without a generic refs field. Co-authored-by: Cursor <cursoragent@cursor.com>
Implement hado-datadog-pup as a bundled module that lists Datadog monitors via pup, matches discovery criteria, and returns observability monitor refs through the module runner contract. Co-authored-by: Cursor <cursoragent@cursor.com>
Drop internal/integration/datadog in favor of the pup-based module wrapper and update Makefile to build the bundled executable. Co-authored-by: Cursor <cursoragent@cursor.com>
Rename normalized coverage values to Measurement and keep validation in the coverage domain while modules emit values through that model. Co-authored-by: Cursor <cursoragent@cursor.com>
Add chargeflow orchestration for coverage and observability domains, remove --datadog-discover from charge, and thin cmd/hado/charge down to parse, execute, save, and print summary. Co-authored-by: Cursor <cursoragent@cursor.com>
Add an always-applied Cursor rule that keeps domain packages free of adapter, module runner, and concrete provider dependencies. Co-authored-by: Cursor <cursoragent@cursor.com>
Document automatic Datadog monitor discovery via hado-datadog-pup, chargeflow domain chargers, and the removal of --datadog-discover. Co-authored-by: Cursor <cursoragent@cursor.com>
Use observabilitycharge alongside coveragecharge so chargeflow domain charger imports stay symmetric in cmd/hado/charge. Co-authored-by: Cursor <cursoragent@cursor.com>
Remove --coverage-module and the coverage charger module override so charge selects modules from evidence.coverage.module like observability uses manifest discovery config. Co-authored-by: Cursor <cursoragent@cursor.com>
Replace single-resource discovery with set sync: match all monitors and SLOs via hado_tags, services (OR), and env, replace auto refs each charge, and add slo.discover via pup. Split the datadog module into monitor.go, slo.go, and discover.go; update manifest schema and docs. Co-authored-by: Cursor <cursoragent@cursor.com>
Split behavioral specs from design exploration docs, remove legacy stubs and implementation-status, and update cross-links plus doc-sync guidance. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Align the orchestration package name with the hado charge CLI phase and update imports, docs, and Cursor rules. Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
internal/integration/datadog(公式 SDK)からmodules/datadog/hado-datadog-pup(pupCLI 経由)の Module Runner 実装へ移行したinternal/chargeflowを導入し、cmd/hado/chargeを domain charger 駆動の薄い CLI adapter に整理したhado charge --datadog-discoverと--coverage-moduleを廃止し、manifest 宣言のみで module を選ぶ(coverage / observability 対称)services[]OR、hado_tags/envAND、複数マッチ可、0 件は失敗、manualrefs は保持・autoは全置換)internal/coverageを adapter 非依存の domain model(Measurement)として整理し、単方向依存ルールを Cursor rule に追加したdocs/spec/(振る舞い・契約)とdocs/design/(設計検討)に再構成し、重複 stub とimplementation-status.mdを削除した主な変更
Charge / chargeflow
chargeflow.Executeが coverage / observability の各Chargerを順に実行evidence.coverage.moduleのみ参照(CLI override なし)discovery.datadogに応じて Monitor / SLO lane を chargeDatadog module
monitor.go/slo.go/discover.goに分割DatadogDiscovery:hado_tags,services[],env(name_contains/ 単一serviceは削除)refs(discovery_type: auto)へ書き戻しドキュメント
docs/spec/docs/design/docs/overview.mdTest plan
./.tools/go/bin/go test ./...make lint/ pre-push(yamllint, markdownlint, go vet)make readiness-check(ローカルにgobceが必要)hado charge --manifest hado.yamlで coverage / observability の自動 charge が期待どおり動くことevidence.observability.monitor.discovery.datadogがある場合、Datadog 認証とpupで Monitor refs が同期されることobservability.slo_existsgate + SLO discovery 設定がある場合、SLO refs も同期されること--datadog-discover/--coverage-moduleフラグが存在しないこと