Create a new issue alert rule for the given project.
An issue alert rule triggers whenever a new event is received for any issue in a project that matches the specified alert conditions. These conditions can include a resolved issue re-appearing or an issue affecting many users. Alert conditions have three parts:
Request body which must comply to the following JSON Schema:
{ "required" : [ "actionMatch", "actions", "conditions", "frequency", "name" ], "type" : "object", "properties" : { "name" : { "maxLength" : 256, "type" : "string", "description" : "The name for the rule." }, "frequency" : { "maximum" : 43200, "minimum" : 5, "type" : "integer", "description" : "How often to perform the actions once for an issue, in minutes. The valid range is `5` to `43200`." }, "actionMatch" : { "type" : "string", "description" : "A string determining which of the conditions need to be true before any filters are evaluated.\n\n* `all` - All conditions must evaluate to true.\n* `any` - At least one of the conditions must evaluate to true.\n* `none` - All conditions must evaluate to false.", "enum" : [ "all", "any", "none" ] }, "conditions" : { "type" : "array", "description" : "\nA list of triggers that determine when the rule fires. See below for a list of possible conditions.\n\n**A new issue is created**\n```json\n{\n \"id\": \"sentry.rules.conditions.first_seen_event.FirstSeenEventCondition\"\n}\n```\n\n**The issue changes state from resolved to unresolved**\n```json\n{\n \"id\": \"sentry.rules.conditions.regression_event.RegressionEventCondition\"\n}\n```\n\n**The issue is seen more than `value` times in `interval`**\n- `value` - An integer\n- `interval` - Valid values are `1m`, `5m`, `15m`, `1h`, `1d`, `1w` and `30d` (`m` for minutes, `h` for hours, `d` for days, and `w` for weeks).\n```json\n{\n \"id\": \"sentry.rules.conditions.event_frequency.EventFrequencyCondition\",\n \"value\": 500,\n \"interval\": \"1h\"\n}\n```\n\n**The issue is seen by more than `value` users in `interval`**\n- `value` - An integer\n- `interval` - Valid values are `1m`, `5m`, `15m`, `1h`, `1d`, `1w` and `30d` (`m` for minutes, `h` for hours, `d` for days, and `w` for weeks).\n```json\n{\n \"id\": \"sentry.rules.conditions.event_frequency.EventUniqueUserFrequencyCondition\",\n \"value\": 1000,\n \"interval\": \"15m\"\n}\n```\n\n**The issue affects more than `value` percent of sessions in `interval`**\n- `value` - A float\n- `interval` - Valid values are `5m`, `10m`, `30m`, and `1h` (`m` for minutes, `h` for hours).\n```json\n{\n \"id\": \"sentry.rules.conditions.event_frequency.EventFrequencyPercentCondition\",\n \"value\": 50.0,\n \"interval\": \"10m\"\n}\n```\n", "items" : { "type" : "object", "additionalProperties" : { } } }, "actions" : { "type" : "array", "description" : "\nA list of actions that take place when all required conditions and filters for the rule are met. See below for a list of possible actions.\n\n**Send a notification to Suggested Assignees**\n- `fallthroughType` - Who the notification should be sent to if there are no suggested assignees. Valid values are `ActiveMembers`, `AllMembers`, and `NoOne`.\n```json\n{\n \"id\" - \"sentry.mail.actions.NotifyEmailAction\",\n \"targetType\" - \"IssueOwners\",\n \"fallthroughType\" - \"ActiveMembers\"\n}\n```\n\n**Send a notification to a Member or a Team**\n- `targetType` - One of `Member` or `Team`.\n- `fallthroughType` - Who the notification should be sent to if it cannot be sent to the original target. Valid values are `ActiveMembers`, `AllMembers`, and `NoOne`.\n- `targetIdentifier` - The ID of the Member or Team the notification should be sent to.\n```json\n{\n \"id\": \"sentry.mail.actions.NotifyEmailAction\",\n \"targetType\": \"Team\"\n \"fallthroughType\": \"AllMembers\"\n \"targetIdentifier\": 4524986223\n}\n```\n\n**Send a Slack notification**\n- `workspace` - The integration ID associated with the Slack workspace.\n- `channel` - The name of the channel to send the notification to (e.g., #critical, Jane Schmidt).\n- `channel_id` (optional) - The ID of the channel to send the notification to.\n- `tags` - A string of tags to show in the notification, separated by commas (e.g., \"environment, user, my_tag\").\n- `notes` - Text to show alongside the notification. To @ a user, include their user id like `@<USER_ID>`. To include a clickable link, format the link and title like `<http://example.com|Click Here>`.\n```json\n{\n \"id\": \"sentry.integrations.slack.notify_action.SlackNotifyServiceAction\",\n \"workspace\": 293854098,\n \"channel\": \"#warning\",\n \"tags\": \"environment,level\"\n \"notes\": \"Please <http://example.com|click here> for triage information\"\n}\n```\n\n**Send a Microsoft Teams notification**\n- `team` - The integration ID associated with the Microsoft Teams team.\n- `channel` - The name of the channel to send the notification to.\n```json\n{\n \"id\": \"sentry.integrations.msteams.notify_action.MsTeamsNotifyServiceAction\",\n \"team\": 23465424,\n \"channel\": \"General\"\n}\n```\n\n**Send a Discord notification**\n- `server` - The integration ID associated with the Discord server.\n- `channel_id` - The ID of the channel to send the notification to.\n- `tags` - A string of tags to show in the notification, separated by commas (e.g., \"environment, user, my_tag\").\n```json\n{\n \"id\": \"sentry.integrations.discord.notify_action.DiscordNotifyServiceAction\",\n \"server\": 63408298,\n \"channel_id\": 94732897,\n \"tags\": \"browser,user\"\n}\n```\n\n**Create a Jira Ticket**\n- `integration` - The integration ID associated with Jira.\n- `project` - The ID of the Jira project.\n- `issuetype` - The ID of the type of issue that the ticket should be created as.\n- `dynamic_form_fields` (optional) - A list of any custom fields you want to include in the ticket as objects.\n```json\n{\n \"id\": \"sentry.integrations.jira.notify_action.JiraCreateTicketAction\",\n \"integration\": 321424,\n \"project\": \"349719\"\n \"issueType\": \"1\"\n}\n```\n\n**Create a Jira Server Ticket**\n- `integration` - The integration ID associated with Jira Server.\n- `project` - The ID of the Jira Server project.\n- `issuetype` - The ID of the type of issue that the ticket should be created as.\n- `dynamic_form_fields` (optional) - A list of any custom fields you want to include in the ticket as objects.\n```json\n{\n \"id\": \"sentry.integrations.jira_server.notify_action.JiraServerCreateTicketAction\",\n \"integration\": 321424,\n \"project\": \"349719\"\n \"issueType\": \"1\"\n}\n```\n\n**Create a GitHub Issue**\n- `integration` - The integration ID associated with GitHub.\n- `repo` - The name of the repository to create the issue in.\n- `title` - The title of the issue.\n- `body` (optional) - The contents of the issue.\n- `assignee` (optional) - The GitHub user to assign the issue to.\n- `labels` (optional) - A list of labels to assign to the issue.\n```json\n{\n \"id\": \"sentry.integrations.github.notify_action.GitHubCreateTicketAction\",\n \"integration\": 93749,\n \"repo\": default,\n \"title\": \"My Test Issue\",\n \"assignee\": \"Baxter the Hacker\",\n \"labels\": [\"bug\", \"p1\"]\n \"\"\n}\n```\n\n**Create a GitHub Enterprise Issue**\n- `integration` - The integration ID associated with GitHub Enterprise.\n- `repo` - The name of the repository to create the issue in.\n- `title` - The title of the issue.\n- `body` (optional) - The contents of the issue.\n- `assignee` (optional) - The GitHub user to assign the issue to.\n- `labels` (optional) - A list of labels to assign to the issue.\n```json\n{\n \"id\": \"sentry.integrations.github_enterprise.notify_action.GitHubEnterpriseCreateTicketAction\",\n \"integration\": 93749,\n \"repo\": default,\n \"title\": \"My Test Issue\",\n \"assignee\": \"Baxter the Hacker\",\n \"labels\": [\"bug\", \"p1\"]\n \"\"\n}\n```\n\n**Create an Azure DevOps work item**\n- `integration` - The integration ID.\n- `project` - The ID of the Azure DevOps project.\n- `work_item_type` - The type of work item to create.\n- `dynamic_form_fields` (optional) - A list of any custom fields you want to include in the work item as objects.\n```json\n{\n \"id\": \"sentry.integrations.vsts.notify_action.AzureDevopsCreateTicketAction\",\n \"integration\": 294838,\n \"project\": \"0389485\",\n \"work_item_type\": \"Microsoft.VSTS.WorkItemTypes.Task\",\n}\n```\n\n**Send a PagerDuty notification**\n- `account` - The integration ID associated with the PagerDuty account.\n- `service` - The ID of the service to send the notification to.\n- `severity` - The severity of the Pagerduty alert. This is optional, the default is `critical` for fatal issues, `error` for error issues, `warning` for warning issues, and `info` for info and debug issues.\n```json\n{\n \"id\": \"sentry.integrations.pagerduty.notify_action.PagerDutyNotifyServiceAction\",\n \"account\": 92385907,\n \"service\": 9823924,\n \"severity\": \"critical\"\n}\n```\n\n**Send an Opsgenie notification**\n- `account` - The integration ID associated with the Opsgenie account.\n- `team` - The ID of the Opsgenie team to send the notification to.\n- `priority` - The priority of the Opsgenie alert. This is optional, the default is `P3`.\n```json\n{\n \"id\": \"sentry.integrations.opsgenie.notify_action.OpsgenieNotifyTeamAction\",\n \"account\": 8723897589,\n \"team\": \"9438930258-fairy\",\n \"priority\": \"P1\"\n}\n```\n\n**Send a notification to a service**\n- `service` - The plugin slug.\n```json\n{\n \"id\": \"sentry.rules.actions.notify_event_service.NotifyEventServiceAction\",\n \"service\": \"mail\"\n}\n```\n\n**Send a notification to a Sentry app with a custom webhook payload**\n- `settings` - A list of objects denoting the settings each action will be created with. All required fields must be included.\n- `sentryAppInstallationUuid` - The ID for the Sentry app\n```json\n{\n \"id\": \"sentry.rules.actions.notify_event_sentry_app.NotifyEventSentryAppAction\",\n \"settings\": [\n {\"name\": \"title\", \"value\": \"Team Rocket\"},\n {\"name\": \"summary\", \"value\": \"We're blasting off again.\"},\n ],\n \"sentryAppInstallationUuid\": 643522\n \"hasSchemaFormConfig\": true\n}\n```\n\n**Send a notification (for all legacy integrations)**\n```json\n{\n \"id\": \"sentry.rules.actions.notify_event.NotifyEventAction\"\n}\n```\n", "items" : { "type" : "object", "additionalProperties" : { } } }, "environment" : { "type" : "string", "description" : "The name of the environment to filter by.", "nullable" : true }, "owner" : { "type" : "string", "description" : "The ID of the team or user that owns the rule.", "nullable" : true }, "filterMatch" : { "type" : "string", "description" : "A string determining which filters need to be true before any actions take place. Required when a value is provided for `filters`.\n\n* `all` - All filters must evaluate to true.\n* `any` - At least one of the filters must evaluate to true.\n* `none` - All filters must evaluate to false.", "enum" : [ "all", "any", "none" ] }, "filters" : { "type" : "array", "description" : "\nA list of filters that determine if a rule fires after the necessary conditions have been met. See below for a list of possible filters.\n\n**The issue is `comparison_type` than `value` `time`**\n- `comparison_type` - One of `older` or `newer`\n- `value` - An integer\n- `time` - The unit of time. Valid values are `minute`, `hour`, `day`, and `week`.\n```json\n{\n \"id\": \"sentry.rules.filters.age_comparison.AgeComparisonFilter\",\n \"comparison_type\": \"older\",\n \"value\": 3,\n \"time\": \"week\"\n}\n```\n\n**The issue has happened at least `value` times**\n- `value` - An integer\n```json\n{\n \"id\": \"sentry.rules.filters.issue_occurrences.IssueOccurrencesFilter\",\n \"value\": 120\n}\n```\n\n**The issue is assigned to No One**\n```json\n{\n \"id\": \"sentry.rules.filters.assigned_to.AssignedToFilter\",\n \"targetType\": \"Unassigned\"\n}\n```\n\n**The issue is assigned to `targetType`**\n- `targetType` - One of `Team` or `Member`\n- `targetIdentifier` - The target's ID\n```json\n{\n \"id\": \"sentry.rules.filters.assigned_to.AssignedToFilter\",\n \"targetType\": \"Member\",\n \"targetIdentifier\": 895329789\n}\n```\n\n**The event is from the latest release**\n```json\n{\n \"id\": \"sentry.rules.filters.latest_release.LatestReleaseFilter\"\n}\n```\n\n**The issue's category is equal to `value`**\n- `value` - An integer correlated with a category. Valid values are `1` (Error), `2` (Performance), `3` (Profile), `4` (Cron), and `5` (Replay).\n```json\n{\n \"id\": \"sentry.rules.filters.issue_category.IssueCategoryFilter\",\n \"value\": 2\n}\n```\n\n**The event's `attribute` value `match` `value`**\n- `attribute` - Valid values are `message`, `platform`, `environment`, `type`, `error.handled`, `error.unhandled`, `error.main_thread`, `exception.type`, `exception.value`, `user.id`, `user.email`, `user.username`, `user.ip_address`, `http.method`, `http.url`, `http.status_code`, `sdk.name`, `stacktrace.code`, `stacktrace.module`, `stacktrace.filename`, `stacktrace.abs_path`, `stacktrace.package`, `unreal.crashtype`, and `app.in_foreground`.\n- `match` - The comparison operator. Valid values are `eq` (equals), `ne` (does not equal), `sw` (starts with), `ew` (ends with), `co` (contains), `nc` (does not contain), `is` (is set), and `ns` (is not set).\n- `value` - A string. Not required when `match` is `is` or `ns`.\n```json\n{\n \"id\": \"sentry.rules.conditions.event_attribute.EventAttributeCondition\",\n \"attribute\": \"http.url\",\n \"match\": \"nc\",\n \"value\": \"localhost\"\n}\n```\n\n**The event's tags match `key` `match` `value`**\n- `key` - The tag\n- `match` - The comparison operator. Valid values are `eq` (equals), `ne` (does not equal), `sw` (starts with), `ew` (ends with), `co` (contains), `nc` (does not contain), `is` (is set), and `ns` (is not set).\n- `value` - A string. Not required when `match` is `is` or `ns`.\n```json\n{\n \"id\": \"sentry.rules.filters.tagged_event.TaggedEventFilter\",\n \"key\": \"level\",\n \"match\": \"eq\"\n \"value\": \"error\"\n}\n```\n\n**The event's level is `match` `level`**\n- `match` - Valid values are `eq`, `gte`, and `lte`.\n- `level` - Valid values are `50` (fatal), `40` (error), `30` (warning), `20` (info), `10` (debug), `0` (sample).\n```json\n{\n \"id\": \"sentry.rules.filters.level.LevelFilter\",\n \"match\": \"gte\"\n \"level\": \"50\"\n}\n```\n", "items" : { "type" : "object", "additionalProperties" : { } } } } }
Specify how the response should be mapped to the table output. The following formats are available:
Structured Table: Returns a parsed table with data split into rows and columns.
Raw Response: Returns the raw response in a single row with the following columns:
You want to see the source code for this node? Click the following button and we’ll use our super-powers to find it for you.
To use this node in KNIME, install the extension Sentry Nodes from the below update site following our NodePit Product and Node Installation Guide:
A zipped version of the software site can be downloaded here.
Deploy, schedule, execute, and monitor your KNIME workflows locally, in the cloud or on-premises – with our brand new NodePit Runner.
Try NodePit Runner!Do you have feedback, questions, comments about NodePit, want to support this platform, or want your own nodes or workflows listed here as well? Do you think, the search results could be improved or something is missing? Then please get in touch! Alternatively, you can send us an email to mail@nodepit.com.
Please note that this is only about NodePit. We do not provide general support for KNIME — please use the KNIME forums instead.