Repositório com dois projetos ativos:
event-storming: transforma imagens de event storming em contexto estruturadoodd-orchestration-v2: transforma o contexto estruturado em plano de observabilidade, Terraform e aplicação nos providers
Hoje, o fluxo recomendado do repositório é:
- processar a imagem no
event-storming/bedrock - usar o
03-standardized-context.jsoncomo entrada doodd-orchestration-v2
event-storming/
bedrock/ # workflow multimodal com Amazon Bedrock
foss/ # variante local/alternativa
odd-orchestration-v2/
src/
generated/
terraform/
terraform-dynatrace/
terraform-grafana/- Node.js 20+
- npm 10+
- Terraform 1.5+
- credenciais AWS com acesso ao Bedrock, se for usar
event-storming/bedrock - credenciais do provider de observabilidade que você quer aplicar no
odd-orchestration-v2
cd event-storming/bedrock
npm install
npm run checkcd odd-orchestration-v2
npm install
npm run checkArquivo: event-storming/bedrock/.env
LANGSMITH_API_KEY é opcional. Sem essa variável, o workflow continua funcionando, apenas sem tracing no LangSmith.
Variáveis mínimas:
AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...
AWS_SESSION_TOKEN=... # opcional
AWS_REGION=us-east-1
BEDROCK_REQUEST_TIMEOUT_MS=3600000
EVENT_STORMING_DEFAULT_MODEL=amazon.nova-lite-v1:0
EVENT_STORMING_OBSERVE_MODEL=amazon.nova-pro-v1:0
EVENT_STORMING_EXTRACT_MODEL=amazon.nova-lite-v1:0
EVENT_STORMING_NORMALIZE_MODEL=amazon.nova-lite-v1:0Arquivo: odd-orchestration-v2/.env
LANGSMITH_API_KEY não é necessária para a execução atual do odd-orchestration-v2.
Variáveis mínimas para geração com Bedrock:
AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...
AWS_SESSION_TOKEN=... # opcional
AWS_REGION=us-east-1
BEDROCK_REQUEST_TIMEOUT_MS=3600000
ODD_ORCHESTRATION_MODEL=amazon.nova-lite-v1:0
ODD_ORCHESTRATION_CATEGORIZE_MODEL=amazon.nova-lite-v1:0
ODD_ORCHESTRATION_SLO_MODEL=amazon.nova-lite-v1:0
ODD_ORCHESTRATION_PLAN_MODEL=amazon.nova-lite-v1:0Variáveis por provider:
Datadog:
DD_API_KEY=...
DD_APP_KEY=...
DD_SITE=datadoghq.com
DD_API_BASE_URL=https://api.datadoghq.com
DD_EVENT_BATCH_SIZE=10Dynatrace:
DYNATRACE_ENV_URL=https://SEU-AMBIENTE.live.dynatrace.com
DYNATRACE_API_TOKEN=...
DYNATRACE_PLATFORM_TOKEN=...
DYNATRACE_ENTITY_SELECTOR=... # opcional
DYNATRACE_MANAGEMENT_ZONE=... # opcional
DYNATRACE_EVENT_TIMEOUT_MINUTES=15Grafana:
GRAFANA_URL=...
GRAFANA_AUTH=...
GRAFANA_METRICS_URL=...
GRAFANA_METRICS_USER=...
GRAFANA_METRICS_TOKEN=...No event-storming/bedrock:
cd event-storming/bedrock
npm run start -- \
--input-image samples/ODD-Payments-EventStorming.png \
--output-dir ./generated/payments \
--env dev \
--provider bedrockSaídas principais:
01-image-observation.json02-candidate-events.json03-standardized-context.json04-workbook.jsonrecognized-event-storming.xlsx
Retomadas suportadas:
Do extract:
npm run start -- \
--input-image samples/ODD-Payments-EventStorming.png \
--output-dir ./generated/payments \
--provider bedrock \
--start-from extract \
--image-observation ./generated/payments/01-image-observation.jsonDo normalize:
npm run start -- \
--input-image samples/ODD-Payments-EventStorming.png \
--output-dir ./generated/payments \
--provider bedrock \
--start-from normalize \
--candidate-context ./generated/payments/02-candidate-events.jsonNo odd-orchestration-v2:
Exemplo completo com o contexto gerado pelo event-storming/bedrock:
cd odd-orchestration-v2
npm run workflow -- \
--input ../event-storming/bedrock/generated/payments/03-standardized-context.json \
--dashboard-title "ODD - Payments - v4" \
--dashboard-key "payments-acompanhamento-v4" \
--env dev \
--provider datadogProviders suportados:
datadogdynatracegrafana
Exemplo completo para Dynatrace:
cd odd-orchestration-v2
npm run workflow -- \
--input ../event-storming/bedrock/generated/payments/03-standardized-context.json \
--dashboard-title "ODD - Payments - Dynatrace" \
--dashboard-key "payments-acompanhamento-dynatrace" \
--env dev \
--provider dynatrace \
--end-at applyExemplo completo para Datadog com rajadas:
cd odd-orchestration-v2
npm run workflow -- \
--input ../event-storming/bedrock/generated/payments/03-standardized-context.json \
--dashboard-title "ODD - Payments - v4" \
--dashboard-key "payments-acompanhamento-v4" \
--env dev \
--provider datadog \
--burst-count 6 \
--burst-interval-ms 10000 \
--copies-per-event 4 \
--randomize-event-countsnpm run workflow
npm run applier
npm run checkinputcategorizeslosplanterraformslo_terraformapply
Parar no plan:
npm run workflow -- \
--input ../event-storming/bedrock/generated/payments/03-standardized-context.json \
--dashboard-title "ODD - Payments - v4" \
--dashboard-key "payments-acompanhamento-v4" \
--provider datadog \
--end-at planExecutar só terraform a partir de um plan.json:
npm run workflow -- \
--plan-file ./generated/<dashboard-key>/<run-id>/plan.json \
--dashboard-key "<dashboard-key>" \
--provider datadog \
--start-from terraform \
--end-at terraformExecutar só apply a partir de um plan.json:
npm run workflow -- \
--plan-file ./generated/<dashboard-key>/<run-id>/plan.json \
--dashboard-key "<dashboard-key>" \
--provider dynatrace \
--start-from apply \
--end-at applyPor execução:
generated/<dashboard-key>/<run-id>/
Arquivos principais:
rows.jsoncategorized-events.jsonslo-suggestions.jsonplan.jsoncustom-events.json<provider>-dashboard.auto.tf.json<provider>-slos.auto.tf.jsonquando houver<provider>-bundle.auto.tf.jsondashboard-metadata.jsonapply-report.jsonquandoapplyfor executado
Workspace Terraform isolado:
generated/terraform-workspaces/<provider>/<dashboard-key>/
cd event-storming/bedrock
npm install
npm run start -- \
--input-image samples/ODD-Payments-EventStorming.png \
--output-dir ./generated/payments \
--env dev \
--provider bedrock
cd ../../odd-orchestration-v2
npm install
npm run workflow -- \
--input ../event-storming/bedrock/generated/payments/03-standardized-context.json \
--dashboard-title "ODD - Payments - v4" \
--dashboard-key "payments-acompanhamento-v4" \
--env dev \
--provider datadog- O
event-storming/fossexiste no repositório, mas o caminho principal hoje continua sendoevent-storming/bedrock. - O
odd-orchestration-v2é o orchestrator ativo do repo. - O
odd-orchestratorlegado não é mais o ponto de entrada recomendado deste README.