Python 애플리케이션용 Azure Monitor 설정

참고

OpenCensus Python SDK는 더 이상 사용되지 않지만 Microsoft는 2024년 9월 30일에 지원이 사용 중지될 때까지 이를 지원합니다. 이제 OpenTelemetry 기반 Python 제품을 권장하고 마이그레이션 지침을 제공합니다.

Azure Monitor는 분산 추적, 메트릭 컬렉션 및 Python 애플리케이션의 로깅을 지원합니다.

Python 애플리케이션에 대한 데이터를 추적하고 내보내기 위해 Microsoft에서 지원하는 솔루션은 Azure Monitor 내보내기를 통한 Opencensus Python SDK입니다.

지원되지 않으므로 Python용 다른 원격 분석 SDK를 원격 분석 솔루션으로 사용하지 않는 것이 좋습니다.

OpenCensus는 OpenTelemetry로 통합되고 있습니다. OpenTelemetry가 점진적으로 완성되는 동안에는 OpenCensus가 계속 권장됩니다.

필수 구성 요소

Azure 구독이 필요합니다. Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.

참고

2025년 3월 31일에 계측 키 수집에 대한 지원이 종료됩니다. 계측 키 수집은 계속 작동하지만 더 이상 기능에 대한 업데이트 또는 지원을 제공하지 않습니다. 연결 문자열로 전환하여 새로운 기능을 활용합니다.

OpenCensus Python SDK 소개

OpenCensus는 분산 추적, 메트릭 및 로깅 원격 분석을 수집할 수 있는 오픈 소스 라이브러리 집합입니다. Azure Monitor 내보내기를 사용하여 이 수집된 원격 분석을 Application Insights로 보낼 수 있습니다. 이 문서에서는 Python에 대해 OpenCensus 및 Azure Monitor 내보내기를 설정하고 Azure Monitor로 모니터링 데이터를 전송하는 프로세스를 단계별로 안내합니다.

Azure Monitor 내보내기용 OpenCensus Python SDK를 사용한 계측

OpenCensus Azure Monitor 내보내기를 설치합니다.

python -m pip install opencensus-ext-azure

SDK는 세 가지 Azure Monitor 내보내기를 사용하여 Azure Monitor에 대한 다양한 유형의 원격 분석을 전송합니다. 단계는 trace, metricslogs입니다. 이러한 원격 분석 유형에 대한 자세한 내용은 데이터 플랫폼 개요를 참조하세요. 다음 지침을 사용하여 세 가지 내보내기를 통해 이러한 원격 분석 유형을 전송합니다.

원격 분석 유형 매핑

OpenCensus는 다음 내보내기를 Azure Monitor에 표시되는 원격 분석 유형에 매핑합니다.

관찰성의 중심 Azure Monitor의 원격 분석 유형 설명
로그 Traces, exceptions, customEvents 로그 원격 분석, 예외 원격 분석, 이벤트 원격 분석
메트릭 customMetrics, performanceCounters 사용자 지정 메트릭 성능 카운터
추적 요청 종속성 들어오는 요청, 나가는 요청

로그

  1. 먼저 일부 로컬 로그 데이터를 생성해 보겠습니다.

    
    import logging
    
    logger = logging.getLogger(__name__)
    
    def main():
        """Generate random log data."""
        for num in range(5):
            logger.warning(f"Log Entry - {num}")
    
    if __name__ == "__main__":
        main()
    
  2. 범위의 각 숫자에 대해 로그 항목이 내보내집니다.

    Log Entry - 0
    Log Entry - 1
    Log Entry - 2
    Log Entry - 3
    Log Entry - 4
    
  3. 이 로그 데이터를 Azure Monitor에 표시하려고 합니다. 또는 APPLICATIONINSIGHTS_CONNECTION_STRING 환경 변수에서 지정할 수 있습니다. connection_string을 AzureLogHandler에 직접 전달할 수도 있지만 연결 문자열을 버전 제어에 추가하면 안 됩니다.

    APPLICATIONINSIGHTS_CONNECTION_STRING=<appinsights-connection-string>
    

    원격 분석을 Application Insights로 보내는 데 사용되는 Exporter를 인스턴스화하려면 연결 문자열을 사용하는 것이 좋습니다. 다음 코드 샘플을 기반으로 이전 단계에서 코드를 수정합니다.

    import logging
    from opencensus.ext.azure.log_exporter import AzureLogHandler
    
    logger = logging.getLogger(__name__)
    logger.addHandler(AzureLogHandler())
    
    # Alternatively manually pass in the connection_string
    # logger.addHandler(AzureLogHandler(connection_string=<appinsights-connection-string>))
    
    """Generate random log data."""
    for num in range(5):
        logger.warning(f"Log Entry - {num}")
    
  4. 내보내기에서 로그 데이터를 Azure Monitor로 전송합니다. traces에서 데이터를 찾을 수 있습니다.

    이 컨텍스트에서 tracestracing과 동일하지 않습니다. 여기서 tracesAzureLogHandler를 활용할 때 Azure Monitor에 표시되는 원격 분석 유형을 나타냅니다. 그러나 tracing은 OpenCensus의 개념을 의미하며 분산 추적과 관련이 있습니다.

    참고

    루트 로거가 warning 수준으로 구성됩니다. 즉, 보내는 로그 중 심각도가 낮은 로그는 무시되고 다시 Azure Monitor로 전송되지 않습니다. 자세한 내용은 로깅 설명서를 참조하세요.

  5. custom_dimensions 필드를 사용하여 extra 키워드 인수의 로그 메시지에 사용자 지정 속성을 추가할 수도 있습니다. 이 속성은 Azure Monitor에 customDimensions 키-값 쌍으로 표시됩니다.

    참고

    이 기능이 작동하려면 custom_dimensions 필드에 사전을 전달해야 합니다. 다른 유형의 인수를 전달하면 로거가 이를 무시합니다.

    import logging
    
    from opencensus.ext.azure.log_exporter import AzureLogHandler
    
    logger = logging.getLogger(__name__)
    logger.addHandler(AzureLogHandler())
    # Alternatively manually pass in the connection_string
    # logger.addHandler(AzureLogHandler(connection_string=<appinsights-connection-string>))
    
    properties = {'custom_dimensions': {'key_1': 'value_1', 'key_2': 'value_2'}}
    
    # Use properties in logging statements
    logger.warning('action', extra=properties)
    

참고

Application Insights 계측 사용의 일환으로 진단 데이터를 수집하여 Microsoft에 보냅니다. 이 데이터는 Application Insights를 실행하고 개선하는 데 도움이 됩니다. 중요하지 않은 데이터 컬렉션을 사용하지 않도록 설정할 수 있는 옵션이 있습니다. 자세한 내용은 Application Insights의 Statsbeat를 참조하세요.

Django 애플리케이션에 대한 로깅 구성

Django 애플리케이션에 대해 이전과 같이 애플리케이션 코드에서 명시적으로 로깅을 구성하거나 Django의 로깅 구성에서 지정할 수 있습니다. 이 코드는 Django 설정 구성, 일반적으로 settings.py에 사용하는 모든 파일에 적용될 수 있습니다.

Django 설정을 구성하는 방법에 대한 자세한 내용은 Django 설정을 참조하세요. 로깅을 구성하는 방법에 대한 자세한 내용은 Django 로깅을 참조하세요.

LOGGING = {
    "handlers": {
        "azure": {
            "level": "DEBUG",
            "class": "opencensus.ext.azure.log_exporter.AzureLogHandler",
            "connection_string": "<appinsights-connection-string>",
        },
        "console": {
            "level": "DEBUG",
            "class": "logging.StreamHandler",
            "stream": sys.stdout,
        },
      },
    "loggers": {
        "logger_name": {"handlers": ["azure", "console"]},
    },
}

구성에 지정된 것과 동일한 이름으로 로거를 사용해야 합니다.

# views.py

import logging
from django.shortcuts import request

logger = logging.getLogger("logger_name")
logger.warning("this will be tracked")

예외 보내기

OpenCensus Python은 exception 원격 분석을 자동으로 추적하고 전송하지 않습니다. Python 로깅 라이브러리를 통해 예외를 사용하여 AzureLogHandler를 통해 전송됩니다. 일반 로깅과 마찬가지로 사용자 지정 속성을 추가할 수 있습니다.

import logging

from opencensus.ext.azure.log_exporter import AzureLogHandler

logger = logging.getLogger(__name__)
logger.addHandler(AzureLogHandler())
# Alternatively, manually pass in the connection_string
# logger.addHandler(AzureLogHandler(connection_string=<appinsights-connection-string>))

properties = {'custom_dimensions': {'key_1': 'value_1', 'key_2': 'value_2'}}

# Use properties in exception logs
try:
    result = 1 / 0  # generate a ZeroDivisionError
except Exception:
    logger.exception('Captured an exception.', extra=properties)

예외를 명시적으로 로깅해야 하므로 처리되지 않은 예외를 로깅하는 방법은 사용자마다 다릅니다. OpenCensus는 이 로깅을 수행하는 방법에 제한을 두지 않지만 예외 원격 분석을 명시적으로 로깅해야 합니다.

이벤트 보내기

trace 원격 분석을 보내는 것과 동일한 방식으로(대신 AzureEventHandler을 사용하여) customEvent 원격 분석을 보낼 수 있습니다.

import logging
from opencensus.ext.azure.log_exporter import AzureEventHandler

logger = logging.getLogger(__name__)
logger.addHandler(AzureEventHandler())
# Alternatively manually pass in the connection_string
# logger.addHandler(AzureEventHandler(connection_string=<appinsights-connection-string>))

logger.setLevel(logging.INFO)
logger.info('Hello, World!')

샘플링

OpenCensus의 샘플링에 대한 내용은 OpenCensus의 샘플링을 참조하세요.

로그 상관 관계

추적 컨텍스트 데이터를 통해 로그를 보강하는 방법에 대한 자세한 내용은 OpenCensus Python 로그 통합을 참조하세요.

원격 분석 수정

Azure Monitor로 전송되기 전에 추적된 원격 분석을 수정하는 방법에 대한 자세한 내용은 OpenCensus Python 원격 분석 프로세서를 참조하세요.

메트릭

OpenCensus.stats는 4가지 집계 메서드를 지원하지만 Azure Monitor에 대해서는 부분 지원을 제공합니다.

  • 개수: 측정 지점의 수입니다. 값은 누적되며, 증가만 할 수 있고 다시 시작할 때 0으로 다시 설정됩니다.
  • 합계: 측정 지점의 합계입니다. 값은 누적되며, 증가만 할 수 있고 다시 시작할 때 0으로 다시 설정됩니다.
  • LastValue: 마지막으로 기록된 값을 유지하고 다른 모든 항목을 삭제합니다.
  • 배포: Azure 내보내기는 측정점의 히스토그램 분포를 지원하지 않습니다.

개수 집계 예

  1. 먼저 일부 로컬 메트릭 데이터를 생성해 보겠습니다. 사용자가 Enter 키를 선택하는 횟수를 추적하는 메트릭을 만들겠습니다.

    
    from datetime import datetime
    from opencensus.stats import aggregation as aggregation_module
    from opencensus.stats import measure as measure_module
    from opencensus.stats import stats as stats_module
    from opencensus.stats import view as view_module
    from opencensus.tags import tag_map as tag_map_module
    
    stats = stats_module.stats
    view_manager = stats.view_manager
    stats_recorder = stats.stats_recorder
    
    prompt_measure = measure_module.MeasureInt("prompts",
                                               "number of prompts",
                                               "prompts")
    prompt_view = view_module.View("prompt view",
                                   "number of prompts",
                                   [],
                                   prompt_measure,
                                   aggregation_module.CountAggregation())
    view_manager.register_view(prompt_view)
    mmap = stats_recorder.new_measurement_map()
    tmap = tag_map_module.TagMap()
    
    def main():
        for _ in range(4):
            mmap.measure_int_put(prompt_measure, 1)
            mmap.record(tmap)
            metrics = list(mmap.measure_to_view_map.get_metrics(datetime.utcnow()))
            print(metrics[0].time_series[0].points[0])
    
    if __name__ == "__main__":
        main()
    
  2. 메트릭은 여러 번 추적하기 위해 만들어집니다. 각 항목마다 값이 증분되고 메트릭 정보는 콘솔에 표시됩니다. 이 정보에는 메트릭이 업데이트된 현재 값 및 현재 타임스탬프가 포함됩니다.

    Point(value=ValueLong(5), timestamp=2019-10-09 20:58:04.930426)
    Point(value=ValueLong(6), timestamp=2019-10-09 20:58:05.170167)
    Point(value=ValueLong(7), timestamp=2019-10-09 20:58:05.438614)
    Point(value=ValueLong(7), timestamp=2019-10-09 20:58:05.834216)
    
  3. 시연을 위해 값을 입력하는 것이 유용하지만 메트릭 데이터를 Azure Monitor로 내보내려고 합니다. 연결 문자열을 내보내기 도구에 직접 전달합니다. 또는 환경 변수 APPLICATIONINSIGHTS_CONNECTION_STRING에서 지정할 수 있습니다. 원격 분석을 Application Insights로 보내는 데 사용되는 Exporter를 인스턴스화하려면 연결 문자열을 사용하는 것이 좋습니다. 다음 코드 샘플을 기반으로 이전 단계에서 코드를 수정합니다.

    from datetime import datetime
    from opencensus.ext.azure import metrics_exporter
    from opencensus.stats import aggregation as aggregation_module
    from opencensus.stats import measure as measure_module
    from opencensus.stats import stats as stats_module
    from opencensus.stats import view as view_module
    from opencensus.tags import tag_map as tag_map_module
    
    stats = stats_module.stats
    view_manager = stats.view_manager
    stats_recorder = stats.stats_recorder
    
    prompt_measure = measure_module.MeasureInt("prompts",
                                               "number of prompts",
                                               "prompts")
    prompt_view = view_module.View("prompt view",
                                   "number of prompts",
                                   [],
                                   prompt_measure,
                                   aggregation_module.CountAggregation())
    view_manager.register_view(prompt_view)
    mmap = stats_recorder.new_measurement_map()
    tmap = tag_map_module.TagMap()
    
    exporter = metrics_exporter.new_metrics_exporter()
    # Alternatively manually pass in the connection_string
    # exporter = metrics_exporter.new_metrics_exporter(connection_string='<appinsights-connection-string>')
    
    view_manager.register_exporter(exporter)
    
    def main():
        for _ in range(10):
            input("Press enter.")
            mmap.measure_int_put(prompt_measure, 1)
            mmap.record(tmap)
            metrics = list(mmap.measure_to_view_map.get_metrics(datetime.utcnow()))
            print(metrics[0].time_series[0].points[0])
    
    if __name__ == "__main__":
        main()
    
  4. 내보내기는 고정된 간격으로 메트릭 데이터를 Azure Monitor로 전송합니다. Application Insights 백 엔드가 60초 간격으로 메트릭 지점의 집계를 가정하기 때문에 이 값을 60초로 설정해야 합니다. 단일 메트릭을 추적하므로 어떤 값과 타임스탬프가 포함되는지와 무관하게 이 메트릭 데이터는 간격마다 전송됩니다. 데이터는 누적되며, 증가만 할 수 있고 다시 시작할 때 0으로 다시 설정됩니다.

    customMetrics에서 데이터를 찾을 수 있지만 customMetrics 속성 valueCount, valueSum, valueMin, valueMaxvalueStdDev은 효과적으로 사용되지 않습니다.

메트릭에서 사용자 지정 차원 설정

OpenCensus Python SDK를 사용하면 키-값 쌍의 사전과 같은 tags를 사용하여 메트릭 원격 분석에 사용자 지정 차원을 추가할 수 있습니다.

  1. 사용할 태그를 태그 맵에 삽입합니다. 태그 맵은 사용할 수 있는 모든 사용 가능한 태그에 대한 일종의 "풀" 역할을 합니다.

    ...
    tmap = tag_map_module.TagMap()
    tmap.insert("url", "http://example.com")
    ...
    
  2. 특정 View의 경우 태그 키를 통해 해당 뷰로 메트릭을 기록할 때 사용할 태그를 지정합니다.

    ...
    prompt_view = view_module.View("prompt view",
                                "number of prompts",
                                ["url"], # <-- A sequence of tag keys used to specify which tag key/value to use from the tag map
                                prompt_measure,
                                aggregation_module.CountAggregation())
    ...
    
  3. 측정 맵에 기록할 때 태그 맵을 사용해야 합니다. View에 지정된 태그 키는 기록에 사용되는 태그 맵에 있어야 합니다.

    ...
    mmap = stats_recorder.new_measurement_map()
    mmap.measure_int_put(prompt_measure, 1)
    mmap.record(tmap) # <-- pass the tag map in here
    ...
    
  4. customMetrics 테이블에서 prompt_view를 사용하여 내보낸 모든 메트릭 레코드에는 사용자 지정 차원 {"url":"http://example.com"}이 있습니다.

  5. 동일한 키를 사용하여 다른 값으로 태그를 생성하려면 해당 항목에 대한 새 태그 맵을 만듭니다.

    ...
    tmap = tag_map_module.TagMap()
    tmap2 = tag_map_module.TagMap()
    tmap.insert("url", "http://example.com")
    tmap2.insert("url", "https://www.wikipedia.org/wiki/")
    ...
    

성능 카운터

기본적으로 메트릭 내보내기 도구는 Azure Monitor로 성능 카운터 집합을 전송합니다. 메트릭 내보내기의 생성자에서 enable_standard_metrics 플래그를 False로 설정하여 이 기능을 사용하지 않도록 설정할 수 있습니다.

...
exporter = metrics_exporter.new_metrics_exporter(
  enable_standard_metrics=False,
  )
...

현재 전송되는 성능 카운터는 다음과 같습니다.

  • 사용 가능한 메모리(바이트)
  • CPU 프로세서 시간(백분율)
  • 들어오는 요청 빈도(초당)
  • 들어오는 요청 평균 실행 시간(밀리초)
  • 프로세스 CPU 사용량(백분율)
  • 프로세스 프라이빗 바이트(바이트)

performanceCounters에서 이러한 메트릭을 볼 수 있어야 합니다. 자세한 내용은 성능 카운터를 참조하세요.

원격 분석 수정

Azure Monitor로 전송되기 전에 추적된 원격 분석을 수정하는 방법에 대한 자세한 내용은 OpenCensus Python 원격 분석 프로세서를 참조하세요.

추적

참고

OpenCensus에서 tracing분산 추적을 의미합니다. AzureExporter 매개 변수는 requestsdependency 원격 분석을 Azure Monitor로 전송합니다.

  1. 먼저 일부 추적 데이터를 로컬로 생성해 보겠습니다. Python IDLE에서 또는 원하는 편집기에서 다음 코드를 입력합니다.

    from opencensus.trace.samplers import ProbabilitySampler
    from opencensus.trace.tracer import Tracer
    
    tracer = Tracer(sampler=ProbabilitySampler(1.0))
    
    def main():
        with tracer.span(name="test") as span:
            for value in range(5):
                print(value)
    
    
    if __name__ == "__main__":
        main()
    
  2. 각 항목마다 값이 셸에 출력됩니다. OpenCensus Python 모듈은 해당하는 SpanData 부분을 생성합니다. OpenCensus 프로젝트는 범위 트리로 추적을 정의합니다.

    0
    [SpanData(name='test', context=SpanContext(trace_id=8aa41bc469f1a705aed1bdb20c342603, span_id=None, trace_options=TraceOptions(enabled=True), tracestate=None), span_id='15ac5123ac1f6847', parent_span_id=None, attributes=BoundedDict({}, maxlen=32), start_time='2019-06-27T18:21:22.805429Z', end_time='2019-06-27T18:21:44.933405Z', child_span_count=0, stack_trace=None, annotations=BoundedList([], maxlen=32), message_events=BoundedList([], maxlen=128), links=BoundedList([], maxlen=32), status=None, same_process_as_parent_span=None, span_kind=0)]
    1
    [SpanData(name='test', context=SpanContext(trace_id=8aa41bc469f1a705aed1bdb20c342603, span_id=None, trace_options=TraceOptions(enabled=True), tracestate=None), span_id='2e512f846ba342de', parent_span_id=None, attributes=BoundedDict({}, maxlen=32), start_time='2019-06-27T18:21:44.933405Z', end_time='2019-06-27T18:21:46.156787Z', child_span_count=0, stack_trace=None, annotations=BoundedList([], maxlen=32), message_events=BoundedList([], maxlen=128), links=BoundedList([], maxlen=32), status=None, same_process_as_parent_span=None, span_kind=0)]
    2
    [SpanData(name='test', context=SpanContext(trace_id=8aa41bc469f1a705aed1bdb20c342603, span_id=None, trace_options=TraceOptions(enabled=True), tracestate=None), span_id='f3f9f9ee6db4740a', parent_span_id=None, attributes=BoundedDict({}, maxlen=32), start_time='2019-06-27T18:21:46.157732Z', end_time='2019-06-27T18:21:47.269583Z', child_span_count=0, stack_trace=None, annotations=BoundedList([], maxlen=32), message_events=BoundedList([], maxlen=128), links=BoundedList([], maxlen=32), status=None, same_process_as_parent_span=None, span_kind=0)]
    
  3. 시연을 위해 값을 보는 것이 유용하지만 SpanData를 Azure Monitor로 내보내려고 합니다. 연결 문자열을 내보내기 도구에 직접 전달합니다. 또는 환경 변수 APPLICATIONINSIGHTS_CONNECTION_STRING에서 지정할 수 있습니다. 원격 분석을 Application Insights로 보내는 데 사용되는 Exporter를 인스턴스화하려면 연결 문자열을 사용하는 것이 좋습니다. 다음 코드 샘플을 기반으로 이전 단계에서 코드를 수정합니다.

    from opencensus.ext.azure.trace_exporter import AzureExporter
    from opencensus.trace.samplers import ProbabilitySampler
    from opencensus.trace.tracer import Tracer
    
    tracer = Tracer(
        exporter=AzureExporter(),
        sampler=ProbabilitySampler(1.0),
    )
    # Alternatively manually pass in the connection_string
    # exporter = AzureExporter(
    #   connection_string='<appinsights-connection-string>',
    #   ...
    # )
    
    def main():
        with tracer.span(name="test") as span:
            for value in range(5):
                print(value)
    
    if __name__ == "__main__":
        main()
    
  4. 이제 Python 스크립트를 실행할 때 값만 셸에 출력됩니다. 만들어진 SpanData는 Azure Monitor로 전송됩니다. dependencies에서 내보내진 범위 데이터를 찾을 수 있습니다.

    나가는 요청에 대한 자세한 내용은 OpenCensus Python 종속성을 참조하세요. 들어오는 요청에 대한 자세한 내용은 OpenCensus Python 요청을 참조하세요.

샘플링

OpenCensus의 샘플링에 대한 내용은 OpenCensus의 샘플링을 참조하세요.

추적 상관 관계

추적 데이터의 원격 분석 상관 관계에 대한 자세한 내용은 OpenCensus Python 원격 분석 상관 관계를 참조하세요.

원격 분석 수정

Azure Monitor로 전송되기 전에 추적된 원격 분석을 수정하는 방법에 대한 자세한 내용은 OpenCensus Python 원격 분석 프로세서를 참조하세요.

Azure Monitor 내보내기 도구 구성

표시된 것처럼 OpenCensus를 지원하는 3가지 Azure Monitor 내보내기 도구가 있습니다. 각 항목은 서로 다른 유형의 원격 분석을 Azure Monitor로 보냅니다. 각 내보내기에서 보내는 원격 분석의 유형을 확인하려면 다음 표를 참조하세요.

각 내보내기 도구는 생성자를 통해 전달된 구성에 대해 동일한 인수를 수락합니다. 각각에 대한 정보를 여기서 확인할 수 있습니다.

Exporter 원격 분석 설명
connection_string Azure Monitor 리소스에 연결하는 데 사용되는 연결 문자열입니다. instrumentation_key보다 우선 순위를 가집니다.
credential Azure Active Directory 인증에서 사용하는 자격 증명 클래스입니다. 다음에 나오는 "인증" 섹션을 참조하세요.
enable_standard_metrics AzureMetricsExporter에 사용됩니다. Azure Monitor에 자동으로 성능 카운터 메트릭을 보내도록 내보내기 도구에 신호를 보냅니다. 기본값은 True입니다.
export_interval 내보내는 빈도(초)를 지정하는 데 사용됩니다. 기본값은 15s입니다. 메트릭의 경우 60초로 설정해야 합니다. 그렇지 않으면 메트릭 집계가 메트릭 탐색기에서 의미가 없습니다.
grace_period 내보내기 종료 시간(초)을 지정하는 데 사용됩니다. 기본값은 5s입니다.
instrumentation_key Azure Monitor 리소스에 연결하는 데 사용되는 계측 키입니다.
logging_sampling_rate AzureLogHandlerAzureEventHandler에 사용됩니다. 로그/이벤트를 내보내기 위한 샘플링 주기 [0,1.0]을 제공합니다. 기본값은 1.0입니다.
max_batch_size 한 번에 내보내지는 원격 분석의 최대 크기를 지정합니다.
proxies Azure Monitor에 데이터를 보내는 데 사용할 프록시 시퀀스를 지정합니다. 자세한 내용은 프록시를 참조하세요.
storage_path 로컬 스토리지 폴더가 있는 위치에 대한 경로입니다(보내지 않은 원격 분석). opencensus-ext-azure v1.0.3부터 기본 경로는 OS 임시 디렉터리 + opencensus-python + your-ikey입니다. v1.0.3 이전에는 기본 경로가 $USER + .opencensus + .azure + python-file-name입니다.
timeout 수집 서비스에 원격 분석을 보낼 네트워킹 시간 제한을 초 단위로 지정합니다. 기본값은 10s입니다.

Azure Functions와 통합

Azure Functions 환경에서 사용자 지정 원격 분석을 캡처하려면 OpenCensus Python Azure Functions 확장을 사용합니다. 자세한 내용은 Azure Functions Python 개발자 가이드를 참조하세요.

인증(미리 보기)

참고

인증 기능은 opencensus-ext-azure v1.1b0부터 사용할 수 있습니다.

각 Azure Monitor 내보내기 도구는 Azure Active Directory를 사용한 OAuth 인증을 통해 원격 분석 페이로드를 안전하게 보내는 구성을 지원합니다. 자세한 내용은 인증 설명서를 참조하세요.

쿼리를 사용하여 데이터 보기

로그(분석) 탭을 통해 애플리케이션에서 전송된 원격 분석 데이터를 볼 수 있습니다.

Logs(Analytics) 탭이 선택된 개요 창의 스크린샷

활성 목록:

  • Azure Monitor 추적 내보내기를 사용하여 전송되는 원격 분석의 경우 들어오는 요청은 requests에 표시됩니다. 나가는 또는 진행 중인 요청은 dependencies에 표시됩니다.
  • Azure Monitor 메트릭 내보내기로 전송된 원격 분석의 경우 전송된 메트릭은 customMetrics에 표시됩니다.
  • Azure Monitor 로그 내보내기를 사용하여 전송되는 원격 분석의 경우 로그는 traces에 표시됩니다. 예외는 exceptions에 표시됩니다.

쿼리 및 로그를 사용하는 방법에 대한 자세한 내용은 Azure Monitor의 로그를 참조하세요.

Python용 OpenCensus에 대해 자세히 알아보기

문제 해결

애플리케이션 호스트와 수집 서비스 간의 연결 테스트

Application Insights SDK 및 에이전트는 수집 엔드포인트에 대한 REST 호출로 수집하기 위해 원격 분석을 보냅니다. PowerShell 또는 curl 명령의 원시 REST 클라이언트를 사용하여 웹 서버 또는 애플리케이션 호스트 컴퓨터에서 수집 서비스 엔드포인트로의 연결을 테스트할 수 있습니다. Azure Monitor Application Insights에서 누락된 애플리케이션 원격 분석 문제 해결을 참조하세요.

릴리스 정보

최신 릴리스 정보는 Python Azure Monitor 내보내기를 참조하세요

서비스 업데이트에는 주요 Application Insights 개선 사항도 요약되어 있습니다.

다음 단계

경고

  • 가용성 테스트: 웹 테스트를 만들어 사이트가 웹에 표시되는지 확인합니다.
  • 스마트 진단: 이 테스트는 자동으로 실행되므로 아무것도 설정할 필요가 없습니다. 앱이 실패한 요청으로 비정상적인 속도를 보일 경우 알려줍니다.
  • 메트릭 경고: 메트릭이 임계값을 초과할 경우 경고 메시지를 표시하도록 설정합니다. 앱에 코딩하는 사용자 지정 메트릭에 이러한 경고를 설정할 수 있습니다.