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.
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
Filtering notes: ListIssues supports environment-aware filtering via deployment_environments, for example deployment_environments:"deployment-environments/firetiger-cloud".
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.cloud.firetiger.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.",
"source": "deployment-environments/firetiger-cloud",
"deploymentEnvironments": [
"deployment-environments/firetiger-cloud"
],
"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.cloud.firetiger.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.",
"source": "deployment-environments/firetiger-cloud",
"deploymentEnvironments": [
"deployment-environments/firetiger-cloud"
],
"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.cloud.firetiger.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.cloud.firetiger.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 filters
deployment_environments:"deployment-environments/firetiger-cloud"– issues affecting a specific deployment environmentworkflow_state = 'ISSUE_WORKFLOW_STATE_ACTIONABLE' AND deployment_environments:"deployment-environments/firetiger-cloud"– actionable issues scoped to one environment
Example
curl -X POST "https://api.cloud.firetiger.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.",
"source": "deployment-environments/firetiger-cloud",
"deploymentEnvironments": [
"deployment-environments/firetiger-cloud"
],
"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.cloud.firetiger.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.cloud.firetiger.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"
}
}