통사론
자바
NewRelic.noticeHttpTransaction(string $url, string $httpMethod, int $statusCode, long $startTime, long $endTime, long $bytesSent, long $bytesReceived [, string $responseBody])
코틀린 [#kotlin]
NewRelic.noticeHttpTransaction( url: String?, httpMethod: String?, statusCode: Int, startTimeMs: Long, endTimeMs: Long, bytesSent: Long, bytesReceived: Long, responseBody: String? )
설명 [#description]
응답 본문도 보내는 옵션을 사용하여 HTTP 트랜잭션을 기록합니다.
네트워크 요청이 실패하면 noticeNetworkFailure()
로 실패에 대한 세부 정보를 기록할 수 있습니다.
매개변수 [#parameters]
매개변수 | 유형 | 설명 |
---|---|---|
|
| 필수의. 요청의 URL입니다. |
|
| 필수의. GET 또는 POST와 같이 사용된 HTTP 메서드입니다. |
|
| 필수의. HTTP 응답의 statusCode입니다(예: OK 의 경우 200). |
|
| 필수의. Epoch 이후의 요청 시작 시간(밀리초)입니다. |
|
| 필수의. Epoch 이후 요청의 종료 시간(밀리초)입니다. |
|
| 필수의. 요청에서 보낸 바이트 수입니다. |
|
| 필수의. 응답에서 수신된 바이트 수입니다. |
|
| 선택 과목. HTTP 응답의 응답 본문입니다. HTTP 트랜잭션이 오류인 경우 응답 본문이 잘리고 HTTP 오류 메트릭에 포함됩니다. |
예 [#examples]
다음은 HTTP 트랜잭션을 추적하는 예입니다.
자바 [#java]
public class CustomHttpMetricsLogger implements Interceptor {
@Override public Response intercept(Chain chain) throws IOException { Request request = chain.request(); //collect request start time long t1 = System.nanoTime(); //get the size of the request body long requestSize = null == request.body() ? 0 : request.body().contentLength(); //proceed with the request Response response = chain.proceed(request); //capture the time when response returns long t2 = System.nanoTime(); long responseSize = null == response.body() ? 0 : response.body().contentLength(); //tell New Relic to notice this request NewRelic.noticeHttpTransaction(request.urlString(), request.method(), response.code(), t1, t2, requestSize, responseSize); //return response for processing return response; } }
코틀린 [#kotlin]
class CustomInterceptor : Interceptor { override fun intercept(chain: Interceptor.Chain): Response { val t1 = System.nanoTime() val aRequest: Request = chain.request() val requestSize: Long = if (null == aRequest.body) 0 else aRequest.body!!.contentLength() val aResponse = chain.proceed(aRequest) val t2 = System.nanoTime() val responseSize: Long = if (null == aResponse.body) 0 else aResponse.body!!.contentLength() NewRelic.noticeHttpTransaction(aRequest.url.toString(), aRequest.method, aResponse.code, t1, t2, requestSize, responseSize) return aResponse } }
통사론
목표-c
+ (void)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 * _Nullable)params;
빠른 [#swift]
func noticeNetworkRequest(for: URL, httpMethod: String, with: NRTimer, responseHeaders: [AnyHashable : Any], statusCode: Int, bytesSent: UInt, bytesReceived: UInt, responseData: Data, traceHeaders: [String : String], andParams: [AnyHashable : Any])
설명 [#description]
New Relic은 URL, 응답 시간, 상태 코드, 송수신 데이터를 추적합니다.
응답 헤더의 사전에 X-NewRelic-AppData
헤더가 포함된 경우 New Relic은 모바일 앱과 웹 서버 간의 연결을 추적하고 New Relic UI는 서버 대 네트워크 대 대기열 시간의 상관 관계 및 비교를 표시합니다.
HTTP 상태 코드가 오류(400 이상)를 나타내는 경우 New Relic은 이 요청도 오류로 추적합니다. 요청 헤더의 사전과 응답 본문 데이터는 New Relic UI에서 서버 오류로 인코딩됩니다.
매개변수 [#parameters]
매개변수 | 유형 | 설명 |
---|---|---|
|
| 필수의. 요청의 URL입니다. |
|
| 필수의. 요청의 HTTP 메서드입니다. |
|
| 필수의. 요청의 시작과 끝을 캡처하는 타이머입니다. |
|
| 선택 과목. 요청의 종료 시간을 캡처하는 double입니다. |
|
| 선택 과목. 요청의 종료 시간을 캡처하는 double입니다. ( |
|
| 필수의. 서버 응답에서 반환된 헤더의 사전입니다. |
|
| 필수의. HTTP 응답의 상태 코드입니다. |
|
| 필수의. 요청 본문에서 보낸 바이트 수입니다. |
|
| 필수의. 응답 본문에서 수신된 바이트 수입니다. |
|
| 필수의. 서버에서 반환한 응답 본문 데이터입니다. 추적된 서버 오류를 기록할 때 사용됩니다. |
|
| 널 입력 가능. 분산 추적에 사용됩니다. |
|
| 널 입력 가능. 미사용. |
예 [#examples]
오브젝티브-C [#obj-c]
다음은 HTTP 트랜잭션을 추적하는 예입니다.
[NewRelic noticeNetworkRequestForURL:[NSURL URLWithString:@"https://www.newrelic.com"] httpMethod:@"GET" withTimer:[[NRTimer alloc] init] responseHeaders:@{} statusCode:200 bytesSent:1024 bytesReceived:52 responseData:[NSData data] traceHeaders:nil andParams:nil];
다음은 시작 및 종료 시간이 있는 예입니다.
[NewRelic noticeNetworkRequestForURL:[NSURL URLWithString:@"https://www.newrelic.com"] httpMethod:@"GET" startTime:0.0 endTime:0.1 responseHeaders:@{} statusCode:200 bytesSent:1024 bytesReceived:52 responseData:[NSData data] traceHeaders:nil andParams:nil];
빠른 [#swift]
다음은 HTTP 트랜잭션을 추적하는 예입니다.
NewRelic.noticeNetworkRequest(for: URL(string: "https://www.newrelic.com"), httpMethod: "GET", with: NRTimer(), responseHeaders: [:], statusCode: 200, bytesSent: 1000, bytesReceived: 1000, responseData: Data(), traceHeaders: nil, andParams: nil)
다음은 시작 및 종료 시간이 있는 예입니다.
NewRelic.noticeNetworkRequest(for: URL(string: "https://www.newrelic.com"), httpMethod: "GET", startTime: 0.0, endTime: 0.1, responseHeaders: [:], statusCode: 200, bytesSent: 1000, bytesReceived: 1000, responseData: Data(), traceHeaders: nil, andParams: nil)
통사론
noticeHttpTransaction(options: { url: string; method: string; status: number; startTime: number; endTime: number; bytesSent: number; bytesReceived: number; body: string; }) => void
설명 [#description]
응답 본문을 보내는 옵션과 함께 HTTP 트랜잭션을 수동으로 기록합니다.
매개변수 [#parameters]
매개변수 | 유형 | 설명 |
---|---|---|
|
| 필수의. 요청의 URL입니다. |
|
| 필수의. 요청의 HTTP 메서드입니다. |
|
| 필수의. 응답의 HTTP 상태 코드입니다. |
|
| 선택 과목. 에포크 이후의 요청 시작 시간(밀리초)입니다. |
|
| 선택 과목. Epoch 이후 요청의 종료 시간(밀리초)입니다. |
|
| 필수의. 요청에서 보낸 바이트 수입니다. |
|
| 필수의. 응답에서 수신된 바이트 수입니다. |
|
| 선택 과목. HTTP 응답의 응답 본문입니다. |
예시 [#example]
NewRelicCapacitorPlugin.noticeHttpTransaction({ url: "https://fakewebsite.com", method: "GET", status: 200, startTime: Date.now(), endTime: Date.now(), bytesSent: 10, bytesReceived: 2500, body: "fake http response body 200", });
통사론
noticeHttpTransaction(url: string, method: string, status: number, startTime: number, endTime: number, bytesSent: number, bytesReceived: number, body?: string)
설명 [#description]
New Relic Cordova 플러그인은 HTTP 트랜잭션을 자동으로 수집하지만 HTTP 트랜잭션을 수동으로 기록하려면 이 방법을 사용하십시오.
매개변수 [#parameters]
매개변수 | 유형 | 설명 |
---|---|---|
|
| 필수의. 요청의 URL입니다. |
|
| 필수의. 요청의 HTTP 메서드입니다. |
|
| 필수의. 응답의 HTTP 상태 코드입니다. |
|
| 선택 과목. 에포크 이후의 요청 시작 시간(밀리초)입니다. |
|
| 선택 과목. Epoch 이후 요청의 종료 시간(밀리초)입니다. |
|
| 필수의. 요청에서 보낸 바이트 수입니다. |
|
| 필수의. 응답에서 수신된 바이트 수입니다. |
|
| 선택 과목. HTTP 응답의 응답 본문입니다. |
예시 [#example]
NewRelic.noticeHttpTransaction('https://fakewebsiteurl.com', 'GET', 200, Date.now(), Date.now(), 0, 100000, 'fake request body');
통사론
NoticeHttpTransaction(string url, string httpMethod, int statusCode, long startTime,long endTime, long bytesSent, long bytesReceived, string responseBody): void;
설명 [#description]
네트워크 요청을 수동으로 추적합니다. 이 메서드를 사용하여 응답 본문을 보내는 옵션과 함께 HTTP 트랜잭션을 기록할 수 있습니다.
매개변수 [#parameters]
매개변수 | 유형 | 설명 |
---|---|---|
|
| 필수의. 요청의 URL입니다. |
|
| 필수의. 요청의 HTTP 메서드입니다. |
|
| 필수의. 응답의 HTTP 상태 코드입니다. |
|
| 선택 과목. 에포크 이후의 요청 시작 시간(밀리초)입니다. |
|
| 선택 과목. Epoch 이후 요청의 종료 시간(밀리초)입니다. |
|
| 필수의. 요청에서 보낸 바이트 수입니다. |
|
| 필수의. 응답에서 수신된 바이트 수입니다. |
|
| 선택 과목. HTTP 응답의 응답 본문입니다. |
예시 [#example]
CrossNewRelic.Current.NoticeHttpTransaction( "https://newrelic.com", "GET", 200, DateTimeOffset.Now.ToUnixTimeMilliseconds(), DateTimeOffset.Now.ToUnixTimeMilliseconds() + 100, 0, 1000, "" );
통사론
noticeHttpTransaction(String url,String httpMethod,int statusCode,int startTime,int endTime,int bytesSent,int bytesReceived,Map<String, dynamic>? traceData,{String responseBody = ""}): void;
설명 [#description]
네트워크 요청을 수동으로 추적합니다. 이 메서드를 사용하여 응답 본문을 보내는 옵션과 함께 HTTP 트랜잭션을 기록할 수 있습니다.
매개변수 [#parameters]
매개변수 | 유형 | 설명 |
---|---|---|
|
| 필수의. 요청의 URL입니다. |
|
| 필수의. 요청의 HTTP 메서드입니다. |
|
| 필수의. 응답의 HTTP 상태 코드입니다. |
|
| 선택 과목. 에포크 이후의 요청 시작 시간(밀리초)입니다. |
|
| 선택 과목. Epoch 이후 요청의 종료 시간(밀리초)입니다. |
|
| 필수의. 요청에서 보낸 바이트 수입니다. |
|
| 필수의. 응답에서 수신된 바이트 수입니다. |
|
| 선택 과목. 트랜잭션에 대한 추가 정보를 제공하는 데 사용할 수 있는 키-값 쌍의 사전입니다. |
|
| 선택 과목. HTTP 응답의 응답 본문입니다. |
예시 [#example]
NewrelicMobile.instance.noticeHttpTransaction("https://cb6b02be-a319-4de5-a3b1-361de2564493.mock.pstmn.io/searchpage", "GET",200, 1000, 2000,100,300,null,responseBody: "This is Test Payload");
통사론
noticeHttpTransaction(url: string, httpMethod: string, statusCode: number, startTime: number, endTime: number, bytesSent: number, bytesReceived: number, responseBody: string): void;
설명 [#description]
네트워크 요청을 수동으로 추적합니다. 이 메서드를 사용하여 응답 본문을 보내는 옵션과 함께 HTTP 트랜잭션을 기록할 수 있습니다.
매개변수 [#parameters]
매개변수 | 유형 | 설명 |
---|---|---|
|
| 필수의. 요청의 URL입니다. |
|
| 필수의. 요청의 HTTP 메서드입니다. |
|
| 필수의. 응답의 HTTP 상태 코드입니다. |
|
| 선택 과목. 에포크 이후의 요청 시작 시간(밀리초)입니다. |
|
| 선택 과목. Epoch 이후 요청의 종료 시간(밀리초)입니다. |
|
| 필수의. 요청에서 보낸 바이트 수입니다. |
|
| 필수의. 응답에서 수신된 바이트 수입니다. |
|
| 선택 과목. HTTP 응답의 응답 본문입니다. |
예시 [#example]
NewRelic.noticeHttpTransaction('https://github.com', 'GET', 200, Date.now(), Date.now()+1000, 100, 101, "response body");
통사론
noticeHttpTransaction(string url, string httpMethod, int statusCode, long startTime,long endTime, long bytesSent, long bytesReceived, string responseBody): void;
설명 [#description]
네트워크 요청을 수동으로 추적합니다. 이 메서드를 사용하여 응답 본문을 보내는 옵션과 함께 HTTP 트랜잭션을 기록할 수 있습니다.
매개변수 [#parameters]
매개변수 | 유형 | 설명 |
---|---|---|
|
| 필수의. 요청의 URL입니다. |
|
| 필수의. 요청의 HTTP 메서드입니다. |
|
| 필수의. 응답의 HTTP 상태 코드입니다. |
|
| 선택 과목. 에포크 이후의 요청 시작 시간(밀리초)입니다. |
|
| 선택 과목. Epoch 이후 요청의 종료 시간(밀리초)입니다. |
|
| 필수의. 요청에서 보낸 바이트 수입니다. |
|
| 필수의. 응답에서 수신된 바이트 수입니다. |
|
| 선택 과목. HTTP 응답의 응답 본문입니다. |
예시 [#example]
NewRelicAgent.NoticeHttpTransaction('https://github.com', 'GET', 200, DateTimeOffset.Now.ToUnixTimeMilliseconds(), DateTimeOffset.Now.ToUnixTimeMilliseconds()+1000, 100, 101, "response body", null);
통사론
NoticeHttpTransaction(string url, string httpMethod, int statusCode, long startTime,long endTime, long bytesSent, long bytesReceived, string responseBody): void;
설명 [#description]
네트워크 요청을 수동으로 추적합니다. 이 메서드를 사용하여 응답 본문을 보내는 옵션과 함께 HTTP 트랜잭션을 기록할 수 있습니다.
매개변수 [#parameters]
매개변수 | 유형 | 설명 |
---|---|---|
|
| 필수의. 요청의 URL입니다. |
|
| 필수의. 요청의 HTTP 메서드입니다. |
|
| 필수의. 응답의 HTTP 상태 코드입니다. |
|
| 선택 과목. 에포크 이후의 요청 시작 시간(밀리초)입니다. |
|
| 선택 과목. Epoch 이후 요청의 종료 시간(밀리초)입니다. |
|
| 필수의. 요청에서 보낸 바이트 수입니다. |
|
| 필수의. 응답에서 수신된 바이트 수입니다. |
|
| 선택 과목. HTTP 응답의 응답 본문입니다. |
예시 [#example]
CrossNewRelicClient.Current.NoticeHttpTransaction( "https://newrelic.com", "GET", 200, DateTimeOffset.Now.ToUnixTimeMilliseconds(), DateTimeOffset.Now.ToUnixTimeMilliseconds() + 100, 0, 1000, "" );