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

이 한글 문서는 사용자의 편의를 위해 기계 번역되었습니다.

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

문제 신고

C SDK OpenTelemetry 대안

OpenTelemetry C++는 안정적인 기능과 활성 코드베이스의 광범위한 기여자 기반을 갖춘 흥미로운 관찰 솔루션 입니다. New Relic은 OpenTelemetry와 호환 되며 공급업체별 형식을 준수하는 대신 종단점에 구애받지 않는 계측 호출을 추가하여 미래 보장 코드와 같은 이점 을 제공할 수 있습니다.

OpenTelemetry를 사용하여 선택한 언어로 작업하여 New Relic에 데이터를 보내는 방법에 대한 자세한 지침은 New Relic OpenTelemetry 설정 을 참조하세요.

OpenTelemetry C++ 리포지토리에는 GitHub에 많은 훌륭한 예제가 있습니다 . OpenTelemetry C++ SDK 빌드 및 사용과 예제 빌드 및 실행에 대한 추가 지침은 CONTRIBUTING.md 를 참조하십시오.

빠른 시작 예

바로 시작하여 코드를 계측하지 않고도 New Relic이 무엇을 할 수 있는지 알고 싶으십니까? 데이터를 New Relic에 즉시 전송하는 예를 보려면 아래 단계를 따르십시오.

계측을 시작할 준비가 되면 New Relic OpenTelemetry 설정 지침 과 OpenTelemetry C++ 저장소 CONTRIBUTING.md 에서 코드 통합에 대한 자세한 내용을 참조하세요.

1. 환경 설정

New Relic OpenTelemetry 설명서 에 설명된 전제 조건이 있는지 확인하십시오.

  1. git clone https://github.com/open-telemetry/opentelemetry-cpp 을(를) 실행합니다.
  2. Dockerfile.ubuntu , docker-compose-collector.yamlconfig.dev.yaml 예제 파일을 1단계에서 복제한 디렉토리의 루트에 복사합니다.
  3. 라이선스 키엔드포인트config.dev.yaml 을(를) 편집합니다.
  4. docker-compose -f docker-compose-collector.yaml up 을(를) 실행합니다.
  5. 두 개의 컨테이너가 실행 중인지 확인하십시오. 하나는 수집기용이고 다른 하나는 C++ 애플리케이션용입니다.

2. C++ 애플리케이션 실행

C++ 컨테이너에서 터미널을 열고 다음 명령을 실행합니다.

  1. cd /usr/src/myapp

  2. mkdir build

  3. cd build

  4. rm -rf *

    bash
    $
    cmake -DCMAKE_BUILD_TYPE=Debug \
    >
    -DWITH_METRICS_PREVIEW=ON \
    >
    -DWITH_LOGS_PREVIEW=ON \
    >
    -DCMAKE_CXX_FLAGS="-Wno-error=deprecated-declarations" \
    >
    -DWITH_OTLP=ON \
    >
    ..
  5. cd examples

  6. make

  7. cd otlp

  8. ./example_otlp_http

3. 데이터 보기

New Relic 계정 데이터를 쿼리하여 데이터가 도착했는지 확인하십시오.

  1. 스팬 데이터를 보려면: one.newrelic.com > All capabilities > Query your data 으로 이동하여 다음 쿼리를 입력하세요.

    FROM Span SELECT * where telemetry.sdk.name = 'opentelemetry'
  2. 자세한 내용은 unknown_service 을(를) 검색하여 OpenTelemetry 서비스 를 보십시오.

샘플 파일

docker-compose-collector.yaml

version: '3.7'
services:
cpp:
build:
context: .
dockerfile: Dockerfile.ubuntu
stdin_open: true
environment:
- OTEL_EXPORTER_OTLP_ENDPOINT=otel-collector:4318
volumes:
- ./:/usr/src/myapp
otel-collector:
image: otel/opentelemetry-collector-contrib
stdin_open: true
command: ["--config=/etc/otel-collector-config.yml"]
volumes:
- ./config.dev.yaml:/etc/otel-collector-config.yml
ports:
- "1888:1888" # pprof extension
- "8888:8888" # Prometheus metrics exposed by the collector
- "8889:8889" # Prometheus exporter metrics
- "13133:13133" # health_check extension
- "9411" # Zipkin receiver
- "4317:4317" # OTLP gRPC receiver
- "4318:4318" # OTLP http receiver
- "55680:55679" # zpages extension
depends_on:
- cpp

도커파일.우분투

FROM ubuntu:20.04
ENV DEBIAN_FRONTEND noninteractive
## Update cache and upgrade image
RUN apt-get -y update && apt-get -y upgrade && apt-get -y dist-upgrade
## Build environment packages
RUN apt-get install -qq -y --ignore-missing \
apt-utils \
automake \
bc \
build-essential \
bzip2 \
cmake \
curl \
git \
libcurl4-openssl-dev \
libssl-dev \
libtool-bin \
make \
pkg-config \
protobuf-compiler \
libprotobuf-dev \
python \
sudo \
tar \
zip \
unzip \
wget \
zlib1g-dev
WORKDIR /setup-tools
ADD ci/setup_ci_environment.sh /setup-tools
ADD ci/setup_cmake.sh /setup-tools
ADD ci/install_protobuf.sh /setup-tools
RUN /setup-tools/setup_ci_environment.sh \
&& /setup-tools/setup_cmake.sh \
&& /setup-tools/install_protobuf.sh
WORKDIR /usr/src/myapp
# ENTRYPOINT bash
CMD /bin/bash

config.dev.yaml

exporters:
newrelic:
apikey: 'EDIT_TO_ADD_YOUR_KEY_HERE'
timeout: 30s
host_override: "otlp.nr-data.net"
logging:
loglevel: DEBUG
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
cors:
allowed_origins:
- '*'
service:
pipelines:
traces:
receivers:
- otlp
exporters:
- logging
- newrelic
logs:
receivers:
- otlp
exporters:
- logging
Copyright © 2024 New Relic Inc.

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