日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

通過Jaeger上報Node.js應(yīng)用數(shù)據(jù)

通過Jaeger為應(yīng)用埋點并上報鏈路數(shù)據(jù)至可觀測鏈路 OpenTelemetry 版后,可觀測鏈路 OpenTelemetry 版即可開始監(jiān)控應(yīng)用,您可以查看應(yīng)用拓?fù)洹⒄{(diào)用鏈路、異常事務(wù)、慢事務(wù)和SQL分析等一系列監(jiān)控數(shù)據(jù)。本文介紹如何使用Jaeger客戶端埋點并上報Node.js應(yīng)用數(shù)據(jù)。

重要

為獲得更豐富的功能、更先進(jìn)的鏈路追蹤能力,以及最佳使用體驗,建議您使用OpenTelemetry協(xié)議將應(yīng)用接入可觀測鏈路 OpenTelemetry 版

我們?yōu)槟峁┝嗽敿?xì)的OpenTelemetry接入指南和最佳實踐,幫助您快速上手可觀測鏈路 OpenTelemetry 版。更多信息,請參見接入應(yīng)用

前提條件

  • 在Node工程的Package中配置對Jaeger Client的依賴。

    "dependencies": {
        "jaeger-client": "^3.12.0"
      }
  • 獲取接入點信息

    新版控制臺

    1. 登錄可觀測鏈路 OpenTelemetry 版控制臺,在左側(cè)導(dǎo)航欄單擊接入中心

    2. 開源框架區(qū)域單擊Jaeger卡片。

    3. 在彈出的Jaeger面板中選擇數(shù)據(jù)需要上報的地域。

      說明

      初次接入的地域?qū)詣舆M(jìn)行資源初始化。

    4. 選擇連接方式上報方式,然后復(fù)制接入點信息。

      • 連接方式:若您的服務(wù)部署在阿里云上,且所屬地域與選擇的接入地域一致,推薦使用阿里云內(nèi)網(wǎng)方式,否則選擇公網(wǎng)方式。

      • 上報方式:根據(jù)客戶端支持的協(xié)議類型選擇HTTP或gRPC協(xié)議上報數(shù)據(jù)。

      image

    舊版控制臺

    1. 登錄可觀測鏈路 OpenTelemetry 版控制臺

    2. 在左側(cè)導(dǎo)航欄單擊集群配置,然后在右側(cè)頁面單擊接入點信息頁簽。

    3. 在頁面頂部選擇需要接入的地域,然后在集群信息區(qū)域打開顯示Token開關(guān)。

    4. 客戶端采集工具區(qū)域單擊Jaeger

      相關(guān)信息列中,獲取接入點信息。jager中國.jpg

      說明

      如果應(yīng)用部署于阿里云生產(chǎn)環(huán)境,則選擇阿里云VPC網(wǎng)絡(luò)接入點,否則選擇公網(wǎng)接入點。

背景信息

數(shù)據(jù)是如何上報的?

  • 不通過Jaeger Agent而直接上報數(shù)據(jù)的原理如下圖所示。

    image
  • 通過Jaeger Agent上報數(shù)據(jù)的原理如下圖所示。

    image

操作步驟

  1. 初始化配置。

    說明

    請將<endpoint>替換成前提條件中獲取的接入點信息。

    const initTracer = require("jaeger-client").initTracer;
    
    const config = {
        serviceName: 'node-service',
        sampler: {
            type: "const",
            param: 1
        },
        reporter: {
            collectorEndpoint: "<endpoint>"
        },
    };
  2. 創(chuàng)建Tracer實例對象。

    const tracer = initTracer(config);
  3. 創(chuàng)建Span實例對象。

    const span = tracer.startSpan("say-hello");
    
    // 設(shè)置標(biāo)簽(可選,支持多個)
    span.setTag("tagKey-01", "tagValue-01");
    
    // 設(shè)置事件(可選,支持多個)
    span.log({event: "timestamp", value: Date.now()});
    
    // 標(biāo)記Span結(jié)束
    span.finish();
  4. 登錄可觀測鏈路 OpenTelemetry 版控制臺并查看調(diào)用鏈。

基于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');
});