다음을 통해 공유


성능 데이터 수집을 위한 권장 사항

Power Platform Well-Architected 성능 효율성 체크리스트 권장 사항에 적용됩니다.

PE:04 성능 데이터를 수집합니다. 워크로드 구성 요소와 흐름은 자동적이고 연속적이며 의미 있는 메트릭과 로그를 제공해야 합니다. 애플리케이션, 플랫폼, 데이터, 운영 체제 수준 등 다양한 워크로드 수준에서 데이터를 수집합니다.

성능 데이터 수집은 워크로드 성능에 대한 정보를 제공하는 메트릭과 로그를 수집하는 프로세스입니다. 이 데이터에는 숫자 값이 포함되며 이를 메트릭이라고 합니다. 메트릭은 특정 시점의 시스템 상태를 설명합니다. 성능 데이터에는 레코드로 구성된 다양한 유형의 데이터가 포함된 로그도 포함됩니다.

성능 데이터를 수집하여 워크로드의 성능을 모니터링하고 분석할 수 있습니다. 이 정보를 사용하여 성능 병목 현상을 식별하고, 문제를 해결하고, 데이터 기반 결정을 내려 워크로드의 전반적인 성능 효율성을 향상시킬 수 있습니다.

데이터 기반 인사이트가 없으면 근본적인 성능 문제나 최적화 기회를 인식하지 못할 수도 있습니다. 잠재적인 결과에는 응답 시간이 느려지고 처리량이 감소하며 궁극적으로 최적이 아닌 사용자 환경이 포함됩니다. 또한 성능 데이터가 부족하면 적시에 문제를 진단하고 해결하기가 어려워 가동 중단 시간이 길어지고 생산성이 저하됩니다.

정의

용어 정의
활동 로그 리소스 삭제 등 리소스에 대한 관리 작업을 추적하는 로그입니다.
응용 프로그램 로그 로그인 및 데이터베이스 연결 실패와 같은 애플리케이션 이벤트, 오류 및 기타 활동에 대한 정보를 추적하는 로그입니다.
애플리케이션 성능 모니터링(APM) 도구 애플리케이션의 성능을 모니터링하고 보고하는 도구입니다.
코드 계측 애플리케이션 코드의 관점에서 성능 지표를 직접 또는 간접적으로 캡처합니다. 캡처된 메트릭에는 흐름 메트릭, 리소스 사용 및 언어나 런타임 관련 메트릭이 포함됩니다.
분산 추적 분산된 워크로드 구성 요소 전반에 걸쳐 메트릭을 수집하고 상호 연관시킵니다.
메트릭 싱크 분석을 위해 시계열 데이터를 상호 연관시키는 메트릭의 저장 대상입니다.
플랫폼 로그 리소스 로그, 활동 로그, 감사 로그를 포함하는 진단 및 감사 데이터입니다.
플랫폼 메트릭 특정 시간의 워크로드 성능을 기록하는 숫자 값입니다.
리소스 로그 시스템이 생성하는 데이터입니다. 시스템 상태에 대한 정보를 제공합니다.
구조화된 로깅 일반적으로 키-값 쌍으로 메시지를 기록하기 위한 의미 있는 형식을 정의합니다.

주요 디자인 전략

성능 최적화에는 성능 목표에 대한 워크로드 또는 흐름의 현재 성능을 측정하는 데이터가 필요합니다. 성능 목표에 대해 코드 및 인프라의 성능을 측정하려면 적절한 양과 다양성의 데이터를 수집해야 합니다. 워크로드 내의 모든 구성 요소와 흐름이 지속적이고 의미 있는 지표와 로그를 자동으로 생성하는지 확인하세요. 애플리케이션, 플랫폼, 스토리지, 운영 체제 등 다양한 수준에서 이 데이터를 소싱해야 합니다. 포괄적인 성능 데이터 수집을 통해 성능을 전체적으로 이해할 수 있으므로 비효율성과 개선 방법을 정확하게 식별할 수 있습니다.

성능 데이터 중앙 집중화

성능 메트릭 및 로그를 중앙 집중화하는 것은 다양한 소스에서 성능 메트릭 및 로그를 수집하여 중앙 위치에 저장하는 프로세스입니다. 중앙 메트릭 싱크와 중앙 로그 싱크를 만듭니다. 이러한 중앙 집중화를 통해 다양한 시스템과 구성 요소 전반에 걸쳐 성능 메트릭과 로그에 쉽게 액세스하고 분석하고 모니터링할 수 있습니다. 메트릭과 로그를 중앙 집중화하면 워크로드 성능에 대한 가시성을 확보할 수 있습니다. 워크로드 성능 메트릭과 로그를 집계하고 저장할 수 있는 적합한 플랫폼이나 도구를 선택하세요.

트레이드오프: 메트릭 및 로그 수집 비용을 이해합니다. 일반적으로 수집하는 메트릭과 로그가 많을수록 비용이 높아집니다.

성능 데이터 분할

성능 데이터를 분할하려면 출처, 목적 또는 환경을 기준으로 메트릭과 로그를 구성하고 분류해야 합니다. 예를 들어, 프로덕션 데이터와 비프로덕션 데이터를 분리하거나 성능 목표와 비즈니스 메트릭을 구별해야 합니다. 데이터를 분할하면 특정 환경을 최적화하고 문제 해결을 촉진하며 성능 모니터링의 부정확성을 제한하는 데 도움이 됩니다. 서로 다른 데이터 유형을 명확하게 구분하면 관련 메트릭을 보다 효율적으로 캡처, 분석 및 응답하고 워크로드 상태에 워크로드 목표를 더 잘 맞출 수 있습니다. 성능 데이터를 분류하려면 다음 권장 사항을 고려하세요.

  • 프로덕션 데이터와 비프로덕션 데이터를 별도로 유지하세요. 환경별로 데이터를 분리하면 각 환경에 대한 집중적인 모니터링 및 최적화를 보장할 수 있습니다. 프로덕션 환경에서는 사용자와 비즈니스 운영에 직접적인 영향을 미치는 성능 문제를 더 잘 식별하고 해결할 수 있습니다. 비프로덕션 환경에서 데이터 분리는 프로덕션에 배포하기 전 테스트 단계에서 효과적인 문제 해결 및 미세 조정을 용이하게 합니다.

  • 각 환경 내에서 하나의 데이터 세트를 사용하십시오. 성능 목표에 대해 한 데이터 세트를 사용하고 성능 목표와 관련된 경고에 대해 다른 데이터 세트를 사용하지 마십시오. 다양한 데이터 세트를 사용하면 성능 모니터링의 효율성을 저하시키는 부정확한 경고가 발생합니다.

  • 성능 목표와 비즈니스 메트릭을 분리하세요. 운영 및 개발 팀은 성능 목표를 사용하여 워크로드 상태를 모니터링하고 비즈니스 목표를 달성합니다. 비즈니스 메트릭은 비즈니스 목표 또는 고객 보고와 관련됩니다. 데이터가 직접적으로 겹치는 경우에도 별도의 데이터 스트림에서 비즈니스 메트릭을 캡처합니다. 이러한 분리를 통해 올바른 데이터를 캡처하고 독립적으로 데이터를 분석할 수 있는 유연성이 제공됩니다.

보존 정책 정의

보존 정책은 성능 데이터를 얼마나 오랫동안 보관해야 하는지를 규정합니다. 이러한 정책을 설정하면 스토리지를 효율적으로 관리하는 데 도움이 되며 분석을 위해 필요한 데이터에만 액세스할 수 있습니다. 이러한 정책은 더 나은 성능을 지원하고 규정 준수 표준을 충족합니다. 모든 환경에서 효과적인 문제 해결 및 모니터링을 활성화하려면 로그 및 메트릭 데이터에 대한 보존 정책을 구성해야 합니다. 예를 들어 로그와 메트릭은 테스트 환경보다 프로덕션 환경에서 더 오랜 시간 동안 보관해야 할 수 있습니다. 보존 기간은 조직의 요구 사항 및 규정 준수 규정과 일치해야 합니다. 분석 및 감사 목적으로 데이터를 보관할 기간을 결정합니다. 즉각적인 분석에 필요하지 않은 데이터를 보관하세요.

성능 데이터 수집

데이터 수집에는 주로 계측 코드를 통해 수집된 처리량, 대기 시간, 완료 시간 등 워크로드의 성능 메트릭을 모니터링하고 분석하는 작업이 포함됩니다. 워크로드 성능 데이터는 애플리케이션의 상태와 성능에 대한 귀중한 인사이트를 제공합니다. 성능 데이터를 모니터링하고 분석하면 문제를 식별 및 해결하고, 성능을 최적화하고, 워크로드에 대해 정보에 입각한 결정을 내릴 수 있습니다.

코드 계측

계측이란 코드 조각이나 작업을 워크로드 코드에 포함하는 프로세스를 의미합니다. 예를 들어 캔버스 앱에서 사용자 지정 추적 이벤트를 생성합니다. 계측의 목적은 워크로드가 실행되는 동안 성능 데이터를 캡처하는 것입니다. 워크로드의 중요한 작업을 강조하는 메트릭을 수집하는 것이 중요합니다. 처리량, 대기 시간, 완료 시간 등의 메트릭에 중점을 둡니다. 비즈니스 관련 운영을 다른 운영과 차별화하는 것이 중요합니다. 비즈니스 운영과 관련된 데이터의 경우 해당 메타데이터가 뚜렷한 추적 및 저장이 가능한 방식으로 구성되어 있는지 확인하세요. 코드 계측은 다음과 같은 이점을 제공합니다.

  • 성능 병목 현상 식별: 경과 시간과 같은 메트릭을 추적하여 병목 현상을 식별하고 그에 따라 코드를 최적화할 수 있습니다.

  • 부하 시 시스템 동작 평가: 다양한 스트레스 시나리오에서 워크로드가 어떻게 수행되는지 확인할 수 있습니다. 이 데이터는 확장성, 동시성 및 리소스 사용과 관련된 문제를 식별하는 데 도움이 될 수 있습니다.

  • 워크로드상태 및 가용성추적: 핵심 성과 지표가 실시간으로 모니터링되므로 애플리케이션의 성능 및 가용성에 영향을 미치는 잠재적인 문제에 대한 경고를 받을 수 있습니다.

  • 사용자 경험 개선: 사용자가 워크로드와 상호 작용하는 방식에 대한 인사이트를 얻을 수 있습니다. 이 정보를 사용하여 사용자 경험을 최적화하고 개선이 필요한 영역을 식별하십시오.

  • 용량 계획 및 리소스 할당: 계측에서 수집하는 성능 데이터는 워크로드의 리소스 요구 사항에 대한 귀중한 인사이트를 제공할 수 있습니다. 이 정보는 용량 계획 및 리소스 할당에 대한 결정을 내리는 데 도움이 될 수 있습니다.

성능 모니터링을 위해 코드를 계측할 때 다음 전략을 고려하십시오.

  • APM 도구 사용: 애플리케이션 성능 모니터링(APM) 도구는 메트릭, 추적, 로그를 포함한 성능 데이터를 수집하고 분석합니다. APM 도구는 코드 수준 계측, 트랜잭션 추적, 성능 프로파일링과 같은 기능을 제공합니다.

  • 사용자 지정 계측: 개발자는 사용자 지정 코드를 추가하여 애플리케이션 및 워크로드에 고유한 성능 메트릭을 수집할 수 있습니다. 사용자 지정 계측은 런타임을 측정하고, 리소스 사용량을 추적하거나, 특정 이벤트를 캡처할 수 있습니다.

  • 트랜잭션 시간을 캡처합니다. 트랜잭션 시간을 캡처하는 것은 성능 모니터링의 일부로 주요 기술 기능에 대한 엔드투엔드 시간을 측정하는 것과 관련이 있습니다. 애플리케이션 수준 메트릭에는 엔드투엔드 트랜잭션 시간이 포함되어야 합니다. 이러한 트랜잭션 시간은 데이터베이스 쿼리, 외부 API 호출의 응답 시간, 처리 단계의 실패율과 같은 주요 기술 기능을 다루어야 합니다.

  • 원격 분석 표준을 사용합니다. OpenTelemetry와 같은 원격 분석 표준을 기반으로 구축된 APM 도구 계측 라이브러리 및 도구를 사용하는 것이 좋습니다.

리소스 성능 데이터 수집

리소스 성능 데이터를 수집하면 워크로드의 상태와 동작에 대한 인사이트를 얻을 수 있습니다. 리소스 성능 데이터는 용량 계획의 핵심인 리소스 사용에 대한 정보를 제공합니다. 또한 이 데이터는 워크로드 상태에 대한 인사이트를 제공하고 문제를 감지하고 해결하는 데 도움이 될 수 있습니다. 다음 권장 사항을 살펴 보십시오.

  • 모든 리소스에 대한 메트릭과 로그를 수집합니다. 각 서비스에는 리소스 기능에 고유한 메트릭 집합이 있습니다. 이러한 메트릭은 리소스의 상태와 성능을 이해하는 데 도움이 됩니다.

  • 플랫폼 도구를 사용합니다. Azure Monitor Insights와 같은 기본 제공 및 통합 모니터링 솔루션에서 영감을 얻으세요. 이 도구는 성능 운영을 간소화합니다. 플랫폼을 선택할 때 플랫폼 도구를 고려하고 사용자 지정 도구 또는 보고에 투자하세요.

  • 네트워크 트래픽을 모니터링합니다. 네트워크 트래픽을 모니터링한다는 것은 네트워크 경로를 통해 이동하는 데이터의 흐름과 패턴을 추적하고 분석하는 것을 의미합니다. 트래픽 분석을 수집하고 서브넷 경계를 통과하는 트래픽을 모니터링합니다. 목표는 네트워크 성능을 분석하고 최적화하는 것입니다.

데이터베이스 및 스토리지 데이터 수집

많은 데이터베이스 및 스토리지 시스템은 자체 모니터링 도구를 제공합니다. 이러한 도구는 해당 시스템과 관련된 성능 데이터를 수집합니다. 데이터베이스 및 스토리지 시스템은 성능 관련 이벤트 및 지표를 포함하는 로그를 생성하는 경우가 많습니다. 병목 현상을 식별하고, 문제를 진단하고, 정보에 입각한 결정을 내려 워크로드의 전반적인 성능과 안정성을 향상시킬 수 있도록 데이터베이스 데이터와 스토리지 성능 데이터를 수집합니다. 다음 유형의 성능 데이터 수집을 고려하십시오.

  • 처리량: 처리량은 일정 기간 동안 스토리지 시스템에서 읽거나 스토리지 시스템에 쓴 데이터의 양을 측정합니다. 처리량 데이터는 데이터 전송 기능을 나타냅니다.

  • 지연 시간: 지연 시간은 스토리지 작업이 지속되는 기간을 측정합니다. 지연 시간 데이터는 스토리지 시스템의 응답성을 나타냅니다.

  • IOPS(초당 I/O 작업): 스토리지 시스템이 초당 수행할 수 있는 읽기 작업 또는 쓰기 작업 수에 대한 데이터입니다. IOPS 데이터는 스토리지 시스템의 처리량과 응답성을 나타냅니다.

  • 용량 사용량: 용량 사용량은 사용된 스토리지 용량과 사용 가능한 용량입니다. 용량 사용량 데이터는 조직이 향후 스토리지 요구 사항을 계획하는 데 도움이 됩니다.

커넥터 성능 데이터 수집

통합 서비스 작업이 완료될 때까지 기다리는 데 소요되는 시간은 워크로드의 전반적인 성능 저하에 영향을 줄 수 있습니다. 워크로드가 커넥터를 사용하여 서비스를 통합하는 경우 각 커넥터 작업에 소요되는 시간을 측정하여 그 영향을 평가하고 워크로드 디자인을 최적화할지 여부를 결정하는 것이 좋습니다. 서비스에 따라 실행 기록 또는 사용자 지정 논리를 사용하여 커넥터 작업에 소요된 시간을 캡처할 수 있습니다.

데이터 유효성 검사 및 분석

성능 데이터는 성능 목표와 일치해야 합니다. 데이터는 성능 목표와 관련하여 워크로드 또는 흐름 성능을 완전하고 정확하게 나타내야 합니다. 예를 들어 웹 서비스에 대한 응답 시간의 성능 목표는 500밀리초입니다. 자주 평가하면 성능 문제를 조기에 감지하고 완화할 수 있으므로 데이터를 분석하는 것을 일상화하십시오.

  • 경고를 만듭니다. 성능 문제를 즉각적으로 식별하고 수정할 수 있도록 실행 가능한 경고를 보유하는 것이 좋습니다. 이러한 경고는 위반된 성능 임계값, 잠재적인 비즈니스 영향 및 관련된 구성 요소를 명확하게 나타내야 합니다. 일반 및 권장 경고를 설정하여 시작하세요. 시간이 지남에 따라 특정 요구 사항에 따라 이러한 기준을 수정할 수 있습니다. 이러한 경고의 주요 목적은 심각한 문제로 확대되기 전에 잠재적인 성능 저하를 예측하는 것입니다. 외부 종속성에 대한 경고를 설정할 수 없는 경우 종속성 호출 기간과 같은 간접적인 측정값을 수집하는 방법을 고안하는 것이 좋습니다.

  • 데이터 수집 제한을 설정합니다. 수집하는 데이터의 양과 보존 기간에 대한 논리적 제한을 결정하고 설정하세요. 원격 분석은 때때로 엄청난 양의 데이터를 생성할 수 있습니다. 가장 중요한 성과 지표만 포착하는 데 집중하거나 성과 데이터에서 의미 있는 인사이트를 추출할 수 있는 효율적인 시스템을 갖추는 것이 중요합니다.

Power Platform 간편 사용

애플리케이션 성능 데이터 수집: Application Insights는 애플리케이션의 성능과 가용성을 모니터링하는 데 도움이 되는 Azure Monitor의 기능입니다. 데이터는 Application Insights에 의해 Azure Monitor 로그에 저장되고 성능 및 실패 패널에서 시각화됩니다. 데이터는 Application Insights에서 정의하는 표준 스키마에 있는 Application Insights 환경으로 내보내집니다. Dataverse 및 Power Automate 데이터를 Application Insights로 내보내고, Application Insights에 캔버스 앱을 연결하고, Microsoft Copilot Studio 에이전트에서 원격 측정 데이터를 캡처하여 Azure Application Insights에서 사용할 수 있습니다.

Application Insights를 사용하면 서버브라우저 데이터 보기를 선택할 수 있습니다. 기간이 가장 긴 작업을 식별하여 잠재적인 문제를 진단할 수 있습니다.

성능 분석을 위해 기본 플랫폼 기능을 사용하세요:Copilot Studio의 Analytics는 에이전트의 성능에 대한 포괄적인 개요를 제공합니다. 인공 지능(AI) 기술을 사용하여 에스컬레이션 속도, 포기율 및 해결률에 가장 큰 영향을 미치는 주제를 식별합니다. Power Apps용 성능 인사이트는 런타임 사용자 데이터를 분석하고 모델 기반 앱의 성능을 개선하는 데 도움이 되는 권장 사항의 우선 순위 목록을 제공합니다.

성능 데이터 중앙 집중화, 세분화 및 유지: Microsoft는 이미 Dataverse, Power Automate 클라우드 흐름 및 모델 기반 앱에 대한 광범위한 원격 분석을 수집하고 있습니다. Application Insights 통합을 통해 환경 또는 테넌트 관리자는 Application Insights 계측 키를 제공하면서 Power Platform 관리 센터에서 데이터 내보내기 프로세스를 설정할 수 있습니다. 설치가 완료되는 즉시 Microsoft에서 사용자 환경에 대해 수집한 원격 분석이 Application Insights 환경으로 전송됩니다. Application Insights 통합을 사용하면 Application Insights 원격 분석 데이터 모델을 따르는 표준화된 원격 분석 집합을 수신하게 됩니다. 이러한 통합 외에도 캔버스 앱을 Application Insights에 연결하고 Microsoft Copilot Studio 에이전트에서 원격 측정 데이터를 캡처하여 Azure Application Insights에서 사용할 수도 있습니다.

Azure 리소스 성능 데이터 수집: 대부분의 Azure 서비스는 진단 및 감사 정보를 제공하는 플랫폼 로그와 메트릭을 생성합니다. 진단 설정을 활성화하면 수집하고 저장할 플랫폼 로그 및 메트릭을 지정할 수 있습니다. 상관 관계를 위해 지원되는 모든 서비스에 대해 진단을 활성화하고 로그를 애플리케이션 로그와 동일한 대상으로 보냅니다.

데이터베이스 성능 데이터 수집:Microsoft Dataverse는 Application Insights와 통합됩니다. 데이터 스트림은 현재 Dataverse API 수신 호출, Dataverse 플러그 인 실행 호출, Dataverse SDK 호출에 관한 성능 데이터를 제공합니다. 문제에 대한 알림을 받으려면 성능 임계값에 따라 경고를 설정하세요.

성능 데이터 유효성 검사 및 분석: Azure Monitor 내에서 Azure Monitor 로그를 사용하여 애플리케이션 및 시스템의 로그 데이터를 수집, 분석 및 시각화할 수 있습니다. 로그를 집계하면 이벤트를 교차 쿼리하고 애플리케이션 성능에 대한 인사이트를 얻을 수 있습니다. 자세한 내용은 Azure Monitor Logs 비용 계산 및 옵션** 및 Azure Monitor 가격 책정을 참조하세요.

Azure Monitor에서는 미리 정의된 조건에 따라 특정 성능 메트릭 및 트리거 경고를 모니터링하는 경고 규칙을 정의할 수 있습니다. 예를 들어 응답 시간이 지정된 제한을 초과하면 이를 알리는 경고 규칙을 생성할 수 있습니다. 원하는 수신자에게 알림을 보내도록 경고 규칙을 구성합니다.

경고 규칙을 만들 때 경고를 트리거해야 하는 시기를 결정하는 조건을 정의할 수 있습니다. 임계값, 집계 방법, 기간 및 평가 빈도를 설정할 수 있습니다. 성능 모니터링 요구 사항에 따라 기준을 정의합니다. 알림을 보내는 것 외에도 경고가 트리거될 때 수행할 작업을 지정할 수 있습니다. 작업에는 이메일 보내기, 웹후크 호출 또는 Azure 기능 실행이 포함될 수 있습니다. 특정 경고 시나리오에 대응하려면 적절한 조치를 선택하십시오.

성능 효율성 체크리스트

전체 권장 사항 세트를 참조하세요.