뉴렐릭은 마이크로미터 데이터를 지원하므로 하나의 플랫폼에서 모든 옵저버빌리티 지수를 볼 수 있습니다. SDK를 사용하여 OpenTelemetry Micrometer 브리지를 구성한 다음 OpenTelemetry OpenTelemetry OTLP( Protocol)를 사용하여 Micrometer 데이터를 뉴렐릭으로 전달합니다.
one.newrelic.com > All Capabilities > APM & Services 로 이동한 다음 Services - OpenTelemetry 섹션을 찾으세요. OpenTelemetry통해 브리지될 때 뉴렐릭에서 Micrometer 데이터를 봅니다.
호환성 및 요구 사항
이 절차를 수행하기 전에 다음을 수행해야 합니다.
- OTLP를 통해 데이터를 뉴렐릭으로 내보내도록 지표 SDK를 구성합니다.OpenTelemetry
- OpenTelemetry Micrometer 브리지 설치
마이크로미터 데이터를 뉴렐릭으로 전달
이는 마이크로미터 메트릭 전달을 설정하는 일반화된 단계입니다. 특정 환경에 맞게 필요에 따라 코드 스니펫을 업데이트할 수 있습니다.
OpenTelemetry 마이크로미터 계측 추가
build.gradle
파일의 알파 모듈 섹션에 OpenTelemetry Micrometer 계측을 추가합니다.
//Alpha modulesimplementation 'io.opentelemetry.instrumentation:opentelemetry-micrometer-1.5'
OpenTelemetry 의존성/종속성 추가
dependencies
섹션에서 OpenTelemetry SDK 및 OTLP 내보내기를 추가합니다.
dependencies { implementation 'io.opentelemetry:opentelemetry-sdk' implementation 'io.opentelemetry:opentelemetry-exporters-otlp'}
알파 모듈과 의존성/종속성이 추가된 예제 파일은 다음과 같습니다.
plugins { id 'java-library' id 'org.springframework.boot'}
bootRun { mainClass.set 'io.opentelemetry.example.micrometer.Application'}
dependencies { implementation platform("io.opentelemetry:opentelemetry-bom-alpha:JAVA_OTEL_VERSION") implementation 'io.opentelemetry:opentelemetry-sdk' implementation 'io.opentelemetry:opentelemetry-exporters-otlp'
implementation platform("io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:OTEL_JAVA_INSTRUMENTATION_VERSION") implementation 'io.opentelemetry.instrumentation:opentelemetry-micrometer-1.5'}
올바른 버전으로 스니펫을 업데이트해야 한다는 점을 명심하세요.
데이터를 뉴렐릭으로 전달하도록 Micrometer를 구성합니다.
다음은 Micrometer에 OpenTelemetry Micrometer 브리지를 사용하도록 지시하는 스니펫 예제 코드입니다.
이 스니펫은 OpenTelemetry 마이크로미터 데이터를 감지한 다음 해당 데이터를 뉴렐릭으로 전달할 수 있도록 코드를 업데이트합니다.
public OpenTelemetry openTelemetry() { return OpenTelemetrySdk.builder() .setMeterProvider( SdkMeterProvider.builder() .setResource( Resource.getDefault() .toBuilder() .put("service.name", "micrometer-shim") // Include instrumentation.provider=micrometer to enable // micrometer metrics experience in New Relic .put("instrumentation.provider", "micrometer") .build()) .registerMetricReader( PeriodicMetricReader.builder( OtlpHttpMetricExporter.builder() .setEndpoint("https://otlp.nr-data.net") .addHeader("api-key", Optional .ofNullable(System.getenv("NEW_RELIC_LICENSE_KEY")) .filter(str -> !str.isEmpty() && !str.isBlank()) .orElseThrow()) // IMPORTANT: New Relic exports data using delta // temporality rather than cumulative temporality .setAggregationTemporalitySelector( AggregationTemporalitySelector .deltaPreferred()) // Use exponential histogram aggregation for // histogram instruments to produce better data // and compression .setDefaultAggregationSelector( DefaultAggregationSelector.getDefault().with( InstrumentType.HISTOGRAM, Aggregation.base2ExponentialBucketHistogram())) .build()) // Match default micrometer collection interval of 60 // seconds .setInterval(Duration.ofSeconds(60)) .build()) .build()) .build();}
뉴렐릭에서 데이터 찾기
몇 분 정도 기다린 후 일부 테스트 데이터를 트리거한 다음 one.newrelic.com > All Capability > APM & Services 로 이동한 다음 Services - OpenTelemetry [서비스 - OpenTelemetry를] 찾아 Micrometer로 계측된 서비스를 선택합니다.
다음은 뭐지?
마이크로미터 데이터와 함께 뉴렐릭을 사용하는 방법에 대해 자세히 알아보려면 다음 문서를 권장합니다.
- 대시보드를 사용하여 사용자 정의 시각화를만드는 방법 알아보기
- 시스템 성능을 추적하기 위해 일부 알림을 설정합니다.
- NRQL로 데이터 쿼리