Monitoring Plans

Monitoring plans track deployment risk for pull requests. When a PR is merged and deployed, Firetiger monitors the deployment for unintended effects based on a plan written by an agent during code review.

This page covers two services: MonitoringPlanService for plan lifecycle and MonitoringRunService (legacy) for backward-compatible run access.

Services: firetiger.monitoring_plans.v1.MonitoringPlanService, firetiger.monitoring_plans.v1.MonitoringRunService

Resource name patterns: monitoring-plans/{plan_id} and monitoring-plans/{plan_id}/runs/{run_id}

Access: Read-only

Resource types: Monitoring Plan, Monitoring Run

Example flow

List recent monitoring plans, then fetch details for a specific one.

1. List monitoring plans

curl -X POST "https://api.ft-baseten-development.firetigerapi.com/firetiger.monitoring_plans.v1.MonitoringPlanService/ListMonitoringPlans" \
  -u "$USERNAME:$PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{"page_size": 5, "order_by": "create_time desc"}'
{
  "monitoringPlans": [
    {
      "name": "monitoring-plans/plan-abc123",
      "origin": {
        "repository": "acme-corp/backend",
        "prNumber": 42,
        "prTitle": "Fix auth service timeout handling",
        "prAuthor": "engineer"
      },
      "planSummary": "Fixes auth service timeout handling to prevent cascading failures during peak traffic.",
      "createTime": "2024-06-15T14:30:00Z"
    }
  ],
  "nextPageToken": ""
}

2. Get plan details

curl -X POST "https://api.ft-baseten-development.firetigerapi.com/firetiger.monitoring_plans.v1.MonitoringPlanService/GetMonitoringPlan" \
  -u "$USERNAME:$PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{"name": "monitoring-plans/plan-abc123"}'
{
  "monitoringPlan": {
    "name": "monitoring-plans/plan-abc123",
    "origin": {
      "repository": "acme-corp/backend",
      "prNumber": 42,
      "prUrl": "https://github.com/acme-corp/backend/pull/42",
      "headSha": "a1b2c3d4e5f6",
      "prTitle": "Fix auth service timeout handling",
      "prAuthor": "engineer"
    },
    "activation": {
      "mergeSha": "f6e5d4c3b2a1",
      "environments": ["production"]
    },
    "planContent": "## Intended Effect\nFixes timeout handling in auth service...",
    "planSummary": "Fixes auth service timeout handling to prevent cascading failures during peak traffic.",
    "notificationChannel": "#deploy-alerts",
    "authorSession": "agents/plan-author/sessions/sess-xyz",
    "createTime": "2024-06-15T14:30:00Z",
    "updateTime": "2024-06-15T15:00:00Z",
    "deployments": [
      {
        "environment": "production",
        "deployment": "deployments/dep-789",
        "deployTime": "2024-06-15T16:00:00Z",
        "intendedEffectConfirmed": true,
        "outcome": "MONITORING_OUTCOME_NO_ISSUE",
        "completeTime": "2024-06-15T17:30:00Z"
      }
    ],
    "lastCheckTime": "2024-06-15T17:30:00Z"
  }
}

Methods

Method Service Description
GetMonitoringPlan MonitoringPlanService Retrieve a monitoring plan by name
ListMonitoringPlans MonitoringPlanService List monitoring plans with filtering and pagination
GetMonitoringRun MonitoringRunService Retrieve a monitoring run by name
ListMonitoringRuns MonitoringRunService List monitoring runs for a plan

GetMonitoringPlan

Retrieve a monitoring plan by name.

POST /firetiger.monitoring_plans.v1.MonitoringPlanService/GetMonitoringPlan

Request body

Field Type Required Description
name string Yes Resource name of the monitoring plan

Example

curl -X POST "https://api.ft-baseten-development.firetigerapi.com/firetiger.monitoring_plans.v1.MonitoringPlanService/GetMonitoringPlan" \
  -u "$USERNAME:$PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{"name": "monitoring-plans/plan-abc123"}'

Response

{
  "monitoringPlan": {
    "name": "monitoring-plans/plan-abc123",
    "origin": {
      "repository": "acme-corp/backend",
      "prNumber": 42,
      "prUrl": "https://github.com/acme-corp/backend/pull/42",
      "headSha": "a1b2c3d4e5f6",
      "prTitle": "Fix auth service timeout handling",
      "prAuthor": "engineer"
    },
    "activation": {
      "mergeSha": "f6e5d4c3b2a1",
      "environments": ["production"]
    },
    "planContent": "## Intended Effect\nFixes timeout handling in auth service...",
    "planSummary": "Fixes auth service timeout handling to prevent cascading failures during peak traffic.",
    "notificationChannel": "#deploy-alerts",
    "authorSession": "agents/plan-author/sessions/sess-xyz",
    "createTime": "2024-06-15T14:30:00Z",
    "updateTime": "2024-06-15T15:00:00Z",
    "deployments": [
      {
        "environment": "production",
        "deployment": "deployments/dep-789",
        "deployTime": "2024-06-15T16:00:00Z",
        "intendedEffectConfirmed": true,
        "outcome": "MONITORING_OUTCOME_NO_ISSUE",
        "completeTime": "2024-06-15T17:30:00Z"
      }
    ],
    "lastCheckTime": "2024-06-15T17:30:00Z"
  }
}

ListMonitoringPlans

List monitoring plans with optional filtering and pagination.

POST /firetiger.monitoring_plans.v1.MonitoringPlanService/ListMonitoringPlans

Request body

Field Type Required Description
filter string No Filter expression
order_by string No Field to sort by (e.g. create_time desc)
page_size integer No Maximum results per page
page_token string No Token for the next page of results
show_deleted boolean No Include soft-deleted monitoring plans

Example

curl -X POST "https://api.ft-baseten-development.firetigerapi.com/firetiger.monitoring_plans.v1.MonitoringPlanService/ListMonitoringPlans" \
  -u "$USERNAME:$PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{"page_size": 10, "order_by": "create_time desc"}'

Response

{
  "monitoringPlans": [
    {
      "name": "monitoring-plans/plan-abc123",
      "origin": {
        "repository": "acme-corp/backend",
        "prNumber": 42,
        "prUrl": "https://github.com/acme-corp/backend/pull/42",
        "prTitle": "Fix auth service timeout handling",
        "prAuthor": "engineer"
      },
      "planSummary": "Fixes auth service timeout handling to prevent cascading failures during peak traffic.",
      "createTime": "2024-06-15T14:30:00Z",
      "updateTime": "2024-06-15T15:00:00Z"
    }
  ],
  "nextPageToken": ""
}

GetMonitoringRun

MonitoringRunService is a legacy service. New monitoring state is stored directly on MonitoringPlan.deployments. The run endpoints are retained for backward compatibility.

Retrieve a monitoring run by name.

POST /firetiger.monitoring_plans.v1.MonitoringRunService/GetMonitoringRun

Request body

Field Type Required Description
name string Yes Resource name of the monitoring run

Example

curl -X POST "https://api.ft-baseten-development.firetigerapi.com/firetiger.monitoring_plans.v1.MonitoringRunService/GetMonitoringRun" \
  -u "$USERNAME:$PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{"name": "monitoring-plans/plan-abc123/runs/run-prod-001"}'

Response

{
  "monitoringRun": {
    "name": "monitoring-plans/plan-abc123/runs/run-prod-001",
    "environment": "production",
    "deployment": "deployments/dep-789",
    "status": "MONITORING_RUN_STATUS_COMPLETED",
    "outcome": "MONITORING_RUN_OUTCOME_NO_ISSUE",
    "intendedEffectConfirmed": true,
    "activateTime": "2024-06-15T16:00:00Z",
    "completeTime": "2024-06-15T17:30:00Z",
    "lastCheckTime": "2024-06-15T17:30:00Z",
    "createTime": "2024-06-15T16:00:00Z",
    "updateTime": "2024-06-15T17:30:00Z"
  }
}

ListMonitoringRuns

MonitoringRunService is a legacy service. New monitoring state is stored directly on MonitoringPlan.deployments. The run endpoints are retained for backward compatibility.

List monitoring runs for a plan with optional filtering and pagination.

POST /firetiger.monitoring_plans.v1.MonitoringRunService/ListMonitoringRuns

Request body

Field Type Required Description
parent string Yes Parent monitoring plan resource name
filter string No Filter expression
order_by string No Field to sort by (e.g. create_time desc)
page_size integer No Maximum results per page
page_token string No Token for the next page of results
show_deleted boolean No Include soft-deleted monitoring runs

Example

curl -X POST "https://api.ft-baseten-development.firetigerapi.com/firetiger.monitoring_plans.v1.MonitoringRunService/ListMonitoringRuns" \
  -u "$USERNAME:$PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{"parent": "monitoring-plans/plan-abc123", "page_size": 10}'

Response

{
  "monitoringRuns": [
    {
      "name": "monitoring-plans/plan-abc123/runs/run-prod-001",
      "environment": "production",
      "deployment": "deployments/dep-789",
      "status": "MONITORING_RUN_STATUS_COMPLETED",
      "outcome": "MONITORING_RUN_OUTCOME_NO_ISSUE",
      "intendedEffectConfirmed": true,
      "activateTime": "2024-06-15T16:00:00Z",
      "completeTime": "2024-06-15T17:30:00Z",
      "createTime": "2024-06-15T16:00:00Z",
      "updateTime": "2024-06-15T17:30:00Z"
    }
  ],
  "nextPageToken": ""
}

This site uses Just the Docs, a documentation theme for Jekyll.