Skip to content
Merged
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
9 changes: 7 additions & 2 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,8 @@ jobs:
envs: >-
DB_PASSWORD,GCS_BUCKET,GCS_BACKUP_BUCKET,
KAKAO_CLIENT_ID,KAKAO_CLIENT_SECRET,KAKAO_REDIRECT_URI_PROD,KAKAO_REDIRECT_URI_STAGING,KAKAO_ADMIN_KEY,
JWT_SECRET_KEY,FIREBASE_SERVICE_ACCOUNT_KEY,FCM_FAKE_LATENCY_MS
JWT_SECRET_KEY,FIREBASE_SERVICE_ACCOUNT_KEY,FCM_FAKE_LATENCY_MS,
OTLP_METRICS_ENABLED,OTEL_URL,OTEL_AUTH,OTLP_STEP
script: |
chmod +x /home/ubuntu/cockple/scripts/deploy.sh
bash /home/ubuntu/cockple/scripts/deploy.sh \
Expand All @@ -89,5 +90,9 @@ jobs:
KAKAO_ADMIN_KEY: ${{ secrets.KAKAO_ADMIN_KEY }}
JWT_SECRET_KEY: ${{ secrets.JWT_SECRET_KEY }}
FIREBASE_SERVICE_ACCOUNT_KEY: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_KEY }}
# [부하테스트용] FCM 지연(ms) 토글. GitHub Variable로 관리(미설정 시 빈값→deploy.sh에서 0). PR 없이 값 변경+deploy 재실행으로 on/off.
FCM_FAKE_LATENCY_MS: ${{ vars.FCM_FAKE_LATENCY_MS }}
# 관측성(OTLP) — URL/토글/step은 Variable, 인증 토큰은 Secret
OTLP_METRICS_ENABLED: ${{ vars.OTLP_METRICS_ENABLED }}
OTEL_URL: ${{ vars.OTEL_URL }}
OTEL_AUTH: ${{ secrets.OTEL_AUTH }}
OTLP_STEP: ${{ vars.OTLP_STEP }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,4 @@ k6

### logs ###
logs/
/result-bulkhead-*.json
4 changes: 4 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,10 @@ dependencies {
// flyway
implementation 'org.flywaydb:flyway-core'
implementation 'org.flywaydb:flyway-mysql'

// observability (Actuator + OTLP 메트릭 export)
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'io.micrometer:micrometer-registry-otlp'
}

tasks.named('test') {
Expand Down
5 changes: 5 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,11 @@ services:
SPRING_PROFILES_ACTIVE: staging
LOG_PATH: /logs
FCM_FAKE_LATENCY_MS: ${FCM_FAKE_LATENCY_MS:-0}
# 관측성(Observability) — OTLP 메트릭 push (staging 전용). 미설정 시 off.
OTLP_METRICS_ENABLED: ${OTLP_METRICS_ENABLED:-false}
OTEL_URL: ${OTEL_URL:-}
OTEL_AUTH: ${OTEL_AUTH:-}
OTLP_STEP: ${OTLP_STEP:-1m}
DB_PASSWORD: ${DB_PASSWORD}
GCS_BUCKET: ${GCS_BUCKET}
KAKAO_CLIENT_ID: ${KAKAO_CLIENT_ID}
Expand Down
197 changes: 0 additions & 197 deletions result-bulkhead-before.json

This file was deleted.

4 changes: 4 additions & 0 deletions scripts/deploy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ KAKAO_ADMIN_KEY=${KAKAO_ADMIN_KEY}
JWT_SECRET_KEY=${JWT_SECRET_KEY}
FIREBASE_SERVICE_ACCOUNT_KEY=${FIREBASE_SERVICE_ACCOUNT_KEY}
FCM_FAKE_LATENCY_MS=${FCM_FAKE_LATENCY_MS:-0}
OTLP_METRICS_ENABLED=${OTLP_METRICS_ENABLED:-false}
OTEL_URL=${OTEL_URL:-}
OTEL_AUTH=${OTEL_AUTH:-}
OTLP_STEP=${OTLP_STEP:-1m}
EOF

echo "${FIREBASE_SERVICE_ACCOUNT_KEY}" > /home/ubuntu/cockple/firebase-service-account.json
Expand Down
24 changes: 24 additions & 0 deletions src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,30 @@ async:
fcm:
fake-latency-ms: 0

# 관측성(Observability) — OTLP로 메트릭 push
# 기본 off, staging(및 추후 prod)에서 env로만 켠다.
management:
otlp:
metrics:
export:
enabled: ${OTLP_METRICS_ENABLED:false}
url: ${OTEL_URL:http://localhost:4318}/v1/metrics
step: ${OTLP_STEP:1m}
headers:
Authorization: ${OTEL_AUTH:}
opentelemetry:
resource-attributes:
service.name: ${spring.application.name}
deployment.environment: ${SPRING_PROFILES_ACTIVE:local}
metrics:
distribution:
percentiles-histogram:
http.server.requests: true
endpoints:
web:
exposure:
include: health # 웹 노출 최소화 (메트릭은 OTLP push라 endpoint 불필요)

logging:
level:
org.hibernate.SQL: WARN
Expand Down
Loading