Skip to Content
ガイドはじめにProbeは何ですか?

Probeとは?

Probeは、ソフトウェアが動くことをEnd-to-endで確かめる、無料のオープンソースツールです。 YAMLで書いたワークフローが、動いているサービスをHTTP、gRPC、SQL、メールなど、クライアントが使うのと同じプロトコルで操作し、応答を1つずつ検証します。 Probeは単体のバイナリで、手元でも、CIでも、cronからでも同じように動きます。

いま必要とされる理由

AIエージェントと開発すると、変更は速く、多くなります。 コードとユニットテストが通っても、ユーザーが目的を果たせるとは限りません。 ユーザーがたどる道筋(カスタマージャーニー)は、画面、API、データベース、メールなど、いくつものシステムにまたがるからです。 変更がその道筋を壊していないことは、動いているサービスを同じ道筋で操作して確かめる必要があります。 ユーザーが入力するフォーム、書き込まれる行、送信されるメールがそれにあたります。

Probeは、その確認を変更のたびに繰り返せるように、そしてAIエージェントもワークフローを書けるように作られています。

  • probe skillは、インストールされているバージョンに合うワークフローの書き方をAIエージェントに教えます。probe checkは、実行する前に書き間違いを見つけます。
  • ステップはOpenAPIドキュメントや.protoファイルと照合できます。正しさを決めるのは、AIエージェントが書いたtestではなく仕様です。
  • --read-onlyと--allow-hostは、書き込みと、指定していないホストへの接続を、送信する前に拒否します。
  • レポートには、サービスが何をしたかがステップごとに載るので、変更をレビューする人が読めます。

次の例では、AIエージェントがワークフローとして書いたE2Eテストを検査し、サインアップAPIとそのデータベースに対して実行し、最後に--read-onlyでもう一度実行しています。

3場面の端末。probe checkがAIエージェントの書いたE2Eテストの誤りを報告し、直したテストがAPIを呼んで書き込まれた行を問い合わせ、--read-onlyではPOSTが拒否される。

この形でプロジェクトを設定する手順は、AIエージェントと使うにあります。

何ができるのか?

ワークフローは1つのファイルなので、変更を確かめるために書いたものを、その後も使い続けられます。

  • End-to-endテスト:エンドポイントを呼び、書き込まれた行を問い合わせ、送信されたメールを読むまでを1回の実行で行う
  • APIテスト:リクエストと応答を、検証式とOpenAPIドキュメントの両方で確かめる
  • 監視:repeatで同じワークフローを一定の間隔で実行し、成功率を報告する
  • スモークテストとヘルスチェック:終了コードでデプロイを止める
  • 再現できる実験:複数のプロトコルにまたがる手順を書き残し、同じ手順で何度でも実行する

主な特徴

同種のツールと比べたときのProbeの特徴は次のとおりです。 ほかのツールを選んだほうがよい場合は、類似ソフトウェアとの比較で説明しています。

複数のプロトコルを1回の実行で

HTTP、gRPC、MySQL、PostgreSQL、SQLite、SMTP、IMAP、DNS、SSH、シェルが組み込みです。ジョブはneedsで順序を決めない限り並行して動きます。

読みやすい

ワークフローは、jobs、steps、uses、withで構成する、GitHub Actionsに近いYAMLです。AIエージェントが書いたものを人がレビューできます。

AIエージェントへの対応

スキル、probe check、ガード、仕様との照合がバイナリに含まれています。

単体のバイナリ

Goで開発されており、実行時の依存がありません。1つのコマンドでインストールできます。

拡張可能

新しいプロトコルは、Probe本体を変更せず、独立したアクションとして追加できます。

簡単なワークフローの例

実際のコードを見ながらProbeの使い方を理解しましょう。

基本的なHello Worldワークフロー

まずは最もシンプルな例から始めましょう。以下のYAMLファイルを作成します:

name: Hello World Workflow jobs: - name: My First Job steps: - name: Say Hello uses: hello wait: 1s echo: "Hello, World!"

このワークフローをファイルに保存して実行します:

$ probe hello-world.yml Hello World Workflow ⏺ My First Job (Completed in 1.07s) ⎿ 0. ✓ 🕐︎1s → Say Hello Hello, World! Total workflow time: 1.07s ✓ All jobs succeeded

より実践的な例:API監視

実際の使用例として、APIの稼働状況を監視するワークフローです:

name: API Health Check jobs: - name: Monitor API Health defaults: http: url: https://httpbin.org steps: - name: Check Homepage uses: http with: get: /status/200 test: res.code == 200 - name: Check API Response uses: http with: get: /json test: res.code == 200 && res.body != nil

このように、Probeを使えば簡単で迅速、そして楽しくワークフローを作成・実行できます。

利用可能なアクション

次のアクションが組み込まれています。 それぞれのページはリファレンスにあります。

アクション用途
httpHTTPリクエストとその応答
grpcgRPCとConnectの呼び出し(ストリーミングを含む)
dbMySQL、PostgreSQL、SQLiteへのクエリ
smtpメールの送信
imapメールボックスの読み取り
dns名前に対してDNSサーバーが返すレコード
sshリモートホストでのコマンド実行
shellProbeを実行しているマシンでのコマンド実行
embeddedステップから別のジョブファイルを実行
helloレポートへの出力

外部アクションはそれぞれ独立したリポジトリにあり、ステップからコミットを指定して使います。 agent、android、browser、container、graphql、ios、jmap、mail-latency、redis、s3、websocketがあります。

カスタムアクション

必要なプロトコルを扱うアクションがなければ、Goで書いて外部アクションとして公開できます。 詳しくはアクションを参照してください。

始めてみましょう

Probeを始めるのは簡単です。以下の3つのステップで、すぐにワークフローを作成・実行できます:

  1. インストール - 環境に応じた方法でProbeをインストール
  2. クイックスタート - 5分で最初のワークフローを作成・実行
  3. 基本概念を理解 - ワークフロー、ジョブ、ステップの仕組みを学習

適用シーン

Probeは様々な業務領域で活用できます。主な適用シーンをご紹介します。

DevOps・SRE

  • CI/CDパイプラインでのスモークテスト
  • サービス監視とアラート
  • インフラストラクチャの健全性チェック

API開発・テスト

  • REST APIの統合テスト
  • パフォーマンステスト
  • エンドツーエンドテストの自動化

運用・保守

  • 定期的なヘルスチェック
  • システム間の連携確認
  • 障害時の自動復旧処理

困った時は?

Probeの使用中に問題が発生した場合や質問がある場合の、サポートリソースをご案内します。

ドキュメント

このウェブサイトには包括的なドキュメントが用意されています。基本的な使い方から高度な機能まで、すべてカバーしています。

コミュニティサポート

質問、フィードバック、アイデアの議論にはGitHub Discussions をご利用ください。お気軽にディスカッションを始めてください。

バグ報告

バグを発見した場合は、GitHub Issues で報告してください。

プロジェクトを応援してください

このプロジェクトが役に立ったら、ぜひ応援してください!皆様のご支援が開発者にとって大きな励みとなります。

  • GitHubでスター を付ける
  • Xでツイートして友人に紹介
  • ブログや記事で紹介
  • 機能改善のアイデアを提案

オープンソースへの貢献

オープンソースプロジェクトへの貢献に興味がある方、今がチャンスです!コードの貢献、ドキュメントの改善、バグ報告など、あらゆる形での貢献を歓迎します。

更新日時