Observability
-
이코에코(Eco²) Agent: LangSmith Telemetry 토큰 추적 보강이코에코(Eco²)/Agent 2026. 1. 27. 08:00
Date: 2026-01-27 (Updated)Author: Claude Code, mangowhoiscloudStatus: CompletedRelated: https://rooftopsnow.tistory.com/203Executive Summaryhttps://docs.langchain.com/langsmith/studio LangSmith Studio - Docs by LangChain docs.langchain.comchat-worker의 모든 LLM 호출 경로에 대한 LangSmith 기반 Observability 시스템을 보강, 점검한 과정입니다.OpenAI와 Gemini 모두 토큰 사용량, 비용, 레이턴시를 자동 추적하며 LangSmith 대시보드에서 실시간 모니터링이 가능합니다.기존 OTE..
-
이코에코(Eco²) Agent #23: Observability - LangSmith + Prometheus 통합이코에코(Eco²)/Agent 2026. 1. 17. 02:28
Feature-level Observability: LangSmith로 노드별 분석, Prometheus로 부하테스트 메트릭항목값작성일2026-01-16버전v1.0시리즈Eco² Agent 시리즈참조 가이드 (Internal)Observability Setup Guide커밋e6fd91e8 (feat: implement LangGraph native streaming with observability) 1. 왜 Observability가 필요한가?1.1 LangGraph 파이프라인의 복잡성Eco² Chat Worker는 10개 이상의 서브에이전트가 동적으로 병렬 라우팅되는 복잡한 파이프라인입니다.사용자 질문 │ ▼┌─────────┐│ intent │ → 9개 Intent 분류└────┬───..
-
이코에코(Eco²) Observability #5: 인덱스 전략 및 라이프사이클 관리이코에코(Eco²)/Observability 2025. 12. 19. 03:03
개요마이크로서비스 환경에서 로그 인덱스를 어떻게 설계할지는 운영 효율성과 비용에 직접적인 영향을 미칩니다.이 글에서는 빅테크(Uber, Google)와 CNCF 권장사항을 바탕으로 인덱스 분리 전략을 수립하고, ILM을 통한 라이프사이클 관리를 다룹니다.목표인덱스 분리 전략 선택 (도메인별 vs 앱/인프라 vs 단일)Fluent Bit 라우팅 설정ILM 정책으로 비용 최적화ECS 필드 기반 서비스 구분현재 클러스터 상태인덱스 현황# 2025-12-18 기준kubectl exec -n logging eco2-logs-es-default-0 -- curl -s "http://localhost:9200/_cat/indices/logs-*?v"index docs.count store.si..
-
분산 트레이싱 트러블슈팅: OpenTelemetry 커버리지 확장이코에코(Eco²)/Troubleshooting 2025. 12. 19. 03:00
시스템 컴포넌트 OTEL 적용개요시스템 컴포넌트(Istio, ArgoCD)에도 분산 추적을 적용하여 trace.id를 로그에 포함.적용 대상시스템OTEL 지원적용 방법결과Istio (Envoy)✅EnvoyFilterAccess log에 trace.id 포함ArgoCD✅ConfigMapJaeger에 트레이스 전송Calico❌미지원-Kubernetes⚠️제한적-1. Istio Access Log with Trace ID문제: ext-authz 거부/404 요청에 trace.id 없음초기 설정에서 %REQ(X-B3-TRACEID)%를 사용했으나, 클라이언트가 헤더를 보내지 않으면 빈 값:# 문제 상황/api/v1/auth/register → 401 (ext-authz 거부) → trace.id: 없음/api/..
-
이코에코(Eco²) Observability #4: 분산 트레이싱 통합이코에코(Eco²)/Observability 2025. 12. 19. 02:37
개요마이크로서비스 환경에서 하나의 요청이 여러 서비스를 거치며 처리됩니다. 이 글에서는 Kiali, Jaeger, OpenTelemetry를 활용하여 서비스 간 호출 관계를 시각화하고, E2E 트랜잭션을 추적하는 방법을 다룹니다.2025-12-18 업데이트: Istio Sidecar와 App OTEL SDK 간 트레이스 연결 완료. B3 Propagator를 통해 동일 traceID로 전체 요청 흐름 추적 가능.목표서비스 토폴로지 시각화: Kiali로 서비스 간 관계 파악분산 트레이싱: Jaeger로 요청 흐름 추적자동 계측: OpenTelemetry로 코드 수정 없이 트레이싱외부 서비스 시각화: OAuth, OpenAI, AWS 등 외부 의존성 표시E2E 트레이스 연결: Istio Sidecar ↔ A..
-
이코에코(Eco²) Observability #3: 도메인별 ECS 구조화 로깅이코에코(Eco²)/Observability 2025. 12. 19. 02:26
개요이번 글에서는 Python/FastAPI 서비스에 ECS(Elastic Common Schema) 기반 구조화된 로깅을 구현하는 전체 과정을 다룹니다. OpenTelemetry와의 연동으로 trace_id를 자동 주입하고, 민감 정보 자동 마스킹을 통해 OWASP 보안 가이드라인을 준수합니다.목표JSON 구조화 로그 출력ECS 8.11 스키마 준수OpenTelemetry trace_id/span_id 자동 주입민감 정보 자동 마스킹 (OWASP 준수)환경별 로그 포맷 전환 (JSON/Text)외부 라이브러리 로그 레벨 제어아키텍처로그 처리 흐름핵심 컴포넌트컴포넌트역할파일ECSJsonFormatterECS 스키마 JSON 포맷터core/logging.pymask_sensitive_data()재귀적 PI..
-
이코에코(Eco²) Observability #2: 로깅 정책 수립이코에코(Eco²)/Observability 2025. 12. 19. 02:20
개요로깅 시스템을 구축했다면, 이제 무엇을, 어떻게, 얼마나 로깅할지 정책을 수립해야 합니다.이 글에서는 빅테크 기업들의 로깅 베스트 프랙티스를 분석하고, 우리 프로젝트에 맞는 정책을 도출하는 과정을 공유합니다.빅테크 로깅 베스트 프랙티스 분석Google SRE핵심 원칙:로그는 이벤트 기록이 아닌 질문에 대한 답이어야 함구조화된 로그로 쿼리 가능성 확보Trace ID로 분산 시스템 추적실천 사항:✅ 요청 ID, trace ID 필수 포함✅ 에러 발생 시 컨텍스트 (입력값, 상태) 기록✅ 비즈니스 메트릭과 로그 연계❌ 민감 정보 로깅 금지❌ 과도한 DEBUG 로그 금지Uber핵심 원칙:High Cardinality 지원: 사용자 ID, 트랜잭션 ID로 검색Log Aggregation: 중앙 집중화된 로그 ..
-
이코에코(Eco²) Observability #1: EFK 파이프라인 구축이코에코(Eco²)/Observability 2025. 12. 19. 01:57
개요이번 글에서는 ECK(Elastic Cloud on Kubernetes) Operator를 사용하여 EFK 스택을 구축하는 전체 과정을 다룹니다.구축 순서인프라 프로비저닝 (Terraform/Ansible)ECK Operator 설치Elasticsearch CR 배포Kibana CR 배포Fluent Bit DaemonSet 배포External Secrets 연동Observability 아키텍처 구조전체 구조도컴포넌트 구성 및 역할컴포넌트배포 방식역할리소스Fluent BitDaemonSet (16 노드)로그 수집, 파싱, ECS 변환, 전송~64MB/노드ElasticsearchStatefulSet (ECK CR)로그 저장, 인덱싱, 검색4GB heap, 50GB diskKibanaDeployment (..