このトピックでは、Node.js アプリケーションのデータを Tracing Analysis にレポートする方法について説明します。
前提条件
Jaeger 依存関係が Node.js プロジェクトのパッケージに追加されています。
"dependencies": {
"jaeger-client": "^3.12.0"
}
背景情報
手順
初期化のためのパラメータを設定します。
説明<endpoint>
は、クライアントが存在するリージョンのエンドポイントに置き換えます。Managed Service for OpenTelemetry コンソールにログインし、アクセスポイント情報 ページのタブでエンドポイントを確認できます。エンドポイントの取得方法の詳細については、このトピックの「前提条件」セクションを参照してください。const initTracer = require("jaeger-client").initTracer; const config = { serviceName: 'node-service', sampler: { type: "const", param: 1 }, reporter: { collectorEndpoint: "<endpoint>" }, };
Tracer オブジェクトを作成します。
const tracer = initTracer(config);
スパンを作成します。
const span = tracer.startSpan("say-hello"); // オプション。1 つ以上のタグを設定します。 span.setTag("tagKey-01", "tagValue-01"); // オプション。1 つ以上のログを設定します。 span.log({event: "timestamp", value: Date.now()}); // スパンを終了します。 span.finish();
Tracing Analysis コンソールにログインして、トレースを表示します。
Expressに基づく完全なサンプルコード
const express = require("express");
const initTracer = require("jaeger-client").initTracer;
const app = express();
const config = {
serviceName: 'node-service',
sampler: {
type: "const",
param: 1
},
reporter: {
collectorEndpoint: "<endpoint>"
},
};
const tracer = initTracer(config);
app.all('*', function (req, res, next) {
req.span = tracer.startSpan("say-hello");
next();
});
app.get("/api", function (req, res) {
const span = req.span;
span.log({event: "timestamp", value: Date.now()});
req.span.finish();
res.send({code: 200, msg: "success"});
});
app.listen(3000, '127.0.0.1', function () {
console.log('start');
});