UNPKG

@pulumi/signalfx

Version:

A Pulumi package for creating and managing SignalFx resources.

177 lines (176 loc) 6.06 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * Provides a Splunk Observability Cloud slo resource. This can be used to create and manage SLOs. * * To learn more about this feature take a look on [documentation for SLO](https://docs.splunk.com/observability/en/alerts-detectors-notifications/slo/slo-intro.html). * * ## Example * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as signalfx from "@pulumi/signalfx"; * * const fooServiceSlo = new signalfx.Slo("foo_service_slo", { * name: "foo service SLO", * type: "RequestBased", * description: "SLO monitoring for foo service", * input: { * programText: `G = data('spans.count', filter=filter('sf_error', 'false') and filter('sf_service', 'foo-service')) * T = data('spans.count', filter=filter('sf_service', 'foo-service'))`, * goodEventsLabel: "G", * totalEventsLabel: "T", * }, * target: { * type: "RollingWindow", * slo: 95, * compliancePeriod: "30d", * alertRules: [{ * type: "BREACH", * rules: [{ * severity: "Warning", * notifications: ["Email,foo-alerts@bar.com"], * }], * }], * }, * }); * ``` * * ## Notification format * * As Splunk Observability Cloud supports different notification mechanisms, use a comma-delimited string to provide inputs. If you want to specify multiple notifications, each must be a member in the list, like so: * * See [Splunk Observability Cloud Docs](https://dev.splunk.com/observability/reference/api/detectors/latest) for more information. * * Here are some example of how to configure each notification type: * * ### Email * * ### Jira * * Note that the `credentialId` is the Splunk-provided ID shown after setting up your Jira integration. See also `signalfx.jira.Integration`. * * ### OpsGenie * * Note that the `credentialId` is the Splunk-provided ID shown after setting up your Opsgenie integration. `Team` here is hardcoded as the `responderType` as that is the only acceptable type as per the API docs. * * ### PagerDuty * * ### Slack * * Exclude the `#` on the channel name: * * ### Team * * Sends [notifications to a team](https://docs.signalfx.com/en/latest/managing/teams/team-notifications.html). * * ### TeamEmail * * Sends an email to every member of a team. * * ### Splunk On-Call (formerly VictorOps) * * ### Webhooks * * You need to include all the commas even if you only use a credential id. * * You can either configure a Webhook to use an existing integration's credential id: * * Or configure one inline: */ export declare class Slo extends pulumi.CustomResource { /** * Get an existing Slo 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: string, id: pulumi.Input<pulumi.ID>, state?: SloState, opts?: pulumi.CustomResourceOptions): Slo; /** * Returns true if the given object is an instance of Slo. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is Slo; /** * Description of the SLO. */ readonly description: pulumi.Output<string | undefined>; /** * Properties to configure an SLO object inputs */ readonly input: pulumi.Output<outputs.SloInput>; /** * Name of the SLO. Each SLO name must be unique within an organization. */ readonly name: pulumi.Output<string>; /** * Define target value of the service level indicator in the appropriate time period. */ readonly target: pulumi.Output<outputs.SloTarget>; /** * Type of the SLO. Currently just: `"RequestBased"` is supported. */ readonly type: pulumi.Output<string>; /** * Create a Slo resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: SloArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Slo resources. */ export interface SloState { /** * Description of the SLO. */ description?: pulumi.Input<string>; /** * Properties to configure an SLO object inputs */ input?: pulumi.Input<inputs.SloInput>; /** * Name of the SLO. Each SLO name must be unique within an organization. */ name?: pulumi.Input<string>; /** * Define target value of the service level indicator in the appropriate time period. */ target?: pulumi.Input<inputs.SloTarget>; /** * Type of the SLO. Currently just: `"RequestBased"` is supported. */ type?: pulumi.Input<string>; } /** * The set of arguments for constructing a Slo resource. */ export interface SloArgs { /** * Description of the SLO. */ description?: pulumi.Input<string>; /** * Properties to configure an SLO object inputs */ input: pulumi.Input<inputs.SloInput>; /** * Name of the SLO. Each SLO name must be unique within an organization. */ name?: pulumi.Input<string>; /** * Define target value of the service level indicator in the appropriate time period. */ target: pulumi.Input<inputs.SloTarget>; /** * Type of the SLO. Currently just: `"RequestBased"` is supported. */ type: pulumi.Input<string>; }