유용한 정보 가져오기
문제를 진단하고 해결하려면 먼저 관련 정보를 수집해야 합니다. 다음 섹션에서는 Kubernetes 또는 Docker 설정에서 이 작업을 수행하는 방법과 유용한 브라우저 정보를 가져오는 방법을 설명합니다. 일반적으로 분석해야 할 주요 서비스는 다음과 같습니다:langsmith-backend: CRUD API 요청, 비즈니스 로직, 프론트엔드 및 SDK의 요청, 수집을 위한 트레이스 준비, 허브 API를 처리합니다.langsmith-platform-backend: 인증, 실행 수집 및 기타 대용량 작업을 처리합니다.langsmith-queue: 들어오는 트레이스 및 피드백, 데이터스토어로의 비동기 수집 및 지속성, 데이터 무결성 검사, 데이터베이스 오류 또는 연결 문제 발생 시 재시도를 처리합니다.
Kubernetes
문제 해결의 첫 번째 단계는 LangSmith 배포에 대한 중요한 디버깅 정보를 수집하는 것입니다. 서비스 로그, 쿠버네티스 이벤트, 컨테이너의 리소스 사용률은 문제의 근본 원인을 식별하는 데 도움이 될 수 있습니다. 관련된 모든 쿠버네티스 정보를 가져와 조사를 위해 폴더에 출력하는 k8s 문제 해결 스크립트를 실행할 수 있습니다. 이 스크립트는 또한 공유를 위해 이 폴더를 zip 파일로 압축합니다. 다음은langsmith 네임스페이스에서 langsmith 배포가 시작되었다고 가정할 때 이 스크립트를 실행하는 예시입니다:
Docker
Docker에서 실행하는 경우 다음 명령을 실행하여 배포 로그를 확인할 수 있습니다:브라우저 오류
브라우저 오류로 나타나는 문제가 발생하는 경우, 주요 정보를 포함할 수 있는 HAR 파일을 검사하는 것도 도움이 될 수 있습니다. HAR 파일을 얻으려면 다양한 브라우저에 대한 간단한 프로세스를 설명하는 이 가이드를 따를 수 있습니다. 그런 다음 Google의 HAR 분석기를 사용하여 조사할 수 있습니다. 또한 디버깅을 돕기 위해 HAR 파일을 LangSmith 팀에 보낼 수도 있습니다.일반적인 문제
DB::Exception: Cannot reserve 1.00 MiB, not enough space: While executing WaitForAsyncInsert. (NOT_ENOUGH_SPACE)
이 오류는 ClickHouse의 디스크 공간이 부족할 때 발생합니다. ClickHouse에 사용 가능한 디스크 공간을 늘려야 합니다.Kubernetes
Kubernetes에서는 ClickHouse PVC의 크기를 늘려야 합니다. 이를 위해 다음 단계를 수행할 수 있습니다:-
PVC의 스토리지 클래스를 가져옵니다:
kubectl get pvc data-langsmith-clickhouse-0 -n <namespace> -o jsonpath='{.spec.storageClassName}' -
스토리지 클래스에 AllowVolumeExpansion: true가 있는지 확인합니다:
kubectl get sc <storage-class-name> -o jsonpath='{.allowVolumeExpansion}'- false인 경우 일부 스토리지 클래스는 볼륨 확장을 허용하도록 업데이트할 수 있습니다.
- 스토리지 클래스를 업데이트하려면
kubectl patch sc <storage-class-name> -p '{"allowVolumeExpansion": true}'를 실행할 수 있습니다. - 실패하는 경우 올바른 설정으로 새 스토리지 클래스를 생성해야 할 수 있습니다.
-
pvc를 편집하여 새 크기로 변경합니다:
kubectl edit pvc data-langsmith-clickhouse-0 -n <namespace>또는kubectl patch pvc data-langsmith-clickhouse-0 '{"spec":{"resources":{"requests":{"storage":"100Gi"}}}}' -n <namespace> -
helm 차트
langsmith_config.yaml을 새 크기(예:100 Gi)로 업데이트합니다. -
clickhouse statefulset을 삭제합니다:
kubectl delete statefulset langsmith-clickhouse --cascade=orphan -n <namespace> - 업데이트된 크기로 helm 차트를 적용합니다 (업그레이드 가이드는 여기에서 확인할 수 있습니다)
-
이제 pvc가 새 크기를 가져야 합니다.
kubectl get pvc및kubectl exec langsmith-clickhouse-0 -- bash -c "df"를 실행하여 확인합니다.
Docker
Docker에서는 ClickHouse 볼륨의 크기를 늘려야 합니다. 이를 위해 다음 단계를 수행할 수 있습니다:- LangSmith 인스턴스를 중지합니다.
docker compose down - bind mount를 사용하는 경우 마운트 포인트의 크기를 늘려야 합니다.
- docker
volume을 사용하는 경우 볼륨/docker에 더 많은 공간을 할당해야 합니다.
error: Dirty database version ‘version’. Fix and force version
이 오류는 ClickHouse 데이터베이스가 마이그레이션과 일관성이 없는 상태일 때 발생합니다. 이전 데이터베이스 버전으로 재설정한 다음 업그레이드/마이그레이션을 다시 실행해야 합니다.Kubernetes
- 이전 버전으로 마이그레이션을 강제합니다. 여기서 version = dirty version - 1입니다.
- 업그레이드/마이그레이션을 다시 실행합니다.
Docker
- 이전 버전으로 마이그레이션을 강제합니다. 여기서 version = dirty version - 1입니다.
- 업그레이드/마이그레이션을 다시 실행합니다.
413 - Request Entity Too Large
이 오류는 요청 크기가 허용되는 최대 크기를 초과할 때 발생합니다. Nginx 구성에서 최대 요청 크기를 늘려야 합니다.Kubernetes
langsmith_config.yaml을 편집하고frontend.maxBodySize값을 늘립니다. 다음과 같을 수 있습니다:
- 클러스터에 변경 사항을 적용합니다.
Details: code: 497, message: default: Not enough privileges. To execute this query, it’s necessary to have the grant CREATE ROW POLICY ON default.feedbacks_rmt
이 오류는 사용자가 Clickhouse에서 행 정책을 생성하는 데 필요한 권한이 없을 때 발생합니다. Docker 배포를 배포할 때 github 리포지토리에서users.xml 파일도 복사해야 합니다. 이는 users.xml 파일에 <access_management> 태그를 추가하여 사용자가 행 정책을 생성할 수 있도록 합니다. 아래는 사용될 것으로 예상되는 기본 users.xml 파일입니다.
users.xml 파일이 포함된 사용자 정의 이미지를 빌드하는 것을 권장합니다.
예시 Dockerfile:
- 사용자 정의 이미지를 빌드합니다.
docker-compose.yaml을 업데이트하여 사용자 정의 이미지를 사용합니다. users.xml 마운트 포인트를 제거해야 합니다.
- LangSmith 인스턴스를 다시 시작합니다.
ClickHouse fails to start up when running a cluster with AquaSec
일부 환경에서 AquaSec이 ClickHouse가 올바르게 시작되는 것을 방해할 수 있습니다. 이는 ClickHouse 파드가 로그를 출력하지 않고 준비 상태로 표시되지 않는 것으로 나타날 수 있습니다. 일반적으로 이는 AquaSec에 의해LD_PRELOAD가 설정되어 ClickHouse를 방해하기 때문입니다. 이를 해결하려면 ClickHouse 배포에 다음 환경 변수를 추가할 수 있습니다:
Kubernetes
langsmith_config.yaml(또는 해당 구성 파일)을 편집하고 AQUA_SKIP_LD_PRELOAD 환경 변수를 설정합니다:
Docker
docker-compose.yaml을 편집하고 AQUA_SKIP_LD_PRELOAD 환경 변수를 설정합니다:
Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.