• ログイン今すぐ開始

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

CSDKOpenTelemetryの代替

OpenTelemetry C ++は、安定した機能とアクティブなコードベースの幅広い貢献者を備えたエキサイティングな可観測性ソリューションです。 New Relicは、OpenTelemetryと互換性があり、ベンダー固有の形式に準拠するのではなく、エンドポイントにとらわれないインストルメンテーション呼び出しを行うことによる将来のプルーフコードなど、OpenTelemetryが提供できる利点を備えています。

OpenTelemetryを使用して、選択した言語でデータをNew Relicに送信する方法の詳細については、 NewRelicOpenTelemetryのセットアップを参照してください。

OpenTelemetry C ++リポジトリには、GitHubに多くの優れた例があります。 OpenTelemetry C ++ SDKのビルドと使用、およびサンプルのビルドと実行の詳細については、 CONTRIBUTING.mdを参照してください。

クイックスタートの例

すぐに始めて、コードをインストルメント化せずにNew Relicで何ができるかを確認したいですか?すぐにNewRelicにデータを送信する例については、以下の手順に従ってください。

インストルメンテーションを開始する準備ができたら、コードとの統合の詳細について、NewRelicOpenTelemetryのセットアップ手順とOpenTelemetryC++リポジトリCONTRIBUTING.mdを参照してください。

1.環境を設定します

NewRelicOpenTelemetryのドキュメントに概説されている前提条件があることを確認してください。

  1. git clone https://github.com/open-telemetry/opentelemetry-cppを実行します。
  2. Dockerfile.ubuntudocker-compose-collector.yaml 、およびconfig.dev.yamlのサンプルファイルを、手順1で複製したディレクトリのルートにコピーします。
  3. ライセンスキーエンドポイントを使用してconfig.dev.yamlを編集します。
  4. docker-compose -f docker-compose-collector.yaml upを実行します。
  5. 2つのコンテナーが実行されていることを確認します。1つはコレクター用で、もう1つはC++アプリケーション用です。

2.C++アプリケーションを実行します

C ++コンテナでターミナルを開き、次のコマンドを実行します。

  1. cd /usr/src/myapp
  2. mkdir build
  3. cd build
  4. rm -rf *
cmake -DCMAKE_BUILD_TYPE=Debug \
-DWITH_METRICS_PREVIEW=ON \
-DWITH_LOGS_PREVIEW=ON \
-DCMAKE_CXX_FLAGS="-Wno-error=deprecated-declarations" \
-DWITH_OTLP=ON \
..
  1. cd examples
  2. make
  3. cd otlp
  4. ./example_otlp_http

3.データを表示します

New Relic アカウント データをクエリして、データが到着したことを確認します。

  1. スパンデータを表示するには: one.newrelic.com > Query your dataに移動し、次のクエリを入力します。
FROM Span SELECT * where telemetry.sdk.name = 'opentelemetry'
  1. 詳細については、 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

Dockerfile.ubuntu

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 © 2023 New Relic Inc.

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