• 로그인

사용자의 편의를 위해 제공되는 기계 번역입니다.

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

문제 신고

PHP 에이전트에 대한 분산 추적

중요

PHP 에이전트 버전 9.21.0.311부터 분산 추적이 기본적으로 활성화되어 있으며 이제 범위 수를 기본값 2000, 최대 10000으로 구성할 수 있습니다. 이것은 더 이상 사용되지 않을 교차 애플리케이션 추적을 대체합니다. 분산 추적 설정이 수집 요구 사항과 일치하는지 확인하십시오.

New Relic의 PHP 에이전트는 분산 추적 (PHP 에이전트 버전 9.8 현재 W3C Trace Context 포함)을 지원하므로 요청이 분산 시스템을 통과할 때 이동하는 경로를 볼 수 있습니다. 이 문서에는 PHP 애플리케이션 또는 서비스에 대한 분산 추적을 활성화하기 위한 PHP 관련 팁이 포함되어 있습니다.

PHP에 대한 분산 추적 사용

중요

분산 추적이 활성화되면 애플리케이션 간 추적이 암시적으로 비활성화됩니다. PHP 에이전트는 애플리케이션 간 추적 구성 값 을 무시하고 이 값이 false 으로 설정된 것처럼 작동합니다.

PHP 에이전트에 대한 분산 추적을 활성화 또는 비활성화하려면:

  1. 해당하는 경우 분산 추적을 지원하도록 PHP 에이전트를 업데이트하십시오 (버전 8.4 이상, 가장 완전한 기능을 위해서는 버전 9.8 이상을 권장함).

  2. 트랜잭션 추적기 구성 옵션이 활성화되어 있는지 확인합니다(기본값은 true ).

    newrelic.transaction_tracer.enabled = true
  3. distributed_tracing_enabled 구성 옵션을 사용하여 PHP 에이전트에 대한 분산 추적을 활성화(또는 비활성화)합니다.

    newrelic.distributed_tracing_enabled = true
  4. 트랜잭션 추적기 임계 값을 적절한 값으로 설정하십시오. 추천:

    • 모든 트랜잭션을 분산 추적에 적합하게 하려면 이 값을 0 초로 설정하십시오.
    • 더 오래 실행되는 트랜잭션에 대한 추적에만 관심이 있거나 모든 트랜잭션에 대한 추적을 생성하여 허용할 수 없는 애플리케이션 성능을 생성하는 경우 이 값을 0 초보다 높게 설정하십시오.

    예를 들어:

    newrelic.transaction_tracer.threshold = 0
  5. 선택적으로 W3C 추적 컨텍스트 추적만 필요한 경우 newrelic.distributed_tracing_exclude_newrelic_header 구성 옵션을 사용하여 New Relic Distributed Tracing 헤더를 비활성화할 수 있습니다.

    newrelic.distributed_tracing_exclude_newrelic_header = 1

  6. 구성 설정으로 스팬 활성화:

    newrelic.span_events_enabled = true

  7. 에이전트가 새로 구성된 값을 선택하도록 웹 서버(또는 다른 PHP SAPI)를 다시 시작해야 합니다.

무한 추적 활성화

Infinite Tracing(PHP 에이전트 버전 9.12 이상)은 분산 추적을 확장하여 New Relic Edge라는 AWS의 서비스 클러스터에서 실행되는 추적 관찰자에서 스팬 데이터를 수집합니다. PHP 에이전트는 모든 범위를 추적 관찰자에게 전송하므로 New Relic에서 볼 수 있도록 추적으로 조합될 수 있습니다.

무한 추적을 켜려면 분산 추적을 활성화하고 아래 추가 설정을 구성하십시오.

newrelic.span_events_enabled = true
newrelic.infinite_tracing.trace_observer.host = " YOUR_TRACE_OBSERVER_HOST"

자동 분산 추적 계측 활용

PHP 에이전트는 분산 추적 정보를 사용하여 여러 기본 PHP 기능과 일부 타사 HTTP 클라이언트를 자동으로 계측합니다. 여기에는 다음이 포함됩니다.

추적 세부 수준 설정

분산 추적 지원은 PHP 에이전트의 트랜잭션 추적 프로그램 에 따라 다릅니다. 분산 추적이 활성화 되면 트랜잭션 추적 프로그램에 표시되는 각 세그먼트에 대해 범위 가 생성됩니다.

범위가 샘플링 되면 PHP 에이전트는 외부 호출과 관련된 범위를 다른 범위보다 우선시한 다음 지속 시간의 내림차순으로 기록합니다. 잠재적으로 성능에 영향을 미칠 수 있는 트랜잭션당 샘플링된 최대 범위 수를 결정 하는 ini 설정 이 있습니다.

PHP 함수 호출에 대해 보고되는 중요하지 않은 범위가 너무 많다면 newrelic.transaction_tracer.detail0 로 설정하여 트랜잭션 추적기의 세부 정보를 줄일 수 있습니다. 그런 다음 newrelic.transaction_tracer.custom 구성 설정 또는 newrelic_add_custom_tracer API 메소드를 사용하여 추적에 추가하려는 특정 PHP 함수 또는 메소드에 대한 추적 세그먼트 및 범위를 추가할 수 있습니다.

중요

PHP 에이전트 버전 8.4-8.7의 경우: 분산 추적이 활성화된 경우 이러한 버전은 newrelic.transaction_tracer.detail0 로 설정된 것처럼 작동하므로(위에서 설명한 대로) PHP 함수 호출이 스팬을 생성하지 않습니다. PHP 함수 호출과 관련된 스팬을 얻으려면 버전 9.0 이상으로 업데이트하십시오.

추적 세부정보에 대한 로그 검사

로그와 애플리케이션의 데이터를 함께 가져와 문제 해결을 더 쉽고 빠르게 할 수 있습니다. 컨텍스트의 로그를 사용하면 앱의 UI에서 직접 오류 및 추적과 관련된 로그 메시지를 볼 수 있습니다.

  1. 거래 페이지에서 추적을 클릭하면 추적 세부정보 페이지 로 이동합니다.
  2. 추적 세부정보 페이지에서 로그 보기 를 클릭합니다.
  3. 개별 로그 메시지와 관련된 세부 정보를 보려면 메시지를 직접 클릭하십시오.

Kubernetes 클러스터와 같은 인프라 데이터 컨텍스트에서 로그를 볼 수도 있습니다. 다른 UI 페이지로 전환할 필요가 없습니다.

수동으로 애플리케이션 및 서비스 계측

중요

W3C 추적 컨텍스트 지원이 버전 9.8에 추가되었습니다. 이를 통해 애플리케이션을 수동으로 계측하기 위한 API가 JSON 페이로드 관련 기능에서 변경되었습니다.

newrelic_create_distributed_trace_payload() 그리고 newrelic_accept_distributed_trace_payload($payload),

헤더 배열 형식 newrelic_insert_distributed_trace_headers($outbound_headers)newrelic_accept_distributed_trace_headers($inbound_headers) .

JSON 함수는 이제 더 이상 사용되지 않는 것으로 간주되며 향후 릴리스에서 제거됩니다.

지원되지 않는 라이브러리를 사용하거나 비 HTTP 기반 분산 시스템 구성 요소(예: 메시징 대기열)가 있는 경우 PHP 에이전트 API를 사용하여 분산 추적에 포함될 트랜잭션을 수동으로 식별할 수 있습니다. 이것은 2단계 프로세스입니다.

  1. 분산 추적 데이터를 생성 하거나 삽입 하도록 서비스 또는 애플리케이션을 수정합니다.
  2. 다른 트랜잭션 또는 요청에 의해 생성된 분산 추적 데이터를 허용하도록 서비스 또는 애플리케이션을 수정합니다.

다음 예에서는 일반 메시지/작업 대기열을 사용합니다. 실제 세부 사항은 분산 추적에 추가하려는 시스템 종류에 따라 다르지만 핵심 개념은 동일합니다. 또한 작업 대기열을 예로 사용했지만 모든 분산 시스템 구성 요소에서 이러한 방법을 사용할 수 있습니다.

페이로드를 생성 하거나 헤더를 삽입 할 때 이 요청이나 트랜잭션 또는 요청이 분산 추적에 참여하기를 원한다고 New Relic에 알리는 것입니다. 수락 하면 현재 요청 또는 트랜잭션을 상위 요청 또는 트랜잭션과 연결하는 것입니다.

수동 계측을 사용하여 더 자세한 정보를 얻거나 서비스 간 연결을 확인하는 방법에 대한 자세한 내용은 분산 추적 API 에 대한 설명서를 참조하세요.

헤더 API

페이로드 API(더 이상 사용되지 않음)

명령줄 PHP 프로그램

PHP 명령줄에서 실행되는 PHP 프로그램은 항상 에이전트의 분산 추적 프로그램에서 샘플링됩니다. 실행하는 프로그램에 따라 이러한 프로세스는 분산 추적 모음에서 과도하게 표시될 수 있습니다. 이러한 상황에서는 newrelic.ini filesper-directory newrelic.enabled 설정을 사용하여 명령줄 계측을 비활성화하도록 선택할 수 있습니다.

Copyright © 2022 New Relic Inc.

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