• 로그인지금 시작하기

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

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

문제 신고

iOS SDK API 가이드

iOS SDK API를 사용하여 맞춤 데이터를 추가합니다 . 예를 들어:

  • 자신의 코드를 계측합니다.
  • 모바일 앱의 이벤트에서 상호 작용 추적을 시작 및 중지합니다.
  • 맞춤 측정항목을 기록합니다.
  • 사용자 정의 속성 및 이벤트 보내기
  • 자동으로 지원되지 않는 라이브러리에서 네트워킹을 추적합니다.
  • 사용자 세션을 분석 이벤트 및 속성(iOS SDK 버전 5.9.0 이상 )과 연결하려면 Objective-C 또는 Swift 로 사용자 정의 식별자 값을 설정하십시오.

주의

추적은 크게 최적화되어 있지만 성능 오버헤드가 발생합니다. 수백 번 호출될 것으로 예상되는 계측 방법을 피하십시오.

SDK 설치

one.newrelic.com > Add more data 로 이동하고 iOS 지침에 따라 앱이 최신 iOS SDK로 계측되었는지 확인하십시오.

이 문서에는 다음에 대한 iOS SDK 계측 요구 사항이 포함되어 있습니다.

사용자 정의 속성 및 이벤트 에 사용 가능한 메소드에 대한 자세한 내용은 iOS SDK API 참조를 참조하십시오 . 다음에 대한 기능 플래그를 구성 할 수도 있습니다.

  • 오브젝티브-C
  • 빠른

자동으로 계측된 클래스 및 메서드

다음 메소드(목록에 있는 클래스 및 해당 하위 클래스에 대한)는 이미 New Relic에 의해 계측됩니다. 추적하기 위해 사용자 정의 계측을 추가할 필요가 없습니다.

클래스

New Relic이 자동으로 계측한 분석법

UIViewController

  • viewDidLoad:
  • viewWillAppear:
  • viewDidAppear:
  • viewWillDisappear:
  • viewDidDisappear:
  • viewWillLayoutSubviews:
  • viewDidLayoutSubviews:

UIImage

  • imageNamed:
  • imageWithContentsOfFile:
  • imageWithData:
  • imageWithData:scale:
  • initWithContentsOfFile:
  • initWithData:
  • initWithData:scale:

NSJSONSerialization

  • JSONObjectWithData:options:error:
  • JSONObjectWithStream:options:error:
  • dataWithJSONObject:options:error:
  • writeJSONObject:toStream:options:error:

NSManagedObjectContext

  • executeFetchRequest:error:
  • processPendingChanges

에이전트는 다양한 방법에 대한 성능을 Interactions 페이지 에 표시되는 요약 메트릭으로 집계합니다. 요약 범주에는 다음이 포함됩니다.

  • View loading
  • UI layout
  • Database
  • Images
  • JSON
  • Network

Objective-C 코드 계측

상호작용 코드 분석 및 타임라인에 자신의 Objective-C 코드를 표시하려면 메서드 시작 부분에 _START 호출을 추가하고 메서드 끝에 _STOP 호출을 추가하세요.

중요

_START 에 대해 항상 _STOP 를 포함하고 주어진 메소드에 이러한 명령 세트를 하나만 포함합니다. 추적 시스템은 자동으로 클래스와 메서드 이름을 선택하고 메서드에 대한 성능 메트릭을 New Relic에 보고합니다.

- (void)myMethod
{
NR_TRACE_METHOD_START(0);
// … existing code
NR_TRACE_METHOD_STOP;
}

ARC를 사용하지 않는 경우 이 버전의 _STOP 매크로를 사용하여 메모리 누수를 방지하세요.

NR_NONARC_TRACE_METHOD_STOP;

메서드의 성능이 APM 개요 페이지의 요약 데이터에 포함되도록 하려면 NRTraceType 열거형 값 중 하나를 _START 매크로에 전달합니다. 예를 들어:

NR_TRACE_METHOD_START(NRTraceTypeDatabase);

Objective-C: 맞춤 속성 및 이벤트 보고

NewRelic 개체의 메서드를 사용하여 사용자 지정 속성 및 이벤트를 보고합니다 . Objective-C에서 사용자 정의 속성 및 이벤트에 사용할 수 있는 방법에 대한 자세한 내용은 iOS SDK API 참조를 참조 하세요.

BOOL 결과를 반환하는 메서드는 성공하면 YES 을 반환하고 작업이 완료되지 않으면 NO 를 반환합니다. 이 메서드는 New Relic iOS SDK 버전 5.0.0 이상에서 사용할 수 있습니다.

SDK는 한 번에 최대 128개의 사용자 정의 사용자 정의 속성 을 저장할 수 있습니다. 128개 이상의 속성을 저장하려고 하면 SDK가 NO 을 반환합니다.

사용자 정의 속성 이름은 필요한 가장 간단한 형식을 사용해야 하며 New Relic은 공백을 포함하지 않는 단일 단어 속성을 권장합니다. 속성 구문 은 낙타의 경우 형식을 지정할 수 있으므로 My Custom AttributemyCustomAttribute 로 지정하는 것이 좋습니다. 맞춤 측정항목과 마찬가지로:

  • 이름을 지정할 때 / ] [ | * 문자를 사용하지 마십시오.
  • 다중 바이트 문자를 피하십시오.

Objective-C: 맞춤형 네트워크 요청 추적

트랜잭션 네트워크 요청을 HTTP 요청과 유사한 용어로 표현할 수 있다면 추적할 수 있습니다. 잘 구성된 URL을 사용하고 매우 가변적인 경로나 호스트 이름을 포함하지 않습니다.

완료 되는 요청의 경우 다음 방법을 사용하십시오.

[NewRelic noticeNetworkRequestForURL:(NSURL*)url
httpMethod:(NSString*)httpMethod
withTimer:(NRTimer *)timer
responseHeaders:(NSDictionary *)headers
statusCode:(NSInteger)httpStatusCode
bytesSent:(NSUInteger)bytesSent
bytesReceived:(NSUInteger)bytesReceived
responseData:(NSData *)responseData
traceHeaders:(NSDictionary<NSString*,NSString*>* _Nullable)traceHeaders
andParams:(NSDictionary *)params];

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

매개변수

설명

url

요청의 URL

httpMethod

요청의 메서드 유형입니다. 예를 들어 POST, GET 등

timer

네트워크 요청 시간을 측정한 NRTimer

headers

사용 가능한 경우 HTTP 응답 헤더를 포함하는 사전

httpStatusCode

응답 상태 코드

httpStatusCode 이 400보다 크거나 같은 경우 에이전트는 서버 오류를 기록하고 제공된 경우 responseData 본문을 캡처할 수 있습니다.

bytesSent

요청 본문의 크기

bytesReceived

responseBody의 크기

responseData

에이전트가 서버 오류 매개변수를 기록하는 경우 캡처된 응답 본문 데이터

traceHeaders

분산 추적을 위해 생성된 헤더입니다. 분산 추적을 사용하지 않는 경우 nil일 수 있습니다.

params

HTTP 트랜잭션이 오류인 경우 HTTP 오류 메트릭에 포함된 추가 매개변수

소켓 또는 운영 체제 오류로 인해 실패한 요청의 경우 다음 방법을 사용하십시오.

[NewRelic noticeNetworkFailureForURL:(NSURL *)url
httpMethod:(NSString*)httpMethod
withTimer:(NRTimer *)timer
andFailureCode:(NSInteger)iOSFailureCode];

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

매개변수

설명

url

요청의 URL

httpMethod

요청의 메서드 유형입니다. 예를 들어 POST, GET 등

timer

네트워크 요청 시간을 측정한 NRTimer

iOSFailureCode

실패 코드

오류 코드는 NSURLError* 코드로 해석됩니다. 지원되는 코드의 전체 목록을 보려면 NRConstants.h 를 참조하세요.

Swift 코드 계측

상호작용 코드 분석 및 타임라인에 고유한 Swift 코드를 표시하려면:

  • 메서드 시작 부분에 startTracingMethod() 호출을 추가합니다.
  • 끝에 endTracingMethodWithTimer() 호출을 추가합니다.
  • startTracingMethod() 참조에 대해 항상 endTracingMethodWithTimer() 호출을 포함합니다.
  • 주어진 방법에 이러한 명령 세트를 하나만 포함하십시오.
func myMethod(){
let timer = NRTimer();
NewRelic.startTracingMethod(#selector(MyClass.myMethod),
object: self,
timer: timer,
category: NRTraceTypeNone)
// … existing code
NewRelic.endTracingMethodWithTimer(timer)
}

메서드의 성능이 APM 개요 페이지의 요약 데이터에 포함되도록 하려면 NRTraceType 열거형 값 중 하나를 startTracingMethod() 매크로에 전달합니다. 예를 들어:

NewRelic.startTracingMethod(#selector(MyClass.myMethod),
object: self,
timer: timer,
category: NRTraceTypeDatabase)

Swift: 사용자 정의 속성 및 이벤트 보고

NewRelic 개체의 메서드를 사용하여 사용자 지정 속성 및 이벤트를 보고합니다 . Swift에서 사용자 정의 속성 및 이벤트에 사용할 수 있는 방법에 대한 자세한 내용은 iOS SDK API 참조를 참조 하세요.

BOOL 결과를 반환하는 메서드는 성공하면 YES 을 반환하고 작업이 완료되지 않으면 NO 를 반환합니다. 이 메서드는 New Relic iOS SDK 버전 5.0.0 이상에서 사용할 수 있습니다.

SDK는 한 번에 최대 128개의 사용자 정의 사용자 정의 속성 을 저장할 수 있습니다. 128개 이상의 속성을 저장하려고 하면 SDK가 NO 을 반환합니다.

사용자 정의 속성 이름은 필요한 가장 간단한 형식을 사용해야 하며 New Relic은 공백을 포함하지 않는 단일 단어 속성을 권장합니다. 속성 구문 은 낙타의 경우 형식을 지정할 수 있으므로 My Custom AttributemyCustomAttribute 로 지정하는 것이 좋습니다. 맞춤 측정항목과 마찬가지로:

  • 이름을 지정할 때 / ] [ | * 문자를 사용하지 마십시오.
  • 다중 바이트 문자를 피하십시오.

Swift: 맞춤형 네트워크 요청 추적

트랜잭션 네트워크 요청을 HTTP 요청과 유사한 용어로 표현할 수 있다면 추적할 수 있습니다. 잘 구성된 URL을 사용하고 매우 가변적인 경로나 호스트 이름을 포함하지 않습니다.

완료 되는 요청의 경우 다음 방법을 사용하십시오.

NewRelic.noticeNetworkRequestForURL(url: NSURL!,
httpMethod: String!,
withTimer: NRTimer!,
responseHeaders:[NSObject : AnyObject]!,
statusCode: Int,
bytesSent: UInt,
bytesReceived: UInt,
responseData: NSData!,
traceHeaders: [String: String]?,
andParams: [NSObject : AnyObject]!)

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

매개변수

설명

url

요청의 URL

httpMethod

요청의 메서드 유형입니다. 예를 들어 POST, GET 등

timer

네트워크 요청 시간을 측정한 NRTimer

headers

사용 가능한 경우 HTTP 응답 헤더를 포함하는 사전

httpStatusCode

응답 상태 코드

httpStatusCode 이 400보다 크거나 같은 경우 에이전트는 서버 오류를 기록하고 제공된 경우 responseData 본문을 캡처할 수 있습니다.

bytesSent

요청 본문의 크기

bytesReceived

responseBody의 크기

responseData

에이전트가 서버 오류 매개변수를 기록하는 경우 캡처된 응답 본문 데이터

traceHeaders

분산 추적을 위해 생성된 헤더입니다. 분산 추적을 사용하지 않는 경우 nil일 수 있습니다.

params

HTTP 트랜잭션이 오류인 경우 HTTP 오류 메트릭에 포함된 추가 매개변수

소켓 또는 운영 체제 오류로 인해 실패한 요청의 경우 다음 방법을 사용하십시오.

NewRelic.noticeNetworkFailureForURL(url: NSURL!,
httpMethod: NSString!,
withTimer: NRTimer!,
andFailureCode: Int)

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

매개변수

설명

url

요청의 URL

httpMethod

요청의 메서드 유형입니다. 예를 들어 POST, GET 등

timer

네트워크 요청 시간을 측정한 NRTimer

iOSFailureCode

실패 코드

오류 코드는 NSURLError* 코드로 해석됩니다. 지원되는 코드의 전체 목록을 보려면 NRConstants.h 를 참조하세요.

Copyright © 2022 New Relic Inc.

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