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

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

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

문제 신고

datastore_trace(Python 에이전트 API)

통사론

newrelic.agent.datastore_trace(product, target, operation)

데이터 저장소에 대한 호출을 계측하는 데 사용됩니다.

설명

datastore_trace 추가 세그먼트의 형태로 트랜잭션 추적 에 세부 정보를 추가하는 데 사용됩니다. datastore_trace 으로 보고된 모든 호출은 APM 데이터베이스 페이지 에 나타납니다. datastore_trace 은 데이터 저장소에 대한 호출 시간을 지정하는 함수의 데코레이터로 사용할 수 있는 DatastoreTraceWrapper일부 를 반환합니다.

datastore_trace 데코레이터는 에이전트 버전이 2.102.0.85 이상인 생성기 및 코루틴에서 사용할 수 있습니다. 이러한 개체의 타이밍은 소비가 시작될 때 시작되고 개체가 소진되거나 범위를 벗어날 때 끝납니다. 이는 메트릭이 생성기 또는 코루틴 개체 자체를 생성하는 데 걸린 시간을 나타내는 이전 버전에서 변경된 사항입니다.

애플리케이션에서 데코레이터를 사용할 수 없는 경우 다음 다른 호출 형식 중 하나를 사용할 수 있습니다.

  • 컨텍스트 관리자 : 컨텍스트 관리자 양식은 DatastoreTrace 입니다.
  • 래퍼 : 래퍼 형식은 DatastoreTraceWrapper 입니다. 데코레이터를 사용하지 않고 래핑된 함수를 반환하는 데 사용할 수 있습니다.
  • 경로 기반 래퍼 : 경로 기반 래퍼 형식은 wrap_datastore_trace 입니다. 이것은 원숭이 패치를 통해 주어진 객체에 DatastoreTraceWrapper 을 적용합니다. 데코레이터와 동일한 매개변수와 추가 moduleobject_path 매개변수를 사용합니다.

이러한 다른 호출 형식의 사용에 대한 설명은 다른 호출 형식 을 참조하십시오. 호출 예는 를 참조하십시오.

매개변수

데코레이터의 매개변수

newrelic.agent.datastore_trace(product, target, operation)

이 호출에는 다음 매개변수가 포함됩니다.

매개변수

설명

product

필수의. 공급업체의 이름입니다. 예: Postgres , Redis .

target

필수의. 컬렉션 또는 테이블의 이름입니다. 대상이 없으면 None 을 사용해야 합니다.

operation

필수의. 데이터 저장소 작업의 이름입니다. 예: select , get , insert , rollback . 제공하지 않으면 기본값은 other 입니다.

컨텍스트 관리자용 매개변수

newrelic.agent.DatastoreTrace(product, target, operation, host=None, port_path_or_id=None, database_name=None)

컨텍스트 관리자의 매개변수 에는 datastore_trace 의 모든 매개변수와 추가 host , port_path_or_iddatabase_name 매개변수가 포함됩니다.

매개변수

설명

host

선택 과목. 데이터 저장소 서버의 호스트 이름 또는 IP입니다.

port_path_or_id

선택 과목. 데이터 저장소 서버에 연결하는 데 사용되는 포트입니다. 유닉스 소켓으로 연결하는 경우 소켓에 대한 경로가 될 수 있습니다.

database_name

선택 과목. 데이터베이스의 이름입니다.

래퍼 매개변수

newrelic.agent.DatastoreTraceWrapper(wrapped, product, target, operation)

래퍼 매개변수에는 datastore_tracewrapped 매개변수에 대한 모든 매개변수 가 포함됩니다.

매개변수

설명

wrapped

기능

필수의. 래핑되는 함수입니다.

경로 기반 래핑 매개변수

newrelic.agent.wrap_datastore_trace(module, object_path, product, target, operation)

매개변수에는 datastore_trace 에 대한 모든 매개변수 와 다음 매개변수가 포함됩니다.

매개변수

설명

module

물체

필수의. 계측할 함수가 포함된 모듈입니다.

object_path

필수의. 함수의 위치에 대한 경로입니다.

반환 값

datastore_trace DatastoreTraceWrapper() 부분을 반환합니다.

datastore_trace 예시

datastore_trace 데코레이터 사용 예:

import newrelic.agent
class _Database(UserDict.DictMixin):
...
@newrelic.agent.datastore_trace('Redis', None, 'get')
def _get(self, key):
...

네이티브 코루틴과 함께 datastore_trace 데코레이터를 사용하는 예:

import newrelic.agent
class _Database(UserDict.DictMixin):
...
@newrelic.agent.datastore_trace('Redis', None, 'get')
async def _get(self, key):
...

컨텍스트 관리자 예제

DatastoreTrace 컨텍스트 관리자를 사용하는 예: `custom_action`을 수행하는 데 걸리는 시간을 알려줍니다.

import newrelic.agent
def complex_query(a, b, c):
with Connection(host, port, db) as conn:
with newrelic.agent.DatastoreTrace(
product="Custom Product",
target=None,
operation="custom",
host=host,
port_path_or_id=port,
database_name=db,
):
conn.custom_action()

래퍼 예

DatastoreTraceWrapper 사용 예:

import newrelic.agent
class _Database(UserDict.DictMixin):
...
def _get(self, key):
...
_Database._get = newrelic.agent.DatastoreTraceWrapper(
_Database._get, "Redis", None, "get"
)
Copyright © 2024 New Relic Inc.

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