DUICUO

SidekickはChrome DevToolsに似たバックグラウンドデバッグツールです

Sidekickは、オープンソースのリアルタイムアプリケーションデバッガーです。アプリケーションの実行中にトラブルシューティングを行うことができます。動的なログ出力を追加し、実行中のアプリケーションに中断のないブレークポイントを設定することで、停止や再デプロイをすることなく、アプリケーションを中断することなくデバッグできます。Sidekickはセルフホスティングに対応しており、リアルタイムデバッグをより簡単に実現します。また、実行中のアプリケーションから追加情報を必要とする開発者向けに設計されています。

導入

リモート環境でのアプリケーションのデバッグは、ローカル環境のようにリモートアプリケーションにブレークポイントを設定できないため、非常に困難です。Sidekickの主な目的は、分散環境におけるリモート開発において、デバッグツールの不足によって生じる開発者の負担を軽減することです。

Sidekick はデバッグの負担を軽減し、開発者が実行を中断しない非侵入的なブレークポイントをコード内に設定できるようにすることで、アプリケーションがすでに起動して実行されているときでもデバッグできるようにします。

Sidekickは、アプリケーションランタイム用のJava、Python、Node.jsプロキシを提供します。開発者はWeb IDE、Visual Studio Code、またはIntelliJ IDEAを使用して、Sidekickアクション(ログポイントとトレースポイント)をコードに挿入し、Sidekickはポイントの位置をプロキシに渡します。コードの実行中、プロキシはアプリケーションを停止することなく、アプリケーションの状態、コールスタック、キャプチャされた変数などのスナップショットを取得し、スナップショットまたは生成されたログをイベントとして環境に送信します。

Sidekick を使用してスナップショットをキャプチャしたりログを生成したりした後、開発者はイベントを分析してアプリケーションの動作を理解できます。

ログ データを利用することは、リモート アプリケーションをデバッグするための最も明白なオプションのように思われるかもしれませんが、Sidekick は、ローカル環境でアプリケーションをデバッグする場合と同様のシームレスなデバッグ エクスペリエンスという追加の利点も提供します。

開発者、テスト ソフトウェア エンジニア、QA エンジニアのいずれであっても、Sidekick はエラーの根本原因を見つけるのに役立ちます。

特性

  • ログ ポイントとトレース ポイントには特定の条件とカスタム ヒット制限があり、必要な情報のみを収集できます。
  • Mustache のログ ポイントの動的表現システムを使用すると、ログ コンテキストに変更可能なデータを簡単に追加できます。
  • カスタマイズ可能なプロキシ -> プロキシの動作方法を設定し、深度とフレーム レートを定義します。
  • 収集したデータを追跡および集約するには、Thundra APMとOpen-telemetryを使用します。
  • エラーを自動的に収集し、選択したターゲットに送信します(8 月 30 日より利用可能)
  • 収集されたコンテンツを制御するためのカスタム データ編集関数を定義します (Node.js のみ)。
  • ログ ポイントとトレース ポイントをプログラムで制御します。
  • Sidekick クライアントを使用して、収集したデータを独自の方法で処理します。

インストール

Sidekick を使う最も簡単な方法は、Sidekick Cloud にアカウントを作成することです。あるいは、Sidekick を自分でビルドするか、公式の Docker イメージを使用してセルフホストすることもできます。

Sidekick を実行するには、次のコマンドを使用できます。

 $ git clone https://github.com/runsidekick/sidekick
$ cdサイドキック/docker

このディレクトリには、組み込みの docker-compose.yml ファイルが含まれています。

バージョン: '3.1'
サービス:
サイドキックdb:
画像: mysql
コマンド: --default -authentication -plugin = mysql_native_password
再起動:常に
コンテナ名: sidekick-db
環境ファイル: .env
ポート:
- 3306 :3306
ボリューム:
-サイドキックdb:/var/lib/mysql
- ./scripts/schema.sql:/docker-entrypoint-initdb.d/schema.sql
サイドキックキャッシュ:
画像: redis:6.2-alpine
再起動:常に
コンテナ名: サイドキックキャッシュ
コマンド: redis-server --save 20 1 --loglevel warning
ポート:
- 6379 :6379
ボリューム:
-サイドキックキャッシュ:/data
サイドキックMQ:
画像: rabbitmq:3-management
コンテナ名: sidekick-mq
ポート:
- 5672 :5672
- 15672 :15672
- 61613 :61613
ボリューム:
- Rabbitmq-data:/var/lib/rabbitmq/
-ラビットマクログ:/var/log/rabbitmq
再起動:常に
サイドキックブローカー:
画像: runsidekick/sidekick-broker:latest
再起動:常に
コンテナ名: サイドキックブローカー
依存:
-サイドキックキャッシュ
-サイドキック-db
-サイドキックMQ
ポート:
- 7777 :7777
- 8080 :8080
環境ファイル: .env
サイドキックAPI:
画像: runsidekick/sidekick-api:latest
再起動:常に
コンテナ名: サイドキックAPI
依存:
-サイドキックキャッシュ
-サイドキック-db
-サイドキックMQ
-サイドキックブローカー
ポート:
- 8084 :8084
環境ファイル: .env
ボリューム:
サイドキックdb:
サイドキックキャッシュ:
rabbitmq-data:
rabbitmq-log:
redisデータ:

したがって、`docker-compose up` コマンドを実行して起動することができます。

 $ docker -compose アップ
デフォルトドライバーネットワーク「docker_default」 作成する
デフォルトドライバーボリューム「docker_sidekick-db」 を作成しています
デフォルトドライバーボリューム「docker_sidekick-cache」 を作成しています
デフォルトドライバーボリューム「docker_rabbitmq-data」 を作成しています
デフォルトドライバーボリューム「docker_rabbitmq-log」 を作成しています
デフォルトドライバーボリューム「docker_redis-data」 を作成しています
サイドキック- db ( mysql :) をプルしています...
……
サイドキック- api | 2022-08-24 09 : 22 : 05.667 INFO 1 --- [ main ] o . s . s . c . ThreadPoolTask​​Executor : ExecutorService 'applicationTaskExecutor' を初期化しています
sidekick - api | 2022-08-24 09 : 22 : 06.061 INFO 1 --- [ main ] o . s . b . w . e . t . TomcatWebServer : Tomcat がポート( s ): 8084 (http ) コンテキストパス'' 起動しました
サイドキック- api | 2022-08-24 09 : 22 : 06.063 INFO 1 --- [ main ] d.s.w.p.DocumentationPluginsBootstrapper : コンテキストが更新されました
sidekick - api | 2022-08-24 09 : 22 : 06.080 INFO 1 --- [ main ] d . s . w . p . DocumentationPluginsBootstrapper : カスタムドキュメントプラグイン1個見つかりました( s )
sidekick - api | 2022-08-24 09 : 22 : 06.140 INFO 1 --- [ main ] s . d . s . w . s . ApiListingReferenceScanner : API リスト参照スキャンしています
sidekick - api | 2022-08-24 09 :22 : 06.485 INFO 1 --- [ main ] c . r . a . SidekickApiApplication : SidekickApiApplication12.02 起動しました( JVM の実行時間13.553 秒)

アプリケーションの準備ができたら、URL ws://<your-server-hostname-or-ip>:7777 を使用してエージェントに接続できます。また、http://<your-server-hostname-or-ip>:8084/swagger-ui.html を介して API の Swagger インターフェースを表示することもできます。

オンライン管理システムが必要な場合は、Sidekickのクラウド版をご登録ください。アプリケーションへの統合およびデバッグ方法の詳細については、公式ドキュメント(https://docs.runsidekick.com/)をご覧ください。

Git リポジトリ: https://github.com/runsidekick/sidekick。