스트리밍은 대부분의 브라우저와
Developer 앱에서 사용할 수 있습니다.
-
데이터베이스 활동 모니터링 및 최적화에 CloudKit 콘솔 사용하기
CloudKit Console의 새로운 옵저버빌리티 기능을 소개합니다. Telemetry(원격 측정)와 Logging(로깅)을 사용하여 문제를 해결하고 앱을 최적화하는 방법을 알아보세요. 애플리케이션 동작을 모니터링하는 경고와 가장 중요한 컨테이너 이벤트의 최신 상태 정보를 담은 알림을 설정하는 방법을 설명합니다. 이 세션을 최대한 활용하려면 먼저 CloudKit 컨테이너에 대한 지식을 숙지하는 것이 좋습니다.
챕터
- 0:00 - Introduction
- 1:24 - Notifications
- 4:06 - Telemetry
- 7:13 - Logging
- 9:26 - Alerts
리소스
관련 비디오
WWDC22
WWDC20
-
다운로드
안녕하세요 Christopher Ward입니다 iCloud Developer Experience 팀의 엔지니어입니다
CloudKit Console의 Database 애플리케이션은 CloudKit 컨테이너에서 데이터를 검사하고 데이터베이스 스키마를 관리할 수 있는 도구입니다
새로운 기능과 향상된 기능을 공유할 수 있게 되어 기쁩니다 CloudKit 컨테이너의 중요한 변경 사항과 강력한 디버깅 도구에 대한 최신 소식을 확인하면 앱에서 CloudKit을 어떻게 사용하는지 이해하실 수 있습니다
Developer Notifications로 어떻게 CloudKit 컨테이너에서 발생하는 변경 사항을 알 수 있는지 살펴보겠습니다
알림 설정을 구성하여 어떻게 팀의 CloudKit 사용에 맞춤화된 알림을 제공할 수 있는지 알아봅니다
그런 다음 CloudKit Console의 Telemetry 도구 내에서 제공되는 기능이 얼마나 강력한지 설명하고 앱의 CloudKit 사용을 이해하실 수 있도록 안내하겠습니다
CloudKit Console Logs를 사용해 어떻게 개인정보를 보호하는 방식으로 앱이 CloudKit 컨테이너와 상호작용하는지를 살펴볼 수 있는지 알아보겠습니다
마지막으로, 앱의 원격 측정 데이터에 기반하여 맞춤형 알림을 생성하는 방법을 살펴보겠습니다
여러분이 지정하는 조건이 CloudKit 컨테이너에서 감지되는 경우 알림을 받을 수 있습니다
알림을 사용하면 CloudKit 컨테이너에서 주요 이벤트가 발생하는 경우 명확히 알 수 있습니다 알림은 중요한 맥락 정보와 함께 전송됩니다
따라서 그 어느 때보다 쉽게 앱의 문제를 인지하고 해결할 수 있습니다
저는 팀원들과 함께 한 앱을 개발하고 있습니다
이 앱은 CloudKit을 사용해 데이터를 iCloud에 동기화합니다
저희는 CloudKit Console을 사용해 스키마를 관리하며 CloudKit에 저장된 데이터로 작업합니다
CloudKit Console에서 알림을 보여 드리겠습니다 상단 헤더에 있는 알림 종 모양 아이콘이 CloudKit Developer Notifications의 위치입니다
종 모양 아이콘을 클릭하면 내가 받은 알림 목록이 표시됩니다 이 알림은 자동으로 수신되며 CloudKit 컨테이너의 상태와 활동에 대한 업데이트 사항을 확인할 수 있는 가장 빠른 방법입니다 CloudKit Developer Notifications는 다양한 이벤트에 사용 가능하며, 확인할 수 있는 최신 소식에는 데이터베이스 알림 스키마 변경, 프로모션, 재설정 인증 토큰 상태 등이 있습니다 알림 하나를 클릭하면 콘솔의 관련 섹션으로 이동하며 여기서 필요한 맥락이 제공됩니다
스키마 변경 알림을 클릭하면 Schema History 페이지로 이동하며 콘솔의 이 새로운 페이지에는 시간 경과에 따른 팀의 컨테이너 스키마 변경 사항이 자세히 표시됩니다 또한 어떤 알림을 수신하고 어떻게 알림을 받을지를 맞춤화할 수도 있습니다
콘솔에서 알림 설정이 어떻게 구성되는지 보여 드리겠습니다 사용자 메뉴를 열고 Settings를 클릭합니다
Notifications 섹션을 클릭하면 알림에 대한 구성 옵션 목록이 표시됩니다
Web 카테고리에 대한 알림이 선택되어 있으면 알림이 CloudKit Console 내에 자동으로 표시됩니다 Service Updates와 Database Alerts에 대한 이메일 알림을 활성화하기 위해 각 제목 옆의 체크박스를 클릭합니다 이제 콘솔을 사용하지 않을 때에도 이러한 알림을 받을 수 있습니다 이렇게 하면 필요할 때 즉시 조치를 취할 수 있습니다
알림을 현재 작업 중인 앱과 관련된 컨테이너로 제한하는 것이 중요합니다
개별 컨테이너별로 알림을 활성화/비활성화할 수 있습니다 Manage Containers를 토글하여 켜고 알림을 받을 컨테이너를 명시적으로 선택합니다 이 경우에는 제 예제 컨테이너입니다 그러면 목록에서 선택된 컨테이너에 대해서만 알림을 받고 이전 앱 테스트 시 사용했던 컨테이너에 대해서는 받지 않죠 CloudKit Console의 Telemetry는 앱과 CloudKit 컨테이너의 상호작용을 시각화합니다
Telemetry를 사용해 현재 CloudKit 활동을 이해하고 다양한 지표 전반에 걸쳐 추세를 관찰합니다 예를 들면 요청, 오류 지연 시간, 대역폭 등입니다
CloudKit Console로 돌아가겠습니다
알림 종 모양 아이콘에 업데이트된 배지가 있네요 새로운 알림을 수신했음을 알려 줍니다
종 모양 아이콘을 클릭하여 알림 패널을 엽니다
목록에 표시된 알림을 통해 제 컨테이너에 대해 데이터베이스 알림이 트리거되었음을 알 수 있죠
이 알림은 제 컨테이너의 총 CloudKit 오류 수가 일정 기준을 초과하는 경우 제게 알리도록 구성되어 있습니다
해당 알림을 클릭하면 알림 세부 정보 페이지로 이동하며 여기서 오류 증가의 원인을 조사하기 시작합니다 알림에서 이 페이지로 이동하면서 관련된 기간으로 범위를 좁혔고 알림 조건이 충족된 구체적인 시점을 표시했습니다
제 앱은 여러 Apple 플랫폼에서 실행됩니다 Group By 선택기를 클릭하고 Group By를 Platform으로 변경하면 그래프가 수정되어 플랫폼에 따른 그룹으로 오류가 분류됩니다 이것은 플랫폼 간의 데이터 차이를 파악할 수 있는 빠른 방법입니다 제 앱은 Apple Watch보다 iPhone과 iPad에서 훨씬 더 많은 CloudKit 트래픽을 발생시키므로 항상 이러한 기기의 오류가 더 많을 것으로 예상합니다 차트에서 명확히 알 수 있는 것은 Watch 오류 수가 제 예상보다 더 많다는 점입니다 따라서 Error Rate 지표로 변경하겠습니다 이를 위해 측면 탐색 메뉴에서 Telemetry 링크를 클릭하고 Error Rate 차트를 클릭합니다
Error Rate 차트에 오류가 전송된 총 요청 수 기준 백분율로 표시됩니다
제 Group By를 다시 Platform으로 변경해 보면 Watch 앱이 과도한 오류 수의 출처임을 확실히 알 수 있습니다
문제를 더 자세히 조사하려면 차트 위의 쿼리 빌더 도구에서 표시되는 데이터를 제한하기 위한 필터를 입력해 플랫폼이 Watch인 경우로 지정합니다
이제 Group By를 Operation으로 변경하면 어떤 특정 작업이 영향을 받는지 알 수 있습니다
Telemetry 그래프를 보면 어떤 작업으로 인해 오류가 트리거되는지 명확히 알 수 있죠
원격 측정 데이터 뷰의 범위를 좁히면 앱에서 어떤 문제가 발생했고 누구에게 영향을 미쳤는지 더 쉽게 파악할 수 있습니다 Telemetry는 Errors와 Error Rate에 국한되지 않습니다 동일한 필터링 도구를 사용해 앱의 Requests, Bandwidth Latency를 살펴볼 수 있습니다
Telemetry 쿼리를 팀원들과 공유할 수 있으므로 분석과 솔루션에 대해 협업할 수 있습니다 Usage에서는 저장되는 데이터가 대부분 레코드로 구성되는지 아니면 애셋으로 구성되는지와 활성 사용자의 수 가장 많이 사용되고 있는 기기를 파악할 수 있습니다
이러한 그래프는 모두 맞춤형 시간 범위를 사용해 생성될 수 있으며 이를 통해 시간 경과에 따른 추세를 모니터링할 수 있습니다 앱 내에서 문제가 식별되면 해당 문제를 해결하기 위해 최대한 많은 세부 정보가 필요합니다
앱이 트리거하는 개별 작업은 CloudKit Console의 Database Logs에서 살펴볼 수 있습니다
사용 가능한 정보의 세분화를 통해 더 쉽게 앱 내 문제에 대한 가설을 확인하고 해당 문제를 신속하게 해결할 수 있습니다
다시 콘솔로 돌아가서 조사를 계속 진행해 보죠
Logs는 측면 탐색 패널에서 접근하거나 Telemetry 페이지의 Query in Logs 버튼을 클릭해 접근할 수 있습니다
저는 Query in Logs 버튼을 클릭해 Logs로 이동합니다 Telemetry 페이지에서 수행한 모든 검색과 쿼리가 초기 로그 쿼리에 보존되었습니다 즉, 표시되고 있는 로그는 CloudKit 이벤트 디버깅 및 탐색과 이미 관련이 있다는 의미입니다 쿼리 막대 위에 있는 시간 윈도우 선택기에서 2일 시간 윈도우를 선택해 시간 범위를 수정하겠습니다 시간 범위를 좁히면 결과에서 노이즈가 제거됩니다 저는 각 이벤트 내 여러 다양한 필드에 관심이 있습니다 테이블 뷰 버튼을 클릭하면 로그가 맞춤화 가능한 테이블로 표시됩니다 관심 있는 특정 열을 추가하면 이벤트 간에 값을 쉽게 비교해 볼 수 있습니다 맞춤화 가능한 테이블 열의 제어기를 클릭하고 가능한 열의 목록에서 userId를 선택하면 이 문제가 영향을 미치고 있는 사용자를 확인할 수 있습니다 이 추가적인 열을 추가하면 단일 사용자가 많은 수의 할당량 초과 오류를 트리거하고 있음을 즉시 확인할 수 있으며 이는 제가 제 Watch 앱에서 해당 시나리오를 올바르게 처리하지 않고 있음을 의미합니다
관심 있는 로그를 확장하면 특정 이벤트에서 전송된 데이터의 전체 뷰가 표시됩니다
로그 쿼리의 결과는 다양한 형식으로 내보낼 수 있습니다 내보낸 로그는 지나간 결과를 비교해 보는 데 유용하며 CloudKit Console 외부의 로그 데이터와 함께 사용할 수 있습니다
Export data 버튼을 클릭하고 Download CSV 또는 Download JSON을 선택해 로그를 내보냅니다
수정된 버그의 회귀를 테스트하기 위해 로그 쿼리를 저장할 수 있죠 또한 로그 복사 링크 버튼을 클릭해 공유할 수도 있으며 이렇게 하면 팀 전체가 동일한 문제를 디버깅할 수 있습니다
맞춤형 알림을 생성하면 앱의 CloudKit 사용에서 중요한 변경 사항에 대응할 수 있습니다
값이 지정된 기준이나 평균보다 높거나 낮은 경우 알림이 트리거됩니다
추가로 맞춤화하면 원격 측정 필터와 반복 기준에 따라 알림을 제한할 수 있습니다
저는 앞서 식별한 오류 조건이 다시 발생하지 않게 하고 싶습니다 다시 발생할 경우, 사전에 알림을 받고 싶습니다
향후 이 조건이 발생할 경우 알림을 받을 수 있도록 알림을 생성하겠습니다
콘솔로 돌아가서 이전 조사에서 확인했던 Error Rate 차트를 보겠습니다
원격 측정 차트 아래에 있는 알림 생성 버튼을 클릭합니다 알림 생성 대화상자가 열리고 알림을 생성하는 프로세스를 안내해 줍니다 알림 미리보기 차트를 통해 현재 구성 중인 알림이 언제 트리거될지 명확히 이해할 수 있죠
강조된 영역은 알림의 기준을 나타냅니다 이 영역과 교차한다면 알림이 트리거되었을 수 있는 경우입니다
오류를 정확히 파악할 때 입력한 필터가 자동으로 포함되어 향후 이 기준이 다시 충족될 경우 구체적으로 대상으로 지정합니다 저는 이 문제가 다시 발생할 경우 가능한 한 빨리 알림을 받는 것이 중요합니다 이렇게 하기 위해 기간 선택기를 클릭하고 알림을 변경해 시간당 Error Rate를 모니터링하도록 구성합니다
기본적으로, 알림은 컨테이너의 평균 사용에 기반한 알림 기준으로 채워집니다 해당 기준을 높여 기준을 약간 수정하겠습니다 크게 증가하는 경우에만 알림을 받고 싶기 때문입니다
업데이트된 미리보기 차트로 알림 기준에 대한 변경 사항의 효과를 시각화해 볼 수 있습니다 알림의 기준에 기반하여 합리적인 기본 알림 이름이 제공됩니다 저는 기본 이름을 사용하겠지만 여러분은 가장 적절하다고 여기는 이름을 입력할 수 있습니다
Create를 클릭하면 알림의 기준이 저장되고 이제 CloudKit 컨테이너 사용을 기준으로 평가됩니다 새로 생성된 알림에 대한 세부 정보 페이지로 이동합니다 기준을 충족하는 모든 인스턴스는 차트에 표시되며 앞서 제가 구성한 설정에 따라 제게 알려 줍니다
알림을 생성할 수 있는 대상 항목은 Requests, Errors, Error Rate 원격 측정 지표입니다
제가 Error Rate에 대한 예제 알림을 보여 드렸었는데요 다른 지표를 사용하는 2개의 다른 예제 알림은 다음과 같습니다 앱이 새로운 플랫폼에서 출시되면 오류 수에 대한 알림 구성하여 새로운 작업의 성공에 대한 가시성을 제공하거나 실수가 있을 경우 해당 실수에 대해 빠르게 조치할 수 있습니다 앱에서 동기화 로직을 완성한 경우 알림을 사용하여 향후 회귀를 감지할 수 있습니다
예를 들어, 예상되는 데이터 동기화 작업 수가 평균 기반 기준을 초과하지 않는지 확인하는 알림은 동기화 버그가 발생하면 이를 알려 줍니다 알림은 새로운 Alerts 페이지를 통해 관리되며 측면 탐색 메뉴의 Monitor 섹션에서 사용할 수 있습니다
이 페이지는 모든 알림을 한곳에서 요약해 주며 알림을 활성화, 비활성화 또는 삭제할 수 있습니다
이제 이 새로운 CloudKit Console 도구 세트를 활용할 수 있습니다!
알림 환경설정을 구성하고 이메일로도 전송되도록 할 알림을 선택합니다 Telemetry 그래프에서 앱과 CloudKit의 상호작용을 시각화하고
앱의 CloudKit 사용 통계를 통해 활성 사용자, 기기, 저장 공간의 추세를 확인합니다 중요한 Logs 및 Telemetry 쿼리를 저장하고 팀원들과 공유합니다 가장 중요한 것은 맞춤형 알림을 생성하여 CloudKit 컨테이너의 주요 활동에 대한 알림을 받는 것입니다 감사합니다!
-
-
찾고 계신 콘텐츠가 있나요? 위에 주제를 입력하고 원하는 내용을 바로 검색해 보세요.
쿼리를 제출하는 중에 오류가 발생했습니다. 인터넷 연결을 확인하고 다시 시도해 주세요.