diff --git a/.github/workflows/docker-build-push.yml b/.github/workflows/docker-build-push.yml index 0b806fa..38bee06 100644 --- a/.github/workflows/docker-build-push.yml +++ b/.github/workflows/docker-build-push.yml @@ -254,9 +254,11 @@ jobs: declare -A SERVICES SERVICES["scraper-api"]="scraper.yml" + SERVICES["dashboard"]="observability.yml" declare -A PATHS PATHS["scraper-api"]="apps/scraper" + PATHS["dashboard"]="infra/dashboard" # Use git config for possible commits git config --local user.email "action@github.com" @@ -265,6 +267,7 @@ jobs: for id in "${!SERVICES[@]}"; do SHOULD_HAVE_RUN=false if [ "${{ needs.changes.outputs['scraper-api'] }}" == "true" ] && [ "$id" == "scraper-api" ]; then SHOULD_HAVE_RUN=true; fi + if [ "${{ needs.changes.outputs['dashboard'] }}" == "true" ] && [ "$id" == "dashboard" ]; then SHOULD_HAVE_RUN=true; fi if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then SHOULD_HAVE_RUN=true; fi diff --git a/docs/add-dapr-service.md b/docs/add-dapr-service.md index 2b264dd..bd48f6f 100644 --- a/docs/add-dapr-service.md +++ b/docs/add-dapr-service.md @@ -40,6 +40,15 @@ services: condition: service_healthy networks: - app-shared-net + depends_on: + dapr-placement: + condition: service_healthy + nats: + condition: service_healthy + otel-collector: + condition: service_started + networks: + - app-shared-net command: - './daprd' - '--app-id=app' @@ -47,9 +56,10 @@ services: - '--dapr-http-port=3500' - '--dapr-grpc-port=50001' - '--placement-host-address=dapr-placement:50005' - - '--resources-path=/components' + - '--config=/dapr/config.yaml' + - '--resources-path=/dapr/components' volumes: - - ../../infra/dapr/components:/components + - ../../infra/dapr:/dapr:ro networks: app-shared-net: diff --git a/docs/add-new-app.md b/docs/add-new-app.md index 6b3be7b..8f2b52a 100644 --- a/docs/add-new-app.md +++ b/docs/add-new-app.md @@ -67,6 +67,8 @@ Tambah di `infra/compose/.yml`: condition: service_healthy nats: condition: service_healthy + otel-collector: + condition: service_started networks: - app-shared-net command: @@ -76,18 +78,21 @@ Tambah di `infra/compose/.yml`: - '--dapr-http-port=3500' - '--dapr-grpc-port=50001' - '--placement-host-address=dapr-placement:50005' - - '--components-path=/components' + - '--config=/dapr/config.yaml' + - '--resources-path=/dapr/components' volumes: - - ../../infra/dapr/components:/components + - ../../infra/dapr:/dapr:ro ``` -Pastikan juga app container punya `depends_on` ke dapr-placement dan nats: +Pastikan juga app container punya `depends_on` ke dapr-placement, nats, dan otel-collector: ```yaml depends_on: dapr-placement: condition: service_healthy nats: condition: service_healthy + otel-collector: + condition: service_started ``` ## 4. Tambahkan route Traefik diff --git a/infra/compose/observability.yml b/infra/compose/observability.yml index 3c06ebb..825dd9d 100644 --- a/infra/compose/observability.yml +++ b/infra/compose/observability.yml @@ -16,9 +16,6 @@ services: - '--config=/etc/otel/config.yml' volumes: - ../../infra/otel/otel-collector-config.yml:/etc/otel/config.yml:ro - depends_on: - jaeger: - condition: service_started # ── Jaeger (Tracing Backend + Built-in UI) ── jaeger: @@ -41,6 +38,7 @@ services: # ── Custom Dashboard (nginx:alpine) ── dashboard: container_name: dashboard + image: ghcr.io/asepharyana/asepharyana-hub/dashboard:latest build: context: ../.. dockerfile: infra/docker/dashboard.Dockerfile diff --git a/infra/nats/nats.conf b/infra/nats/nats.conf index 9a72c97..2d74c93 100644 --- a/infra/nats/nats.conf +++ b/infra/nats/nats.conf @@ -1,15 +1,19 @@ # ── NATS Server Configuration ── + # JetStream jetstream: true -store_dir: /data +store_dir: "/data" # OpenTelemetry tracing -otel: - traces: - exporter: otlp - otlp: - endpoint: otel-collector:4318 +otel { + traces { + exporter: "otlp" + otlp { + endpoint: "otel-collector:4318" insecure: true + } + } +} # HTTP monitoring http_port: 8222