1. Packages
  2. Newrelic Provider
  3. API Docs
  4. ServiceLevel
New Relic v5.44.0 published on Saturday, Mar 29, 2025 by Pulumi

newrelic.ServiceLevel

Explore with Pulumi AI

Use this resource to create, update, and delete New Relic Service Level Indicators and Objectives.

A New Relic User API key is required to provision this resource. Set the api_key attribute in the provider block or the NEW_RELIC_API_KEY environment variable with your User API key.

Important:

  • Only roles that provide permissions to create events to metric rules can create SLI/SLOs.
  • Only Full users can view SLI/SLOs.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as newrelic from "@pulumi/newrelic";

const foo = new newrelic.ServiceLevel("foo", {
    guid: "MXxBUE18QVBQTElDQVRJT058MQ",
    name: "Latency",
    description: "Proportion of requests that are served faster than a threshold.",
    events: {
        accountId: "12345678",
        validEvents: {
            from: "Transaction",
            where: "appName = 'Example application' AND (transactionType='Web')",
        },
        goodEvents: {
            from: "Transaction",
            where: "appName = 'Example application' AND (transactionType= 'Web') AND duration < 0.1",
        },
    },
    objective: {
        target: 99,
        timeWindow: {
            rolling: {
                count: 7,
                unit: "DAY",
            },
        },
    },
});
Copy
import pulumi
import pulumi_newrelic as newrelic

foo = newrelic.ServiceLevel("foo",
    guid="MXxBUE18QVBQTElDQVRJT058MQ",
    name="Latency",
    description="Proportion of requests that are served faster than a threshold.",
    events={
        "account_id": "12345678",
        "valid_events": {
            "from_": "Transaction",
            "where": "appName = 'Example application' AND (transactionType='Web')",
        },
        "good_events": {
            "from_": "Transaction",
            "where": "appName = 'Example application' AND (transactionType= 'Web') AND duration < 0.1",
        },
    },
    objective={
        "target": 99,
        "time_window": {
            "rolling": {
                "count": 7,
                "unit": "DAY",
            },
        },
    })
Copy
package main

import (
	"github.com/pulumi/pulumi-newrelic/sdk/v5/go/newrelic"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := newrelic.NewServiceLevel(ctx, "foo", &newrelic.ServiceLevelArgs{
			Guid:        pulumi.String("MXxBUE18QVBQTElDQVRJT058MQ"),
			Name:        pulumi.String("Latency"),
			Description: pulumi.String("Proportion of requests that are served faster than a threshold."),
			Events: &newrelic.ServiceLevelEventsArgs{
				AccountId: pulumi.String("12345678"),
				ValidEvents: &newrelic.ServiceLevelEventsValidEventsArgs{
					From:  pulumi.String("Transaction"),
					Where: pulumi.String("appName = 'Example application' AND (transactionType='Web')"),
				},
				GoodEvents: &newrelic.ServiceLevelEventsGoodEventsArgs{
					From:  pulumi.String("Transaction"),
					Where: pulumi.String("appName = 'Example application' AND (transactionType= 'Web') AND duration < 0.1"),
				},
			},
			Objective: &newrelic.ServiceLevelObjectiveArgs{
				Target: pulumi.Float64(99),
				TimeWindow: &newrelic.ServiceLevelObjectiveTimeWindowArgs{
					Rolling: &newrelic.ServiceLevelObjectiveTimeWindowRollingArgs{
						Count: pulumi.Int(7),
						Unit:  pulumi.String("DAY"),
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using NewRelic = Pulumi.NewRelic;

return await Deployment.RunAsync(() => 
{
    var foo = new NewRelic.ServiceLevel("foo", new()
    {
        Guid = "MXxBUE18QVBQTElDQVRJT058MQ",
        Name = "Latency",
        Description = "Proportion of requests that are served faster than a threshold.",
        Events = new NewRelic.Inputs.ServiceLevelEventsArgs
        {
            AccountId = "12345678",
            ValidEvents = new NewRelic.Inputs.ServiceLevelEventsValidEventsArgs
            {
                From = "Transaction",
                Where = "appName = 'Example application' AND (transactionType='Web')",
            },
            GoodEvents = new NewRelic.Inputs.ServiceLevelEventsGoodEventsArgs
            {
                From = "Transaction",
                Where = "appName = 'Example application' AND (transactionType= 'Web') AND duration < 0.1",
            },
        },
        Objective = new NewRelic.Inputs.ServiceLevelObjectiveArgs
        {
            Target = 99,
            TimeWindow = new NewRelic.Inputs.ServiceLevelObjectiveTimeWindowArgs
            {
                Rolling = new NewRelic.Inputs.ServiceLevelObjectiveTimeWindowRollingArgs
                {
                    Count = 7,
                    Unit = "DAY",
                },
            },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.newrelic.ServiceLevel;
import com.pulumi.newrelic.ServiceLevelArgs;
import com.pulumi.newrelic.inputs.ServiceLevelEventsArgs;
import com.pulumi.newrelic.inputs.ServiceLevelEventsValidEventsArgs;
import com.pulumi.newrelic.inputs.ServiceLevelEventsGoodEventsArgs;
import com.pulumi.newrelic.inputs.ServiceLevelObjectiveArgs;
import com.pulumi.newrelic.inputs.ServiceLevelObjectiveTimeWindowArgs;
import com.pulumi.newrelic.inputs.ServiceLevelObjectiveTimeWindowRollingArgs;
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 foo = new ServiceLevel("foo", ServiceLevelArgs.builder()
            .guid("MXxBUE18QVBQTElDQVRJT058MQ")
            .name("Latency")
            .description("Proportion of requests that are served faster than a threshold.")
            .events(ServiceLevelEventsArgs.builder()
                .accountId(12345678)
                .validEvents(ServiceLevelEventsValidEventsArgs.builder()
                    .from("Transaction")
                    .where("appName = 'Example application' AND (transactionType='Web')")
                    .build())
                .goodEvents(ServiceLevelEventsGoodEventsArgs.builder()
                    .from("Transaction")
                    .where("appName = 'Example application' AND (transactionType= 'Web') AND duration < 0.1")
                    .build())
                .build())
            .objective(ServiceLevelObjectiveArgs.builder()
                .target(99)
                .timeWindow(ServiceLevelObjectiveTimeWindowArgs.builder()
                    .rolling(ServiceLevelObjectiveTimeWindowRollingArgs.builder()
                        .count(7)
                        .unit("DAY")
                        .build())
                    .build())
                .build())
            .build());

    }
}
Copy
resources:
  foo:
    type: newrelic:ServiceLevel
    properties:
      guid: MXxBUE18QVBQTElDQVRJT058MQ
      name: Latency
      description: Proportion of requests that are served faster than a threshold.
      events:
        accountId: 1.2345678e+07
        validEvents:
          from: Transaction
          where: appName = 'Example application' AND (transactionType='Web')
        goodEvents:
          from: Transaction
          where: appName = 'Example application' AND (transactionType= 'Web') AND duration < 0.1
      objective:
        target: 99
        timeWindow:
          rolling:
            count: 7
            unit: DAY
Copy

Additional Example

Service level with tags:

import * as pulumi from "@pulumi/pulumi";
import * as newrelic from "@pulumi/newrelic";

const mySyntheticMonitorServiceLevel = new newrelic.ServiceLevel("my_synthetic_monitor_service_level", {
    guid: "MXxBUE18QVBQTElDQVRJT058MQ",
    name: "My synthethic monitor - Success",
    description: "Proportion of successful synthetic checks.",
    events: {
        accountId: "12345678",
        validEvents: {
            from: "SyntheticCheck",
            where: "entityGuid = 'MXxBUE18QVBQTElDQVRJT058MQ'",
        },
        goodEvents: {
            from: "SyntheticCheck",
            where: "entityGuid = 'MXxBUE18QVBQTElDQVRJT058MQ' AND result='SUCCESS'",
        },
    },
    objective: {
        target: 99,
        timeWindow: {
            rolling: {
                count: 7,
                unit: "DAY",
            },
        },
    },
});
const mySyntheticMonitorServiceLevelTags = new newrelic.EntityTags("my_synthetic_monitor_service_level_tags", {
    guid: mySyntheticMonitorServiceLevel.sliGuid,
    tags: [
        {
            key: "user_journey",
            values: [
                "authentication",
                "sso",
            ],
        },
        {
            key: "owner",
            values: ["identityTeam"],
        },
    ],
});
Copy
import pulumi
import pulumi_newrelic as newrelic

my_synthetic_monitor_service_level = newrelic.ServiceLevel("my_synthetic_monitor_service_level",
    guid="MXxBUE18QVBQTElDQVRJT058MQ",
    name="My synthethic monitor - Success",
    description="Proportion of successful synthetic checks.",
    events={
        "account_id": "12345678",
        "valid_events": {
            "from_": "SyntheticCheck",
            "where": "entityGuid = 'MXxBUE18QVBQTElDQVRJT058MQ'",
        },
        "good_events": {
            "from_": "SyntheticCheck",
            "where": "entityGuid = 'MXxBUE18QVBQTElDQVRJT058MQ' AND result='SUCCESS'",
        },
    },
    objective={
        "target": 99,
        "time_window": {
            "rolling": {
                "count": 7,
                "unit": "DAY",
            },
        },
    })
my_synthetic_monitor_service_level_tags = newrelic.EntityTags("my_synthetic_monitor_service_level_tags",
    guid=my_synthetic_monitor_service_level.sli_guid,
    tags=[
        {
            "key": "user_journey",
            "values": [
                "authentication",
                "sso",
            ],
        },
        {
            "key": "owner",
            "values": ["identityTeam"],
        },
    ])
Copy
package main

import (
	"github.com/pulumi/pulumi-newrelic/sdk/v5/go/newrelic"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		mySyntheticMonitorServiceLevel, err := newrelic.NewServiceLevel(ctx, "my_synthetic_monitor_service_level", &newrelic.ServiceLevelArgs{
			Guid:        pulumi.String("MXxBUE18QVBQTElDQVRJT058MQ"),
			Name:        pulumi.String("My synthethic monitor - Success"),
			Description: pulumi.String("Proportion of successful synthetic checks."),
			Events: &newrelic.ServiceLevelEventsArgs{
				AccountId: pulumi.String("12345678"),
				ValidEvents: &newrelic.ServiceLevelEventsValidEventsArgs{
					From:  pulumi.String("SyntheticCheck"),
					Where: pulumi.String("entityGuid = 'MXxBUE18QVBQTElDQVRJT058MQ'"),
				},
				GoodEvents: &newrelic.ServiceLevelEventsGoodEventsArgs{
					From:  pulumi.String("SyntheticCheck"),
					Where: pulumi.String("entityGuid = 'MXxBUE18QVBQTElDQVRJT058MQ' AND result='SUCCESS'"),
				},
			},
			Objective: &newrelic.ServiceLevelObjectiveArgs{
				Target: pulumi.Float64(99),
				TimeWindow: &newrelic.ServiceLevelObjectiveTimeWindowArgs{
					Rolling: &newrelic.ServiceLevelObjectiveTimeWindowRollingArgs{
						Count: pulumi.Int(7),
						Unit:  pulumi.String("DAY"),
					},
				},
			},
		})
		if err != nil {
			return err
		}
		_, err = newrelic.NewEntityTags(ctx, "my_synthetic_monitor_service_level_tags", &newrelic.EntityTagsArgs{
			Guid: mySyntheticMonitorServiceLevel.SliGuid,
			Tags: newrelic.EntityTagsTagArray{
				&newrelic.EntityTagsTagArgs{
					Key: pulumi.String("user_journey"),
					Values: pulumi.StringArray{
						pulumi.String("authentication"),
						pulumi.String("sso"),
					},
				},
				&newrelic.EntityTagsTagArgs{
					Key: pulumi.String("owner"),
					Values: pulumi.StringArray{
						pulumi.String("identityTeam"),
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using NewRelic = Pulumi.NewRelic;

return await Deployment.RunAsync(() => 
{
    var mySyntheticMonitorServiceLevel = new NewRelic.ServiceLevel("my_synthetic_monitor_service_level", new()
    {
        Guid = "MXxBUE18QVBQTElDQVRJT058MQ",
        Name = "My synthethic monitor - Success",
        Description = "Proportion of successful synthetic checks.",
        Events = new NewRelic.Inputs.ServiceLevelEventsArgs
        {
            AccountId = "12345678",
            ValidEvents = new NewRelic.Inputs.ServiceLevelEventsValidEventsArgs
            {
                From = "SyntheticCheck",
                Where = "entityGuid = 'MXxBUE18QVBQTElDQVRJT058MQ'",
            },
            GoodEvents = new NewRelic.Inputs.ServiceLevelEventsGoodEventsArgs
            {
                From = "SyntheticCheck",
                Where = "entityGuid = 'MXxBUE18QVBQTElDQVRJT058MQ' AND result='SUCCESS'",
            },
        },
        Objective = new NewRelic.Inputs.ServiceLevelObjectiveArgs
        {
            Target = 99,
            TimeWindow = new NewRelic.Inputs.ServiceLevelObjectiveTimeWindowArgs
            {
                Rolling = new NewRelic.Inputs.ServiceLevelObjectiveTimeWindowRollingArgs
                {
                    Count = 7,
                    Unit = "DAY",
                },
            },
        },
    });

    var mySyntheticMonitorServiceLevelTags = new NewRelic.EntityTags("my_synthetic_monitor_service_level_tags", new()
    {
        Guid = mySyntheticMonitorServiceLevel.SliGuid,
        Tags = new[]
        {
            new NewRelic.Inputs.EntityTagsTagArgs
            {
                Key = "user_journey",
                Values = new[]
                {
                    "authentication",
                    "sso",
                },
            },
            new NewRelic.Inputs.EntityTagsTagArgs
            {
                Key = "owner",
                Values = new[]
                {
                    "identityTeam",
                },
            },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.newrelic.ServiceLevel;
import com.pulumi.newrelic.ServiceLevelArgs;
import com.pulumi.newrelic.inputs.ServiceLevelEventsArgs;
import com.pulumi.newrelic.inputs.ServiceLevelEventsValidEventsArgs;
import com.pulumi.newrelic.inputs.ServiceLevelEventsGoodEventsArgs;
import com.pulumi.newrelic.inputs.ServiceLevelObjectiveArgs;
import com.pulumi.newrelic.inputs.ServiceLevelObjectiveTimeWindowArgs;
import com.pulumi.newrelic.inputs.ServiceLevelObjectiveTimeWindowRollingArgs;
import com.pulumi.newrelic.EntityTags;
import com.pulumi.newrelic.EntityTagsArgs;
import com.pulumi.newrelic.inputs.EntityTagsTagArgs;
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 mySyntheticMonitorServiceLevel = new ServiceLevel("mySyntheticMonitorServiceLevel", ServiceLevelArgs.builder()
            .guid("MXxBUE18QVBQTElDQVRJT058MQ")
            .name("My synthethic monitor - Success")
            .description("Proportion of successful synthetic checks.")
            .events(ServiceLevelEventsArgs.builder()
                .accountId(12345678)
                .validEvents(ServiceLevelEventsValidEventsArgs.builder()
                    .from("SyntheticCheck")
                    .where("entityGuid = 'MXxBUE18QVBQTElDQVRJT058MQ'")
                    .build())
                .goodEvents(ServiceLevelEventsGoodEventsArgs.builder()
                    .from("SyntheticCheck")
                    .where("entityGuid = 'MXxBUE18QVBQTElDQVRJT058MQ' AND result='SUCCESS'")
                    .build())
                .build())
            .objective(ServiceLevelObjectiveArgs.builder()
                .target(99)
                .timeWindow(ServiceLevelObjectiveTimeWindowArgs.builder()
                    .rolling(ServiceLevelObjectiveTimeWindowRollingArgs.builder()
                        .count(7)
                        .unit("DAY")
                        .build())
                    .build())
                .build())
            .build());

        var mySyntheticMonitorServiceLevelTags = new EntityTags("mySyntheticMonitorServiceLevelTags", EntityTagsArgs.builder()
            .guid(mySyntheticMonitorServiceLevel.sliGuid())
            .tags(            
                EntityTagsTagArgs.builder()
                    .key("user_journey")
                    .values(                    
                        "authentication",
                        "sso")
                    .build(),
                EntityTagsTagArgs.builder()
                    .key("owner")
                    .values("identityTeam")
                    .build())
            .build());

    }
}
Copy
resources:
  mySyntheticMonitorServiceLevel:
    type: newrelic:ServiceLevel
    name: my_synthetic_monitor_service_level
    properties:
      guid: MXxBUE18QVBQTElDQVRJT058MQ
      name: My synthethic monitor - Success
      description: Proportion of successful synthetic checks.
      events:
        accountId: 1.2345678e+07
        validEvents:
          from: SyntheticCheck
          where: entityGuid = 'MXxBUE18QVBQTElDQVRJT058MQ'
        goodEvents:
          from: SyntheticCheck
          where: entityGuid = 'MXxBUE18QVBQTElDQVRJT058MQ' AND result='SUCCESS'
      objective:
        target: 99
        timeWindow:
          rolling:
            count: 7
            unit: DAY
  mySyntheticMonitorServiceLevelTags:
    type: newrelic:EntityTags
    name: my_synthetic_monitor_service_level_tags
    properties:
      guid: ${mySyntheticMonitorServiceLevel.sliGuid}
      tags:
        - key: user_journey
          values:
            - authentication
            - sso
        - key: owner
          values:
            - identityTeam
Copy

Using select for events

import * as pulumi from "@pulumi/pulumi";
import * as newrelic from "@pulumi/newrelic";

const mySyntheticMonitorDurationServiceLevel = new newrelic.ServiceLevel("my_synthetic_monitor_duration_service_level", {
    guid: "MXxBUE18QVBQTElDQVRJT058MQ",
    name: "Duration distribution is under 7",
    description: "Monitor created to test concurrent request from terraform",
    events: {
        accountId: "313870",
        validEvents: {
            from: "Metric",
            select: {
                attribute: "`query.wallClockTime.negative.distribution`",
                "function": "GET_FIELD",
            },
            where: "metricName = 'query.wallClockTime.negative.distribution'",
        },
        goodEvents: {
            from: "Metric",
            select: {
                attribute: "`query.wallClockTime.negative.distribution`",
                "function": "GET_CDF_COUNT",
                threshold: 7,
            },
            where: "metricName = 'query.wallClockTime.negative.distribution'",
        },
    },
    objective: {
        target: 49,
        timeWindow: {
            rolling: {
                count: 7,
                unit: "DAY",
            },
        },
    },
});
Copy
import pulumi
import pulumi_newrelic as newrelic

my_synthetic_monitor_duration_service_level = newrelic.ServiceLevel("my_synthetic_monitor_duration_service_level",
    guid="MXxBUE18QVBQTElDQVRJT058MQ",
    name="Duration distribution is under 7",
    description="Monitor created to test concurrent request from terraform",
    events={
        "account_id": "313870",
        "valid_events": {
            "from_": "Metric",
            "select": {
                "attribute": "`query.wallClockTime.negative.distribution`",
                "function": "GET_FIELD",
            },
            "where": "metricName = 'query.wallClockTime.negative.distribution'",
        },
        "good_events": {
            "from_": "Metric",
            "select": {
                "attribute": "`query.wallClockTime.negative.distribution`",
                "function": "GET_CDF_COUNT",
                "threshold": 7,
            },
            "where": "metricName = 'query.wallClockTime.negative.distribution'",
        },
    },
    objective={
        "target": 49,
        "time_window": {
            "rolling": {
                "count": 7,
                "unit": "DAY",
            },
        },
    })
Copy
package main

import (
	"github.com/pulumi/pulumi-newrelic/sdk/v5/go/newrelic"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := newrelic.NewServiceLevel(ctx, "my_synthetic_monitor_duration_service_level", &newrelic.ServiceLevelArgs{
			Guid:        pulumi.String("MXxBUE18QVBQTElDQVRJT058MQ"),
			Name:        pulumi.String("Duration distribution is under 7"),
			Description: pulumi.String("Monitor created to test concurrent request from terraform"),
			Events: &newrelic.ServiceLevelEventsArgs{
				AccountId: pulumi.String("313870"),
				ValidEvents: &newrelic.ServiceLevelEventsValidEventsArgs{
					From: pulumi.String("Metric"),
					Select: &newrelic.ServiceLevelEventsValidEventsSelectArgs{
						Attribute: pulumi.String("`query.wallClockTime.negative.distribution`"),
						Function:  pulumi.String("GET_FIELD"),
					},
					Where: pulumi.String("metricName = 'query.wallClockTime.negative.distribution'"),
				},
				GoodEvents: &newrelic.ServiceLevelEventsGoodEventsArgs{
					From: pulumi.String("Metric"),
					Select: &newrelic.ServiceLevelEventsGoodEventsSelectArgs{
						Attribute: pulumi.String("`query.wallClockTime.negative.distribution`"),
						Function:  pulumi.String("GET_CDF_COUNT"),
						Threshold: pulumi.Float64(7),
					},
					Where: pulumi.String("metricName = 'query.wallClockTime.negative.distribution'"),
				},
			},
			Objective: &newrelic.ServiceLevelObjectiveArgs{
				Target: pulumi.Float64(49),
				TimeWindow: &newrelic.ServiceLevelObjectiveTimeWindowArgs{
					Rolling: &newrelic.ServiceLevelObjectiveTimeWindowRollingArgs{
						Count: pulumi.Int(7),
						Unit:  pulumi.String("DAY"),
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using NewRelic = Pulumi.NewRelic;

return await Deployment.RunAsync(() => 
{
    var mySyntheticMonitorDurationServiceLevel = new NewRelic.ServiceLevel("my_synthetic_monitor_duration_service_level", new()
    {
        Guid = "MXxBUE18QVBQTElDQVRJT058MQ",
        Name = "Duration distribution is under 7",
        Description = "Monitor created to test concurrent request from terraform",
        Events = new NewRelic.Inputs.ServiceLevelEventsArgs
        {
            AccountId = "313870",
            ValidEvents = new NewRelic.Inputs.ServiceLevelEventsValidEventsArgs
            {
                From = "Metric",
                Select = new NewRelic.Inputs.ServiceLevelEventsValidEventsSelectArgs
                {
                    Attribute = "`query.wallClockTime.negative.distribution`",
                    Function = "GET_FIELD",
                },
                Where = "metricName = 'query.wallClockTime.negative.distribution'",
            },
            GoodEvents = new NewRelic.Inputs.ServiceLevelEventsGoodEventsArgs
            {
                From = "Metric",
                Select = new NewRelic.Inputs.ServiceLevelEventsGoodEventsSelectArgs
                {
                    Attribute = "`query.wallClockTime.negative.distribution`",
                    Function = "GET_CDF_COUNT",
                    Threshold = 7,
                },
                Where = "metricName = 'query.wallClockTime.negative.distribution'",
            },
        },
        Objective = new NewRelic.Inputs.ServiceLevelObjectiveArgs
        {
            Target = 49,
            TimeWindow = new NewRelic.Inputs.ServiceLevelObjectiveTimeWindowArgs
            {
                Rolling = new NewRelic.Inputs.ServiceLevelObjectiveTimeWindowRollingArgs
                {
                    Count = 7,
                    Unit = "DAY",
                },
            },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.newrelic.ServiceLevel;
import com.pulumi.newrelic.ServiceLevelArgs;
import com.pulumi.newrelic.inputs.ServiceLevelEventsArgs;
import com.pulumi.newrelic.inputs.ServiceLevelEventsValidEventsArgs;
import com.pulumi.newrelic.inputs.ServiceLevelEventsValidEventsSelectArgs;
import com.pulumi.newrelic.inputs.ServiceLevelEventsGoodEventsArgs;
import com.pulumi.newrelic.inputs.ServiceLevelEventsGoodEventsSelectArgs;
import com.pulumi.newrelic.inputs.ServiceLevelObjectiveArgs;
import com.pulumi.newrelic.inputs.ServiceLevelObjectiveTimeWindowArgs;
import com.pulumi.newrelic.inputs.ServiceLevelObjectiveTimeWindowRollingArgs;
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 mySyntheticMonitorDurationServiceLevel = new ServiceLevel("mySyntheticMonitorDurationServiceLevel", ServiceLevelArgs.builder()
            .guid("MXxBUE18QVBQTElDQVRJT058MQ")
            .name("Duration distribution is under 7")
            .description("Monitor created to test concurrent request from terraform")
            .events(ServiceLevelEventsArgs.builder()
                .accountId(313870)
                .validEvents(ServiceLevelEventsValidEventsArgs.builder()
                    .from("Metric")
                    .select(ServiceLevelEventsValidEventsSelectArgs.builder()
                        .attribute("`query.wallClockTime.negative.distribution`")
                        .function("GET_FIELD")
                        .build())
                    .where("metricName = 'query.wallClockTime.negative.distribution'")
                    .build())
                .goodEvents(ServiceLevelEventsGoodEventsArgs.builder()
                    .from("Metric")
                    .select(ServiceLevelEventsGoodEventsSelectArgs.builder()
                        .attribute("`query.wallClockTime.negative.distribution`")
                        .function("GET_CDF_COUNT")
                        .threshold(7)
                        .build())
                    .where("metricName = 'query.wallClockTime.negative.distribution'")
                    .build())
                .build())
            .objective(ServiceLevelObjectiveArgs.builder()
                .target(49)
                .timeWindow(ServiceLevelObjectiveTimeWindowArgs.builder()
                    .rolling(ServiceLevelObjectiveTimeWindowRollingArgs.builder()
                        .count(7)
                        .unit("DAY")
                        .build())
                    .build())
                .build())
            .build());

    }
}
Copy
resources:
  mySyntheticMonitorDurationServiceLevel:
    type: newrelic:ServiceLevel
    name: my_synthetic_monitor_duration_service_level
    properties:
      guid: MXxBUE18QVBQTElDQVRJT058MQ
      name: Duration distribution is under 7
      description: Monitor created to test concurrent request from terraform
      events:
        accountId: 313870
        validEvents:
          from: Metric
          select:
            attribute: '`query.wallClockTime.negative.distribution`'
            function: GET_FIELD
          where: metricName = 'query.wallClockTime.negative.distribution'
        goodEvents:
          from: Metric
          select:
            attribute: '`query.wallClockTime.negative.distribution`'
            function: GET_CDF_COUNT
            threshold: 7
          where: metricName = 'query.wallClockTime.negative.distribution'
      objective:
        target: 49
        timeWindow:
          rolling:
            count: 7
            unit: DAY
Copy

For up-to-date documentation about the tagging resource, please check newrelic.EntityTags

Create ServiceLevel Resource

Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

Constructor syntax

new ServiceLevel(name: string, args: ServiceLevelArgs, opts?: CustomResourceOptions);
@overload
def ServiceLevel(resource_name: str,
                 args: ServiceLevelArgs,
                 opts: Optional[ResourceOptions] = None)

@overload
def ServiceLevel(resource_name: str,
                 opts: Optional[ResourceOptions] = None,
                 events: Optional[ServiceLevelEventsArgs] = None,
                 guid: Optional[str] = None,
                 objective: Optional[ServiceLevelObjectiveArgs] = None,
                 description: Optional[str] = None,
                 name: Optional[str] = None)
func NewServiceLevel(ctx *Context, name string, args ServiceLevelArgs, opts ...ResourceOption) (*ServiceLevel, error)
public ServiceLevel(string name, ServiceLevelArgs args, CustomResourceOptions? opts = null)
public ServiceLevel(String name, ServiceLevelArgs args)
public ServiceLevel(String name, ServiceLevelArgs args, CustomResourceOptions options)
type: newrelic:ServiceLevel
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

Parameters

name This property is required. string
The unique name of the resource.
args This property is required. ServiceLevelArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name This property is required. str
The unique name of the resource.
args This property is required. ServiceLevelArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name This property is required. string
The unique name of the resource.
args This property is required. ServiceLevelArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name This property is required. string
The unique name of the resource.
args This property is required. ServiceLevelArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
name This property is required. String
The unique name of the resource.
args This property is required. ServiceLevelArgs
The arguments to resource properties.
options CustomResourceOptions
Bag of options to control resource's behavior.

Constructor example

The following reference example uses placeholder values for all input properties.

var serviceLevelResource = new NewRelic.ServiceLevel("serviceLevelResource", new()
{
    Events = new NewRelic.Inputs.ServiceLevelEventsArgs
    {
        AccountId = "string",
        ValidEvents = new NewRelic.Inputs.ServiceLevelEventsValidEventsArgs
        {
            From = "string",
            Select = new NewRelic.Inputs.ServiceLevelEventsValidEventsSelectArgs
            {
                Function = "string",
                Attribute = "string",
                Threshold = 0,
            },
            Where = "string",
        },
        BadEvents = new NewRelic.Inputs.ServiceLevelEventsBadEventsArgs
        {
            From = "string",
            Select = new NewRelic.Inputs.ServiceLevelEventsBadEventsSelectArgs
            {
                Function = "string",
                Attribute = "string",
                Threshold = 0,
            },
            Where = "string",
        },
        GoodEvents = new NewRelic.Inputs.ServiceLevelEventsGoodEventsArgs
        {
            From = "string",
            Select = new NewRelic.Inputs.ServiceLevelEventsGoodEventsSelectArgs
            {
                Function = "string",
                Attribute = "string",
                Threshold = 0,
            },
            Where = "string",
        },
    },
    Guid = "string",
    Objective = new NewRelic.Inputs.ServiceLevelObjectiveArgs
    {
        Target = 0,
        TimeWindow = new NewRelic.Inputs.ServiceLevelObjectiveTimeWindowArgs
        {
            Rolling = new NewRelic.Inputs.ServiceLevelObjectiveTimeWindowRollingArgs
            {
                Count = 0,
                Unit = "string",
            },
        },
        Description = "string",
        Name = "string",
    },
    Description = "string",
    Name = "string",
});
Copy
example, err := newrelic.NewServiceLevel(ctx, "serviceLevelResource", &newrelic.ServiceLevelArgs{
	Events: &newrelic.ServiceLevelEventsArgs{
		AccountId: pulumi.String("string"),
		ValidEvents: &newrelic.ServiceLevelEventsValidEventsArgs{
			From: pulumi.String("string"),
			Select: &newrelic.ServiceLevelEventsValidEventsSelectArgs{
				Function:  pulumi.String("string"),
				Attribute: pulumi.String("string"),
				Threshold: pulumi.Float64(0),
			},
			Where: pulumi.String("string"),
		},
		BadEvents: &newrelic.ServiceLevelEventsBadEventsArgs{
			From: pulumi.String("string"),
			Select: &newrelic.ServiceLevelEventsBadEventsSelectArgs{
				Function:  pulumi.String("string"),
				Attribute: pulumi.String("string"),
				Threshold: pulumi.Float64(0),
			},
			Where: pulumi.String("string"),
		},
		GoodEvents: &newrelic.ServiceLevelEventsGoodEventsArgs{
			From: pulumi.String("string"),
			Select: &newrelic.ServiceLevelEventsGoodEventsSelectArgs{
				Function:  pulumi.String("string"),
				Attribute: pulumi.String("string"),
				Threshold: pulumi.Float64(0),
			},
			Where: pulumi.String("string"),
		},
	},
	Guid: pulumi.String("string"),
	Objective: &newrelic.ServiceLevelObjectiveArgs{
		Target: pulumi.Float64(0),
		TimeWindow: &newrelic.ServiceLevelObjectiveTimeWindowArgs{
			Rolling: &newrelic.ServiceLevelObjectiveTimeWindowRollingArgs{
				Count: pulumi.Int(0),
				Unit:  pulumi.String("string"),
			},
		},
		Description: pulumi.String("string"),
		Name:        pulumi.String("string"),
	},
	Description: pulumi.String("string"),
	Name:        pulumi.String("string"),
})
Copy
var serviceLevelResource = new ServiceLevel("serviceLevelResource", ServiceLevelArgs.builder()
    .events(ServiceLevelEventsArgs.builder()
        .accountId("string")
        .validEvents(ServiceLevelEventsValidEventsArgs.builder()
            .from("string")
            .select(ServiceLevelEventsValidEventsSelectArgs.builder()
                .function("string")
                .attribute("string")
                .threshold(0)
                .build())
            .where("string")
            .build())
        .badEvents(ServiceLevelEventsBadEventsArgs.builder()
            .from("string")
            .select(ServiceLevelEventsBadEventsSelectArgs.builder()
                .function("string")
                .attribute("string")
                .threshold(0)
                .build())
            .where("string")
            .build())
        .goodEvents(ServiceLevelEventsGoodEventsArgs.builder()
            .from("string")
            .select(ServiceLevelEventsGoodEventsSelectArgs.builder()
                .function("string")
                .attribute("string")
                .threshold(0)
                .build())
            .where("string")
            .build())
        .build())
    .guid("string")
    .objective(ServiceLevelObjectiveArgs.builder()
        .target(0)
        .timeWindow(ServiceLevelObjectiveTimeWindowArgs.builder()
            .rolling(ServiceLevelObjectiveTimeWindowRollingArgs.builder()
                .count(0)
                .unit("string")
                .build())
            .build())
        .description("string")
        .name("string")
        .build())
    .description("string")
    .name("string")
    .build());
Copy
service_level_resource = newrelic.ServiceLevel("serviceLevelResource",
    events={
        "account_id": "string",
        "valid_events": {
            "from_": "string",
            "select": {
                "function": "string",
                "attribute": "string",
                "threshold": 0,
            },
            "where": "string",
        },
        "bad_events": {
            "from_": "string",
            "select": {
                "function": "string",
                "attribute": "string",
                "threshold": 0,
            },
            "where": "string",
        },
        "good_events": {
            "from_": "string",
            "select": {
                "function": "string",
                "attribute": "string",
                "threshold": 0,
            },
            "where": "string",
        },
    },
    guid="string",
    objective={
        "target": 0,
        "time_window": {
            "rolling": {
                "count": 0,
                "unit": "string",
            },
        },
        "description": "string",
        "name": "string",
    },
    description="string",
    name="string")
Copy
const serviceLevelResource = new newrelic.ServiceLevel("serviceLevelResource", {
    events: {
        accountId: "string",
        validEvents: {
            from: "string",
            select: {
                "function": "string",
                attribute: "string",
                threshold: 0,
            },
            where: "string",
        },
        badEvents: {
            from: "string",
            select: {
                "function": "string",
                attribute: "string",
                threshold: 0,
            },
            where: "string",
        },
        goodEvents: {
            from: "string",
            select: {
                "function": "string",
                attribute: "string",
                threshold: 0,
            },
            where: "string",
        },
    },
    guid: "string",
    objective: {
        target: 0,
        timeWindow: {
            rolling: {
                count: 0,
                unit: "string",
            },
        },
        description: "string",
        name: "string",
    },
    description: "string",
    name: "string",
});
Copy
type: newrelic:ServiceLevel
properties:
    description: string
    events:
        accountId: string
        badEvents:
            from: string
            select:
                attribute: string
                function: string
                threshold: 0
            where: string
        goodEvents:
            from: string
            select:
                attribute: string
                function: string
                threshold: 0
            where: string
        validEvents:
            from: string
            select:
                attribute: string
                function: string
                threshold: 0
            where: string
    guid: string
    name: string
    objective:
        description: string
        name: string
        target: 0
        timeWindow:
            rolling:
                count: 0
                unit: string
Copy

ServiceLevel Resource Properties

To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

Inputs

In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

The ServiceLevel resource accepts the following input properties:

Events This property is required. Pulumi.NewRelic.Inputs.ServiceLevelEvents
The events that define the NRDB data for the SLI/SLO calculations. See Events below for details.
Guid
This property is required.
Changes to this property will trigger replacement.
string
The GUID of the entity (e.g, APM Service, Browser application, Workload, etc.) that you want to relate this SLI to. Note that changing the GUID will force a new resource.
Objective This property is required. Pulumi.NewRelic.Inputs.ServiceLevelObjective
The objective of the SLI, only one can be defined. See Objective below for details.
Description string
The description of the SLI.
Name string
A short name for the SLI that will help anyone understand what it is about.
Events This property is required. ServiceLevelEventsArgs
The events that define the NRDB data for the SLI/SLO calculations. See Events below for details.
Guid
This property is required.
Changes to this property will trigger replacement.
string
The GUID of the entity (e.g, APM Service, Browser application, Workload, etc.) that you want to relate this SLI to. Note that changing the GUID will force a new resource.
Objective This property is required. ServiceLevelObjectiveArgs
The objective of the SLI, only one can be defined. See Objective below for details.
Description string
The description of the SLI.
Name string
A short name for the SLI that will help anyone understand what it is about.
events This property is required. ServiceLevelEvents
The events that define the NRDB data for the SLI/SLO calculations. See Events below for details.
guid
This property is required.
Changes to this property will trigger replacement.
String
The GUID of the entity (e.g, APM Service, Browser application, Workload, etc.) that you want to relate this SLI to. Note that changing the GUID will force a new resource.
objective This property is required. ServiceLevelObjective
The objective of the SLI, only one can be defined. See Objective below for details.
description String
The description of the SLI.
name String
A short name for the SLI that will help anyone understand what it is about.
events This property is required. ServiceLevelEvents
The events that define the NRDB data for the SLI/SLO calculations. See Events below for details.
guid
This property is required.
Changes to this property will trigger replacement.
string
The GUID of the entity (e.g, APM Service, Browser application, Workload, etc.) that you want to relate this SLI to. Note that changing the GUID will force a new resource.
objective This property is required. ServiceLevelObjective
The objective of the SLI, only one can be defined. See Objective below for details.
description string
The description of the SLI.
name string
A short name for the SLI that will help anyone understand what it is about.
events This property is required. ServiceLevelEventsArgs
The events that define the NRDB data for the SLI/SLO calculations. See Events below for details.
guid
This property is required.
Changes to this property will trigger replacement.
str
The GUID of the entity (e.g, APM Service, Browser application, Workload, etc.) that you want to relate this SLI to. Note that changing the GUID will force a new resource.
objective This property is required. ServiceLevelObjectiveArgs
The objective of the SLI, only one can be defined. See Objective below for details.
description str
The description of the SLI.
name str
A short name for the SLI that will help anyone understand what it is about.
events This property is required. Property Map
The events that define the NRDB data for the SLI/SLO calculations. See Events below for details.
guid
This property is required.
Changes to this property will trigger replacement.
String
The GUID of the entity (e.g, APM Service, Browser application, Workload, etc.) that you want to relate this SLI to. Note that changing the GUID will force a new resource.
objective This property is required. Property Map
The objective of the SLI, only one can be defined. See Objective below for details.
description String
The description of the SLI.
name String
A short name for the SLI that will help anyone understand what it is about.

Outputs

All input properties are implicitly available as output properties. Additionally, the ServiceLevel resource produces the following output properties:

Id string
The provider-assigned unique ID for this managed resource.
SliGuid string
The unique entity identifier of the Service Level Indicator in New Relic.
SliId string
The unique entity identifier of the Service Level Indicator.
Id string
The provider-assigned unique ID for this managed resource.
SliGuid string
The unique entity identifier of the Service Level Indicator in New Relic.
SliId string
The unique entity identifier of the Service Level Indicator.
id String
The provider-assigned unique ID for this managed resource.
sliGuid String
The unique entity identifier of the Service Level Indicator in New Relic.
sliId String
The unique entity identifier of the Service Level Indicator.
id string
The provider-assigned unique ID for this managed resource.
sliGuid string
The unique entity identifier of the Service Level Indicator in New Relic.
sliId string
The unique entity identifier of the Service Level Indicator.
id str
The provider-assigned unique ID for this managed resource.
sli_guid str
The unique entity identifier of the Service Level Indicator in New Relic.
sli_id str
The unique entity identifier of the Service Level Indicator.
id String
The provider-assigned unique ID for this managed resource.
sliGuid String
The unique entity identifier of the Service Level Indicator in New Relic.
sliId String
The unique entity identifier of the Service Level Indicator.

Look up Existing ServiceLevel Resource

Get an existing ServiceLevel resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

public static get(name: string, id: Input<ID>, state?: ServiceLevelState, opts?: CustomResourceOptions): ServiceLevel
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        description: Optional[str] = None,
        events: Optional[ServiceLevelEventsArgs] = None,
        guid: Optional[str] = None,
        name: Optional[str] = None,
        objective: Optional[ServiceLevelObjectiveArgs] = None,
        sli_guid: Optional[str] = None,
        sli_id: Optional[str] = None) -> ServiceLevel
func GetServiceLevel(ctx *Context, name string, id IDInput, state *ServiceLevelState, opts ...ResourceOption) (*ServiceLevel, error)
public static ServiceLevel Get(string name, Input<string> id, ServiceLevelState? state, CustomResourceOptions? opts = null)
public static ServiceLevel get(String name, Output<String> id, ServiceLevelState state, CustomResourceOptions options)
resources:  _:    type: newrelic:ServiceLevel    get:      id: ${id}
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
resource_name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
The following state arguments are supported:
Description string
The description of the SLI.
Events Pulumi.NewRelic.Inputs.ServiceLevelEvents
The events that define the NRDB data for the SLI/SLO calculations. See Events below for details.
Guid Changes to this property will trigger replacement. string
The GUID of the entity (e.g, APM Service, Browser application, Workload, etc.) that you want to relate this SLI to. Note that changing the GUID will force a new resource.
Name string
A short name for the SLI that will help anyone understand what it is about.
Objective Pulumi.NewRelic.Inputs.ServiceLevelObjective
The objective of the SLI, only one can be defined. See Objective below for details.
SliGuid string
The unique entity identifier of the Service Level Indicator in New Relic.
SliId string
The unique entity identifier of the Service Level Indicator.
Description string
The description of the SLI.
Events ServiceLevelEventsArgs
The events that define the NRDB data for the SLI/SLO calculations. See Events below for details.
Guid Changes to this property will trigger replacement. string
The GUID of the entity (e.g, APM Service, Browser application, Workload, etc.) that you want to relate this SLI to. Note that changing the GUID will force a new resource.
Name string
A short name for the SLI that will help anyone understand what it is about.
Objective ServiceLevelObjectiveArgs
The objective of the SLI, only one can be defined. See Objective below for details.
SliGuid string
The unique entity identifier of the Service Level Indicator in New Relic.
SliId string
The unique entity identifier of the Service Level Indicator.
description String
The description of the SLI.
events ServiceLevelEvents
The events that define the NRDB data for the SLI/SLO calculations. See Events below for details.
guid Changes to this property will trigger replacement. String
The GUID of the entity (e.g, APM Service, Browser application, Workload, etc.) that you want to relate this SLI to. Note that changing the GUID will force a new resource.
name String
A short name for the SLI that will help anyone understand what it is about.
objective ServiceLevelObjective
The objective of the SLI, only one can be defined. See Objective below for details.
sliGuid String
The unique entity identifier of the Service Level Indicator in New Relic.
sliId String
The unique entity identifier of the Service Level Indicator.
description string
The description of the SLI.
events ServiceLevelEvents
The events that define the NRDB data for the SLI/SLO calculations. See Events below for details.
guid Changes to this property will trigger replacement. string
The GUID of the entity (e.g, APM Service, Browser application, Workload, etc.) that you want to relate this SLI to. Note that changing the GUID will force a new resource.
name string
A short name for the SLI that will help anyone understand what it is about.
objective ServiceLevelObjective
The objective of the SLI, only one can be defined. See Objective below for details.
sliGuid string
The unique entity identifier of the Service Level Indicator in New Relic.
sliId string
The unique entity identifier of the Service Level Indicator.
description str
The description of the SLI.
events ServiceLevelEventsArgs
The events that define the NRDB data for the SLI/SLO calculations. See Events below for details.
guid Changes to this property will trigger replacement. str
The GUID of the entity (e.g, APM Service, Browser application, Workload, etc.) that you want to relate this SLI to. Note that changing the GUID will force a new resource.
name str
A short name for the SLI that will help anyone understand what it is about.
objective ServiceLevelObjectiveArgs
The objective of the SLI, only one can be defined. See Objective below for details.
sli_guid str
The unique entity identifier of the Service Level Indicator in New Relic.
sli_id str
The unique entity identifier of the Service Level Indicator.
description String
The description of the SLI.
events Property Map
The events that define the NRDB data for the SLI/SLO calculations. See Events below for details.
guid Changes to this property will trigger replacement. String
The GUID of the entity (e.g, APM Service, Browser application, Workload, etc.) that you want to relate this SLI to. Note that changing the GUID will force a new resource.
name String
A short name for the SLI that will help anyone understand what it is about.
objective Property Map
The objective of the SLI, only one can be defined. See Objective below for details.
sliGuid String
The unique entity identifier of the Service Level Indicator in New Relic.
sliId String
The unique entity identifier of the Service Level Indicator.

Supporting Types

ServiceLevelEvents
, ServiceLevelEventsArgs

AccountId
This property is required.
Changes to this property will trigger replacement.
string
The ID of the account where the entity (e.g, APM Service, Browser application, Workload, etc.) belongs to, and that contains the NRDB data for the SLI/SLO calculations. Note that changing the account ID will force a new resource.
ValidEvents This property is required. Pulumi.NewRelic.Inputs.ServiceLevelEventsValidEvents
The definition of valid requests.
BadEvents Pulumi.NewRelic.Inputs.ServiceLevelEventsBadEvents
The definition of the bad responses. If you define an SLI from valid and bad events, you must leave the good events argument empty.
GoodEvents Pulumi.NewRelic.Inputs.ServiceLevelEventsGoodEvents
The definition of good responses. If you define an SLI from valid and good events, you must leave the bad events argument empty.
AccountId
This property is required.
Changes to this property will trigger replacement.
string
The ID of the account where the entity (e.g, APM Service, Browser application, Workload, etc.) belongs to, and that contains the NRDB data for the SLI/SLO calculations. Note that changing the account ID will force a new resource.
ValidEvents This property is required. ServiceLevelEventsValidEvents
The definition of valid requests.
BadEvents ServiceLevelEventsBadEvents
The definition of the bad responses. If you define an SLI from valid and bad events, you must leave the good events argument empty.
GoodEvents ServiceLevelEventsGoodEvents
The definition of good responses. If you define an SLI from valid and good events, you must leave the bad events argument empty.
accountId
This property is required.
Changes to this property will trigger replacement.
String
The ID of the account where the entity (e.g, APM Service, Browser application, Workload, etc.) belongs to, and that contains the NRDB data for the SLI/SLO calculations. Note that changing the account ID will force a new resource.
validEvents This property is required. ServiceLevelEventsValidEvents
The definition of valid requests.
badEvents ServiceLevelEventsBadEvents
The definition of the bad responses. If you define an SLI from valid and bad events, you must leave the good events argument empty.
goodEvents ServiceLevelEventsGoodEvents
The definition of good responses. If you define an SLI from valid and good events, you must leave the bad events argument empty.
accountId
This property is required.
Changes to this property will trigger replacement.
string
The ID of the account where the entity (e.g, APM Service, Browser application, Workload, etc.) belongs to, and that contains the NRDB data for the SLI/SLO calculations. Note that changing the account ID will force a new resource.
validEvents This property is required. ServiceLevelEventsValidEvents
The definition of valid requests.
badEvents ServiceLevelEventsBadEvents
The definition of the bad responses. If you define an SLI from valid and bad events, you must leave the good events argument empty.
goodEvents ServiceLevelEventsGoodEvents
The definition of good responses. If you define an SLI from valid and good events, you must leave the bad events argument empty.
account_id
This property is required.
Changes to this property will trigger replacement.
str
The ID of the account where the entity (e.g, APM Service, Browser application, Workload, etc.) belongs to, and that contains the NRDB data for the SLI/SLO calculations. Note that changing the account ID will force a new resource.
valid_events This property is required. ServiceLevelEventsValidEvents
The definition of valid requests.
bad_events ServiceLevelEventsBadEvents
The definition of the bad responses. If you define an SLI from valid and bad events, you must leave the good events argument empty.
good_events ServiceLevelEventsGoodEvents
The definition of good responses. If you define an SLI from valid and good events, you must leave the bad events argument empty.
accountId
This property is required.
Changes to this property will trigger replacement.
String
The ID of the account where the entity (e.g, APM Service, Browser application, Workload, etc.) belongs to, and that contains the NRDB data for the SLI/SLO calculations. Note that changing the account ID will force a new resource.
validEvents This property is required. Property Map
The definition of valid requests.
badEvents Property Map
The definition of the bad responses. If you define an SLI from valid and bad events, you must leave the good events argument empty.
goodEvents Property Map
The definition of good responses. If you define an SLI from valid and good events, you must leave the bad events argument empty.

ServiceLevelEventsBadEvents
, ServiceLevelEventsBadEventsArgs

From This property is required. string
The event type where NRDB data will be fetched from.
Select Pulumi.NewRelic.Inputs.ServiceLevelEventsBadEventsSelect
The NRQL SELECT clause to aggregate events.
Where string
A filter that narrows down the NRDB events just to those that are considered bad responses (e.g, those that refer to a particular entity and returned an error).
From This property is required. string
The event type where NRDB data will be fetched from.
Select ServiceLevelEventsBadEventsSelect
The NRQL SELECT clause to aggregate events.
Where string
A filter that narrows down the NRDB events just to those that are considered bad responses (e.g, those that refer to a particular entity and returned an error).
from This property is required. String
The event type where NRDB data will be fetched from.
select ServiceLevelEventsBadEventsSelect
The NRQL SELECT clause to aggregate events.
where String
A filter that narrows down the NRDB events just to those that are considered bad responses (e.g, those that refer to a particular entity and returned an error).
from This property is required. string
The event type where NRDB data will be fetched from.
select ServiceLevelEventsBadEventsSelect
The NRQL SELECT clause to aggregate events.
where string
A filter that narrows down the NRDB events just to those that are considered bad responses (e.g, those that refer to a particular entity and returned an error).
from_ This property is required. str
The event type where NRDB data will be fetched from.
select ServiceLevelEventsBadEventsSelect
The NRQL SELECT clause to aggregate events.
where str
A filter that narrows down the NRDB events just to those that are considered bad responses (e.g, those that refer to a particular entity and returned an error).
from This property is required. String
The event type where NRDB data will be fetched from.
select Property Map
The NRQL SELECT clause to aggregate events.
where String
A filter that narrows down the NRDB events just to those that are considered bad responses (e.g, those that refer to a particular entity and returned an error).

ServiceLevelEventsBadEventsSelect
, ServiceLevelEventsBadEventsSelectArgs

Function This property is required. string
The function to use in the SELECT clause. Valid values are COUNT, SUM, GET_FIELD, and GET_CDF_COUNT.
Attribute string
The event attribute to use in the SELECT clause.
Threshold double
Limit for values to be counter by GET_CDF_COUNT function.
Function This property is required. string
The function to use in the SELECT clause. Valid values are COUNT, SUM, GET_FIELD, and GET_CDF_COUNT.
Attribute string
The event attribute to use in the SELECT clause.
Threshold float64
Limit for values to be counter by GET_CDF_COUNT function.
function This property is required. String
The function to use in the SELECT clause. Valid values are COUNT, SUM, GET_FIELD, and GET_CDF_COUNT.
attribute String
The event attribute to use in the SELECT clause.
threshold Double
Limit for values to be counter by GET_CDF_COUNT function.
function This property is required. string
The function to use in the SELECT clause. Valid values are COUNT, SUM, GET_FIELD, and GET_CDF_COUNT.
attribute string
The event attribute to use in the SELECT clause.
threshold number
Limit for values to be counter by GET_CDF_COUNT function.
function This property is required. str
The function to use in the SELECT clause. Valid values are COUNT, SUM, GET_FIELD, and GET_CDF_COUNT.
attribute str
The event attribute to use in the SELECT clause.
threshold float
Limit for values to be counter by GET_CDF_COUNT function.
function This property is required. String
The function to use in the SELECT clause. Valid values are COUNT, SUM, GET_FIELD, and GET_CDF_COUNT.
attribute String
The event attribute to use in the SELECT clause.
threshold Number
Limit for values to be counter by GET_CDF_COUNT function.

ServiceLevelEventsGoodEvents
, ServiceLevelEventsGoodEventsArgs

From This property is required. string
The event type where NRDB data will be fetched from.
Select Pulumi.NewRelic.Inputs.ServiceLevelEventsGoodEventsSelect
The NRQL SELECT clause to aggregate events.
Where string
A filter that narrows down the NRDB events just to those that are considered good responses (e.g, those that refer to a particular entity and were successful).
From This property is required. string
The event type where NRDB data will be fetched from.
Select ServiceLevelEventsGoodEventsSelect
The NRQL SELECT clause to aggregate events.
Where string
A filter that narrows down the NRDB events just to those that are considered good responses (e.g, those that refer to a particular entity and were successful).
from This property is required. String
The event type where NRDB data will be fetched from.
select ServiceLevelEventsGoodEventsSelect
The NRQL SELECT clause to aggregate events.
where String
A filter that narrows down the NRDB events just to those that are considered good responses (e.g, those that refer to a particular entity and were successful).
from This property is required. string
The event type where NRDB data will be fetched from.
select ServiceLevelEventsGoodEventsSelect
The NRQL SELECT clause to aggregate events.
where string
A filter that narrows down the NRDB events just to those that are considered good responses (e.g, those that refer to a particular entity and were successful).
from_ This property is required. str
The event type where NRDB data will be fetched from.
select ServiceLevelEventsGoodEventsSelect
The NRQL SELECT clause to aggregate events.
where str
A filter that narrows down the NRDB events just to those that are considered good responses (e.g, those that refer to a particular entity and were successful).
from This property is required. String
The event type where NRDB data will be fetched from.
select Property Map
The NRQL SELECT clause to aggregate events.
where String
A filter that narrows down the NRDB events just to those that are considered good responses (e.g, those that refer to a particular entity and were successful).

ServiceLevelEventsGoodEventsSelect
, ServiceLevelEventsGoodEventsSelectArgs

Function This property is required. string
The function to use in the SELECT clause. Valid values are COUNT, SUM, GET_FIELD, and GET_CDF_COUNT.
Attribute string
The event attribute to use in the SELECT clause.
Threshold double
Limit for values to be counter by GET_CDF_COUNT function.
Function This property is required. string
The function to use in the SELECT clause. Valid values are COUNT, SUM, GET_FIELD, and GET_CDF_COUNT.
Attribute string
The event attribute to use in the SELECT clause.
Threshold float64
Limit for values to be counter by GET_CDF_COUNT function.
function This property is required. String
The function to use in the SELECT clause. Valid values are COUNT, SUM, GET_FIELD, and GET_CDF_COUNT.
attribute String
The event attribute to use in the SELECT clause.
threshold Double
Limit for values to be counter by GET_CDF_COUNT function.
function This property is required. string
The function to use in the SELECT clause. Valid values are COUNT, SUM, GET_FIELD, and GET_CDF_COUNT.
attribute string
The event attribute to use in the SELECT clause.
threshold number
Limit for values to be counter by GET_CDF_COUNT function.
function This property is required. str
The function to use in the SELECT clause. Valid values are COUNT, SUM, GET_FIELD, and GET_CDF_COUNT.
attribute str
The event attribute to use in the SELECT clause.
threshold float
Limit for values to be counter by GET_CDF_COUNT function.
function This property is required. String
The function to use in the SELECT clause. Valid values are COUNT, SUM, GET_FIELD, and GET_CDF_COUNT.
attribute String
The event attribute to use in the SELECT clause.
threshold Number
Limit for values to be counter by GET_CDF_COUNT function.

ServiceLevelEventsValidEvents
, ServiceLevelEventsValidEventsArgs

From This property is required. string
The event type where NRDB data will be fetched from.
Select Pulumi.NewRelic.Inputs.ServiceLevelEventsValidEventsSelect
The NRQL SELECT clause to aggregate events.
Where string
A filter that specifies all the NRDB events that are considered in this SLI (e.g, those that refer to a particular entity).
From This property is required. string
The event type where NRDB data will be fetched from.
Select ServiceLevelEventsValidEventsSelect
The NRQL SELECT clause to aggregate events.
Where string
A filter that specifies all the NRDB events that are considered in this SLI (e.g, those that refer to a particular entity).
from This property is required. String
The event type where NRDB data will be fetched from.
select ServiceLevelEventsValidEventsSelect
The NRQL SELECT clause to aggregate events.
where String
A filter that specifies all the NRDB events that are considered in this SLI (e.g, those that refer to a particular entity).
from This property is required. string
The event type where NRDB data will be fetched from.
select ServiceLevelEventsValidEventsSelect
The NRQL SELECT clause to aggregate events.
where string
A filter that specifies all the NRDB events that are considered in this SLI (e.g, those that refer to a particular entity).
from_ This property is required. str
The event type where NRDB data will be fetched from.
select ServiceLevelEventsValidEventsSelect
The NRQL SELECT clause to aggregate events.
where str
A filter that specifies all the NRDB events that are considered in this SLI (e.g, those that refer to a particular entity).
from This property is required. String
The event type where NRDB data will be fetched from.
select Property Map
The NRQL SELECT clause to aggregate events.
where String
A filter that specifies all the NRDB events that are considered in this SLI (e.g, those that refer to a particular entity).

ServiceLevelEventsValidEventsSelect
, ServiceLevelEventsValidEventsSelectArgs

Function This property is required. string
The function to use in the SELECT clause. Valid values are COUNT, SUM, GET_FIELD, and GET_CDF_COUNT.
Attribute string
The event attribute to use in the SELECT clause.
Threshold double
Limit for values to be counter by GET_CDF_COUNT function.
Function This property is required. string
The function to use in the SELECT clause. Valid values are COUNT, SUM, GET_FIELD, and GET_CDF_COUNT.
Attribute string
The event attribute to use in the SELECT clause.
Threshold float64
Limit for values to be counter by GET_CDF_COUNT function.
function This property is required. String
The function to use in the SELECT clause. Valid values are COUNT, SUM, GET_FIELD, and GET_CDF_COUNT.
attribute String
The event attribute to use in the SELECT clause.
threshold Double
Limit for values to be counter by GET_CDF_COUNT function.
function This property is required. string
The function to use in the SELECT clause. Valid values are COUNT, SUM, GET_FIELD, and GET_CDF_COUNT.
attribute string
The event attribute to use in the SELECT clause.
threshold number
Limit for values to be counter by GET_CDF_COUNT function.
function This property is required. str
The function to use in the SELECT clause. Valid values are COUNT, SUM, GET_FIELD, and GET_CDF_COUNT.
attribute str
The event attribute to use in the SELECT clause.
threshold float
Limit for values to be counter by GET_CDF_COUNT function.
function This property is required. String
The function to use in the SELECT clause. Valid values are COUNT, SUM, GET_FIELD, and GET_CDF_COUNT.
attribute String
The event attribute to use in the SELECT clause.
threshold Number
Limit for values to be counter by GET_CDF_COUNT function.

ServiceLevelObjective
, ServiceLevelObjectiveArgs

Target This property is required. double
The target of the objective, valid values between 0 and 100. Up to 5 decimals accepted.
TimeWindow This property is required. Pulumi.NewRelic.Inputs.ServiceLevelObjectiveTimeWindow
Time window is the period of the objective.
Description string
The description of the SLI.
Name string
A short name for the SLI that will help anyone understand what it is about.
Target This property is required. float64
The target of the objective, valid values between 0 and 100. Up to 5 decimals accepted.
TimeWindow This property is required. ServiceLevelObjectiveTimeWindow
Time window is the period of the objective.
Description string
The description of the SLI.
Name string
A short name for the SLI that will help anyone understand what it is about.
target This property is required. Double
The target of the objective, valid values between 0 and 100. Up to 5 decimals accepted.
timeWindow This property is required. ServiceLevelObjectiveTimeWindow
Time window is the period of the objective.
description String
The description of the SLI.
name String
A short name for the SLI that will help anyone understand what it is about.
target This property is required. number
The target of the objective, valid values between 0 and 100. Up to 5 decimals accepted.
timeWindow This property is required. ServiceLevelObjectiveTimeWindow
Time window is the period of the objective.
description string
The description of the SLI.
name string
A short name for the SLI that will help anyone understand what it is about.
target This property is required. float
The target of the objective, valid values between 0 and 100. Up to 5 decimals accepted.
time_window This property is required. ServiceLevelObjectiveTimeWindow
Time window is the period of the objective.
description str
The description of the SLI.
name str
A short name for the SLI that will help anyone understand what it is about.
target This property is required. Number
The target of the objective, valid values between 0 and 100. Up to 5 decimals accepted.
timeWindow This property is required. Property Map
Time window is the period of the objective.
description String
The description of the SLI.
name String
A short name for the SLI that will help anyone understand what it is about.

ServiceLevelObjectiveTimeWindow
, ServiceLevelObjectiveTimeWindowArgs

Rolling This property is required. ServiceLevelObjectiveTimeWindowRolling
Rolling window.
rolling This property is required. ServiceLevelObjectiveTimeWindowRolling
Rolling window.
rolling This property is required. ServiceLevelObjectiveTimeWindowRolling
Rolling window.
rolling This property is required. ServiceLevelObjectiveTimeWindowRolling
Rolling window.
rolling This property is required. Property Map
Rolling window.

ServiceLevelObjectiveTimeWindowRolling
, ServiceLevelObjectiveTimeWindowRollingArgs

Count This property is required. int
Valid values are 1, 7 and 28.
Unit This property is required. string
The only supported value is DAY.
Count This property is required. int
Valid values are 1, 7 and 28.
Unit This property is required. string
The only supported value is DAY.
count This property is required. Integer
Valid values are 1, 7 and 28.
unit This property is required. String
The only supported value is DAY.
count This property is required. number
Valid values are 1, 7 and 28.
unit This property is required. string
The only supported value is DAY.
count This property is required. int
Valid values are 1, 7 and 28.
unit This property is required. str
The only supported value is DAY.
count This property is required. Number
Valid values are 1, 7 and 28.
unit This property is required. String
The only supported value is DAY.

Import

New Relic Service Levels can be imported using a concatenated string of the format

<account_id>:<sli_id>:<guid>, where the guid is the entity the SLI relates to.

Example:

bash

$ pulumi import newrelic:index/serviceLevel:ServiceLevel foo 12345678:4321:MXxBUE18QVBQTElDQVRJT058MQ
Copy

To learn more about importing existing cloud resources, see Importing resources.

Package Details

Repository
New Relic pulumi/pulumi-newrelic
License
Apache-2.0
Notes
This Pulumi package is based on the newrelic Terraform Provider.