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

通過SkyWalking上報(bào)Rust應(yīng)用數(shù)據(jù)

通過SkyWalking為應(yīng)用埋點(diǎn)并上報(bào)鏈路數(shù)據(jù)至可觀測鏈路 OpenTelemetry 版后,可觀測鏈路 OpenTelemetry 版即可開始監(jiān)控應(yīng)用,您可以查看應(yīng)用拓?fù)?、調(diào)用鏈路、異常事務(wù)、慢事務(wù)和SQL分析等一系列監(jiān)控?cái)?shù)據(jù)。本文介紹如何使用SkyWalking Rust Agent埋點(diǎn)并上報(bào)應(yīng)用數(shù)據(jù)。

前提條件

  • 已安裝protobuf。

    macOS

    brew install protobuf

    Debian-base

    sudo apt install protobuf-compiler
  • 獲取接入點(diǎn)信息

    新版控制臺(tái)

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

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

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

      說明

      初次接入的地域?qū)?huì)自動(dòng)進(jìn)行資源初始化。

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

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

      image.png

    舊版控制臺(tái)

    1. 登錄可觀測鏈路 OpenTelemetry 版控制臺(tái)。

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

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

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

      相關(guān)信息列中,獲取接入點(diǎn)信息。

      SkyWalking接入點(diǎn)信息

      說明

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

背景信息

SkyWalking是一款廣受歡迎的國產(chǎn)APM(Application Performance Monitoring,應(yīng)用性能監(jiān)控)產(chǎn)品,主要針對(duì)微服務(wù)、Cloud Native和容器化(Docker、Kubernetes、Mesos)架構(gòu)的應(yīng)用。SkyWalking的核心是一個(gè)分布式追蹤系統(tǒng)。

Skywalking-rust是SkyWalking的Rust Agent官方庫,可以通過接入skywalking-rust實(shí)現(xiàn)對(duì)Rust應(yīng)用的監(jiān)控,skywalking-rust目前對(duì)Rust應(yīng)用的自動(dòng)埋點(diǎn)支持較差,需要使用者手動(dòng)添加埋點(diǎn)。

示例Demo

示例Demo倉庫地址:SkyWalking Demo

該Demo基于Rust的Web框架hyper實(shí)現(xiàn)了一個(gè)簡單的HTTP Server,并使用skywalking-rust手動(dòng)添加埋點(diǎn),向可觀測鏈路 OpenTelemetry 版控制臺(tái)上報(bào)數(shù)據(jù)。

用SkyWalking為Rust應(yīng)用手動(dòng)埋點(diǎn)

  1. 在Rust項(xiàng)目引入SkyWalking依賴。

    說明

    本文中以SkyWalking 0.8.0版本為例。

    方法一:直接在cargo.toml中添加依賴

    # 在[dependency]下添加
    skywalking = { version = "0.8.0", features = ["vendored"] }

    方法二:在終端執(zhí)行命令

    cargo add skywalking --features vendored
  2. 在源代碼中導(dǎo)入SkyWalking模塊。

    # 在需要埋點(diǎn)的源代碼中導(dǎo)入模塊
    use skywalking::{reporter::grpc::GrpcReporter, trace::tracer::Tracer};

  3. 手動(dòng)埋點(diǎn)。

    // 使用EntrySpan、LocalSpan、ExitSpan完成調(diào)用鏈?zhǔn)謩?dòng)埋點(diǎn),使用這三種Span,可以完成全鏈路追蹤。
    // EntrySpan: 入口Span,服務(wù)端使用EntrySpan從Http請(qǐng)求中拿到鏈路追蹤上下文。
    // LocalSpan: 本地Span,同一進(jìn)程內(nèi)可使用該Span埋點(diǎn)。
    // ExitSpan: 出口Span,客戶端使用ExitSpan向Http請(qǐng)求中注入鏈路追蹤上下文。
    
    // 跨進(jìn)程的調(diào)用鏈,可以參照下面:
    
    // client.rs:
        
    let mut ctx = tracer.create_trace_context();
    {
        do something...
        let span = ctx.create_exit_span("operation1", "remote_peer");
    }
    
    // server.rs:
    
    let mut ctx = tracer.create_trace_context();
    {
        let span = ctx.create_entry_span("operation1");
        do something...
    }
  4. 配置接入點(diǎn)和令牌。

    您可以通過前提條件獲取接入點(diǎn)地址和鑒權(quán)Token。

    // <endpoint>是接入點(diǎn)地址,<token>是接入點(diǎn)鑒權(quán)Token,<service_name>是應(yīng)用名稱。
    
    let endpoint = "<endpoint>";
    let token = "<token>";
    let service_name = "<service_name>";
    let instance_name = "<instance_name>";
    
    let reporter = GrpcReporter::connect(endpoint).await?;
    let reporter = reporter.with_authentication(token);
    let tracer = Tracer::new(service_name, instance_name, reporter.clone());
  5. 重啟應(yīng)用。

常見問題

構(gòu)建Rust項(xiàng)目時(shí)報(bào)錯(cuò)如下:image.png

問題原因:缺少protobuf,您可以參考前提條件安裝protobuf。

相關(guān)文檔

SkyWalking官網(wǎng)