SkyWalkingベースの分散トラッキングシステム - マイクロ監視サービス

我々はマイクロSkyWalkingの使用について話をする今日、分散環境をSkyWalkingに基づいてトラックを構築する前の記事では、私たちのサービス(ダボ)を監視します

サービスケース

あなたはマイクロオーダーのサービスを持っていると仮定し、それは次のコンポーネントが含まれて

  • MySQLデータベース・パーティション・テーブルと倉庫(2)
  • プロデューサー(2)ダボプロバイダ
  • ダボ、消費者の消費者

次のようにネットワークトポロジがあります

画像

重要なコードの生産者

@Service
public class OrderServiceImpl implements OrderService {

    @Autowired
    protected OrderMapper orderMapper;

    @Override
    public OrderVO getById(long id) {
        OrderVO orderVO = new OrderVO();
        Order order = orderMapper.selectById(id);
        BeanUtils.copyProperties(order,orderVO);
        return orderVO;
    }
}
复制代码

消費者重視のコード

@RestController
public class OrderController {

    @Reference(retries = 0)
    private OrderService orderService;

    @GetMapping("/order/{id}")
    public OrderVO getOrder(@PathVariable long id){
        return orderService.getById(id);
    }

}
复制代码

モニタースタート

  • 使用javaagent開始プロデューサー

    -javaagent:E:\讯飞开发工具\skywalking\agent\skywalking-agent.jar -Dskywalking.agent.service_name=dubbo-provider -Dskywalking.collector.backend_service=192.168.136.129:11800

    -javaagent:E:\讯飞开发工具\skywalking\agent\skywalking-agent.jar -Dskywalking.agent.service_name=dubbo-provider2 -Dskywalking.collector.backend_service=192.168.136.129:11800

  • [スタート]消費者
    -javaagent:E:\讯飞开发工具\skywalking\agent\skywalking-agent.jar -Dskywalking.agent.service_name=dubbo-consumer -Dskywalking.collector.backend_service=192.168.136.129:11800

  • アナログ要求
    ブラウザでアクセスhttp://localhost:9090/order/1184489161562816511、力への負荷への複数の呼び出しを行う、オーダーIDパラメータを変更し、呼び出しが異なるデータベースをカバーするように、

  • 効果を参照してください
    アドレスを監視skywalkingのアクセスをhttp://192.168.136.129:8080/監視し、結果を表示します

    画像
    計器盤
    画像
    ネットワークトポロジ
    画像
    エラーログ
    画像
    トレース問い合わせ

ログの統合

このセクションでは、原則コールチェーンを見て:

  • 要求は、チェーン、リクエストに代わってTraceIDを用意を呼び出すことができますTraceIDを用意からシリーズ全体を通じて、グローバルTraceIDを用意を発生到着します。
  • TraceIDを用意することに加えて、だけでなく、あなたが通話を記録する必要は親子関係をSpanID。各サービスは、親IDとスパンIDを記録し、彼らは完全なコールチェーンを通じて親子関係を整理することができます。
  • TraceIDを用意に従ってレコード限り、すべての呼び出しを検出するために、完全なコール回数を表示するには、その後、親IDとスパンIDによる通話全体の親子関係を整理しました。

検索ログ分析プラットフォームTraceIDを用意ログで直接観測された異常呼私たちはすべてに関連付けられて取得することができたら、私たちは非常に私たちを強化、ログファイルのコールチェーンを出力することができるTraceIDを用意をお願いいたしますので、それは、理由TraceIDを用意で非常に重要です問題解決の効率。

統合プロセス(log4j2)

  • ログパッケージの導入log4j2

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>
    复制代码
  • SWキットのご紹介

     <!--SW trace 跟踪-->
    <dependency>
        <groupId>org.apache.skywalking</groupId>
        <artifactId>apm-toolkit-log4j-2.x</artifactId>
        <version>6.4.0</version>
    </dependency>
    复制代码
  • 変更ログの表示形式log4j2.xml
    %d [%traceId] %-5p %c{1}:%L - %m%n

  • アプリケーションを起動し、コンソールを監視

    画像

    買収はTIDがN / Aと表示されますので、以下TraceIDを用意よりも、それは再び、コンソールを監視TraceIDを用意するマークされているすべてのリンク上のログを見つけることを開始した後、要求を呼び出したときに始まったばかり。

    画像

非常に簡単な手順は、あなたがそれをしようとしない理由を、あなたはマイクロサービスチェーンの監視への呼び出しを追加してみましょうか?

関連記事:
ベースSkyWalking分散型追跡システム-建築環境

SpringBoot2.1.9 + dubbo2.7.3 + Nacos1.1.4あなたのマイクロサービスシステムを構築

JAVA Rizhilu:詳細については、国民の関心番号を喜ば

マイクロチャンネル公衆数

おすすめ

転載: juejin.im/post/5dc368216fb9a04ab462a0a2