すべてのプロダクト
Search
ドキュメントセンター

Managed Service for OpenTelemetry:SkyWalking を使用した Java アプリケーションデータのレポート

最終更新日:Dec 05, 2025

SkyWalking を使用してアプリケーションをインストルメント化し、トレースデータを Managed Service for OpenTelemetry にレポートすると、Managed Service for OpenTelemetry はアプリケーションのモニタリングを開始します。その後、アプリケーショントポロジー、トレース、異常トランザクション、低速トランザクション、SQL 分析など、アプリケーションのモニタリングデータを表示できます。このトピックでは、SkyWalking Java エージェントを使用して自動インストルメンテーションを実行する方法について説明します。また、SkyWalking Java エージェントの設定可能な属性についても説明します。

前提条件

  • SkyWalking 6.X.X 以降が SkyWalking ダウンロードページからダウンロードされていること。最新の安定版をダウンロードすることを推奨します。解凍された Agent フォルダは、Java プロセスがアクセスできるディレクトリに保存されます。

  • すべてのプラグインは /plugins ディレクトリに保存されます。起動中にこのディレクトリにプラグインを追加すると、そのプラグインは有効になります。ディレクトリからプラグインを削除すると、そのプラグインは無効になります。デフォルトでは、ログファイルは /logs ディレクトリに保存されます。

警告

すべてのログ、プラグイン、設定ファイルは agent フォルダに保存されます。このフォルダは変更しないでください。

エンドポイントの取得

新しいコンソール

  1. Managed Service for OpenTelemetry コンソールにログインします。左側のナビゲーションウィンドウで、[統合センター] をクリックします。

  2. [統合センター] ページで、[オープンソースフレームワーク] セクションの [SkyWalking] カードをクリックします。

  3. [SkyWalking] パネルで、[統合の開始] タブをクリックし、データをレポートするリージョンを選択します。

    説明

    初めてリージョンにアクセスすると、リソースが自動的に初期化されます。

  4. [接続タイプ] パラメーターを設定し、エンドポイントをコピーします。

    ご利用のサービスが Alibaba Cloud 上にデプロイされており、選択したリージョンに存在する場合、このパラメーターを [Alibaba Cloud VPC ネットワーク] に設定することを推奨します。それ以外の場合は、このパラメーターを [パブリックネットワーク] に設定します。

    image.png

古いコンソール

  1. (Intl) にログインします。

  2. 左側のナビゲーションウィンドウで、[クラスター設定] をクリックします。表示されたページで、[アクセスポイント情報] タブをクリックします。

  3. 上部のナビゲーションバーで、データをレポートするリージョンを選択します。[クラスター情報] セクションで、[トークンを表示] をオンにします。

  4. [クライアント] パラメーターを [SkyWalking] に設定します。

    表の [関連情報] 列で、エンドポイントをコピーします。

    SkyWalking接入点信息

    説明

    ご利用のアプリケーションが Alibaba Cloud の本番環境にデプロイされている場合は、VPC エンドポイントを使用します。それ以外の場合は、パブリックエンドポイントを使用します。

背景情報

SkyWalking は、中国で開発された人気のアプリケーションパフォーマンスモニタリング (APM) サービスです。SkyWalking は、マイクロサービス、クラウドネイティブアーキテクチャ、およびコンテナベースのアーキテクチャ (Docker、Kubernetes、Mesos など) 向けに設計されています。SkyWalking は分散トレーシングシステムでもあります。

SkyWalking を使用して Java アプリケーションデータを Managed Service for OpenTelemetry コンソールにレポートする前に、アプリケーションをインストルメント化する必要があります。SkyWalking は、Dubbo、gRPC、JDBC、OkHttp、Spring、Tomcat、Struts、Jedis など、さまざまなフレームワークやライブラリに対して自動インストルメンテーションを提供します。SkyWalking では、OpenTracing 標準に基づいてアプリケーションを手動でインストルメント化することもできます。このトピックでは、アプリケーションを自動的にインストルメント化する方法について説明します。

サンプルコード

サンプルコードのリポジトリの詳細については、「SkyWalking Demo」をご参照ください。

SkyWalking を使用した Java アプリケーションの自動インストルメンテーション

  1. SkyWalking Java Agent をダウンロードします。

  2. SkyWalking Java Agent の設定ファイルを変更して、アクセス情報とアプリケーション情報を設定します。

    collector.backend_service=<endpoint> // 前提条件で取得したエンドポイント情報に置き換えます。
    agent.authentication=<token> // 前提条件で取得した認証トークンに置き換えます。
    agent.service_name=<Service Name> // 実際のアプリケーション名に置き換えます。
  3. アプリケーションのランタイム環境に基づいて、次のいずれかの方法で SkyWalking Agent へのパスを指定します。

    説明

    次のサンプルコードの <skywalking-agent-path> を、agent フォルダ内の skywalking-agent.jar ファイルの絶対パスに置き換えてください。

    Linux Tomcat 7 / Tomcat 8

    tomcat/bin/catalina.sh ファイルの最初の行として次の内容を追加します。

    CATALINA_OPTS="$CATALINA_OPTS -javaagent:<skywalking-agent-path>"; export CATALINA_OPTS

    Windows Tomcat 7 / Tomcat 8

    tomcat/bin/catalina.bat ファイルの最初の行として次の内容を追加します。

    set "CATALINA_OPTS=-javaagent:<skywalking-agent-path>"

    JAR ファイルまたは Spring Boot

    アプリケーションの起動コマンドに -javaagent パラメーターを追加します。

    重要

    -javaagent パラメーターは -jar パラメーターの前に記述する必要があります。

    java -javaagent:<skywalking-agent-path> -jar yourApp.jar

    Jetty

    {JETTY_HOME}/start.ini 設定ファイルに次の内容を追加します。

    --exec
    -javaagent:<skywalking-agent-path>
  4. アプリケーションを再起動します。

SkyWalking Java エージェントの設定可能な属性

SkyWalking Java エージェントは、設定可能な幅広い属性をサポートしています。詳細については、サンプルコードの config/agent.config ファイルをご参照ください。

SkyWalking Java エージェントの一部の属性

次の表に、SkyWalking Java エージェント 8.16.0 の一部の属性を示します。

展開して SkyWalking Java エージェントの属性を表示

属性

説明

デフォルト値

agent.namespace

クロスプロセス伝播でヘッダーを分離するために使用される名前空間。この属性を設定すると、ヘッダー名は HeaderName:Namespace になります。

指定なし

agent.service_name

SkyWalking UI に表示されるサービス名。バージョン 5.x はアプリケーションに対応し、バージョン 6.x はサービスに対応します。各サービスに一意の名前を指定することを推奨します。サービスの複数のインスタンスは同じ名前を共有します。

Your_ApplicationName

agent.sample_n_per_3_secs

負の数または 0 は、サンプルデータが収集されないことを示します。デフォルトでは、サンプルデータは収集されません。SAMPLE_N_PER_3_SECS は、3 秒ごとに N 個のサンプルデータレコードが収集されることを示します。

指定なし

agent.authentication

認証はバックエンドの設定に基づいて有効になります。サーバーエンドポイントの認証トークンを表示できます。ほとんどのシナリオではバックエンド拡張機能が必要です。基本的な認証機能のみが実装されています。

指定なし

agent.span_limit_per_segment

単一セグメント内のスパンの最大数。この属性を設定すると、SkyWalking はアプリケーションのメモリ使用量を評価できます。

指定なし

agent.ignore_suffix

最初のスパンの操作名がこのコレクションに含まれている場合、このセグメントは無視されます。

指定なし

agent.is_open_debugging_class

この属性を true に設定すると、SkyWalking エージェントはすべてのインストルメント化されたクラスファイルを /debugging フォルダに保存します。SkyWalking チームは、互換性の問題を解決するためにこれらのクラスファイルの提供を要求する場合があります。

指定なし

agent.cause_exception_depth

例外が記録されるときに SkyWalking エージェントが記録する必要があるスタックの深さ。

5

agent.force_reconnection_period

grpc_channel_check_interval 属性の値に基づく gRPC の強制再接続期間。

1

agent.operation_name_threshold

操作名の最大長。操作名は最大 190 文字です。

150

agent.keep_tracing

この属性を true に設定すると、バックグラウンドサービスが利用できない場合でも、SkyWalking エージェントはデータの収集を続行します。

false

osinfo.ipv4_list_size

IPv4 アドレスの最大数。

10

collector.grpc_channel_check_interval

gRPC チャネルステータスがチェックされる間隔。

30

collector.backend_service

SkyWalking トレースデータを受信するコレクターのバックエンドアドレス。

127.0.0.1:11800

collector.heartbeat_period

SkyWalking エージェントのハートビートがレポートされる期間。単位:秒。

30

collector.grpc_upstream_timeout

gRPC クライアントがアップストリームアプリケーションにデータを送信するタイムアウト期間。単位:秒。

30

collector.get_profile_task_interval

SkyWalking エージェントがファイルを設定するために実行されるタスクをクエリする間隔。

20

logging.level

ログレベル。デフォルト値:DEBUG。

DEBUG

logging.file_name

ログファイルの名前。

skywalking-api.log

logging.output

ログがエクスポートされるモード。デフォルトでは、ログはファイルとしてエクスポートされます。コンソールを使用してログをエクスポートする場合、ログは標準モードでエクスポートされます。コマンドを実行してログをエクスポートする場合、ログは直接エクスポートされます。

FILE

logging.dir

ログが保存されるディレクトリ。デフォルト値は空の文字列です。これは、ログが "system.out" ディレクトリに保存されることを示します。

""

logging.pattern

ログフォーマット。サポートされているフォーマット変換指定子:

  • %level:ログレベル。

  • %timestamp:現在の時刻、yyyy-MM-dd HH:mm:ss:SSS フォーマット。

  • %thread:現在のスレッドの名前。

  • %msg:記録されたメッセージ。

  • %class:クラスの単純名。

  • %throwable:ユーザーによってスローされた例外。

  • %agent_name:エージェントの名前。

%level %timestamp %thread %class : %msg %throwable

logging.max_file_size

ログファイルの最大サイズ。ログファイルのサイズがしきい値を超えると、現在のログファイルはアーカイブされ、ログは新しいファイルに書き込まれます。

300 * 1024 * 1024

logging.max_history_files

履歴ログファイルの最大数。デフォルトでは、負の数または 0 は、履歴ログファイルの数が制限されないことを示します。

-1

設定方法

システム属性

-Dskywalking.agent.config 設定ファイルのキーを使用します。サンプルコード:

# システム属性を使用して agent.service_name 属性を設定します。
java -javaagent:/path/to/skywalking-agent.jar -Dskywalking.agent.service_name=<your_service_name> -jar your-project.jar

プロキシオプション

JVM パラメーターのプロキシパスの後に属性を追加します。

# テンプレート
-javaagent:/path/to/skywalking-agent.jar=[key1]=[value1],[key2]=[value2]

# 例
java -javaagent:/path/to/skywalking-agent.jar=agent.service_name=<your-service-name>,agent.authentication=<your-token> -jar your-project.jar

システム環境変数

属性をシステム環境変数として設定します。SkyWalking エージェントは自動的にシステム環境変数を取得します。config/agent.config ファイルで特定の属性に対応するシステム環境変数をクエリできます。たとえば、agent.service_name 属性はシステム環境変数 SW_AGENT_NAME に対応します。

agent.service_name=${SW_AGENT_NAME:default_name}

# 環境変数を設定します。
export SW_AGENT_NAME=<your_service_name>

優先順位

上記の設定方法の優先順位は、高いものから低いものへ、プロキシオプション、システムプロパティ、システム環境変数、設定ファイルの順です。

SkyWalking Java エージェントプラグイン

SkyWalking Java エージェントは、さまざまなミドルウェア、フレームワーク、リポジトリをサポートしています。サポートされているプラグインの詳細については、サンプルコードの /plugins フォルダをご参照ください。

プラグインのアクティブ化

/plugins フォルダ内のすべてのプラグインがアクティブ化されます。プラグインの JAR パッケージが /plugins フォルダから削除されると、そのプラグインは利用できなくなります。

サポートされている公式プラグイン

サポートされている公式プラグインは /plugins フォルダで利用できます。

オプションのプラグイン

SkyWalking Java エージェントのプラグインはプラグ可能です。オプションのプラグインは、サードパーティリポジトリまたはエージェントの optional-plugins フォルダで利用できます。オプションのプラグインを使用するには、プラグインを /plugins フォルダに移動します。image.png

ブートストラッププラグイン

すべてのブートストラッププラグインは、予期せぬリスクのためオプションです。ブートストラッププラグインは bootstrap-plugins フォルダで利用できます。ブートストラッププラグインを使用したい場合は、プラグインの JAR パッケージを /plugins フォルダに追加できます。image.png

サポートされているプラグイン

SkyWalking の公式チームは、以下のプラグインが SkyWalking のパフォーマンスに影響を与え、その使用を制限する可能性があると考えています。そのため、これらのプラグインはサードパーティリポジトリでのみリリースされています。詳細については、GitHub の java-plugin-extensions をご参照ください。

展開してプラグインを表示

フレームワーク

プラグインバージョン

HTTP サーバー

Tomcat 7

Tomcat 8

Tomcat 9

Spring Boot Web 4.x

Spring MVC 3.x、4.x、および 5.x (servlet 3.x を使用)

Nutz Web Framework 1.x

Struts2 MVC バージョン 2.3.x から 2.5.x

Resin 3

Resin 4

Jetty Server 9

Spring Webflux 5.x

Undertow バージョン 2.0.0.Final から 2.0.13.Final

RESTEasy バージョン 3.1.0.Final から 3.7.0.Final

Play Framework バージョン 2.6.x から 2.8.x

Light4J Microservices Framework バージョン 1.6.x から 2.x

Netty SocketIO 1.x

HTTP クライアント

Feign 9.x

Netflix Spring Cloud Feign 1.1.x、1.2.x、および 1.3.x

Okhttp 3.x

Apache httpcomponent HttpClient 4.2 および 4.3

Spring RestTemplete 4.x

Jetty Client 9

Apache httpcomponent AsyncClient 4.x

HTTP ゲートウェイ

Spring Cloud Gateway 2.1.x.RELEASE

JDBC

MySQL Driver 5.x、6.x、および 8.x

Oracle Driver

H2 Driver バージョン 1.3.x から 1.4.x

Sharding-JDBC 1.5.x

ShardingSphere 3.0.0

ShardingSphere 3.0.0 および 4.0.0-RC1

PostgreSQL Driver 8.x、9.x、および 42.x

Mariadb Driver 2.x および 1.8

RPC フレームワーク

Dubbo バージョン 2.5.4 から 2.6.0

Dubbox 2.8.4

Apache Dubbo 2.7.0

Motan バージョン 0.2.x から 1.1.0

gRPC 1.x

Apache ServiceComb Java Chassis バージョン 0.1 から 0.5 および 1.0.x

SOFARPC 5.4.0

Armeria バージョン 0.63.0 から 0.98.0

Apache Avro バージョン 1.7.0 から 1.8.x

Finagle バージョン 6.25.0 から 20.1.0

MQ

RocketMQ 4.x

Kafka バージョン 0.11.0.0 から 1.0

ActiveMQ 5.x

RabbitMQ 5.x

Pulsar バージョン 2.2.x から 2.4.x

NoSQL

Redis

Jedis 2.x

Redisson Easy Java Redis client 3.5.2 以降

Lettuce 5.x

MongoDB

MongoDB Java Driver 2.13、2.14、および 3.3 以降

Memcached クライアント

Spymemcached 2.x

Xmemcached 2.x

Elasticsearch

transport-client バージョン 5.2.x から 5.6.x

transport-client バージョン 6.7.1 から 6.8.4

rest-high-level-client バージョン 6.7.1 から 6.8.4

SolrJ バージョン 7.0.0 から 7.7.1

SolrJ 7.x

Cassandra 3.x

cassandra-java-driver バージョン 3.7.0 から 3.7.2

サービスディスカバリ

Netflix Eureka

分散協調

ZooKeeper 3.4.x (3.4.4 を除く)

Spring エコシステム

Spring Bean アノテーション (@Bean、@Service、@Component、@Repository) 3.x および 4.x

Spring Core Async SuccessCallback/FailureCallback/ListenableFutureCallback 4.x

分散システムのレイテンシとフォールトトレランスのための Hystrix バージョン 1.4.20 から 1.5.12

スケジューラ

Elastic Job 2.x

OpenTracing コミュニティサポート

Canal バージョン 1.0.25 から 1.1.2:Alibaba Cloud が開発した MySQL binlog ベースの増分データ同期および消費コンポーネント

JSON

GSON 2.8.x

Vert.x エコシステム

Vert.x Eventbus 3.2 以降

Vert.x Web 3.x

スレッドスケジューリングフレームワーク

Spring @Async 4.x および 5.x

キャッシュ

Ehcache 2.x

Kotlin

Coroutine バージョン 1.0.1 から 1.3.x

プラグインの開発

カスタムの SkyWalking Java エージェントプラグインを作成するには、SkyWalking の公式ドキュメントをご参照ください。

Managed Service for OpenTelemetry はトレースレポートをサポートしています。カスタムトレースプラグインを作成するには、SkyWalking の公式ドキュメントをご参照ください。

よくある質問

Q:SkyWalking がサーバーに接続された後、なぜアプリケーションを作成できないのですか?

A:データが Managed Service for OpenTelemetry にレポートされていない可能性があります。データが Managed Service for OpenTelemetry にレポートされているかどうかを確認する必要があります。たとえば、{skywalking agent path}/logs/skywalking-api.log ファイルの内容を確認できます。データがレポートされている場合、次の図が表示されます。pg_xtrace_skywalking

データがレポートされない原因として、サンプリングが有効になっている、データがフィルタリングされている、または Managed Service for OpenTelemetry を使用するリクエストがトリガーされていない、などが考えられます。