Alert Prometheus Rule Group
Manages an Alert Management Prometheus Rule Group.
Example Usage
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.monitoring.ActionGroup;
import com.pulumi.azure.monitoring.ActionGroupArgs;
import com.pulumi.azure.monitoring.Workspace;
import com.pulumi.azure.monitoring.WorkspaceArgs;
import com.pulumi.azure.containerservice.KubernetesCluster;
import com.pulumi.azure.containerservice.KubernetesClusterArgs;
import com.pulumi.azure.containerservice.inputs.KubernetesClusterDefaultNodePoolArgs;
import com.pulumi.azure.containerservice.inputs.KubernetesClusterIdentityArgs;
import com.pulumi.azure.monitoring.AlertPrometheusRuleGroup;
import com.pulumi.azure.monitoring.AlertPrometheusRuleGroupArgs;
import com.pulumi.azure.monitoring.inputs.AlertPrometheusRuleGroupRuleArgs;
import com.pulumi.azure.monitoring.inputs.AlertPrometheusRuleGroupRuleAlertResolutionArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new ResourceGroup("example", ResourceGroupArgs.builder()
.name("example-resources")
.location("West Europe")
.build());
var exampleActionGroup = new ActionGroup("exampleActionGroup", ActionGroupArgs.builder()
.name("example-mag")
.resourceGroupName(example.name())
.shortName("testag")
.build());
var exampleWorkspace = new Workspace("exampleWorkspace", WorkspaceArgs.builder()
.name("example-amw")
.resourceGroupName(example.name())
.location(example.location())
.build());
var exampleKubernetesCluster = new KubernetesCluster("exampleKubernetesCluster", KubernetesClusterArgs.builder()
.name("example-cluster")
.location(example.location())
.resourceGroupName(example.name())
.dnsPrefix("example-aks")
.defaultNodePool(KubernetesClusterDefaultNodePoolArgs.builder()
.name("default")
.nodeCount(1)
.vmSize("Standard_DS2_v2")
.enableHostEncryption(true)
.build())
.identity(KubernetesClusterIdentityArgs.builder()
.type("SystemAssigned")
.build())
.build());
var exampleAlertPrometheusRuleGroup = new AlertPrometheusRuleGroup("exampleAlertPrometheusRuleGroup", AlertPrometheusRuleGroupArgs.builder()
.name("example-amprg")
.location("West Europe")
.resourceGroupName(example.name())
.clusterName(exampleKubernetesCluster.name())
.description("This is the description of the following rule group")
.ruleGroupEnabled(false)
.interval("PT1M")
.scopes(exampleWorkspace.id())
.rules(
AlertPrometheusRuleGroupRuleArgs.builder()
.enabled(false)
.expression("""
histogram_quantile(0.99, sum(rate(jobs_duration_seconds_bucket{service="billing-processing"}[5m])) by (job_type))
""")
.record("job_type:billing_jobs_duration_seconds:99p5m")
.labels(Map.of("team", "prod"))
.build(),
AlertPrometheusRuleGroupRuleArgs.builder()
.alert("Billing_Processing_Very_Slow")
.enabled(true)
.expression("""
histogram_quantile(0.99, sum(rate(jobs_duration_seconds_bucket{service="billing-processing"}[5m])) by (job_type))
""")
.for_("PT5M")
.severity(2)
.actions(AlertPrometheusRuleGroupRuleActionArgs.builder()
.actionGroupId(exampleActionGroup.id())
.build())
.alertResolution(AlertPrometheusRuleGroupRuleAlertResolutionArgs.builder()
.autoResolved(true)
.timeToResolve("PT10M")
.build())
.annotations(Map.of("annotationName", "annotationValue"))
.labels(Map.of("team", "prod"))
.build())
.tags(Map.of("key", "value"))
.build());
}
}
Content copied to clipboard
Import
Alert Management Prometheus Rule Group can be imported using the resource id
, e.g.
$ pulumi import azure:monitoring/alertPrometheusRuleGroup:AlertPrometheusRuleGroup example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1/providers/Microsoft.AlertsManagement/prometheusRuleGroups/ruleGroup1
Content copied to clipboard