本文へスキップ
Pathrule

signals

起きたことを知る。
直ったことを確かめる。

Pathrule Signalsは、アプリのランタイムでの動きを、それを変更するエージェントにつなぎます。エラーとイベントは発生元のコードパスごとにグループ化され、コーディングエージェントはそれを読むことができます。修正は、次のリリースで裏づけられたときにだけ検証済みとみなされます。

/apps/web/checkoutcheckout production
  1. submitOrderでTypeErrorリリース2.4.0、37件発生、ベースライン
  2. エージェントが修正を記録主張であって、証明ではない
  3. リリース2.4.1を観測中60分、エンベロープ3件、チェックアウト成功3件
  4. 検証済み新しいリリースで再発なし

2.4.1以降で1件でも発生すると、グループは再発(recurred)に戻ります。

動かし方は3つ。

  • オープンソースのSDKStandaloneApache-2.0のSDKが、あなたが運用するHTTPコレクターに送信します。PathruleのアカウントもCloudも不要です。
  • アカウント不要Pathrule Localイベントはお使いのマシン上のPathruleホストに送られ、そこで保存、グループ化、検証され、エージェントが読めるようになります。pathrule init --localを一度実行するだけです。
  • マネージドPathrule Cloud書き込み専用のプロジェクトキーと保持期間を備えたマネージドな取り込みで、エージェントはあなたのセッションで読み取ります。Pro、Team、Enterpriseに含まれます。

StandaloneとLocalは、アカウントも有料プランも不要です。Cloud Signalsは、Pro、Team、Enterpriseに含まれます。

計装は一度だけ。

app/signals.ts
import { pathrule, httpCollector } from "@pathrule/signals"; pathrule.init({  destination: httpCollector({ url: "https://collector.example.com/signals" }),  environment: "production",  release: { version: "2.4.0", commit: process.env.GIT_SHA },}); pathrule.error(error, { node: "/apps/web/checkout", flow: "checkout" });pathrule.event("order placed", {  node: "/apps/web/checkout",  flow: "checkout",  meta: { outcome: "success" },});

すべてのエラーとイベントが、コードパスとフローを示します。検証を可能にするのはリリースの識別情報で、修正を証明するのは同じフローでの成功です。

検証済みとは、ランタイムがそう示すこと。

grouped
環境、種類、フィンガープリントごとに1つのグループで、ラベル、フロー、コードパスから作られます。再送されたエンベロープは1回だけ保存されます。
observing
より新しいリリースで観測が始まります。ベースラインのリリース、リリース情報のないイベント、修正より前のものは、一切カウントされません。
verified
少なくとも60分間、新しいリリースからのエンベロープ3件、そしてグループ自身のフローでの成功3件。
quiet
証明するフローを持たないグループについて、24時間とエンベロープ3件の間、再発がないこと。
recurred
検証済みになった後でも、より新しいリリースで1件でも発生した場合。グループは再びアクティブになります。

修正の記録は主張であって、証明ではありません。グループを解決できるのは、より新しいリリースからのランタイムのエビデンスだけで、誰も手作業では解決しません。

エージェントが、それを読む。

エージェントが動く前のコンテキスト
Runtime: 2 active issues under apps/web/checkout (1 came back after a fix).Inspect with pathrule_runtime_events.
pathrule_runtime_events
検証の状態、記録された修正、カバレッジとあわせてグループを読み取ります。パス、種類、環境、状態で絞り込めます。
pathrule_runtime_events_resolve
グループのリビジョンに対して修正を記録します。これは主張であり、それが成り立つかどうかはランタイムが判断します。
pathrule instrument events
同じグループをターミナルで表示します。たとえば--verification recurredを指定します。

ランタイムの行に含まれるのは件数だけで、報告された内容は含まれません。また、エージェントがSignalsから読むものはすべて、信頼できない観測として明示されます。

よくある質問

Pathruleのアカウントは必要ですか?

いいえ。StandaloneモードではSDKがあなたの運用するコレクターに送信し、Pathrule Localではお使いのマシン上のホストがイベントを保存、検証します。アカウントが必要なのは、Pathrule Cloudを使う場合だけです。

Signalsは分析ツールですか?

いいえ。ユーザー、セッション、ファネルといった概念はありません。記録するのは、エラーと、フローが正しく動いていることを示すイベントで、コードパスごとにグループ化されます。SDKの設定にあるスクラブ用のフックで、機微な情報を送信前に取り除くこともできます。

何をもって修正は検証済みになりますか?

より新しいリリースからのエビデンスです。少なくとも60分間の観測、そのリリースからのエンベロープ3件、そしてグループ自身のフローでの成功3件が必要です。記録された修正は主張にすぎず、その後に1件でも発生すると、グループは再発(recurred)に戻ります。

Pathrule Cloudで何が加わりますか?

Pro、Team、Enterpriseでは、書き込み専用のプロジェクトキーを使ったマネージドな取り込み、保持期間、Cloudでの修正の記録と検証、そしてあなた自身のセッションによるエージェントからのアクセスが加わります。Teamの組織では、1つのCloud Signalsの利用枠をメンバー全員で共有します。

計装して、
判断はランタイムに任せる。