Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,9 @@ Goreman exposes services on the following ports:
| Redis | 6379 | Cache & events |
| PostgreSQL | 5432 | Database |
| Pulsar | 6650 | Message broker |
| OTEL Collector gRPC | 4317 | OTLP ingest |
| OTEL Collector HTTP | 4318 | OTLP ingest |
| Jaeger UI | 16686 | Trace visualization |

## Documentation

Expand Down
10 changes: 9 additions & 1 deletion _local/binoculars/config-auth.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
httpPort: 8084
grpcPort: 50053
metricsPort: 9007
observability:
enabled: true
exporter:
endpoint: "http://localhost:4318"
protocol: "http/protobuf"
traces:
sampler: "parent_based_trace_id_ratio"
samplerArg: 1.0
application:
clusterId: local-cluster
kubernetes:
Expand All @@ -24,4 +32,4 @@ auth:
cancel_any_jobs: ["admins"]
reprioritize_any_jobs: ["admins"]
watch_all_events: ["admins"]
execute_jobs: ["admins", "executors"]
execute_jobs: ["admins", "executors"]
8 changes: 8 additions & 0 deletions _local/binoculars/config.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
httpPort: 8084
grpcPort: 50053
metricsPort: 9007
observability:
enabled: true
exporter:
endpoint: "http://localhost:4318"
protocol: "http/protobuf"
traces:
sampler: "parent_based_trace_id_ratio"
samplerArg: 1.0
application:
clusterId: local-cluster
kubernetes:
Expand Down
53 changes: 38 additions & 15 deletions _local/compose/full.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,8 @@ services:
PULSAR_PREFIX_allowAutoTopicCreation: "true"
PULSAR_PREFIX_allowAutoTopicCreationType: non-partitioned
PULSAR_PREFIX_autoSkipNonRecoverableData: "true"
entrypoint: sh -c "bin/apply-config-from-env.py conf/standalone.conf && bin/pulsar standalone"
entrypoint: sh -c "bin/apply-config-from-env.py conf/standalone.conf &&
bin/pulsar standalone"
ports:
- "6650:6650"
- "8090:8080"
Expand All @@ -88,6 +89,28 @@ services:
retries: 10
start_period: 30s

jaeger:
container_name: jaeger
image: ${JAEGER_IMAGE:-jaegertracing/all-in-one:1.76.0}
environment:
- COLLECTOR_OTLP_ENABLED=true
ports:
- "16686:16686" # Jaeger UI
restart: unless-stopped

otel-collector:
container_name: otel-collector
image: ${OTEL_IMAGE:-otel/opentelemetry-collector-contrib:0.154.0}
command: ["--config=/etc/otelcol-contrib/config.yaml"]
volumes:
- ../otel/collector-config.yaml:/etc/otelcol-contrib/config.yaml:ro
ports:
- "4317:4317" # OTLP gRPC
- "4318:4318" # OTLP HTTP
restart: unless-stopped
depends_on:
- jaeger

# =========================================================
# Database migrations (run once, then exit)
# =========================================================
Expand All @@ -96,7 +119,7 @@ services:
container_name: scheduler-migration
image: ${ARMADA_IMAGE:-gresearch/armada-bundle}:${ARMADA_IMAGE_TAG:-latest}
depends_on:
postgres: { condition: service_healthy }
postgres: {condition: service_healthy}
volumes:
- ../scheduler/config.yaml:/config/config.yaml:ro
environment:
Expand All @@ -108,7 +131,7 @@ services:
container_name: lookout-migration
image: ${ARMADA_IMAGE:-gresearch/armada-lookout-bundle}:${ARMADA_IMAGE_TAG:-latest}
depends_on:
postgres: { condition: service_healthy }
postgres: {condition: service_healthy}
volumes:
- ../lookout/config.yaml:/config/config.yaml:ro
environment:
Expand All @@ -123,7 +146,7 @@ services:
container_name: scheduler
image: ${ARMADA_IMAGE:-gresearch/armada-bundle}:${ARMADA_IMAGE_TAG:-latest}
depends_on:
scheduler-migration: { condition: service_completed_successfully }
scheduler-migration: {condition: service_completed_successfully}
volumes:
- ../scheduler/config.yaml:/config/config.yaml:ro
environment:
Expand All @@ -140,8 +163,8 @@ services:
container_name: scheduleringester
image: ${ARMADA_IMAGE:-gresearch/armada-bundle}:${ARMADA_IMAGE_TAG:-latest}
depends_on:
scheduler-migration: { condition: service_completed_successfully }
pulsar: { condition: service_healthy }
scheduler-migration: {condition: service_completed_successfully}
pulsar: {condition: service_healthy}
volumes:
- ../scheduleringester/config.yaml:/config/config.yaml:ro
environment:
Expand All @@ -161,9 +184,9 @@ services:
- "50051:50051"
- "8081:8081"
depends_on:
lookout-migration: { condition: service_completed_successfully }
pulsar: { condition: service_healthy }
redis: { condition: service_healthy }
lookout-migration: {condition: service_completed_successfully}
pulsar: {condition: service_healthy}
redis: {condition: service_healthy}
volumes:
- ../server/config.yaml:/config/config.yaml:ro
environment:
Expand All @@ -182,7 +205,7 @@ services:
extra_hosts:
- "host.docker.internal:host-gateway"
depends_on:
scheduler: { condition: service_started }
scheduler: {condition: service_started}
volumes:
- ../executor/config.yaml:/config/config.yaml:ro
- ../../.kube/internal:/.kube:ro
Expand All @@ -196,8 +219,8 @@ services:
container_name: eventingester
image: ${ARMADA_IMAGE:-gresearch/armada-bundle}:${ARMADA_IMAGE_TAG:-latest}
depends_on:
pulsar: { condition: service_healthy }
redis: { condition: service_healthy }
pulsar: {condition: service_healthy}
redis: {condition: service_healthy}
volumes:
- ../eventingester/config.yaml:/config/config.yaml:ro
environment:
Expand All @@ -211,8 +234,8 @@ services:
container_name: lookoutingester
image: ${ARMADA_IMAGE:-gresearch/armada-lookout-bundle}:${ARMADA_IMAGE_TAG:-latest}
depends_on:
lookout-migration: { condition: service_completed_successfully }
pulsar: { condition: service_healthy }
lookout-migration: {condition: service_completed_successfully}
pulsar: {condition: service_healthy}
volumes:
- ../lookoutingester/config.yaml:/config/config.yaml:ro
environment:
Expand All @@ -229,7 +252,7 @@ services:
ports:
- "8089:8089"
depends_on:
lookout-migration: { condition: service_completed_successfully }
lookout-migration: {condition: service_completed_successfully}
volumes:
- ../lookout/config.yaml:/config/config.yaml:ro
environment:
Expand Down
25 changes: 24 additions & 1 deletion _local/compose/stack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,8 @@ services:
PULSAR_PREFIX_allowAutoTopicCreation: "true"
PULSAR_PREFIX_allowAutoTopicCreationType: non-partitioned
PULSAR_PREFIX_autoSkipNonRecoverableData: "true"
entrypoint: sh -c "bin/apply-config-from-env.py conf/standalone.conf && bin/pulsar standalone"
entrypoint: sh -c "bin/apply-config-from-env.py conf/standalone.conf &&
bin/pulsar standalone"
ports:
- "6650:6650"
- "8090:8080"
Expand Down Expand Up @@ -94,3 +95,25 @@ services:
# No healthcheck on purpose: keycloak's realm import + warmup is slower than
# `docker compose up --wait` is willing to block for. `mage dev:up auth` polls the
# realm endpoint via waitForKeycloak before starting goreman.

jaeger:
container_name: jaeger
image: ${JAEGER_IMAGE:-jaegertracing/all-in-one:1.76.0}
environment:
- COLLECTOR_OTLP_ENABLED=true
ports:
- "16686:16686" # Jaeger UI
restart: unless-stopped

otel-collector:
container_name: otel-collector
image: ${OTEL_IMAGE:-otel/opentelemetry-collector-contrib:0.154.0}
command: ["--config=/etc/otelcol-contrib/config.yaml"]
volumes:
- ../otel/collector-config.yaml:/etc/otelcol-contrib/config.yaml:ro
ports:
- "4317:4317" # OTLP gRPC
- "4318:4318" # OTLP HTTP
restart: unless-stopped
depends_on:
- jaeger
8 changes: 8 additions & 0 deletions _local/eventingester/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,14 @@ pulsar:
jobsetEventsTopic: "events"
subscriptionName: "events-ingester"
metricsPort: 9004
observability:
enabled: true
exporter:
endpoint: "http://localhost:4318"
protocol: "http/protobuf"
traces:
sampler: "parent_based_trace_id_ratio"
samplerArg: 1.0
metrics:
redis:
enabled: true
Expand Down
8 changes: 8 additions & 0 deletions _local/executor/config-auth.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@ executorApiConnection:
clientId: "armada-executor"
clientSecret: "executor-secret"
scopes: ["profile", "email"]
observability:
enabled: true
exporter:
endpoint: "http://localhost:4318"
protocol: "http/protobuf"
traces:
sampler: "parent_based_trace_id_ratio"
samplerArg: 1.0
metric:
port: 9002
application:
Expand Down
8 changes: 8 additions & 0 deletions _local/executor/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@ httpPort: 8082
executorApiConnection:
armadaUrl: "localhost:50052"
forceNoTls: true
observability:
enabled: true
exporter:
endpoint: "http://localhost:4318"
protocol: "http/protobuf"
traces:
sampler: "parent_based_trace_id_ratio"
samplerArg: 1.0
metric:
port: 9002
application:
Expand Down
8 changes: 8 additions & 0 deletions _local/lookout/config-auth.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
apiPort: 8089
metricsPort: 9003
observability:
enabled: true
exporter:
endpoint: "http://localhost:4318"
protocol: "http/protobuf"
traces:
sampler: "parent_based_trace_id_ratio"
samplerArg: 1.0
corsAllowedOrigins:
- "http://localhost:3000"
- "http://localhost:8089"
Expand Down
8 changes: 8 additions & 0 deletions _local/lookout/config.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
apiPort: 8089
metricsPort: 9003
observability:
enabled: true
exporter:
endpoint: "http://localhost:4318"
protocol: "http/protobuf"
traces:
sampler: "parent_based_trace_id_ratio"
samplerArg: 1.0
corsAllowedOrigins:
- "http://localhost:3000"
- "http://localhost:8089"
Expand Down
8 changes: 8 additions & 0 deletions _local/lookoutingester/config.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
metricsPort: 9005
observability:
enabled: true
exporter:
endpoint: "http://localhost:4318"
protocol: "http/protobuf"
traces:
sampler: "parent_based_trace_id_ratio"
samplerArg: 1.0
postgres:
connection:
host: localhost
Expand Down
23 changes: 23 additions & 0 deletions _local/otel/collector-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318

processors:
batch:

exporters:
otlp/jaeger:
endpoint: jaeger:4317
tls:
insecure: true

service:
pipelines:
traces:
receivers: [otlp]
processors: [batch]
exporters: [otlp/jaeger]
8 changes: 8 additions & 0 deletions _local/scheduler/config-auth.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@ grpc:
port: 50052
tls:
enabled: false
observability:
enabled: true
exporter:
endpoint: "http://localhost:4318"
protocol: "http/protobuf"
traces:
sampler: "parent_based_trace_id_ratio"
samplerArg: 1.0
auth:
anonymousAuth: true
permissionGroupMapping:
Expand Down
8 changes: 8 additions & 0 deletions _local/scheduler/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@ grpc:
port: 50052
tls:
enabled: false
observability:
enabled: true
exporter:
endpoint: "http://localhost:4318"
protocol: "http/protobuf"
traces:
sampler: "parent_based_trace_id_ratio"
samplerArg: 1.0
auth:
anonymousAuth: true
permissionGroupMapping:
Expand Down
8 changes: 8 additions & 0 deletions _local/scheduleringester/config.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
metrics:
port: 9006
observability:
enabled: true
exporter:
endpoint: "http://localhost:4318"
protocol: "http/protobuf"
traces:
sampler: "parent_based_trace_id_ratio"
samplerArg: 1.0
postgres:
connection:
host: localhost
Expand Down
8 changes: 8 additions & 0 deletions _local/server/config-auth.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
httpPort: 8081
grpcPort: 50051
metricsPort: 9000
observability:
enabled: true
exporter:
endpoint: "http://localhost:4318"
protocol: "http/protobuf"
traces:
sampler: "parent_based_trace_id_ratio"
samplerArg: 1.0
corsAllowedOrigins:
- "http://localhost:3000"
- "http://localhost:8089"
Expand Down
8 changes: 8 additions & 0 deletions _local/server/config.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
httpPort: 8081
grpcPort: 50051
metricsPort: 9000
observability:
enabled: true
exporter:
endpoint: "http://localhost:4318"
protocol: "http/protobuf"
traces:
sampler: "parent_based_trace_id_ratio"
samplerArg: 1.0
corsAllowedOrigins:
- "http://localhost:3000"
- "http://localhost:8089"
Expand Down
Loading
Loading