MetricRuleTemplateArgs

data class MetricRuleTemplateArgs(val alertTemplates: Output<List<MetricRuleTemplateAlertTemplateArgs>>? = null, val applyMode: Output<String>? = null, val description: Output<String>? = null, val enableEndTime: Output<String>? = null, val enableStartTime: Output<String>? = null, val groupId: Output<String>? = null, val metricRuleTemplateName: Output<String>? = null, val notifyLevel: Output<String>? = null, val restVersion: Output<String>? = null, val silenceTime: Output<Int>? = null, val webhook: Output<String>? = null) : ConvertibleToJava<MetricRuleTemplateArgs>

Provides a Cloud Monitor Service Metric Rule Template resource. For information about Cloud Monitor Service Metric Rule Template and how to use it, see What is Metric Rule Template.

NOTE: Available since v1.134.0.

Example Usage

Basic Usage

import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
const config = new pulumi.Config();
const name = config.get("name") || "tf-example";
const example = new alicloud.cms.MetricRuleTemplate("example", {
metricRuleTemplateName: name,
alertTemplates: [{
category: "ecs",
metricName: "cpu_total",
namespace: "acs_ecs_dashboard",
ruleName: "tf_example",
escalations: {
critical: {
comparisonOperator: "GreaterThanThreshold",
statistics: "Average",
threshold: "90",
times: "3",
},
},
}],
});
import pulumi
import pulumi_alicloud as alicloud
config = pulumi.Config()
name = config.get("name")
if name is None:
name = "tf-example"
example = alicloud.cms.MetricRuleTemplate("example",
metric_rule_template_name=name,
alert_templates=[alicloud.cms.MetricRuleTemplateAlertTemplateArgs(
category="ecs",
metric_name="cpu_total",
namespace="acs_ecs_dashboard",
rule_name="tf_example",
escalations=alicloud.cms.MetricRuleTemplateAlertTemplateEscalationsArgs(
critical=alicloud.cms.MetricRuleTemplateAlertTemplateEscalationsCriticalArgs(
comparison_operator="GreaterThanThreshold",
statistics="Average",
threshold="90",
times="3",
),
),
)])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
return await Deployment.RunAsync(() =>
{
var config = new Config();
var name = config.Get("name") ?? "tf-example";
var example = new AliCloud.Cms.MetricRuleTemplate("example", new()
{
MetricRuleTemplateName = name,
AlertTemplates = new[]
{
new AliCloud.Cms.Inputs.MetricRuleTemplateAlertTemplateArgs
{
Category = "ecs",
MetricName = "cpu_total",
Namespace = "acs_ecs_dashboard",
RuleName = "tf_example",
Escalations = new AliCloud.Cms.Inputs.MetricRuleTemplateAlertTemplateEscalationsArgs
{
Critical = new AliCloud.Cms.Inputs.MetricRuleTemplateAlertTemplateEscalationsCriticalArgs
{
ComparisonOperator = "GreaterThanThreshold",
Statistics = "Average",
Threshold = "90",
Times = "3",
},
},
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
cfg := config.New(ctx, "")
name := "tf-example"
if param := cfg.Get("name"); param != "" {
name = param
}
_, err := cms.NewMetricRuleTemplate(ctx, "example", &cms.MetricRuleTemplateArgs{
MetricRuleTemplateName: pulumi.String(name),
AlertTemplates: cms.MetricRuleTemplateAlertTemplateArray{
&cms.MetricRuleTemplateAlertTemplateArgs{
Category: pulumi.String("ecs"),
MetricName: pulumi.String("cpu_total"),
Namespace: pulumi.String("acs_ecs_dashboard"),
RuleName: pulumi.String("tf_example"),
Escalations: &cms.MetricRuleTemplateAlertTemplateEscalationsArgs{
Critical: &cms.MetricRuleTemplateAlertTemplateEscalationsCriticalArgs{
ComparisonOperator: pulumi.String("GreaterThanThreshold"),
Statistics: pulumi.String("Average"),
Threshold: pulumi.String("90"),
Times: pulumi.String("3"),
},
},
},
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.cms.MetricRuleTemplate;
import com.pulumi.alicloud.cms.MetricRuleTemplateArgs;
import com.pulumi.alicloud.cms.inputs.MetricRuleTemplateAlertTemplateArgs;
import com.pulumi.alicloud.cms.inputs.MetricRuleTemplateAlertTemplateEscalationsArgs;
import com.pulumi.alicloud.cms.inputs.MetricRuleTemplateAlertTemplateEscalationsCriticalArgs;
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) {
final var config = ctx.config();
final var name = config.get("name").orElse("tf-example");
var example = new MetricRuleTemplate("example", MetricRuleTemplateArgs.builder()
.metricRuleTemplateName(name)
.alertTemplates(MetricRuleTemplateAlertTemplateArgs.builder()
.category("ecs")
.metricName("cpu_total")
.namespace("acs_ecs_dashboard")
.ruleName("tf_example")
.escalations(MetricRuleTemplateAlertTemplateEscalationsArgs.builder()
.critical(MetricRuleTemplateAlertTemplateEscalationsCriticalArgs.builder()
.comparisonOperator("GreaterThanThreshold")
.statistics("Average")
.threshold("90")
.times("3")
.build())
.build())
.build())
.build());
}
}
configuration:
name:
type: string
default: tf-example
resources:
example:
type: alicloud:cms:MetricRuleTemplate
properties:
metricRuleTemplateName: ${name}
alertTemplates:
- category: ecs
metricName: cpu_total
namespace: acs_ecs_dashboard
ruleName: tf_example
escalations:
critical:
comparisonOperator: GreaterThanThreshold
statistics: Average
threshold: '90'
times: '3'

Import

Cloud Monitor Service Metric Rule Template can be imported using the id, e.g.

$ pulumi import alicloud:cms/metricRuleTemplate:MetricRuleTemplate example <id>

Constructors

Link copied to clipboard
constructor(alertTemplates: Output<List<MetricRuleTemplateAlertTemplateArgs>>? = null, applyMode: Output<String>? = null, description: Output<String>? = null, enableEndTime: Output<String>? = null, enableStartTime: Output<String>? = null, groupId: Output<String>? = null, metricRuleTemplateName: Output<String>? = null, notifyLevel: Output<String>? = null, restVersion: Output<String>? = null, silenceTime: Output<Int>? = null, webhook: Output<String>? = null)

Properties

Link copied to clipboard

The details of alert rules that are generated based on the alert template. See alert_templates below.

Link copied to clipboard
val applyMode: Output<String>? = null

The mode in which the alert template is applied. Valid values:GROUP_INSTANCE_FIRSTor ALARM_TEMPLATE_FIRST. GROUP_INSTANCE_FIRST: The metrics in the application group take precedence. If a metric specified in the alert template does not exist in the application group, the system does not generate an alert rule for the metric based on the alert template. ALARM_TEMPLATE_FIRST: The metrics specified in the alert template take precedence. If a metric specified in the alert template does not exist in the application group, the system still generates an alert rule for the metric based on the alert template.

Link copied to clipboard
val description: Output<String>? = null

The description of the alert template.

Link copied to clipboard
val enableEndTime: Output<String>? = null

The end of the time period during which the alert rule is effective. Valid values: 00 to 23. The value 00 indicates 00:59 and the value 23 indicates 23:59.

Link copied to clipboard
val enableStartTime: Output<String>? = null

The beginning of the time period during which the alert rule is effective. Valid values: 00 to 23. The value 00 indicates 00:00 and the value 23 indicates 23:00.

Link copied to clipboard
val groupId: Output<String>? = null

The ID of the application group.

Link copied to clipboard
val metricRuleTemplateName: Output<String>? = null

The name of the alert template.

Link copied to clipboard
val notifyLevel: Output<String>? = null

The alert notification method. Valid values:Set the value to 4. The value 4 indicates that alert notifications are sent by using TradeManager and DingTalk chatbots.

Link copied to clipboard
val restVersion: Output<String>? = null

The version of the alert template to be modified.

Link copied to clipboard
val silenceTime: Output<Int>? = null

The mute period during which notifications are not repeatedly sent for an alert.Valid values: 0 to 86400. Unit: seconds. Default value: 86400.

Link copied to clipboard
val webhook: Output<String>? = null

The callback URL to which a POST request is sent when an alert is triggered based on the alert rule.

Functions

Link copied to clipboard
open override fun toJava(): MetricRuleTemplateArgs