UNPKG

@pulumiverse/grafana

Version:

A Pulumi package for creating and managing grafana.

159 lines 5.91 kB
"use strict"; // *** WARNING: this file was generated by pulumi-language-nodejs. *** // *** Do not edit by hand unless you're certain you know what you are doing! *** Object.defineProperty(exports, "__esModule", { value: true }); exports.AlertRule = void 0; const pulumi = require("@pulumi/pulumi"); const utilities = require("../../utilities"); /** * Manages Grafana Alert Rules. * * This resource is currently in alpha and is subject to change. Grafana 12.4+ users must enable the `kubernetesAlertingRules` [feature toggle](https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/feature-toggles/). * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as grafana from "@pulumiverse/grafana"; * * const alertruleFolder = new grafana.oss.Folder("alertrule_folder", {title: "Alert Rule Folder"}); * const example = new grafana.alerting.v0alpha1.AlertRule("example", { * metadata: { * uid: "example-alert-rule", * folderUid: alertruleFolder.uid, * }, * spec: { * title: "Example Alert Rule", * trigger: { * interval: "1m", * }, * paused: true, * expressions: { * A: JSON.stringify({ * model: { * datasource: { * type: "prometheus", * uid: "ds_uid", * }, * editorMode: "code", * expr: "count(up{})", * instant: true, * intervalMs: 1000, * legendFormat: "__auto", * maxDataPoints: 43200, * range: false, * refId: "A", * }, * datasource_uid: "ds_uid", * relative_time_range: { * from: "600s", * to: "0s", * }, * query_type: "", * source: true, * }), * B: JSON.stringify({ * model: { * conditions: [{ * evaluator: { * params: [1], * type: "gt", * }, * operator: { * type: "and", * }, * query: { * params: ["C"], * }, * reducer: { * params: [], * type: "last", * }, * type: "query", * }], * datasource: { * type: "__expr__", * uid: "__expr__", * }, * expression: "A", * intervalMs: 1000, * maxDataPoints: 43200, * refId: "C", * type: "threshold", * }, * datasource_uid: "__expr__", * query_type: "", * source: false, * }), * }, * "for": "5m", * labels: { * severity: "critical", * }, * annotations: { * runbook_url: "https://example.com", * }, * noDataState: "KeepLast", * execErrState: "KeepLast", * missingSeriesEvalsToResolve: 5, * notificationSettings: { * simplifiedRouting: { * contactPoint: "grafana-default-email", * }, * }, * panelRef: { * dashboard_uid: "dashboard123", * panel_id: "5", * }, * }, * }); * ``` */ class AlertRule extends pulumi.CustomResource { /** * Get an existing AlertRule resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name, id, state, opts) { return new AlertRule(name, state, { ...opts, id: id }); } /** * Returns true if the given object is an instance of AlertRule. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj) { if (obj === undefined || obj === null) { return false; } return obj['__pulumiType'] === AlertRule.__pulumiType; } constructor(name, argsOrState, opts) { let resourceInputs = {}; opts = opts || {}; if (opts.id) { const state = argsOrState; resourceInputs["metadata"] = state?.metadata; resourceInputs["options"] = state?.options; resourceInputs["spec"] = state?.spec; } else { const args = argsOrState; resourceInputs["metadata"] = args?.metadata; resourceInputs["options"] = args?.options; resourceInputs["spec"] = args?.spec; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); const aliasOpts = { aliases: [{ type: "grafana:alerting/alertRuleV0Alpha1:AlertRuleV0Alpha1" }] }; opts = pulumi.mergeOptions(opts, aliasOpts); super(AlertRule.__pulumiType, name, resourceInputs, opts); } } exports.AlertRule = AlertRule; /** @internal */ AlertRule.__pulumiType = 'grafana:alerting/v0alpha1/alertRule:AlertRule'; //# sourceMappingURL=alertRule.js.map