• EnglishEspañol日本語한국어Português
  • 로그인지금 시작하기

이 한글 문서는 사용자의 편의를 위해 기계 번역되었습니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

OpenTelemetry 자습서: 샘플 Python 앱 계측

뉴렐릭 플랫폼이 OTLP 데이터로 무엇을 할 수 있는지 알아보려면 다음 Python 튜토리얼을 시도해 보세요. 선택할 수 있는 세 가지 튜토리얼이 있으며 각 튜토리얼은 동일한 데모 Flask 앱을 사용합니다. 앱은 피보나치 수열의 n번째 숫자를 계산하고 트레이스, 지수 및 로그를 생성합니다.

이러한 튜토리얼을 통해 OpenTelemetry 및 뉴렐릭을 사용하여 자신만의 앱을 설정하는 데 도움이 되는 기술을 배울 수 있습니다.

이러한 자습서를 마치면 다음과 같은 차트에서 스팬 메트릭을 볼 수 있습니다.

요구 사항

시작하기 전에 다음이 있는지 확인하십시오.

튜토리얼

각 튜토리얼은 동일한 데모 앱을 사용하지만 OpenTelemetry 및 뉴렐릭에 익숙해지는 데 도움이 되는 다양한 접근 방식을 제공합니다.

완료하려는 튜토리얼에 대해 아래 탭을 클릭하세요.

OpenTelemetry를 사용할 때 OTLP를 통해 애플리케이션에서 New Relic으로 데이터를 내보내는 두 가지 선택 사항이 있습니다.

  • 앱에서 New Relic으로 직접

  • 앱이 OpenTelemetry Collector로 데이터를 보낸 다음 New Relic으로 내보냅니다.

    이 튜토리얼에서는 첫 번째 옵션을 다룹니다. 수집기를 통해 데이터를 내보내려면 이 수집기 설명서에서 자세한 내용을 확인하세요.

사전 계측된 데모 앱 실행

New Relic에 데이터를 보내고 UI에서 보는 것이 어떤 것인지 빠르게 확인할 수 있도록 계측 작업을 수행하려는 경우에 유용한 옵션입니다.

  1. 터미널에서 다음을 실행하여 데모 앱을 복제하고 시작 안내서의 python/Instrumented 디렉토리로 이동합니다.

    git clone https://github.com/newrelic/newrelic-opentelemetry-examples.git
    cd newrelic-opentelemetry-examples/getting-started-guides/python/Instrumented
  2. New Relic 계정으로 데이터를 보내도록 다음 환경 변수를 설정합니다.

    • 을(를) 사용하세요.

    • New Relic 데이터 센터 지역이 US가 아닌 EU인 경우 끝점을 다음으로 설정합니다. https://otlp.eu01.nr-data.net

      • OTEL_EXPORTER_OTLP_HEADERS=api-key=INSERT_YOUR_NEW_RELIC_LICENSE_KEY
      • OTEL_EXPORTER_OTLP_ENDPOINT=https://otlp.nr-data.net
  3. 이 환경 변수를 설정하여 서비스 이름을 지정하십시오. 다음은 New Relic 계정에서 서비스를 식별하는 방법입니다.

    • OTEL_SERVICE_NAME=시작-파이썬
  4. 동일한 getting-started-guides/python/Instrumented/ 디렉토리에서 가상 환경을 생성 및 활성화하고 필요한 라이브러리를 설치한 후 앱을 실행합니다.

    • 맥 OS:

      python3 -m venv venv
      source venv/bin/activate
      pip install -r requirements.txt
      python3 app.py
    • 파워셸:

      python -m venv venv
      .\venv\Scripts\Activate.ps1
      pip install -r requirements.txt
      python app.py
  5. 새 터미널 탭을 열고 getting-started-guides/python/Instrumented 디렉터리로 전환한 후 다음 명령을 실행하여 애플리케이션에 대한 일부 트래픽을 생성합니다.

    • 맥 OS:

      ./load-generator.sh
    • 파워셸:

      .\load-generator.ps1

    또는 다음 URL에서 브라우저의 엔드포인트에 도달할 수 있습니다: http://localhost:8080/fibonacci?n=INSERT_A_VALUE . INSERT_A_VALUE 을 1에서 90 사이의 값으로 바꿉니다. 오류를 생성하려면 유효한 범위 밖의 정수를 삽입하십시오.

  6. one.newrelic.com > All capabilities > APM & services 으)로 이동합니다.

  7. getting-started-python 라는 새 항목(서비스)을 클릭하고 UI를 탐색합니다. UI에서 무엇을 찾아야 하는지에 대한 추가 팁은 New Relic에서 데이터 보기 를 참조하십시오.

  8. UI에서 데이터 확인을 마치면 두 터미널 세션에서 CONTROL+C 눌러 애플리케이션을 종료합니다.

OpenTelemetry Python 에이전트로 데모 앱 모니터링

다음은 동일한 데모 앱을 사용하는 다른 자습서이지만 이 경우 OpenTelemetry Python 에이전트를 사용하여 데모 앱을 자동으로 모니터링합니다. Python 소스 코드를 수정할 필요가 없습니다. 에이전트를 사용하면 샘플 데이터를 New Relic으로 빠르게 내보낼 수 있습니다.

그러나 로그 및 사용자 정의 지표와 같이 앱에 대한 더 깊은 수준의 정보를 캡처하려면 사용자 정의 측정을 추가해야 합니다.

자동 계측 에이전트는 널리 사용되는 라이브러리 및 프레임워크에서 원격 분석을 캡처하기 위해 바이트 코드를 동적으로 주입하는 시리즈 PyPI 패키지입니다. 인바운드 요청, 아웃바운드 HTTP 호출 및 데이터베이스 호출과 같은 데이터를 캡처하는 데 사용할 수도 있습니다. 모든 Python 3 응용 프로그램에 연결할 수 있습니다.

추가 구성 옵션은 공식 OpenTelemetry Python 에이전트 설명서를 참조하세요.

OpenTelemetry Python 에이전트로 데모 앱을 모니터링하려면:

  1. 이 두 명령을 실행하여 데모 애플리케이션 리포지토리를 다운로드하고 다음 디렉터리로 변경합니다.

    git clone https://github.com/newrelic/newrelic-opentelemetry-examples.git
    cd newrelic-opentelemetry-examples/getting-started-guides/python/Uninstrumented
  2. 아래의 환경 변수 참조 섹션 으로 이동하여 내보내야 하는 변수를 확인한 다음 이 단계로 돌아갑니다.

  3. 그런 다음 동일한 getting-started-guides/python/Uninstrumented/ 디렉토리에서 가상 환경을 만들고 활성화합니다.

    • 맥 OS:

      python3 -m venv venv
      source venv/bin/activate
    • 파워셸:

      python -m venv venv
      .\venv\Scripts\Activate.ps1
  4. 이제 필요한 라이브러리를 설치할 준비가 되었습니다.

    pip install flask
    pip install opentelemetry-instrumentation-flask
    pip install opentelemetry-exporter-otlp
    pip install opentelemetry-distro
  5. 앱으로 에이전트를 시작하려면 getting-started-guides/python/Uninstrumented/ 에서 계속합니다.

    • 맥 OS:

      opentelemetry-instrument python3 app.py
    • 파워셸:

      opentelemetry-instrument python app.py
  6. getting-started-guides/python/Uninstrumented 디렉터리에서 새 터미널을 열고 부하 생성기를 실행하여 애플리케이션에 대한 트래픽을 생성합니다.

    • 맥 OS:

      ./load-generator.sh
    • 파워셸:

      .\load-generator.ps1

      또는 다음 URL에서 브라우저의 엔드포인트에 도달할 수 있습니다: http://localhost:8080/fibonacci?n=INSERT_A_VALUE . INSERT_A_VALUE 을 1에서 90 사이의 값으로 바꿉니다. 오류를 생성하려면 유효한 범위 밖의 정수를 삽입하십시오.

  7. 일부 데이터를 New Relic에 전송했으므로 이제 UI에서 데이터 보기에 대한 지침을 참조하십시오.

  8. UI에서 데이터 확인을 마치면 두 터미널 세션에서 CONTROL+C 눌러 애플리케이션을 종료합니다.

데모 앱을 수동으로 설정

이전 자습서에서는 OpenTelemetry Python 에이전트를 사용하여 자동 측정, 트랜잭션을 탐색하는 데 도움이 되었습니다. 이 튜토리얼에서는 사용자 정의 측정을 사용하여 수집한 텔넷리를 더 효과적으로 제어하는 방법을 보여줍니다. 그런 다음 데이터를 뉴렐릭으로 내보내도록 OpenTelemetry SDK를 구성하는 방법을 살펴보겠습니다.

데모 애플리케이션 다운로드

데모 앱을 다운로드하려면 다음을 실행하십시오.

git clone https://github.com/newrelic/newrelic-opentelemetry-examples.git

필수 라이브러리 설치

필요한 라이브러리를 추가하려면:

  1. 이 자습서의 시작점으로 계측되지 않은 앱의 애플리케이션 디렉터리로 이동합니다. 이 튜토리얼이 끝나면 코드는 Instrumented 디렉토리에 있는 것과 같아야 합니다.

    cd newrelic-opentelemetry-examples/getting-started-guides/python/Uninstrumented
  2. Uninstrumented 디렉터리에서 가상 환경을 만들고 활성화합니다.

    • 맥 OS:

      python3 -m venv venv
      source venv/bin/activate
    • 파워셸:

      python -m venv venv
      .\venv\Scripts\Activate.ps1
  3. 다음을 설치합니다.

    pip install opentelemetry-api
    pip install opentelemetry-sdk
    pip install flask
    pip install opentelemetry-instrumentation-logging
    pip install opentelemetry-instrumentation-flask
    pip install opentelemetry-exporter-otlp
    pip install opentelemetry-distro

SDK 구성

  1. app.py 에서 아래 강조표시된 줄을 top of the file 에 추가합니다. 필요에 따라 사용자 정의 속성 environment 의 값을 변경합니다.

    ##########################
    # OpenTelemetry Settings #
    ##########################
    from opentelemetry.sdk.resources import Resource
    import uuid
    OTEL_RESOURCE_ATTRIBUTES = {
    "service.instance.id": str(uuid.uuid1()),
    "environment": "local"
    }
    from flask import Flask, jsonify, request
    app = Flask(__name__)
  2. 아래의 환경 변수 참조 섹션 으로 이동하여 내보내야 하는 변수를 확인한 후 다음 단계로 이동하여 계측 라이브러리를 추가하십시오.

계측 라이브러리 추가: 추적

app.py에서 추가한 OpenTelemetry Settings 뒤에 다음을 삽입합니다.

##########
# Traces #
##########
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
from opentelemetry.trace.status import Status, StatusCode
# Initialize tracing and an exporter that can send data to an OTLP endpoint
# SELECT * FROM Span WHERE instrumentation.provider='opentelemetry'
trace.set_tracer_provider(TracerProvider(resource=Resource.create(OTEL_RESOURCE_ATTRIBUTES)))
trace.get_tracer_provider().add_span_processor(BatchSpanProcessor(OTLPSpanExporter()))

계측 라이브러리 추가: 측정항목

app.py 에서 D단계에서 추가한 Traces 섹션 뒤에 다음을 추가합니다.

###########
# Metrics #
###########
from opentelemetry import metrics
from opentelemetry.sdk.metrics import MeterProvider
from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader
from opentelemetry.exporter.otlp.proto.http.metric_exporter import OTLPMetricExporter
# Initialize metering and an exporter that can send data to an OTLP endpoint
# SELECT count(`http.server.active_requests`) FROM Metric FACET `service.name` TIMESERIES
metrics.set_meter_provider(MeterProvider(resource=Resource.create(OTEL_RESOURCE_ATTRIBUTES), metric_readers=[PeriodicExportingMetricReader(OTLPMetricExporter())]))
metrics.get_meter_provider()
fib_counter = metrics.get_meter("opentelemetry.instrumentation.custom").create_counter("fibonacci.invocations", unit="1", description="Measures the number of times the fibonacci method is invoked.")

계측 라이브러리 추가: 로그

app.py에서 Metrics 섹션 뒤에 다음을 추가합니다. 이는 로깅 모듈을 가져오고 basicConfig 로깅 수준을 DEBUG로 설정합니다.

########
# Logs # - OpenTelemetry Logs are still in the experimental state, so function names may change in the future
########
import logging
logging.basicConfig(level=logging.DEBUG)
from opentelemetry import _logs
from opentelemetry.sdk._logs import LoggerProvider, LoggingHandler
from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
from opentelemetry.exporter.otlp.proto.http._log_exporter import OTLPLogExporter
# Initialize logging and an exporter that can send data to an OTLP endpoint by attaching OTLP handler to root logger
# SELECT * FROM Log WHERE instrumentation.provider='opentelemetry'
_logs.set_logger_provider(LoggerProvider(resource=Resource.create(OTEL_RESOURCE_ATTRIBUTES)))
logging.getLogger().addHandler(LoggingHandler(logger_provider=_logs.get_logger_provider().add_log_record_processor(BatchLogRecordProcessor(OTLPLogExporter()))))

Flask 측정 추가, 로그

app.py 에서 Logs 섹션 뒤에 아래 강조표시된 줄을 추가합니다. 이것은 분산 추적 및 로그인 컨텍스트에 대한 연결 범위에 도움이 됩니다.

#####################
# Flask Application #
#####################
from flask import Flask, jsonify, request
from opentelemetry.instrumentation.flask import FlaskInstrumentor
app = Flask(__name__)
FlaskInstrumentor().instrument_app(app)

커스텀 추적 계측: 커스텀 범위 만들기

원하는 스팬은 무엇이든 만들 수 있으며 특정 작업에 대한 속성으로 스팬에 주석을 추가하는 것은 사용자의 몫입니다. 설정한 속성은 결과 또는 작업 속성과 같이 추적 중인 특정 작업에 대한 추가 컨텍스트를 제공합니다.

app.py에서 아래에 강조표시된 줄을 삽입하여 다음을 수행하는 /fibonacci 라는 새 스팬을 시작합니다.

  • 이 메서드의 실행에 대한 데이터를 캡처합니다.

  • 사용자 요청에서 n 값을 저장하는 속성을 설정합니다.

    @app.route("/fibonacci")
    @trace.get_tracer("opentelemetry.instrumentation.custom").start_as_current_span("/fibonacci")
    def fibonacci():
    args = request.args
    x = int(args.get("n"))
    error_message = "n must be 1 <= n <= 90."
    trace.get_current_span().set_attribute("fibonacci.n", x)
    try:
    assert 1 <= x <= 90
    array = [0, 1]
    for n in range(2, x + 1):
    array.append(array[n - 1] + array[n - 2])
    trace.get_current_span().set_attribute("fibonacci.result", array[x])
    return jsonify(n=x, result=array[x])
    except AssertionError:
    return jsonify({"message": error_message})
    app.run(host='0.0.0.0', port=8080)

사용자 정의 추적 계측: 예외 기록

예외가 발생하면 기록할 수 있습니다. 스팬 상태 설정과 함께 이 작업을 수행하는 것이 좋습니다.

  1. 예외가 발생할 때 스팬의 상태 코드를 ERROR 으로 설정하려면 D 단계에서 추가한 opentelemetry.trace.status packageStatusStatusCode 모듈을 사용합니다.

    ##########
    # Traces #
    ##########
    from opentelemetry import trace
    from opentelemetry.sdk.trace import TracerProvider
    from opentelemetry.sdk.trace.export import BatchSpanProcessor
    from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
    from opentelemetry.trace.status import Status, StatusCode
  2. 다음으로 아래에 강조 표시된 줄을 삽입하여 New Relic에서 스팬 이벤트로 표시되는 예외를 기록하고 스팬 상태를 ERROR로 설정합니다.

    @app.route("/fibonacci")
    @trace.get_tracer("opentelemetry.instrumentation.custom").start_as_current_span("/fibonacci")
    def fibonacci():
    args = request.args
    x = int(args.get("n"))
    error_message = "n must be 1 <= n <= 90."
    trace.get_current_span().set_attribute("fibonacci.n", x)
    try:
    assert 1 <= x <= 90
    array = [0, 1]
    for n in range(2, x + 1):
    array.append(array[n - 1] + array[n - 2])
    trace.get_current_span().set_attribute("fibonacci.result", array[x])
    return jsonify(n=x, result=array[x])
    except AssertionError:
    trace.get_current_span().record_exception(exception=Exception, attributes={"exception.type": "AssertionError", "exception.message": error_message})
    trace.get_current_span().set_status(Status(StatusCode.ERROR, error_message))
    return jsonify({"message": error_message})
    app.run(host='0.0.0.0', port=8080)

사용자 정의 메트릭 계측: 사용자 정의 메트릭 카운터 추가

메트릭은 개별 측정을 집계로 결합하고 시스템 부하의 함수로 일정한 데이터를 생성하기 때문에 정말 유용한 원격 분석 데이터 유형입니다. 이 데이터를 스팬과 함께 사용하여 추세를 파악하고 애플리케이션 런타임 원격 분석을 제공할 수 있습니다. 메트릭이 나타내는 측정의 하위 구분을 설명하는 데 도움이 되는 속성으로 메트릭에 주석을 달 수도 있습니다.

OpenTelemetry 메트릭 API는 메트릭 SDK에서 집계하고 외부 프로세스로 내보낸 측정값을 기록하는 여러 계측기를 정의합니다. 악기에는 두 가지 유형이 있습니다.

  • 동기식: 이 계측기는 측정이 발생하는 대로 기록합니다.
  • 비동기식: 이러한 도구는 컬렉션당 한 번만 호출되고 관련 컨텍스트가 없는 콜백을 등록합니다.
  1. E 단계에서는 아래에 강조 표시된 줄을 추가하여 카운터를 생성했습니다.

    ###########
    # Metrics #
    ###########
    from opentelemetry import metrics
    from opentelemetry.sdk.metrics import MeterProvider
    from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader
    from opentelemetry.exporter.otlp.proto.http.metric_exporter import OTLPMetricExporter
    # Initialize metering and an exporter that can send data to an OTLP endpoint
    # SELECT count(`http.server.active_requests`) FROM Metric FACET `service.name` TIMESERIES
    metrics.set_meter_provider(MeterProvider(resource=Resource.create(OTEL_RESOURCE_ATTRIBUTES), metric_readers=[PeriodicExportingMetricReader(OTLPMetricExporter())]))
    metrics.get_meter_provider()
    fib_counter = metrics.get_meter("opentelemetry.instrumentation.custom").create_counter("fibonacci.invocations", unit="1", description="Measures the number of times the fibonacci method is invoked.")
  2. 다음으로 측정을 위해 방금 만든 카운터를 사용하려면 아래에 강조 표시된 줄을 추가합니다.

  • 이 함수가 성공적으로 실행되는 횟수

  • 실행에 실패한 횟수

    앱을 다시 시작할 때마다 카운터가 0으로 재설정됩니다.

    @app.route("/fibonacci")
    @trace.get_tracer("opentelemetry.instrumentation.custom").start_as_current_span("/fibonacci")
    def fibonacci():
    args = request.args
    x = int(args.get("n"))
    error_message = "n must be 1 <= n <= 90."
    trace.get_current_span().set_attribute("fibonacci.n", x)
    try:
    assert 1 <= x <= 90
    array = [0, 1]
    for n in range(2, x + 1):
    array.append(array[n - 1] + array[n - 2])
    trace.get_current_span().set_attribute("fibonacci.result", array[x])
    fib_counter.add(1, {"fibonacci.valid.n": "true"})
    return jsonify(n=x, result=array[x])
    except AssertionError:
    trace.get_current_span().record_exception(exception=Exception, attributes={"exception.type": "AssertionError", "exception.message": error_message})
    trace.get_current_span().set_status(Status(StatusCode.ERROR, error_message))
    fib_counter.add(1, {"fibonacci.valid.n": "false"})
    return jsonify({"message": error_message})
    app.run(host='0.0.0.0', port=8080)

사용자 정의 로그 계측

OpenTelemetry Python의 로그 신호 상태는 현재 실험적입니다.

app.py에서 아래 강조 표시된 줄을 다음에 추가합니다.

  • 입력 및 출력 값에 대한 INFO 수준 로그를 기록합니다.

  • 입력 값이 유효한 범위를 벗어나면 ERROR 수준 로그를 기록합니다.

    @app.route("/fibonacci")
    @trace.get_tracer("opentelemetry.instrumentation.custom").start_as_current_span("/fibonacci")
    def fibonacci():
    args = request.args
    x = int(args.get("n"))
    error_message = "n must be 1 <= n <= 90."
    trace.get_current_span().set_attribute("fibonacci.n", x)
    try:
    assert 1 <= x <= 90
    array = [0, 1]
    for n in range(2, x + 1):
    array.append(array[n - 1] + array[n - 2])
    trace.get_current_span().set_attribute("fibonacci.result", array[x])
    fib_counter.add(1, {"fibonacci.valid.n": "true"})
    logging.info("Compute fibonacci(" + str(x) + ") = " + str(array[x]))
    return jsonify(n=x, result=array[x])
    except AssertionError:
    trace.get_current_span().record_exception(exception=Exception, attributes={"exception.type": "AssertionError", "exception.message": error_message})
    trace.get_current_span().set_status(Status(StatusCode.ERROR, error_message))
    fib_counter.add(1, {"fibonacci.valid.n": "false"})
    logging.error("Failed to compute fibonacci(" + str(x) + ")")
    return jsonify({"message": error_message})
    app.run(host='0.0.0.0', port=8080)

앱을 실행하여 트래픽을 생성하세요.

New Relic에 일부 데이터를 보낼 준비가 되었습니다!

  1. 터미널에서 getting-started-guides/python/Uninstrumented 디렉토리에 있는지 확인한 다음 애플리케이션을 실행합니다.

    • MacOS:

      python3 app.py
    • 파워셸:

      python app.py
  2. getting-started-guides/python/Uninstrumented 디렉토리에서 새 터미널 탭을 열고 부하 생성기를 실행하여 애플리케이션에 대한 트래픽을 생성합니다.

    • MacOS:

      ./load-generator.sh
    • 파워셸:

      .\load-generator.ps1

    또는 다음 URL에서 브라우저의 엔드포인트에 도달할 수 있습니다: http://localhost:8080/fibonacci?n=INSERT_A_VALUE . INSERT_A_VALUE 을 1에서 90 사이의 값으로 바꿉니다. 오류를 생성하려면 유효한 범위 밖의 정수를 삽입하십시오.

  3. 일부 데이터를 New Relic에 전송했으므로 이제 UI에서 데이터 보기에 대한 지침을 참조하십시오.

New Relic에서 데모 데이터 보기

어떤 튜토리얼을 완료했는지에 관계없이 New Relic UI에서 데이터를 찾기 위한 아래 팁을 따를 수 있습니다.

자습서 2: OpenTelemetry Python 에이전트를 사용하여 데모 앱 모니터링: 을따랐다면 더 세분화된 데이터를 캡처하기 위해 사용자 지정 계측을 수동으로 추가해야 하므로 사용자 지정 데이터(예: 사용자 지정 메트릭 및 로그)가 표시되지 않습니다.

  1. one.newrelic.com > All capabilities > APM & services

    으)로 이동합니다.

  2. getting-started-python (또는 제공한 이름)라는 새 항목(서비스)을 클릭합니다.

  3. 각 데이터 유형에 대한 섹션에서 세부 정보를 확인하십시오.

Microsoft Windows를 사용 중이고 New Relic 계정에 데이터가 표시되지 않으면 방화벽을 통한 트래픽을 허용했는지 확인하십시오.

트레이스

New Relic에서 getting-started-python 엔티티에 도달하면:

  1. 왼쪽 창의

    Monitor

    섹션에서

    Distributed tracing

    클릭한 다음 /fibonacci 트레이스 그룹을 클릭합니다.

  2. 거기에서 오류가 있는 트레이스를 찾아 클릭하여 엽니다.

  3. 트레이스가 열려 있으면 Show in-process spans 클릭한 다음 결과 범위를 클릭하면 오른쪽에 세부정보 패널이 열립니다. 사용자 입력이 유효하지 않을 때 기록한 예외를 보려면 View span events 클릭하십시오.

수동 계측 자습서를 완료한 경우 범위로 기록한 예외가 New Relic에서 다음과 같이 표시됩니다.

범위 속성, 범위 이름, 상태 코드 등 설정한 추가 세부정보를 보려면 Attributes 탭을 클릭하세요. 이 창에서는 측정에 의해 자동으로 수집된 추가 메타데이터, 이 가이드에서 사용한 추가 라이브러리 및 뉴렐릭에 의해 첨부된 메타데이터를 볼 수도 있습니다.

데이터 보기에 대한 자세한 내용은 New Relic UI의 OpenTelemetry를 참조하십시오.

메트릭

New Relic에서 getting-started-python 엔티티에 도달하면 사용자 정의 카운터 속성과 같은 수집된 모든 메트릭 목록을 볼 수 있습니다.

측정항목 탐색기

메트릭 목록을 볼 수 있는 도구입니다.

  1. 왼쪽 창에서 Data > Metrics explorer 선택한 다음, fibonacci.invocations 선택합니다.

  2. Dimensions 아래에서 맞춤 지표와 함께 수집한 속성을 확인한 다음 fibonacci.valid.n 클릭합니다.

메트릭 탐색기 보기 에 대한 설명서에서 자세히 알아보세요.

로그

로그에 액세스할 수 있는 위치는 다음과 같습니다.

또한 터미널에 로그가 표시됩니다.

로그 보기로 돌아가서 로그를 선택하면 로그 메시지와 수집된 추가 속성(예: 관련 스팬 및 트레이스 ID, New Relic에서 삽입한 메타데이터)이 있는 창이 열립니다.

이 작은 파란색 아이콘을 클릭하여 상관 분산 추적으로 이동할 수 있습니다.

그러면 추적에 대한 자세한 정보를 볼 수 있는 상관 추적을 표시하는 창이 열립니다. 이 페이지에 대한 자세한 내용 은 UI의 OpenTelemetry: 분산 추적 페이지분산 추적 UI 이해 및 사용 을 참조하세요.

분산 추적 보기에서 상관 로그를 찾을 수도 있습니다. 해당 로그가 있는 추적을 선택하면 해당 로그가 탭으로 표시되며 보기를 전환하지 않고도 추적에서 직접 로그를 볼 수 있습니다.

여기 에서 로그 보기에 대해 자세히 알아보세요.

참조: 환경 변수

튜토리얼 2 또는 3을 수행하는 경우 내보내야 하는 환경 변수 목록입니다. 변수 내보내기를 완료한 후 변수 목록 다음에 오는 링크를 사용하여 자습서로 돌아갑니다.

위 축소기에 나열된 환경 변수를 내보낸 후 자습서로 돌아가서 설정을 완료합니다.

다음은 뭐지?

이제 OpenTelemetry 계측 및 SDK 구성을 실험했으므로 배운 내용을 적용하여 OpenTelemetry 및 New Relic을 사용하여 자체 앱 또는 서비스를 설정할 수 있습니다. 자세한 내용 은 OpenTelemetry로 자체 앱 또는 서비스 설정을 참조하십시오.

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.