New Relic Edge 앱 을 사용하여 무한 추적 에 대한 많은 설정을 구성할 수 있습니다. GraphQL을 사용하여 이러한 다양한 구성 작업을 수행할 수도 있습니다. NerdGraph GraphiQL 탐색기 를 사용하면 Infinite Tracing 구성에 대한 쿼리 및 변형을 실행하고 결과를 볼 수 있습니다. 이 문서에서는 사용 가능한 몇 가지 옵션에 대해 설명합니다.
팁
GraphQL을 시작하는 데 도움이 필요 하면 New Relic NerdGraph 소개를 확인하세요.
추적 관찰자에서 무작위 샘플러 업데이트
꼬리 기반 샘플링 알고리즘에 대한 문서에 설명된 대로 Infinite Tracing이 추적을 샘플링하기 위해 선택하는 몇 가지 방법이 있습니다. 임의 샘플러를 구성할 수 있으므로 유지되는 추적 비율을 제어할 수 있습니다.
팁
임의 필터를 변경하는 것이 적절한 시기에 대한 도움이 필요하면 무한 추적: 임의 추적 필터 를 참조하십시오.
다음 예는 기본값인 1%에서 값을 업데이트하는 방법을 보여줍니다.
api.newrelic.com/graphiql에서 NerdGraph GraphiQL 탐색기로 이동합니다.
다음 쿼리를 실행하여 수정할 무작위 샘플러가 포함된 추적 관찰자를 찾습니다.
{ actor { account(id: YOUR_ACCOUNT_ID) { edge { tracing { traceObservers { id name providerRegion status traceFilters { randomTraceFilter { percentKept } } endpoints { agent { host } } } } } } } }
응답에서 추적 관찰자
id
를 찾습니다. 다음은 값이123456789
인 예입니다.{ "data": { "actor": { "account": { "edge": { "tracing": { "traceObservers": [ { "endpoints": [ { "agent": { "host": "your-uuid-goes-here.aws-us-east-1.tracing.edge.nr-data.net" } } ], "id": 123456789, "name": "Production Workload, US-EAST-1", "providerRegion": "AWS_US_EAST_1", "status": "CREATED", "traceFilters": { "randomTraceFilter": { "percentKept": 1 } } } ] } } } } } }
id
및 유지하려는 백분율을 사용하여 변형을 실행합니다. 예를 들어, 이전 단계에서 찾은 ID가123456789
인 추적 관찰자에 대해 값을 50%로 높이려면 다음을 실행합니다.mutation { edgeUpdateTraceObservers( accountId: YOUR_ACCOUNT_ID traceObserverConfigs: { id: 123456789, randomTraceFilterConfig: { percentKept: 50 } } ) { responses { errors { message type } traceObserver { traceFilters { randomTraceFilter { percentKept } } id endpoints { agent { host } } name status } } } }
변경을 확인하는 응답은 다음과 같습니다.
{ "data":{ "edgeUpdateTraceObservers":{ "responses":[ { "errors":null, "traceObserver":{ "endpoints":[ { "agent":{ "host":"your-uuid-goes-here.aws-us-east-1.tracing.edge.nr-data.net" } } ], "id":123456789, "name":"Production Workload, US-EAST-1", "status":"CREATED", "traceFilters":{ "randomTraceFilter":{ "percentKept":50 } } } } ] } }}
추적 관찰자에서 데이터 소스 업데이트
일부 엔터티는 추적 데이터를 Infinite Tracing 추적 관찰자에게 직접 보내도록 구성할 수 있지만 다른 엔터티는 New Relic이 추적 관찰자에게 데이터를 라우팅하도록 할 수 있습니다. 현재 모바일, 브라우저 및 Lambda 엔터티에 대해 이 기능을 지원합니다. Infinite Tracing의 맥락에서 우리는 이러한 엔티티를 데이터 소스라고 부릅니다.
팁
추적 관찰자의 데이터 소스에 대한 도움이 필요한 경우 추적 관찰자 설정 을 참조하십시오.
추적 관찰자에서 데이터 소스를 업데이트할 수 있는 세 가지 방법이 있습니다.
- 추가: 추적 관찰자의 기존 데이터 소스에 새 데이터 소스를 추가하려면
ADD
DataSourceGroupUpdateType
을(를) 사용하십시오. 이 변형으로 데이터 소스가 제거되지 않습니다. - REPLACE: 추적 관찰자의 기존 데이터 소스를 새 값 세트로 바꾸려면
REPLACE
DataSourceGroupUpdateType
를 사용하세요. 새 세트에 없는 기존 값은 상태가INACTIVE
로 설정됩니다. - 제거: 추적 관찰자에서 하나 이상의 기존 데이터 소스를 제거하려면
REMOVE
DataSourceGroupUpdateType
를 사용하십시오. 전달된 모든 값의 상태는INACTIVE
로 설정됩니다.
다음 예에서는 기존 데이터 원본에 추가하는 방법을 보여줍니다.
api.newrelic.com/graphiql에서 NerdGraph GraphiQL 탐색기로 이동합니다.
다음 쿼리를 실행하여 수정하려는 데이터 원본 그룹이 포함된 추적 관찰자를 찾습니다.
{ actor { account(id: YOUR_ACCOUNT_ID) { edge { tracing { traceObservers { id name dataSourceGroup { dataSources { entity { guid name entityType } status } } endpoints { agent { host } } } } } } } }
응답에서 추적 관찰자
id
를 찾습니다. 다음은 두 개의 추적 관찰자가 있는 예입니다.id
값이259
인 US-EAST-1에 있는 "Production services"를 원한다고 가정해 보겠습니다.{"data": {"actor": {"account": {"edge": {"tracing": {"traceObservers": [{"dataSourceGroup": {"dataSources": [{"entity": {"entityType": "BROWSER_APPLICATION_ENTITY","guid": "MXxCUk9XU0VSfEFQUExJQ0FUSU9OfDE","name": "My 1st Browser App"},"status": "ACTIVE"},{"entity": {"entityType": "MOBILE_APPLICATION_ENTITY","guid": "MXxNT0JJTEV8QVBQTElDQVRJT058Mg","name": "My 1st iOS App"},"status": "ACTIVE"},{"entity": {"entityType": "INFRASTRUCTURE_AWS_LAMBDA_FUNCTION_ENTITY","guid": "MXxJTkZSQXxOQXwz","name": "My 1st Lambda Function"},"status": "ACTIVE"}]},"endpoints": [{"agent": {"host": "1541eb3c-9cb7-44fc-a764-fa2ab5d507ed.aws-us-east-1.tracing.edge.nr-data.net"}}],"id": 259,"name": "Production services"},{"dataSourceGroup": {"dataSources": [{"entity": {"entityType": "BROWSER_APPLICATION_ENTITY","guid": "MXxCUk9XU0VSfEFQUExJQ0FUSU9OfDEw","name": "My Staging Browser App"},"status": "ACTIVE"},{"entity": {"entityType": "MOBILE_APPLICATION_ENTITY","guid": "MXxNT0JJTEV8QVBQTElDQVRJT058MTE","name": "My Staging Android App"},"status": "ACTIVE"},{"entity": {"entityType": "INFRASTRUCTURE_AWS_LAMBDA_FUNCTION_ENTITY","guid": "MXxJTkZSQXxOQXwxMg","name": "My Staging Lambda Function"},"status": "ACTIVE"}]},"endpoints": [{"agent": {"host": "cd8816a3-b2a2-421b-aa15-5095a056d902.aws-us-west-2.tracing.edge.nr-data.net"}}],"id": 632,"name": "Staging Environment"}]}}}}}}ID, 하나 이상의 엔티티 guid 및 추가, 교체 또는 제거 여부를 사용하여 변형을 실행하십시오. 예를 들어, 이전 단계에서 찾은 ID가
259
인Production services
추적 관찰자에 새 브라우저 앱과 모바일 앱을 추가하려면 다음을 실행합니다.mutation {edgeUpdateTraceObservers(traceObserverConfigs: {id: 259, dataSourceGroupConfig: {updateType: ADD, guids: ["MXxCUk9XU0VSfEFQUExJQ0FUSU9OfDQ5", "MXxNT0JJTEV8QVBQTElDQVRJT058MTY"]}}, accountId: 1) {responses {errors {messagetype}traceObserver {dataSourceGroup {dataSources {entity {guidname}status}}}}}}
변경을 확인하는 응답은 다음과 같습니다.
{ "data": { "edgeUpdateTraceObservers": { "responses": [ { "errors": null, "traceObserver": { "dataSourceGroup": { "dataSources": [ { "entity": { "guid": "MXxCUk9XU0VSfEFQUExJQ0FUSU9OfDE", "name": "My 1st Browser App" }, "status": "ACTIVE" }, { "entity": { "guid": "MXxNT0JJTEV8QVBQTElDQVRJT058Mg", "name": "My 1st iOS App" }, "status": "ACTIVE" }, { "entity": { "guid": "MXxJTkZSQXxOQXwz", "name": "My 1st Lambda Function" }, "status": "ACTIVE" }, { "entity": { "guid": "MXxCUk9XU0VSfEFQUExJQ0FUSU9OfDQ5", "name": "My 2nd Browser App" }, "status": "ACTIVE" }, { "entity": { "guid": "MXxNT0JJTEV8QVBQTElDQVRJT058MTY", "name": "My 2nd Mobile App" }, "status": "ACTIVE" } ] } } } ] } }}
추적 관찰자의 이름 업데이트
추적 관찰자의 이름을 변경하는 방법은 다음과 같습니다.
api.newrelic.com/graphiql에서 NerdGraph GraphiQL 탐색기로 이동합니다.
이름을 업데이트하려는 추적 관찰자를 찾습니다.
{ actor { account(id: YOUR_ACCOUNT_ID) { edge { tracing { traceObservers { id name providerRegion status endpoints { agent { host } } } } } } } }
응답에서 반환된 추적 관찰자
id
를 찾습니다.{ "data": { "actor": { "account": { "edge": { "tracing": { "traceObservers": [ { "endpoints": [ { "agent": { "host": "your-uuid-goes-here.aws-us-east-1.tracing.edge.nr-data.net" } } ], "id": 123456789, "name": "Production Workload, US-EAST-1", "providerRegion": "AWS_US_EAST_1", "status": "CREATED" } ] } } } } } }
이름에 대한 새 값을 포함하는 변형을 실행합니다. 예를 들어 ID가
123456789
인 추적 관찰자에 대해 이름을 Global Workload, US-EAST-1 로 변경하려면 다음을 실행합니다.mutation { edgeUpdateTraceObservers( accountId: YOUR_ACCOUNT_ID traceObserverConfigs: { id: 123456789, name: "Global Workload, US-EAST-1" } ) { responses { errors { message type } traceObserver { id endpoints { agent { host } } name status } } } }
변경을 확인하는 응답은 다음과 같습니다.
{ "data":{ "edgeUpdateTraceObservers":{ "responses":[ { "errors":null, "traceObserver":{ "endpoints":[ { "agent":{ "host":"your-uuid-goes-here.aws-us-east-1.tracing.edge.nr-data.net" } } ], "id":123456789, "name":"Global Workload, US-EAST-1", "status":"CREATED" } } ] } }}