Issues
Issues are problems detected automatically by Firetiger’s monitoring agents. Each issue represents a distinct problem observed in your system, linked to the agent session that discovered it. Issues are managed by the system and available as read-only resources.
Issues are the raw findings from agents. To group related issues and track them over time, use Known Issues.
This page also covers the issue notification policy, which controls how and where Firetiger sends alerts when new issues are detected.
Services: firetiger.issues.v1.IssuesService, firetiger.issuenotificationpolicy.v1.IssueNotificationPolicyService
Resource name patterns: issues/{issue_id} and issue-notification-policies/{issue_notification_policy_id}
Access: Issues are read-only. The notification policy is read-write.
Resource types: Issue, Issue Notification Policy
Example flow
List recent issues with a filter, get a specific one, then update the notification policy to route alerts to a new channel.
1. List issues
curl -X POST "https://api.ft-baseten-development.firetigerapi.com/firetiger.issues.v1.IssuesService/ListIssues" \
-u "$USERNAME:$PASSWORD" \
-H "Content-Type: application/json" \
-d '{"page_size": 10}'
{
"issues": [
{
"name": "issues/iss-db-connection-pool",
"displayName": "Database connection pool exhaustion",
"description": "The primary database connection pool is consistently hitting its max limit during peak hours.",
"session": "agents/monitor/sessions/s-abc123",
"createTime": "2024-06-15T14:30:00Z",
"updateTime": "2024-06-15T14:30:00Z"
}
]
}
2. Get a specific issue
curl -X POST "https://api.ft-baseten-development.firetigerapi.com/firetiger.issues.v1.IssuesService/GetIssue" \
-u "$USERNAME:$PASSWORD" \
-H "Content-Type: application/json" \
-d '{"name": "issues/iss-db-connection-pool"}'
{
"issue": {
"name": "issues/iss-db-connection-pool",
"displayName": "Database connection pool exhaustion",
"description": "The primary database connection pool is consistently hitting its max limit during peak hours, causing request queuing and timeouts for downstream services.",
"session": "agents/monitor/sessions/s-abc123",
"createTime": "2024-06-15T14:30:00Z",
"updateTime": "2024-06-15T14:30:00Z"
}
}
3. Update the notification policy
curl -X POST "https://api.ft-baseten-development.firetigerapi.com/firetiger.issuenotificationpolicy.v1.IssueNotificationPolicyService/UpdateIssueNotificationPolicy" \
-u "$USERNAME:$PASSWORD" \
-H "Content-Type: application/json" \
-d '{
"issue_notification_policy": {
"connections": ["connections/slack-oncall", "connections/pagerduty-prod"],
"prompt": "Send critical issues to #oncall-alerts in Slack and create a PagerDuty incident."
},
"update_mask": "connections,prompt"
}'
{
"issueNotificationPolicy": {
"name": "issue-notification-policies/default",
"description": "Route critical issues to the on-call Slack channel and PagerDuty",
"connections": [
"connections/slack-oncall",
"connections/pagerduty-prod"
],
"prompt": "Send critical issues to #oncall-alerts in Slack and create a PagerDuty incident.",
"state": "ISSUE_NOTIFICATION_POLICY_STATE_ACTIVE",
"createTime": "2024-06-10T09:00:00Z",
"updateTime": "2024-06-16T10:15:00Z"
}
}
Methods
| Method | Service | Description |
|---|---|---|
| GetIssue | IssuesService | Retrieve an issue by name |
| ListIssues | IssuesService | List issues with filtering and pagination |
| GetIssueNotificationPolicy | IssueNotificationPolicyService | Retrieve the current notification policy |
| UpdateIssueNotificationPolicy | IssueNotificationPolicyService | Update the notification policy |
GetIssue
Retrieve an issue by name.
POST /firetiger.issues.v1.IssuesService/GetIssue
Request body
| Field | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Resource name of the issue (issues/{id}) |
Example
curl -X POST "https://api.ft-baseten-development.firetigerapi.com/firetiger.issues.v1.IssuesService/GetIssue" \
-u "$USERNAME:$PASSWORD" \
-H "Content-Type: application/json" \
-d '{"name": "issues/iss-db-connection-pool"}'
Response
{
"issue": {
"name": "issues/iss-db-connection-pool",
"displayName": "Database connection pool exhaustion",
"description": "The primary database connection pool is consistently hitting its max limit during peak hours, causing request queuing and timeouts for downstream services.",
"session": "agents/monitor/sessions/s-abc123",
"createTime": "2024-06-15T14:30:00Z",
"updateTime": "2024-06-15T14:30:00Z"
}
}
ListIssues
List issues with optional filtering and pagination.
POST /firetiger.issues.v1.IssuesService/ListIssues
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 issues |
Example
curl -X POST "https://api.ft-baseten-development.firetigerapi.com/firetiger.issues.v1.IssuesService/ListIssues" \
-u "$USERNAME:$PASSWORD" \
-H "Content-Type: application/json" \
-d '{"page_size": 25}'
Response
{
"issues": [
{
"name": "issues/iss-db-connection-pool",
"displayName": "Database connection pool exhaustion",
"description": "The primary database connection pool is consistently hitting its max limit during peak hours, causing request queuing and timeouts for downstream services.",
"session": "agents/monitor/sessions/s-abc123",
"createTime": "2024-06-15T14:30:00Z",
"updateTime": "2024-06-15T14:30:00Z"
}
],
"nextPageToken": ""
}
GetIssueNotificationPolicy
Retrieve the current issue notification policy. The notification policy is a singleton resource that controls how Firetiger routes alerts when issues are detected. It defines which connections (e.g. Slack, PagerDuty) receive notifications and includes a prompt that guides the notification agent’s behavior.
POST /firetiger.issuenotificationpolicy.v1.IssueNotificationPolicyService/GetIssueNotificationPolicy
Request body
This method takes no parameters. Send an empty JSON object.
Example
curl -X POST "https://api.ft-baseten-development.firetigerapi.com/firetiger.issuenotificationpolicy.v1.IssueNotificationPolicyService/GetIssueNotificationPolicy" \
-u "$USERNAME:$PASSWORD" \
-H "Content-Type: application/json" \
-d '{}'
Response
{
"issueNotificationPolicy": {
"name": "issue-notification-policies/default",
"description": "Route critical issues to the on-call Slack channel and PagerDuty",
"connections": [
"connections/slack-oncall",
"connections/pagerduty-prod"
],
"prompt": "Send critical issues to #oncall-alerts in Slack and create a PagerDuty incident. For non-critical issues, post to #issues in Slack only.",
"state": "ISSUE_NOTIFICATION_POLICY_STATE_ACTIVE",
"createTime": "2024-06-10T09:00:00Z",
"updateTime": "2024-06-15T14:30:00Z"
}
}
UpdateIssueNotificationPolicy
Update the issue notification policy. Use update_mask to specify which fields to modify.
POST /firetiger.issuenotificationpolicy.v1.IssueNotificationPolicyService/UpdateIssueNotificationPolicy
Request body
| Field | Type | Required | Description |
|---|---|---|---|
issue_notification_policy |
IssueNotificationPolicy | Yes | The policy with name set and updated fields |
update_mask |
string | No | Comma-separated list of fields to update. If omitted, all provided fields are updated. |
Example
curl -X POST "https://api.ft-baseten-development.firetigerapi.com/firetiger.issuenotificationpolicy.v1.IssueNotificationPolicyService/UpdateIssueNotificationPolicy" \
-u "$USERNAME:$PASSWORD" \
-H "Content-Type: application/json" \
-d '{
"issue_notification_policy": {
"name": "issue-notification-policies/default",
"connections": [
"connections/slack-oncall",
"connections/pagerduty-prod",
"connections/email-eng-leads"
],
"prompt": "Send critical issues to #oncall-alerts in Slack and create a PagerDuty incident. For non-critical issues, post to #issues in Slack and email engineering leads."
},
"update_mask": "connections,prompt"
}'
Response
{
"issueNotificationPolicy": {
"name": "issue-notification-policies/default",
"description": "Route critical issues to the on-call Slack channel and PagerDuty",
"connections": [
"connections/slack-oncall",
"connections/pagerduty-prod",
"connections/email-eng-leads"
],
"prompt": "Send critical issues to #oncall-alerts in Slack and create a PagerDuty incident. For non-critical issues, post to #issues in Slack and email engineering leads.",
"state": "ISSUE_NOTIFICATION_POLICY_STATE_ACTIVE",
"createTime": "2024-06-10T09:00:00Z",
"updateTime": "2024-06-16T10:15:00Z"
}
}