• EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は参考用に提供されます。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページ を参照してください。

問題を作成する

OpenTelemetry チュートリアル: サンプル Python アプリをインストゥルメントする

これらの Python チュートリアルのいずれかを試して、New Relic プラットフォームが OTLP データで何ができるかを確認してください。 選択できる 3 つのチュートリアルがあり、それぞれ同じデモ Flask アプリを使用しています。 アプリはフィボナッチ数列の n 番目の数値を計算し、トレース、メトリクス、ログを生成します。

これらのチュートリアルのいずれかを進めることで、OpenTelemetry と New Relic を使用して独自のアプリをセットアップするのに役立つスキルを学ぶことができます。

これらのチュートリアルのいずれかを完了すると、次のようなグラフでスパン メトリックを表示できるようになります。

要件

開始する前に、次のものが揃っていることを確認してください。

チュートリアル

各チュートリアルでは同じデモ アプリを使用しますが、OpenTelemetry と New Relic に慣れるのに役立つ異なるアプローチが用意されています。

完了したいチュートリアルに応じて、下のタブをクリックしてください。

ヒント

OpenTelemetry を使用する場合、OTLP 経由でアプリケーションから New Relic にデータをエクスポートするには 2 つの選択肢があります。

  • アプリから New Relic に直接

  • アプリは OpenTelemetry Collector にデータを送信し、そこで New Relic にエクスポートされます。

    これらのチュートリアルでは、最初のオプションについて説明します。コレクター経由でデータをエクスポートする場合は、このコレクターのドキュメントで詳細を確認してください。

事前にインストルメント化されたデモ アプリを実行する

New Relic にデータを送信し、UI で表示するのがどのようなものかをすばやく確認できるように、インストルメンテーションを行う場合は、これが最適なオプションです。

  1. ターミナルで次のコマンドを実行してデモ アプリのクローンを作成し、Getting Started Guides のpython/Instrumentedディレクトリに移動します。

    git clone https://github.com/newrelic/newrelic-opentelemetry-examples.git
    cd newrelic-opentelemetry-examples/getting-started-guides/python/Instrumented
  2. New Relic アカウントにデータを送信するには、次の環境変数を設定します。

    • 必ずを使用してください。

    • New Relic データセンターのリージョンが EU で US ではない場合、エンドポイントを次のように設定します。 https://otlp.eu01.nr-data.net

      • OTEL_EXPORTER_OTLP_HEADERS=api-key=INSERT_YOUR_NEW_RELIC_LICENSE_KEY
      • OTEL_EXPORTER_OTLP_ENDPOINT= https://otlp.nr-data.net
  3. この環境変数を設定してサービスに名前を付けます。これは、New Relic アカウントでサービスを識別する方法です。

    • OTEL_SERVICE_NAME=入門-Python
  4. 同じ getting-started-guides/python/Instrumented/ ディレクトリで、仮想環境を作成してアクティブ化し、必要なライブラリをインストールして、アプリを実行します。

    • マックOS:

      python3 -m venv venv
      source venv/bin/activate
      pip install -r requirements.txt
      python3 app.py
    • パワーシェル:

      python -m venv venv
      .\venv\Scripts\Activate.ps1
      pip install -r requirements.txt
      python app.py
  5. 新しいターミナル タブを開き、 getting-started-guides/python/Instrumentedディレクトリに切り替え、次のコマンドを実行してアプリケーションへのトラフィックを生成します:

    • マックOS:

      ./load-generator.sh
    • パワーシェル:

      .\load-generator.ps1

    ヒント

    または、ブラウザの次の URL でエンドポイントにアクセスできます: http://localhost:8080/fibonacci?n=INSERT_A_VALUEINSERT_A_VALUEを 1 から 90 の値に置き換えます。エラーを生成するには、有効範囲外の整数を挿入します。

  6. one.newrelic.com > All capabilities > APM & servicesに移動します。

  7. getting-started-pythonという新しいエンティティ (サービス) をクリックして、UI を調べます。UI で何を探すべきかについてのその他のヒントについては、New Relic でデータを表示するを参照してください。

  8. UI でデータを確認し終わったら、両方のターミナル セッションで CONTROL+C を押してアプリケーションをシャットダウンします。

OpenTelemetry Python エージェントを使用してデモ アプリを監視する

これは、同じデモ アプリを使用する別のチュートリアルですが、この場合は、OpenTelemetry Python エージェントを使用して、デモ アプリを自動的に監視します。Python ソース コードを変更する必要はありません。エージェントを使用すると、New Relic へのサンプル データのエクスポートをすぐに開始できます。

ただし、ログやカスタムメトリックなど、アプリに関するより深いレベルの情報を取得するには、カスタムインストゥルメンテーションを追加する必要があることに注意してください。

自動インストルメンテーション エージェントは、バイトコードを動的に挿入して、一般的なライブラリやフレームワークからテレメトリをキャプチャする一連の PyPI パッケージです。これを使用して、受信リクエスト、送信 HTTP 呼び出し、データベース呼び出しなどのデータをキャプチャすることもできます。任意の Python 3 アプリケーションに接続できます。

ヒント

追加の構成オプションについては 、OpenTelemetry Python エージェントの公式ドキュメントを 参照してください。

OpenTelemetry Python エージェントを使用してデモ アプリを監視するには:

  1. これら 2 つのコマンドを実行して、デモ アプリケーション リポジトリをダウンロードし、次のディレクトリに移動します。

    git clone https://github.com/newrelic/newrelic-opentelemetry-examples.git
    cd newrelic-opentelemetry-examples/getting-started-guides/python/Uninstrumented
  2. 以下の環境変数の参照セクションに移動して、エクスポートする必要がある変数を確認してから、これらの手順に戻ります。

  3. 次に、同じ getting-started-guides/python/Uninstrumented/ ディレクトリに仮想環境を作成してアクティブ化します。

    • マックOS:

      python3 -m venv venv
      source venv/bin/activate
    • パワーシェル:

      python -m venv venv
      .\venv\Scripts\Activate.ps1
  4. これで、必要なライブラリをインストールする準備が整いました。

    pip install flask
    pip install opentelemetry-instrumentation-flask
    pip install opentelemetry-exporter-otlp
    pip install opentelemetry-distro
  5. getting-started-guides/python/Uninstrumented/に進み、アプリでエージェントを起動します。

    • マックOS:

      opentelemetry-instrument python3 app.py
    • パワーシェル:

      opentelemetry-instrument python app.py
  6. getting-started-guides/python/Uninstrumentedディレクトリで新しいターミナルを開き、ロード ジェネレーターを実行して、アプリケーションへのトラフィックを生成します。

    • マックOS:

      ./load-generator.sh
    • パワーシェル:

      .\load-generator.ps1

      ヒント

      または、ブラウザの次の URL でエンドポイントにアクセスできます: http://localhost:8080/fibonacci?n=INSERT_A_VALUEINSERT_A_VALUEを 1 から 90 の値に置き換えます。エラーを生成するには、有効範囲外の整数を挿入します。

  7. New Relic にデータを送信したので、UI でデータを表示する手順を参照してください。

  8. UI でデータを確認し終わったら、両方のターミナル セッションで CONTROL+C を押してアプリケーションをシャットダウンします。

デモアプリを手動でセットアップする

前のチュートリアルは、OpenTelemetry Python エージェントを使用した自動インストゥルメンテーションを探索するのに役立ちました。 このチュートリアルでは、カスタムインストゥルメンテーションを使用して、収集したテレメトリーをより詳細に制御する方法を説明します。 次に、OpenTelemetry SDK を設定してデータを New Relic にエクスポートする方法を説明します。

デモアプリケーションをダウンロードする

以下を実行してデモ アプリをダウンロードします。

git clone https://github.com/newrelic/newrelic-opentelemetry-examples.git

必要なライブラリをインストールする

必要なライブラリを追加するには:

  1. このチュートリアルの開始点として、インストルメント化されていないアプリのアプリケーション ディレクトリに移動します。このチュートリアルが終わるまでに、コードは Instrumented ディレクトリにあるもののようになっているはずです。

    cd newrelic-opentelemetry-examples/getting-started-guides/python/Uninstrumented
  2. Uninstrumented ディレクトリに仮想環境を作成してアクティブ化します。

    • マックOS:

      python3 -m venv venv
      source venv/bin/activate
    • パワーシェル:

      python -m venv venv
      .\venv\Scripts\Activate.ps1
  3. 以下をインストールします。

    pip install opentelemetry-api
    pip install opentelemetry-sdk
    pip install flask
    pip install opentelemetry-instrumentation-logging
    pip install opentelemetry-instrumentation-flask
    pip install opentelemetry-exporter-otlp
    pip install opentelemetry-distro

SDKを設定する

  1. app.pyで、以下の強調表示された行をtop of the fileに追加します。 必要に応じて、カスタムアトリビュートenvironmentの値を変更します。

    ##########################
    # OpenTelemetry Settings #
    ##########################
    from opentelemetry.sdk.resources import Resource
    import uuid
    OTEL_RESOURCE_ATTRIBUTES = {
    "service.instance.id": str(uuid.uuid1()),
    "environment": "local"
    }
    from flask import Flask, jsonify, request
    app = Flask(__name__)
  2. 以下の 環境変数リファレンス セクション に移動して、エクスポートする必要がある変数を確認してから、インストルメンテーション ライブラリを追加する次の手順に進みます。

インストルメンテーション ライブラリの追加: トレース

app.pyで、追加した OpenTelemetry Settings の後に以下を挿入します。

##########
# Traces #
##########
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
from opentelemetry.trace.status import Status, StatusCode
# Initialize tracing and an exporter that can send data to an OTLP endpoint
# SELECT * FROM Span WHERE instrumentation.provider='opentelemetry'
trace.set_tracer_provider(TracerProvider(resource=Resource.create(OTEL_RESOURCE_ATTRIBUTES)))
trace.get_tracer_provider().add_span_processor(BatchSpanProcessor(OTLPSpanExporter()))

インストルメンテーション ライブラリの追加: メトリクス

app.py で、ステップ D で追加した Traces セクションの後に次の行を追加します。

###########
# Metrics #
###########
from opentelemetry import metrics
from opentelemetry.sdk.metrics import MeterProvider
from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader
from opentelemetry.exporter.otlp.proto.http.metric_exporter import OTLPMetricExporter
# Initialize metering and an exporter that can send data to an OTLP endpoint
# SELECT count(`http.server.active_requests`) FROM Metric FACET `service.name` TIMESERIES
metrics.set_meter_provider(MeterProvider(resource=Resource.create(OTEL_RESOURCE_ATTRIBUTES), metric_readers=[PeriodicExportingMetricReader(OTLPMetricExporter())]))
metrics.get_meter_provider()
fib_counter = metrics.get_meter("opentelemetry.instrumentation.custom").create_counter("fibonacci.invocations", unit="1", description="Measures the number of times the fibonacci method is invoked.")

インストルメンテーション ライブラリの追加: ログ

app.pyMetrics セクションの後に以下を追加します。これにより、ログ モジュールがインポートされ、 basicConfig ログ レベルが DEBUGに設定されます。

########
# Logs # - OpenTelemetry Logs are still in the experimental state, so function names may change in the future
########
import logging
logging.basicConfig(level=logging.DEBUG)
from opentelemetry import _logs
from opentelemetry.sdk._logs import LoggerProvider, LoggingHandler
from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
from opentelemetry.exporter.otlp.proto.http._log_exporter import OTLPLogExporter
# Initialize logging and an exporter that can send data to an OTLP endpoint by attaching OTLP handler to root logger
# SELECT * FROM Log WHERE instrumentation.provider='opentelemetry'
_logs.set_logger_provider(LoggerProvider(resource=Resource.create(OTEL_RESOURCE_ATTRIBUTES)))
logging.getLogger().addHandler(LoggingHandler(logger_provider=_logs.get_logger_provider().add_log_record_processor(BatchLogRecordProcessor(OTLPLogExporter()))))

Flask インストゥルメンテーションを追加

app.pyLogs セクションの後に、以下の強調表示された行を追加します。これは、分散トレースとログインコンテキストのスパンをリンクするのに役立ちます。

#####################
# Flask Application #
#####################
from flask import Flask, jsonify, request
from opentelemetry.instrumentation.flask import FlaskInstrumentor
app = Flask(__name__)
FlaskInstrumentor().instrument_app(app)

カスタム トレース インストルメンテーション: カスタム スパンの作成

必要なスパンを作成できます。特定の操作に関する属性でスパンに注釈を付けるのはあなた次第です。設定した属性は、結果や操作のプロパティなど、追跡している特定の操作に関する追加のコンテキストを提供します。

app.pyに、以下の強調表示された行を挿入して、次の処理を行う /fibonacci という新しいスパンを開始します。

  • このメソッドの実行に関するデータをキャプチャします

  • ユーザーのリクエストから n の値を格納する属性を設定します

    @app.route("/fibonacci")
    @trace.get_tracer("opentelemetry.instrumentation.custom").start_as_current_span("/fibonacci")
    def fibonacci():
    args = request.args
    x = int(args.get("n"))
    error_message = "n must be 1 <= n <= 90."
    trace.get_current_span().set_attribute("fibonacci.n", x)
    try:
    assert 1 <= x <= 90
    array = [0, 1]
    for n in range(2, x + 1):
    array.append(array[n - 1] + array[n - 2])
    trace.get_current_span().set_attribute("fibonacci.result", array[x])
    return jsonify(n=x, result=array[x])
    except AssertionError:
    return jsonify({"message": error_message})
    app.run(host='0.0.0.0', port=8080)

カスタム トレース インストルメンテーション: 例外を記録する

例外が発生したときに、例外を記録したい場合があります。スパンステータスの設定と併せてこれを行うことをお勧めします。

  1. 例外が発生したときにスパンのステータス コードをERRORに設定するには、手順Dで追加したopentelemetry.trace.status packageStatusモジュールとStatusCodeモジュールを使用します。

    ##########
    # Traces #
    ##########
    from opentelemetry import trace
    from opentelemetry.sdk.trace import TracerProvider
    from opentelemetry.sdk.trace.export import BatchSpanProcessor
    from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
    from opentelemetry.trace.status import Status, StatusCode
  2. 次に、以下の強調表示された行を挿入して例外を記録します。この例外は New Relic でスパン イベントとして表示され、スパンのステータスを ERRORに設定します。

    @app.route("/fibonacci")
    @trace.get_tracer("opentelemetry.instrumentation.custom").start_as_current_span("/fibonacci")
    def fibonacci():
    args = request.args
    x = int(args.get("n"))
    error_message = "n must be 1 <= n <= 90."
    trace.get_current_span().set_attribute("fibonacci.n", x)
    try:
    assert 1 <= x <= 90
    array = [0, 1]
    for n in range(2, x + 1):
    array.append(array[n - 1] + array[n - 2])
    trace.get_current_span().set_attribute("fibonacci.result", array[x])
    return jsonify(n=x, result=array[x])
    except AssertionError:
    trace.get_current_span().record_exception(exception=Exception, attributes={"exception.type": "AssertionError", "exception.message": error_message})
    trace.get_current_span().set_status(Status(StatusCode.ERROR, error_message))
    return jsonify({"message": error_message})
    app.run(host='0.0.0.0', port=8080)

カスタム メトリック インストルメンテーション: カスタム メトリック カウンターを追加します。

メトリックは、個々の測定値を集計に結合し、システム負荷の関数として一定のデータを生成するため、非常に役立つテレメトリ データ タイプです。このデータをスパンと組み合わせて使用すると、傾向を特定し、アプリケーションのランタイム テレメトリを提供できます。また、メトリクスが表す測定値の下位区分を説明するのに役立つ属性でメトリクスに注釈を付けることもできます。

OpenTelemetry メトリクス API は、メトリクス SDK によって集計され、アウト オブ プロセスでエクスポートされる測定値を記録する多数の計測器を定義します。器具には次の 2 種類があります。

  • 同期: これらの計測器は、発生時に測定値を記録します。
  • 非同期: これらの計測器はコールバックを登録します。これはコレクションごとに 1 回だけ呼び出され、関連付けられたコンテキストはありません。
  1. ステップEで、カウンターを作成する以下の強調表示された行を追加しました。

    ###########
    # Metrics #
    ###########
    from opentelemetry import metrics
    from opentelemetry.sdk.metrics import MeterProvider
    from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader
    from opentelemetry.exporter.otlp.proto.http.metric_exporter import OTLPMetricExporter
    # Initialize metering and an exporter that can send data to an OTLP endpoint
    # SELECT count(`http.server.active_requests`) FROM Metric FACET `service.name` TIMESERIES
    metrics.set_meter_provider(MeterProvider(resource=Resource.create(OTEL_RESOURCE_ATTRIBUTES), metric_readers=[PeriodicExportingMetricReader(OTLPMetricExporter())]))
    metrics.get_meter_provider()
    fib_counter = metrics.get_meter("opentelemetry.instrumentation.custom").create_counter("fibonacci.invocations", unit="1", description="Measures the number of times the fibonacci method is invoked.")
  2. 次に、作成したカウンターを使用して測定するために、以下の強調表示された行を追加します。

  • この関数が正常に実行された回数

  • 実行に失敗した回数

    アプリを再起動するたびにカウンターが 0 にリセットされることに注意してください。

    @app.route("/fibonacci")
    @trace.get_tracer("opentelemetry.instrumentation.custom").start_as_current_span("/fibonacci")
    def fibonacci():
    args = request.args
    x = int(args.get("n"))
    error_message = "n must be 1 <= n <= 90."
    trace.get_current_span().set_attribute("fibonacci.n", x)
    try:
    assert 1 <= x <= 90
    array = [0, 1]
    for n in range(2, x + 1):
    array.append(array[n - 1] + array[n - 2])
    trace.get_current_span().set_attribute("fibonacci.result", array[x])
    fib_counter.add(1, {"fibonacci.valid.n": "true"})
    return jsonify(n=x, result=array[x])
    except AssertionError:
    trace.get_current_span().record_exception(exception=Exception, attributes={"exception.type": "AssertionError", "exception.message": error_message})
    trace.get_current_span().set_status(Status(StatusCode.ERROR, error_message))
    fib_counter.add(1, {"fibonacci.valid.n": "false"})
    return jsonify({"message": error_message})
    app.run(host='0.0.0.0', port=8080)

カスタムログ計測

OpenTelemetry Python のログ信号のステータスは、現在 実験段階です。

app.pyで、以下の強調表示された行を次の行に追加します。

  • 入力値と出力値の INFO レベルのログを記録します。

  • 入力値が有効範囲外の場合、 ERROR レベルのログを記録します。

    @app.route("/fibonacci")
    @trace.get_tracer("opentelemetry.instrumentation.custom").start_as_current_span("/fibonacci")
    def fibonacci():
    args = request.args
    x = int(args.get("n"))
    error_message = "n must be 1 <= n <= 90."
    trace.get_current_span().set_attribute("fibonacci.n", x)
    try:
    assert 1 <= x <= 90
    array = [0, 1]
    for n in range(2, x + 1):
    array.append(array[n - 1] + array[n - 2])
    trace.get_current_span().set_attribute("fibonacci.result", array[x])
    fib_counter.add(1, {"fibonacci.valid.n": "true"})
    logging.info("Compute fibonacci(" + str(x) + ") = " + str(array[x]))
    return jsonify(n=x, result=array[x])
    except AssertionError:
    trace.get_current_span().record_exception(exception=Exception, attributes={"exception.type": "AssertionError", "exception.message": error_message})
    trace.get_current_span().set_status(Status(StatusCode.ERROR, error_message))
    fib_counter.add(1, {"fibonacci.valid.n": "false"})
    logging.error("Failed to compute fibonacci(" + str(x) + ")")
    return jsonify({"message": error_message})
    app.run(host='0.0.0.0', port=8080)

アプリを実行してトラフィックを生成する

New Relic にデータを送信する準備ができました!

  1. ターミナルで、 getting-started-guides/python/Uninstrumented ディレクトリにいることを確認し、アプリケーションを実行します。

    • マックOS:

      python3 app.py
    • パワーシェル:

      python app.py
  2. getting-started-guides/python/Uninstrumented ディレクトリで新しいターミナル タブを開き、ロード ジェネレーターを実行して、アプリケーションへのトラフィックを生成します。

    • マックOS:

      ./load-generator.sh
    • パワーシェル:

      .\load-generator.ps1

    ヒント

    または、ブラウザの次の URL でエンドポイントにアクセスできます: http://localhost:8080/fibonacci?n=INSERT_A_VALUEINSERT_A_VALUEを 1 から 90 の値に置き換えます。エラーを生成するには、有効範囲外の整数を挿入します。

  3. New Relic にデータを送信したので、UI でデータを表示する手順を参照してください。

New Relic でデモ データを表示する

どのチュートリアルを完了しても、New Relic UI でデータを見つけるための以下のヒントに従うことができます。

「チュートリアル 2: OpenTelemetry Python エージェントを使用してデモ アプリを監視する:」に従った場合は、より詳細なデータをキャプチャするにはカスタム インストルメンテーションを手動で追加する必要があるため、カスタム データ (カスタム メトリクスやログなど) が表示されないことに注意してください。

  1. one.newrelic.com > All capabilities > APM & services

    に移動します。

  2. getting-started-pythonという名前の新しいエンティティ (サービス) (または任意の名前) をクリックします。

  3. 各データ型のセクションで詳細を確認してください。

ヒント

Microsoft Windows を使用していて、New Relic アカウントにデータが表示されない場合は、ファイアウォールを通過するトラフィックを許可しているかどうかを確認してください。

トレース

New Relic でgetting-started-pythonエンティティに到達したら:

  1. 左側のペインの

    Monitor

    セクションで、

    Distributed tracing

    をクリックし、[ /fibonacciトレース グループをクリックします。

  2. そこから、エラーのあるトレースを探し、クリックして開きます。

  3. トレースを開いたら、 Show in-process spansをクリックし、結果のスパンをクリックすると、右側に詳細パネルが開きます。 ユーザー入力が無効な場合に記録した例外を確認するには、 View span eventsをクリックします。

手動インストルメンテーション チュートリアルを完了した場合、スパンとして記録した例外が New Relic でどのように表示されるかを以下に示します。

スパン属性、スパン名、ステータス コードなど、設定した追加の詳細を表示するには、 Attributesタブをクリックします。 このペインには、このガイドで使用したインストゥルメンテーション ライブラリによって自動的に収集された追加のメタデータや、New Relic によって添付されたメタデータも表示できます。

データの表示の詳細については、New Relic UI の OpenTelemetry を参照してください。

指標

New Relic の getting-started-python エンティティに到達すると、カスタム カウンター属性など、収集されたすべてのメトリクスのリストが表示されます。

メトリクスエクスプローラー

これは、メトリックのリストを表示できるツールです。

  1. 左側のペインで、 Data > Metrics explorerを選択し、次にfibonacci.invocationsを選択します。

  2. Dimensionsで、収集した属性とカスタムメトリックを表示し、 fibonacci.valid.nをクリックします。

詳しくは、 メトリクス エクスプローラー ビューに関するドキュメントをご覧ください。

ログ

ログにアクセスする場所は次のとおりです。

ターミナルにもログが表示されます。

ログ ビューに戻り、ログを選択すると、ログ メッセージと、関連するスパンやトレース ID などの収集された追加の属性、および New Relic によって挿入されたメタデータが表示されたペインが開きます。

この小さな青いアイコンをクリックすると、相関分散トレースに移動できます。

これにより、相関トレースを表示するペインが開き、トレースに関する詳細を表示できます。このページの詳細については、UI の OpenTelemetry: 分散トレース ページおよび分散トレース UI の理解と使用を参照してください。

分散トレース ビューから相関ログを見つけることもできます。対応するログを持つトレースを選択すると、それがタブとして示され、ビューを切り替えることなくトレースから直接ログを表示できます。

ログ ビューの詳細については、 こちらをご覧ください。

参考:環境変数

これは、チュートリアル 2 または 3 を実行している場合にエクスポートする必要がある環境変数のリストです。変数のエクスポートが完了したら、変数リストに続くリンクを使用してチュートリアルに戻ります。

上の折りたたみツールにリストされている環境変数をエクスポートした後、チュートリアルに戻ってセットアップを完了します。

次は何ですか?

OpenTelemetry インストルメンテーションと SDK 構成を試したので、学んだことを適用して、OpenTelemetry と New Relic を使用して独自のアプリまたはサービスをセットアップできます。詳細については、OpenTelemetry を使用して独自のアプリまたはサービスをセットアップするを参照してください。

Copyright © 2024 New Relic株式会社。

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