z/OS における「.NET 」トレースのトラブルシューティング

トレースが期待通りに機能しない場合は、具体的なケースごとの対応に移る前に、まず一般的なトラブルシューティングの手順から始めてください。

一般的なトラブルシューティング

以下のステップを実行します。

  1. 前提条件を確認してください:

    • .NET のバージョン互換性を確認してください:お使いのアプリケーションが、.NET Core Runtime 5.0 以降で動作することを確認してください。
    • z/OS システム上で Instana エージェントが実行されていることを確認してください。
    • Instana のUIでエージェントの状態を確認します。
  2. 環境変数の確認:トレースが機能しない場合は、以下の環境変数が正しく設定されているか確認してください:

    • 正しく設定してください。
    • 正しく綴られています。
    • z/OS 環境用に設定されています。
    • 有効であり、プロセスまたはアプリケーションからアクセス可能で、かつ正しい。
  3. z/OS 環境から Instana エージェントのエンドポイントに接続できることを確認してください:

    • telnet localhost 42699(例:)を使用して telnet agent_host agent_port 、接続を確認してください。
  4. SDKの統合を確認する:

    • Instana SDK については:

      • パッケージが Instana.Tracing.Core.Sdk 正しくインストールされていることを確認してください。
      • CustomSpan.Create()コード内でカスタムスパンが作成されていることを確認するには、...を使用してください。
    • OpenTelemetry SDK については:

      • 必要な OpenTelemetry パッケージがすべてインストールされていることを確認してください(OpenTelemetry.Extensions.Hosting, OpenTelemetry.Exporter.OpenTelemetryProtocol)。
      • サービス設定で が呼び出されていることを AddOpenTelemetry() 確認してください。
      • OTLP エクスポーターが、 Instana エージェントを指すように正しく設定されていることを確認してください(デフォルト: http://localhost:4317gRPC の場合は、 http://localhost:4318HTTP の場合は)。
      • エージェント configuration.yaml ファイルで、 OpenTelemetry プラグインが有効になっていることを確認してください。
      • ActivitySource. を使用してカスタムスパンが作成されていることを確認してください。
    重要: 同じアプリケーション内で両方のSDKを同時に使用しないでください。スパンが重複したり、オーバーヘッドが増大したり、トレースコンテキストの伝播において競合が発生する可能性があります。

ケースごとのトラブルシューティング

一般的なトラブルシューティングを行っても問題が解決しない場合は、以下のトラブルシューティング手順をご確認ください:

シナリオ 1:トレースまたはスパンの欠落

症状: トレースが生成されない、あるいは一部のサービスではトレースが報告されるが、他のサービスでは報告されない。

トラブルシューティングの手順

  1. .NET 版アプリケーションがサポートされていることを確認してください:

    • .NET Core 動作環境: 5.0 以降
  2. Instana SDK または OpenTelemetry SDK を使用して、手動による計測が正しく実装されていることを確認してください。
  3. SDKパッケージが正しくインストールされているか確認してください:

    • Instana SDK については: Instana.Tracing.Core.Sdk
    • OpenTelemetry.Extensions.HostingOpenTelemetry SDK については: OpenTelemetry.Exporter.OpenTelemetryProtocol
  4. アプリケーションのコード内でカスタムスパンが作成されていることを確認してください。
  5. Instana のエージェントログを確認し、接続に関する問題がないか確認してください。
  6. OpenTelemetry SDK を使用している場合は、 OTLP エクスポーターのエンドポイントが正しく設定されていることを確認してください(デフォルト: http://localhost:4317gRPC )。
  7. configuration.yamlInstana エージェントで、com.instana.plugin.opentelemetryOpenTelemetry プラグインが有効になっているかどうかを確認してください。
  8. Instana のトレースログを収集する。
  9. Instana のトレースログを確認してください:

    • ログが空であるか、ログにトレースが表示されない場合は、アプリケーションコード内でスパンが正しく作成されていない可能性があります。
    • ログにトレースが記録されており、その中にUIには表示されていなかった情報が含まれている場合、問題はバックエンドまたはエージェントのいずれかで発生したことになります。

シナリオ 2: アプリケーションが起動しない

症状:Instana SDKまたは OpenTelemetry SDKを統合した場合、アプリケーションの起動に失敗する。

トラブルシューティングの手順

  1. .NET 版アプリケーションがサポートされていることを確認してください:

    • .NET Core 動作環境: 5.0 以降
  2. SDKパッケージが.NET ランタイムのバージョンと互換性があることを確認してください。
  3. アプリケーションのログを確認し、SDKの初期化エラーがないか確認してください。
  4. telnet localhost 42699(例:)を使用して telnet agent_host agent_port 、 z/OS 環境から Instana エージェントのエンドポイントにアクセスできることを確認してください。
  5. 可能であれば、問題のアプリケーションのクラッシュダンプを取得してください。

シナリオ 3:エージェントが「.NET 」アプリケーションを検出しない

症状:.NET アプリケーションが Instana エージェントによって監視されておらず、UIに表示されません。

トラブルシューティングの手順

  1. z/OS 上で Instana エージェントが実行されていることを確認してください。
  2. Instana エージェントがアプリケーションにアクセスする権限を持っていることを確認してください。
  3. エージェントの設定ファイル(*instanaAgentDir*/etc/instana/configuration.yaml)で、.NET Core のトレースが有効になっていることを確認してください:

    com.instana.plugin.netcore:
      tracing:
        enabled: true
    注: 設定ファイルを変更した後は、 Instana エージェントを再起動する必要があります。
  4. OpenTelemetry SDK を使用している場合は、 OpenTelemetry プラグインが有効になっていることを確認してください:

    com.instana.plugin.opentelemetry:
      grpc:
        enabled: true
      http:
        enabled: true
    注: 設定ファイルを変更した後は、 Instana エージェントを再起動する必要があります。
  5. SDK を使用して、アプリケーションがスパンを作成していることを確認してください。
  6. SDKの初期設定において、サービス名が正しく設定されているか確認してください。

シナリオ 4: SDK ベースのトレースを有効にした後の CPU またはメモリ使用率の高さ

症状: SDKベースのトレースを有効にした後、アプリケーションのCPUまたはメモリ使用率が異常に高くなる。

トラブルシューティングの手順

  1. 情報源を特定する:

    • z/OS のシステム監視ツールを確認し、問題がアプリケーションに関連しているかどうかを判断してください。
  2. アプリケーションのメモリ使用量やCPU使用率が急増している場合:

    • アプリケーションのログを確認し、メモリ関連の例外やパフォーマンスの問題がないか確認してください。
    • この問題が、アプリケーションコード内でのスパン作成の過剰な使用に起因するかどうかを確認してください。
    • `statement` を使用 using するか、明示的な破棄を行うことで、スパンが適切に閉じられているか、または破棄されているかを確認してください。
    • 作成されるカスタムスパンの頻度と量を検証してください。
    • 詳細な分析のため、アプリケーションログとメモリダンプの提出をお願いします。

シナリオ 5: SDK の設定に関する問題

症状: SDKが統合されているにもかかわらず、 Instana のUIにトレースが表示されない。

トラブルシューティングの手順

  1. アプリケーションの起動コード内で、SDKが正しく初期化されていることを確認してください。

    • Instana SDK については:

      • スパンが適切な SpanType (ENTRY, INTERMEDIATE, および EXIT) で作成されていることを確認してください。
      • `statement` を使用して using 、スパンが適切に処理されるようにしてください。
    • OpenTelemetry SDK については:

      • サービス設定で が呼び出されていることを AddOpenTelemetry() 確認してください。
      • http://localhost:4317OTLP エクスポーターのエンドポイントが正しく設定されているか確認してください(デフォルト:)。
      • が正しく登録され、使用されていることを ActivitySource 確認してください。
      • リソースビルダーでサービス名が正しく設定されていることを確認してください。
  2. アプリケーションと Instana エージェント間のネットワーク接続を確認してください:

    • 接続を確認するには、(例: telnet localhost 42699Instana SDKの場合は、 telnet localhost 4317OpenTelemetry SDK( gRPC 対応)の場合は)を使用 telnet agent_host agent_port してください。
    • Instana のエージェントログを確認し、接続の試行やエラーがないか確認してください。
    • z/OS のネットワーク設定およびセキュリティポリシーを確認してください。
  3. 必要なポートでの通信がファイアウォールルールで許可されているか確認してください:

    • 42699 : Instana エージェントのデフォルトポート( Instana SDK用)
    • 4317 : gRPC OTLP エンドポイント( OpenTelemetry SDK用)
    • 4318 : HTTP OTLP エンドポイント( OpenTelemetry SDK用。 gRPC の代わりに HTTP を使用している場合)

ログの収集

z/OS 自動ログ収集には対応していません。 したがって、ログは手動で収集する必要があります。

ログを手動で収集するには、以下の手順を実行してください:

  1. デバッグ・ログを有効にします。

    システムレベルで以下の環境変数を手動で設定し、パスが有効であり、プロセスまたはアプリケーションからアクセス可能で、かつ正しいことを確認してください:

    INSTANA_NET_LOG_PATH=log_path
    INSTANA_NET_LOG_LEVEL=DEBUG
  2. アプリケーションを再起動します。
  3. Instana エージェントのログを収集するには、以下の手順を実行してください:

    1. エージェントを停止します。

      instana_install_dir/bin/stop.sh
    2. ログを削除する:ログディレクトリ内のすべてのファイルを削除して、最初からやり直します:

      rm -rf instana_install_dir/data/logs/*
    3. ログレベルを「Debug」に設定する:設定ファイルでログレベルの深刻度を変更します。 詳細については、 「エージェント設定ファイルの設定」 を参照してください。
    4. 以下の方法でエージェントを開始します。

      instana_install_dir/bin/start.sh
    5. 問題の再現手順:問題が発生する状態にし、エージェントを約15分間実行してください。
    6. ログを収集する:提出用にログディレクトリを圧縮する:

      cd instana_install_dir/data/logs/
      zip -r instana_agent_debug_logs.zip *
  4. Instana のトレースログを収集するには、以下の手順を実行してください:

    1. agent_dir/etc/instana/com.instana.agent.main.sender.File.cfgに移動します。
    2. ファイルに次の行を追加してください:

      prefix=instanaTraces
      type=traces

      instanaTracesこの設定では、すべてのトレースが記録されたログファイルが、 agent_dir/data/log 接頭辞「.」付きで生成されます。

    3. instana エージェントを再始動します。
    4. アプリケーションを再起動します。
    5. 約15分間、そのまま動かしておいてください。
    6. トレースが正常に取得されていることを確認してください:

      • アプリケーション 」>「 サービス」 に移動し、 Instana のUIを確認して、ご自身のサービス名を探してください。
      • トレースとスパンが、想定通りのサービス名およびエンドポイント名で表示されることを確認してください。
    7. 以下のパスからログを取得してください:

      • 変数で指定されたパス INSTANA_NET_LOG_PATH
      • instana-agent-installation-folder/data/log

サポート・チケットのオープン

これらのトラブルシューティング手順を実行しても問題が解決しない場合は、サポートチケットを送信する前に、 MustGather のデータを収集してください。 MustGather このデータは、 IBM サポートが問題をより効率的に診断するのに役立ちます。

詳細については、 MustGather:、 Instana、.NET、Tracer - z/OS をご覧ください。