• 로그인

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

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

문제 신고

newrelic_record_datastore_segment(PHP 에이전트 API)

통사론

newrelic_record_datastore_segment(callable $func, array $parameters)

데이터 저장소 세그먼트를 기록합니다.

요구 사항

에이전트 버전 7.5.0.199 이상.

설명

데이터 저장소 세그먼트를 기록합니다. 데이터 저장소 세그먼트는 New Relic UI에 있는 트랜잭션 페이지분석 테이블데이터베이스 탭에 나타납니다.

이 기능을 사용하면 PHP 에이전트가 지원되는 데이터 저장소 를 자동으로 계측하는 것과 같은 방식으로 지원되지 않는 데이터 저장소를 계측할 수 있습니다.

매개변수

매개변수

설명

$callback

호출 가능한

필수의. 데이터 저장소 세그먼트를 생성하기 위해 시간을 설정해야 하는 함수입니다.

$parameters

정렬

필수의. 데이터 저장소 호출을 설명하는 매개변수의 연관 배열입니다.

$parameters 배열에서 지원되는 키는 다음과 같습니다.

열쇠

설명

product

필수의. 사용 중인 데이터 저장소 제품의 이름입니다. 예를 들어 MySQL 은 세그먼트가 MySQL 데이터베이스에 대한 쿼리를 나타냄을 나타냅니다.

collection

선택 과목. 사용 중이거나 쿼리 중인 테이블 또는 컬렉션입니다.

operation

선택 과목. 수행 중인 작업: 예를 들어 SQL SELECT 쿼리의 경우 select , Memcached 집합 작업의 경우 set 입니다.

작업은 대소문자에 관계없이 지정할 수 있지만 New Relic은 PHP 에이전트의 자동화된 데이터 저장소 계측에서 사용되는 작업 이름과 더 잘 일치하도록 소문자를 사용할 것을 제안합니다.

host

선택 과목. 데이터 저장소 호스트 이름입니다.

portPathOrId

선택 과목. 데이터 저장소에 연결하는 데 사용되는 포트 또는 소켓입니다.

databaseName

선택 과목. 사용 중인 데이터베이스 이름 또는 번호입니다.

query

선택 과목. 서버로 보낸 쿼리입니다.

보안상의 이유로 이 값은 product 을 지원되는 데이터 저장소로 설정한 경우에만 사용됩니다. 이렇게 하면 에이전트가 쿼리를 올바르게 난독화할 수 있습니다. 지원되는 제품 값(대소문자 구분 없이 일치)은 MySQL , MSSQL , Oracle , Postgres , SQLite , Firebird , SybaseInformix 입니다.

inputQueryLabel

선택 과목. 사용 중인 ORM의 이름(예: Doctrine ).

inputQuery

선택 과목. ORM에 제공된 입력 쿼리입니다.

보안상의 이유로 query 매개변수와 마찬가지로 제품이 지원되는 데이터 저장소가 아닌 경우 이 값은 무시됩니다.

반환 값

$callback 의 반환 값이 반환됩니다. 오류가 발생하면 false 이 반환되고 E_WARNING 수준의 오류가 트리거됩니다.

지원되지 않는 NoSQL 데이터 저장소 계측

get 메서드를 노출하는 Bucket 이라는 가상의 NoSQL 데이터 저장소를 계측하기 위해 다음 코드는 New Relic UI에 표시되는 데이터 저장소 측정항목을 생성합니다.

$bucket = new Bucket($host, $port);
$id = 12345;
$value = newrelic_record_datastore_segment(function () use ($bucket, $id) {
return $bucket->get($id);
}, array(
'product' => 'Bucket',
'collection' => $id,
'operation' => 'get',
'host' => $host,
'portPathOrId' => $port,
));

지원되지 않는 SQL 클라이언트 라이브러리 계측

지원되지 않는 MySQL 클라이언트 라이브러리에 대한 쿼리를 난독화하고 세그먼트에 첨부하여 기록하려면:

$sql = 'SELECT * FROM table';
$stmt = $db->prepare($sql);
$result = newrelic_record_datastore_segment(function () use ($stmt) {
return $stmt->execute();
}, array(
'product' => 'MySQL',
'collection' => 'table',
'operation' => 'select',
'host' => $host,
'portPathOrId' => $port,
'databaseName' => 'dbname',
'query' => $query,
));
Copyright © 2022 New Relic Inc.

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