sidekick - 無料でオープンソースのライブ アプリケーション デバッガー。Chrome 開発ツールと同様ですが、バックエンド用です

(Free and open-source live application debugger. Like chrome dev tools but for your backend)

Created at: 2022-08-22 21:46:15
Language: Java
License: AGPL-3.0

サイドキックライセンス  相棒の不和チャンネル  予測モニタリング  相棒サンドボックス 

Sidekick - バックエンド用の Chrome DevTools のように、オープン ソースになりました |  商品探し
目次
  1. サイドキックとは?
  2. なぜサイドキック?
  3. 特徴
  4. 誰がサイドキックを使うべきですか?
  5. サイドキックはどのように機能しますか?
  6. 入門
  7. サイドキックエコシステム
  8. 貢献する
  9. 質問?問題?提案?
  10. コンタクト

サイドキックとは?

Sidekick は、実行中のアプリケーションのトラブルシューティングを可能にするライブ アプリケーション デバッガーです。

動的ログを追加し、停止して再デプロイする必要なく、実行中のアプリケーションに中断しないブレークポイントを配置します。

Sidekick Open Source は、自己ホスティングを可能にし、ライブ デバッグをよりアクセスしやすくするためにここにあります。実行中のアプリケーションから追加情報を必要とするすべての人のために構築されています。

サイドキック アクション:

Sidekick には 2 つの主要なアクションがあります。トレースポイントとログポイント。

  • トレースポイントは、ブレークしないリモート ブレークポイントです。つまり、コードがその行にヒットすると、変数のスナップショットが取得されます。
  • ログポイントは、Sidekick ユーザーへの動的 (オンデマンド) ロギングへの道を開きます。従来のロギングを動的ロギングに置き換えると、ステージ サイズ、コスト、およびログ検索の時間が削減される可能性があると同時に、ソース コードの編集、アプリケーションの再デプロイ、または再起動を行わずに新しいログポイントを追加する機能が追加されます。

サポートされているランタイム: Java、Python、Node.js

Sidekick の特徴と機能の詳細については、当社のWeb ページを参照してください。

(トップに戻る)

なぜサイドキック?

ライブ デバッグとロギングのニーズに合わせて、開発のどの段階でも Sidekick を使用できます。サイドキックを使用すると、次のことができます。

  • リモート アプリケーション (Kubernetes、Docker、VM、またはローカル上のモノリスまたはマイクロサービス) をデバッグし、リモート アプリケーションから実用的なデータを収集します。
  • 再デプロイまたは再起動せずに本番アプリにログを追加
  • オンデマンドおよび条件付きのログポイントとトレースポイントで監視コストを削減
  • リアルタイム データを使用してアプリがどのように機能するかを示すことで、新しい開発者をオンボードします。
  • イベント駆動型システムを簡単に観察
  • アプリケーションからデータを収集する場所と時期をプログラムで制御します
  • Sidekick の Web IDE、VS Code、および IntelliJ IDEA 拡張機能を使用して Sidekick アクションを制御するか、ヘッドレス クライアントを使用して、Sidekick を任意の方法でワークフローに導入します。
  • 統合された分散トレースを使用して、エラーがアプリケーションに与える影響を評価します。
  • Sidekick で撮影したスナップショットを共有して、同僚と共同作業を行います。
  • 異なるツール間のコンテキスト切り替えに費やす時間を削減します。

これらはすべて、ほとんどオーバーヘッドがありません。PS:ベンチマーク ブログをチェックしてください。

(トップに戻る)

特徴

  • ログポイントとトレースポイントの条件とカスタム ヒット制限 -> 必要なものだけを収集
  • ログポイント用の Mustache を利用した表現システム -> 変数データをログ コンテキストに簡単に追加
  • カスタマイズ可能なエージェント -> エージェントの動作方法を設定し、深度とフレーム番号を定義します
  • 収集したデータを Thundra APM と Open-telemetry トレースで集約します
  • エラーを自動的に収集し、選択したターゲットに送信します (8 月 30 日に利用可能になります)
  • 収集対象を制御するカスタム データ リダクション関数を定義する (Node.js のみ)
  • プログラムを使用してログポイントとトレースポイントを制御する
  • Sidekick クライアントを使用して、収集したデータを自分のやり方で操作する

(トップに戻る)

誰がサイドキックを使うべきですか?

ログ データを利用することは、リモート アプリケーションをデバッグするための最も明白な選択肢のように思えますが、Sidekick は、ローカル環境でアプリケーションをデバッグするのと同様のシームレスなデバッグ エクスペリエンスを提供します。

*あなた*

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

(トップに戻る)

サイドキックはどのように機能しますか?

Sidekick は 3 つのレイヤーで構成されています。ブローカーは Sidekick の中心的なユニットです。クライアントとエージェント間のすべてのデータ フローを制御します。このリポジトリには Sidekick ブローカーが含まれています。

エージェントは、Sidekick アクションがアプリケーションと出会う層です。ソフトウェアと共にデプロイされたエージェントを使用すると、コードを変更することなく、スナップショット データを収集し、動的ログを生成できます。エージェントはクライアントから注文を受け、指定されたプロパティを持つ対象の回線をリッスンし始めます。次に、コードがログポイントまたはトレースポイントに到達するたびに、エージェントがスタックおよびログ データを収集し、ブローカー経由でクライアントに送信します。現在、Java、Python、および Node.js ランタイム用のエージェントがあります。

クライアントを使用すると、エージェントと対話できます。ブローカーを介してエージェントにコマンドを送信し、トレースポイントとログポイントを制御できるようにします。クライアントはさまざまな方法で来ます。

  • 1 つ目は Sidekick Web IDE で、SaaS およびオンプレミス バージョンで使用できます。これにより、他の開発者と共同作業したり、ブラウザからエージェント、ワークスペース、ユーザーを制御したりできます。Webアプリなのでインストール不要。Sidekick SaaS およびオンプレミスの機能の詳細については、当社のWeb ページを参照してください。
  • 次に、IDE 拡張機能があります。これらを使用すると、快適な IDE でエージェントを制御できます。現在、Visual Studio Code と IntelliJ IDEA の拡張機能があります。以下の「クライアント」セクションをご覧ください。
  • 最後になりましたが、ヘッドレス アプローチで Sidekick を使用することもできます。Sidekick Rest API を使用すると、HTTP プロトコルを介してログポイントとトレースポイントに CRUD 操作を適用できます。また、Sidekick Node.js クライアントなどの他のクライアントを使用すると、エージェントをプログラムで制御し、コードを使用して収集したデータを利用できます。

(トップに戻る)

入門

Sidekick を使用する最も簡単な方法は、Sidekick Cloud でアカウントを作成することです。自己ホスト型バージョンの場合、Sidekick を自分で構築するか、Docker イメージを使用できます。


docker デーモンが実行されていることを確認してください。

Docker イメージを使用して Sidekick を実行する

  1. 環境変数の構成

    1. プロジェクトの下の docker フォルダーに移動します。
    2. .env
      任意のテキスト エディターでファイルを 開く
      1. シークレット トークンを設定します (任意の値を設定できます。これがマスター キーになります)。
        1. API_TOKEN
          BROKER_CLIENT_AUTHTOKEN
          あり
          BROKER_TOKEN
          、同じである必要があります。そうでない場合、アプリとクライアントを接続できません
      2. MySQL シークレットを設定する
        1. MySQL ルート パスワードの設定 (
          MYSQL_ROOT_PASSWORD
          )
        2. MySQL ユーザーの設定 (
          MYSQL_USER
          SPRING_DATASOURCE_USERNAME
          )
        3. MySQL パスワードの設定 (
          MYSQL_PASSWORD
          SPRING_DATASOURCE_PASSWORD
          )
  2. アプリケーション スタックの実行

    • プロジェクトの下の docker フォルダーに移動します。

    • コマンド

      docker-compose up -d
      を実行して 1 分間待ちます

    • アプリの準備ができました

    • URLを使用してブローカーに接続できます

      ws://<your-server-hostname-or-ip>:7777

    • API の swagger インターフェイスは次の場所で確認できます。

      http://<your-server-hostname-or-ip>:8084/swagger-ui.html

建物の相棒

  1. ビルド サービス イメージ

    1. サイドキック ブローカー イメージのビルド
      1. sidekick/sidekick-broker-app
        プロジェクトの下のフォルダーに移動
      2. 実行する
        release.sh
    2. Sidekick API イメージのビルド
      1. sidekick/sidekick-api
        プロジェクトの下のフォルダーに移動
      2. 実行する
        release.sh

ブローカーの準備が整ったので、Sidekick の使用を開始するには、エージェントとクライアントをインストールする必要があります。以下でそれらをチェックしてください。

詳細については、ドキュメントを参照してください。

(トップに戻る)

サイドキックエコシステム

ドキュメンテーション

(トップに戻る)

エージェント

Sidekick Open Source でエージェントを使用する方法については、ドキュメントをご覧ください。

注: エージェントもオープンソース化されます! ETA: 8 月 30 日

(トップに戻る)

クライアント

Sidekick Open Source でクライアントを使用する方法については、ドキュメントをご覧ください。

(トップに戻る)

使用例

詳しくはドキュメントをご覧ください。

(トップに戻る)

相棒のレシピ

  1. Sidekick のログとスナップショットを Loki に取り込みます。https://github.com/boroskoyo/sidekick-loki

    関連ブログ投稿: Sidekick Recipes #2: ログを Loki に送信する - 不足しているログを実行中のマイクロサービスに追加します。1–2–3 で簡単

  2. 収集したトレースポイントログポイントのイベントを Elasticsearch に送信しますhttps://github.com/boroskoyo/sidekick-elastic

    関連ブログ記事: Sidekick Recipes #1: Elasticsearch Ingest

(トップに戻る)

最近の出版物

(トップに戻る)

貢献する

CONTRIBUTING.mdをチェックアウト

(トップに戻る)

質問?問題?提案?

バグを報告したり機能をリクエストしたりするには、GitHub Issueを作成してください。他の誰かが同じトピックの問題を作成していないことを確認してください。

(トップに戻る)

コンタクト

Discord にアクセスしてください。仲間のコミュニティ メンバーまたは Sidekick エンジニアが喜んでお手伝いします。

(トップに戻る)