다음을 통해 공유


Azure Functions 앱에 대한 Application Insights 로그가 없거나 잘못되었습니다.

Azure Functions와 Application Insights 간의 통합을 통해 함수 앱을 면밀히 모니터링할 수 있습니다. 또한 사용자 지정 구성 없이 Application Insights를 사용할 수 있습니다.

Application Insights 로그가 없거나 데이터가 부분적이거나 부정확한 것으로 보이는 경우 다음 단계를 사용하여 문제를 해결합니다.

함수 앱 구성 확인

  1. Azure Portal에서 해당 함수 앱으로 이동합니다.

  2. 진단 및 문제 해결을 선택하여 Azure Functions 진단을 엽니다.

  3. 검색 창에서 함수 구성 검사를 입력하고 엽니다.

  4. 모든 함수 앱 구성 검사에 대한 진단 보고서가 표시됩니다. 특히 Application Insights의 경우 다음 검사가 수행됩니다.

    • 다음 연결 설정 중 하나만 존재합니다.

      • APPINSIGHTS_INSTRUMENTATIONKEY Application Insights 계측 키

      • APPLICATIONINSIGHTS_CONNECTION_STRING 연결

        보다 안정적인 동작을 위해 APPLICATIONINSIGHTS_CONNECTION_STRING 사용하는 것이 좋습니다. 사용 APPINSIGHTS_INSTRUMENTATIONKEY 기능은 2025년까지 더 이상 사용되지 않습니다.

    • 권장되는 대로 AzureWebJobsDashboard 기본 제공 로깅이 비활성화됩니다.

    • 샘플링 은 Azure Functions 원격 분석에 대해 사용하도록 설정됩니다(기본적으로 사용).

권장 사항: 함수 앱은 버전 4에 있어야 하며 런타임 버전은 4.15.2xx 이상이어야 합니다. 이 버전부터 Azure Functions에서 Application Insights 서비스로의 로그 흐름을 추적할 수 있기 때문입니다. 로그 흐름을 모니터링하여 누락된 로그를 확인할 수 있습니다.

로그가 없거나 부분

Application Insights는 로그, 성능 및 오류 데이터를 수집합니다. 샘플링 구성 은 원격 분석 볼륨을 줄이는 데 사용됩니다. 샘플링 기능은 다음 host.json 예제에 표시된 설정을 사용하여 기본적으로 사용하도록 설정됩니다. 제외된 형식은 샘플링되지 않습니다.

{
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "maxTelemetryItemsPerSecond" : 20,
        "excludedTypes": "Request;Exception"
      }
    }
  }
}

부분적으로 누락된 로그를 발견하면 샘플링으로 인해 발생할 수 있습니다. 실제 샘플링 속도를 확인하려면 다음 코드 조각에 표시된 필요한 시간 간격을 사용하는 Analytics 쿼리를 사용합니다. 샘플링 유형이 TelemetrySavedPercentage 100 미만인 경우 해당 유형의 원격 분석이 샘플링됩니다.

union requests,dependencies,pageViews,browserTimings,exceptions,traces
| where timestamp > todatetime("mm/dd/yyyy hh:mm:ss") and timestamp < todatetime("mm/dd/yyyy hh:mm:ss")
| summarize TelemetrySavedPercentage = 100/avg(itemCount), TelemetryDroppedPercentage = 100-100/avg(itemCount) by bin(timestamp, 1d), itemType
| sort by timestamp asc

자세한 내용은 Application Insights의 데이터 수집, 보존 및 스토리지를 참조하세요.

로그의 볼륨 및 세부 정보 제어

기록된 로그를 늘리거나 표시하지 않을 수 있습니다. 이렇게 하려면 host.json 구성된 로그 수준 및 범주의 조합을 사용할 수 있습니다.

Azure Functions 로거에는 모든 로그에 대한 범주가 포함되어 있습니다. 범주는 런타임 코드 또는 함수 코드에서 로그를 생성한 부분을 나타냅니다. 예시:

  • Host.Results 사용 가능한 범주 중 일부입니다Function.<YOUR_FUNCTION_NAME>.
  • 로그 수준은 모든 로그에 할당됩니다. 값은 상대적 중요도(예: 또는 Information.)를 Warning 나타냅니다.

자세한 내용은 사용 가능한 다른 범주로그 수준을 참조하세요.

샘플 코드 조각에 따라 애플리케이션에서 로그를 작성하는 방법을 구성할 수 있습니다.

{
  "version": "2.0",
  "logging": {
    "logLevel": {
      "default": "Information", // catch all default, with modifications below for individual categories.
      "Function": "Warning", // Warning level from all Functions (except the ones configured below).
      "Host.Aggregator": "Trace", // Log all traces in the 'customMetrics' table of (and shown on Metrics/Alerts blade in AI) - use either this or Host.Results
      "Host.Results": "Error", // Error and Critical requests are only logged in the 'requests' table of the AI (and shown on Monitor Functions blade in Functions App) - use either this or Host.Aggregator
      "Function.Function1": "Information", //Information level logs from Function 1, logged in 'traces', 'dependencies' and 'customMetrics' tables of AI
      "Function.Function2.User": "Information" //user code logs from Function2, logged in 'traces' table of AI
    },
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "maxTelemetryItemsPerSecond": 1,
        "excludedTypes": "Exception"
      }
    }
  }
}

앱 설정 수준에서 이러한 값을 구성하려면(host.json 변경 시 다시 배포하지 않도록) 애플리케이션 설정과 동일한 값을 만들어 특정 host.json 값을 재정의합니다. 자세한 내용은 host.json 값 재정의를 참조하세요.

로그를 표시하지 않는 방법에 대한 자세한 예제는 functions-log-suppression을 참조 하세요.

가상 네트워크 통합 함수 앱은 로그를 생성하지 않습니다.

함수 앱이 가상 네트워크와 통합된 경우 Application Insights SDK 또는 Application Insights 에이전트가 다음 URL에 대한 데이터를 포털로 보낼 수 있도록 서버 방화벽에서 나가는 트래픽에 대한 포트 443을 열어야 합니다.

  • dc.applicationinsights.azure.com
  • dc.applicationinsights.microsoft.com
  • dc.services.visualstudio.com
  • *.in.applicationinsights.azure.com

자세한 내용은 Azure Monitor에서 사용하는 IP 주소를 참조하세요.

도움을 요청하십시오.

질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.