signalfx logo
SignalFx v5.10.0, May 13 23

signalfx.Detector

Explore with Pulumi AI

Provides a SignalFx detector resource. This can be used to create and manage detectors.

NOTE If you’re interested in using SignalFx detector features such as Historical Anomaly, Resource Running Out, or others then consider building them in the UI first then using the “Show SignalFlow” feature to extract the value for program_text. You may also consult the documentation for detector functions in signalflow-library.

Notification Format

As SignalFx supports different notification mechanisms a comma-delimited string is used to provide inputs. If you’d like to specify multiple notifications, then each should be a member in the list, like so:

import * as pulumi from "@pulumi/pulumi";
import pulumi
using System.Collections.Generic;
using System.Linq;
using Pulumi;

return await Deployment.RunAsync(() => 
{
});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
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) {
    }
}
{}

This will likely be changed in a future iteration of the provider. See SignalFx Docs for more information. For now, here are some example of how to configure each notification type:

Email

import * as pulumi from "@pulumi/pulumi";
import pulumi
using System.Collections.Generic;
using System.Linq;
using Pulumi;

return await Deployment.RunAsync(() => 
{
});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
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) {
    }
}
{}

Jira

Note that the credentialId is the SignalFx-provided ID shown after setting up your Jira integration. (See also signalfx.jira.Integration.)

import * as pulumi from "@pulumi/pulumi";
import pulumi
using System.Collections.Generic;
using System.Linq;
using Pulumi;

return await Deployment.RunAsync(() => 
{
});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
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) {
    }
}
{}

Opsgenie

Note that the credentialId is the SignalFx-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.

import * as pulumi from "@pulumi/pulumi";
import pulumi
using System.Collections.Generic;
using System.Linq;
using Pulumi;

return await Deployment.RunAsync(() => 
{
});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
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) {
    }
}
{}

PagerDuty

import * as pulumi from "@pulumi/pulumi";
import pulumi
using System.Collections.Generic;
using System.Linq;
using Pulumi;

return await Deployment.RunAsync(() => 
{
});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
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) {
    }
}
{}

Slack

Exclude the # on the channel name!

import * as pulumi from "@pulumi/pulumi";
import pulumi
using System.Collections.Generic;
using System.Linq;
using Pulumi;

return await Deployment.RunAsync(() => 
{
});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
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) {
    }
}
{}

Team

Sends notifications to a team.

import * as pulumi from "@pulumi/pulumi";
import pulumi
using System.Collections.Generic;
using System.Linq;
using Pulumi;

return await Deployment.RunAsync(() => 
{
});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
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) {
    }
}
{}

TeamEmail

Sends an email to every member of a team.

import * as pulumi from "@pulumi/pulumi";
import pulumi
using System.Collections.Generic;
using System.Linq;
using Pulumi;

return await Deployment.RunAsync(() => 
{
});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
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) {
    }
}
{}

VictorOps

import * as pulumi from "@pulumi/pulumi";
import pulumi
using System.Collections.Generic;
using System.Linq;
using Pulumi;

return await Deployment.RunAsync(() => 
{
});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
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) {
    }
}
{}

Webhook

NOTE You need to include all the commas even if you only use a credential id below.

You can either configure a Webhook to use an existing integration’s credential id:

import * as pulumi from "@pulumi/pulumi";
import pulumi
using System.Collections.Generic;
using System.Linq;
using Pulumi;

return await Deployment.RunAsync(() => 
{
});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
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) {
    }
}
{}

or configure one inline:

import * as pulumi from "@pulumi/pulumi";
import pulumi
using System.Collections.Generic;
using System.Linq;
using Pulumi;

return await Deployment.RunAsync(() => 
{
});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
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) {
    }
}
{}

Example Usage

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using SignalFx = Pulumi.SignalFx;

return await Deployment.RunAsync(() => 
{
    var config = new Config();
    var clusters = config.GetObject<dynamic>("clusters") ?? new[]
    {
        "clusterA",
        "clusterB",
    };
    var applicationDelay = new List<SignalFx.Detector>();
    for (var rangeIndex = 0; rangeIndex < clusters.Length; rangeIndex++)
    {
        var range = new { Value = rangeIndex };
        applicationDelay.Add(new SignalFx.Detector($"applicationDelay-{range.Value}", new()
        {
            Description = $"your application is slow - {clusters[range.Value]}",
            MaxDelay = 30,
            Tags = new[]
            {
                "app-backend",
                "staging",
            },
            AuthorizedWriterTeams = new[]
            {
                signalfx_team.Mycoolteam.Id,
            },
            AuthorizedWriterUsers = new[]
            {
                "abc123",
            },
            ProgramText = @$"signal = data('app.delay', filter('cluster','{clusters[range.Value]}'), extrapolation='last_value', maxExtrapolations=5).max()
detect(when(signal > 60, '5m')).publish('Processing old messages 5m')
detect(when(signal > 60, '30m')).publish('Processing old messages 30m')
",
            Rules = new[]
            {
                new SignalFx.Inputs.DetectorRuleArgs
                {
                    Description = "maximum > 60 for 5m",
                    Severity = "Warning",
                    DetectLabel = "Processing old messages 5m",
                    Notifications = new[]
                    {
                        "Email,foo-alerts@bar.com",
                    },
                },
                new SignalFx.Inputs.DetectorRuleArgs
                {
                    Description = "maximum > 60 for 30m",
                    Severity = "Critical",
                    DetectLabel = "Processing old messages 30m",
                    Notifications = new[]
                    {
                        "Email,foo-alerts@bar.com",
                    },
                },
            },
        }));
    }
});

Coming soon!

package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.signalfx.Detector;
import com.pulumi.signalfx.DetectorArgs;
import com.pulumi.signalfx.inputs.DetectorRuleArgs;
import com.pulumi.codegen.internal.KeyedValue;
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 clusters = config.get("clusters").orElse(        
            "clusterA",
            "clusterB");
        for (var i = 0; i < clusters.length(); i++) {
            new Detector("applicationDelay-" + i, DetectorArgs.builder()            
                .description(String.format("your application is slow - %s", clusters[range.value()]))
                .maxDelay(30)
                .tags(                
                    "app-backend",
                    "staging")
                .authorizedWriterTeams(signalfx_team.mycoolteam().id())
                .authorizedWriterUsers("abc123")
                .programText("""
signal = data('app.delay', filter('cluster','%s'), extrapolation='last_value', maxExtrapolations=5).max()
detect(when(signal > 60, '5m')).publish('Processing old messages 5m')
detect(when(signal > 60, '30m')).publish('Processing old messages 30m')
", clusters[range.value()]))
                .rules(                
                    DetectorRuleArgs.builder()
                        .description("maximum > 60 for 5m")
                        .severity("Warning")
                        .detectLabel("Processing old messages 5m")
                        .notifications("Email,foo-alerts@bar.com")
                        .build(),
                    DetectorRuleArgs.builder()
                        .description("maximum > 60 for 30m")
                        .severity("Critical")
                        .detectLabel("Processing old messages 30m")
                        .notifications("Email,foo-alerts@bar.com")
                        .build())
                .build());

        
}
    }
}
import pulumi
import pulumi_signalfx as signalfx

config = pulumi.Config()
clusters = config.get_object("clusters")
if clusters is None:
    clusters = [
        "clusterA",
        "clusterB",
    ]
application_delay = []
for range in [{"value": i} for i in range(0, len(clusters))]:
    application_delay.append(signalfx.Detector(f"applicationDelay-{range['value']}",
        description=f"your application is slow - {clusters[range['value']]}",
        max_delay=30,
        tags=[
            "app-backend",
            "staging",
        ],
        authorized_writer_teams=[signalfx_team["mycoolteam"]["id"]],
        authorized_writer_users=["abc123"],
        program_text=f"""signal = data('app.delay', filter('cluster','{clusters[range["value"]]}'), extrapolation='last_value', maxExtrapolations=5).max()
detect(when(signal > 60, '5m')).publish('Processing old messages 5m')
detect(when(signal > 60, '30m')).publish('Processing old messages 30m')
""",
        rules=[
            signalfx.DetectorRuleArgs(
                description="maximum > 60 for 5m",
                severity="Warning",
                detect_label="Processing old messages 5m",
                notifications=["Email,foo-alerts@bar.com"],
            ),
            signalfx.DetectorRuleArgs(
                description="maximum > 60 for 30m",
                severity="Critical",
                detect_label="Processing old messages 30m",
                notifications=["Email,foo-alerts@bar.com"],
            ),
        ]))
import * as pulumi from "@pulumi/pulumi";
import * as signalfx from "@pulumi/signalfx";

const config = new pulumi.Config();
const clusters = config.getObject("clusters") || [
    "clusterA",
    "clusterB",
];
const applicationDelay: signalfx.Detector[] = [];
for (const range = {value: 0}; range.value < clusters.length; range.value++) {
    applicationDelay.push(new signalfx.Detector(`applicationDelay-${range.value}`, {
        description: `your application is slow - ${clusters[range.value]}`,
        maxDelay: 30,
        tags: [
            "app-backend",
            "staging",
        ],
        authorizedWriterTeams: [signalfx_team.mycoolteam.id],
        authorizedWriterUsers: ["abc123"],
        programText: `signal = data('app.delay', filter('cluster','${clusters[range.value]}'), extrapolation='last_value', maxExtrapolations=5).max()
detect(when(signal > 60, '5m')).publish('Processing old messages 5m')
detect(when(signal > 60, '30m')).publish('Processing old messages 30m')
`,
        rules: [
            {
                description: "maximum > 60 for 5m",
                severity: "Warning",
                detectLabel: "Processing old messages 5m",
                notifications: ["Email,foo-alerts@bar.com"],
            },
            {
                description: "maximum > 60 for 30m",
                severity: "Critical",
                detectLabel: "Processing old messages 30m",
                notifications: ["Email,foo-alerts@bar.com"],
            },
        ],
    }));
}

Coming soon!

As SignalFx supports different notification mechanisms a comma-delimited string is used to provide inputs. If you'd like to specify multiple notifications, then each should be a member in the list, like so

using System.Collections.Generic;
using System.Linq;
using Pulumi;

return await Deployment.RunAsync(() => 
{
});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
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) {
    }
}
import pulumi
import * as pulumi from "@pulumi/pulumi";
{}

Email

using System.Collections.Generic;
using System.Linq;
using Pulumi;

return await Deployment.RunAsync(() => 
{
});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
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) {
    }
}
import pulumi
import * as pulumi from "@pulumi/pulumi";
{}

Jira

using System.Collections.Generic;
using System.Linq;
using Pulumi;

return await Deployment.RunAsync(() => 
{
});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
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) {
    }
}
import pulumi
import * as pulumi from "@pulumi/pulumi";
{}

Opsgenie

using System.Collections.Generic;
using System.Linq;
using Pulumi;

return await Deployment.RunAsync(() => 
{
});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
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) {
    }
}
import pulumi
import * as pulumi from "@pulumi/pulumi";
{}

PagerDuty

using System.Collections.Generic;
using System.Linq;
using Pulumi;

return await Deployment.RunAsync(() => 
{
});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
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) {
    }
}
import pulumi
import * as pulumi from "@pulumi/pulumi";
{}

Slack

using System.Collections.Generic;
using System.Linq;
using Pulumi;

return await Deployment.RunAsync(() => 
{
});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
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) {
    }
}
import pulumi
import * as pulumi from "@pulumi/pulumi";
{}

Team

using System.Collections.Generic;
using System.Linq;
using Pulumi;

return await Deployment.RunAsync(() => 
{
});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
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) {
    }
}
import pulumi
import * as pulumi from "@pulumi/pulumi";
{}

TeamEmail

using System.Collections.Generic;
using System.Linq;
using Pulumi;

return await Deployment.RunAsync(() => 
{
});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
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) {
    }
}
import pulumi
import * as pulumi from "@pulumi/pulumi";
{}

VictorOps

using System.Collections.Generic;
using System.Linq;
using Pulumi;

return await Deployment.RunAsync(() => 
{
});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
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) {
    }
}
import pulumi
import * as pulumi from "@pulumi/pulumi";
{}

Webhook

using System.Collections.Generic;
using System.Linq;
using Pulumi;

return await Deployment.RunAsync(() => 
{
});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
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) {
    }
}
import pulumi
import * as pulumi from "@pulumi/pulumi";
{}

or configure one inline

using System.Collections.Generic;
using System.Linq;
using Pulumi;

return await Deployment.RunAsync(() => 
{
});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
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) {
    }
}
import pulumi
import * as pulumi from "@pulumi/pulumi";
{}

Create Detector Resource

new Detector(name: string, args: DetectorArgs, opts?: CustomResourceOptions);
@overload
def Detector(resource_name: str,
             opts: Optional[ResourceOptions] = None,
             authorized_writer_teams: Optional[Sequence[str]] = None,
             authorized_writer_users: Optional[Sequence[str]] = None,
             description: Optional[str] = None,
             disable_sampling: Optional[bool] = None,
             end_time: Optional[int] = None,
             max_delay: Optional[int] = None,
             min_delay: Optional[int] = None,
             name: Optional[str] = None,
             program_text: Optional[str] = None,
             rules: Optional[Sequence[DetectorRuleArgs]] = None,
             show_data_markers: Optional[bool] = None,
             show_event_lines: Optional[bool] = None,
             start_time: Optional[int] = None,
             tags: Optional[Sequence[str]] = None,
             teams: Optional[Sequence[str]] = None,
             time_range: Optional[int] = None,
             timezone: Optional[str] = None,
             viz_options: Optional[Sequence[DetectorVizOptionArgs]] = None)
@overload
def Detector(resource_name: str,
             args: DetectorArgs,
             opts: Optional[ResourceOptions] = None)
func NewDetector(ctx *Context, name string, args DetectorArgs, opts ...ResourceOption) (*Detector, error)
public Detector(string name, DetectorArgs args, CustomResourceOptions? opts = null)
public Detector(String name, DetectorArgs args)
public Detector(String name, DetectorArgs args, CustomResourceOptions options)
type: signalfx:Detector
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

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

Detector Resource Properties

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

Inputs

The Detector resource accepts the following input properties:

ProgramText string

Signalflow program text for the detector. More info in the SignalFx docs.

Rules List<Pulumi.SignalFx.Inputs.DetectorRuleArgs>

Set of rules used for alerting.

AuthorizedWriterTeams List<string>

Team IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's team id (or user id in authorized_writer_users).

AuthorizedWriterUsers List<string>

User IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's user id (or team id in authorized_writer_teams).

Description string

Description for the rule. Displays as the alert condition in the Alert Rules tab of the detector editor in the web UI.

DisableSampling bool

When false, the visualization may sample the output timeseries rather than displaying them all. false by default.

EndTime int

Seconds since epoch. Used for visualization. Conflicts with time_range.

MaxDelay int

How long (in seconds) to wait for late datapoints. See Delayed Datapoints for more info. Max value is 900 seconds (15 minutes). Auto (as little as possible) by default.

MinDelay int

How long (in seconds) to wait even if the datapoints are arriving in a timely fashion. Max value is 900 (15m).

Name string

Name of the detector.

ShowDataMarkers bool

When true, markers will be drawn for each datapoint within the visualization. true by default.

ShowEventLines bool

When true, the visualization will display a vertical line for each event trigger. false by default.

StartTime int

Seconds since epoch. Used for visualization. Conflicts with time_range.

Tags List<string>

Tags associated with the detector.

Teams List<string>

Team IDs to associate the detector to.

TimeRange int

Seconds to display in the visualization. This is a rolling range from the current time. Example: 3600 corresponds to -1h in web UI. 3600 by default.

Timezone string

The property value is a string that denotes the geographic region associated with the time zone, (e.g. Australia/Sydney)

VizOptions List<Pulumi.SignalFx.Inputs.DetectorVizOptionArgs>

Plot-level customization options, associated with a publish statement.

ProgramText string

Signalflow program text for the detector. More info in the SignalFx docs.

Rules []DetectorRuleArgs

Set of rules used for alerting.

AuthorizedWriterTeams []string

Team IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's team id (or user id in authorized_writer_users).

AuthorizedWriterUsers []string

User IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's user id (or team id in authorized_writer_teams).

Description string

Description for the rule. Displays as the alert condition in the Alert Rules tab of the detector editor in the web UI.

DisableSampling bool

When false, the visualization may sample the output timeseries rather than displaying them all. false by default.

EndTime int

Seconds since epoch. Used for visualization. Conflicts with time_range.

MaxDelay int

How long (in seconds) to wait for late datapoints. See Delayed Datapoints for more info. Max value is 900 seconds (15 minutes). Auto (as little as possible) by default.

MinDelay int

How long (in seconds) to wait even if the datapoints are arriving in a timely fashion. Max value is 900 (15m).

Name string

Name of the detector.

ShowDataMarkers bool

When true, markers will be drawn for each datapoint within the visualization. true by default.

ShowEventLines bool

When true, the visualization will display a vertical line for each event trigger. false by default.

StartTime int

Seconds since epoch. Used for visualization. Conflicts with time_range.

Tags []string

Tags associated with the detector.

Teams []string

Team IDs to associate the detector to.

TimeRange int

Seconds to display in the visualization. This is a rolling range from the current time. Example: 3600 corresponds to -1h in web UI. 3600 by default.

Timezone string

The property value is a string that denotes the geographic region associated with the time zone, (e.g. Australia/Sydney)

VizOptions []DetectorVizOptionArgs

Plot-level customization options, associated with a publish statement.

programText String

Signalflow program text for the detector. More info in the SignalFx docs.

rules List<DetectorRuleArgs>

Set of rules used for alerting.

authorizedWriterTeams List<String>

Team IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's team id (or user id in authorized_writer_users).

authorizedWriterUsers List<String>

User IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's user id (or team id in authorized_writer_teams).

description String

Description for the rule. Displays as the alert condition in the Alert Rules tab of the detector editor in the web UI.

disableSampling Boolean

When false, the visualization may sample the output timeseries rather than displaying them all. false by default.

endTime Integer

Seconds since epoch. Used for visualization. Conflicts with time_range.

maxDelay Integer

How long (in seconds) to wait for late datapoints. See Delayed Datapoints for more info. Max value is 900 seconds (15 minutes). Auto (as little as possible) by default.

minDelay Integer

How long (in seconds) to wait even if the datapoints are arriving in a timely fashion. Max value is 900 (15m).

name String

Name of the detector.

showDataMarkers Boolean

When true, markers will be drawn for each datapoint within the visualization. true by default.

showEventLines Boolean

When true, the visualization will display a vertical line for each event trigger. false by default.

startTime Integer

Seconds since epoch. Used for visualization. Conflicts with time_range.

tags List<String>

Tags associated with the detector.

teams List<String>

Team IDs to associate the detector to.

timeRange Integer

Seconds to display in the visualization. This is a rolling range from the current time. Example: 3600 corresponds to -1h in web UI. 3600 by default.

timezone String

The property value is a string that denotes the geographic region associated with the time zone, (e.g. Australia/Sydney)

vizOptions List<DetectorVizOptionArgs>

Plot-level customization options, associated with a publish statement.

programText string

Signalflow program text for the detector. More info in the SignalFx docs.

rules DetectorRuleArgs[]

Set of rules used for alerting.

authorizedWriterTeams string[]

Team IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's team id (or user id in authorized_writer_users).

authorizedWriterUsers string[]

User IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's user id (or team id in authorized_writer_teams).

description string

Description for the rule. Displays as the alert condition in the Alert Rules tab of the detector editor in the web UI.

disableSampling boolean

When false, the visualization may sample the output timeseries rather than displaying them all. false by default.

endTime number

Seconds since epoch. Used for visualization. Conflicts with time_range.

maxDelay number

How long (in seconds) to wait for late datapoints. See Delayed Datapoints for more info. Max value is 900 seconds (15 minutes). Auto (as little as possible) by default.

minDelay number

How long (in seconds) to wait even if the datapoints are arriving in a timely fashion. Max value is 900 (15m).

name string

Name of the detector.

showDataMarkers boolean

When true, markers will be drawn for each datapoint within the visualization. true by default.

showEventLines boolean

When true, the visualization will display a vertical line for each event trigger. false by default.

startTime number

Seconds since epoch. Used for visualization. Conflicts with time_range.

tags string[]

Tags associated with the detector.

teams string[]

Team IDs to associate the detector to.

timeRange number

Seconds to display in the visualization. This is a rolling range from the current time. Example: 3600 corresponds to -1h in web UI. 3600 by default.

timezone string

The property value is a string that denotes the geographic region associated with the time zone, (e.g. Australia/Sydney)

vizOptions DetectorVizOptionArgs[]

Plot-level customization options, associated with a publish statement.

program_text str

Signalflow program text for the detector. More info in the SignalFx docs.

rules Sequence[DetectorRuleArgs]

Set of rules used for alerting.

authorized_writer_teams Sequence[str]

Team IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's team id (or user id in authorized_writer_users).

authorized_writer_users Sequence[str]

User IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's user id (or team id in authorized_writer_teams).

description str

Description for the rule. Displays as the alert condition in the Alert Rules tab of the detector editor in the web UI.

disable_sampling bool

When false, the visualization may sample the output timeseries rather than displaying them all. false by default.

end_time int

Seconds since epoch. Used for visualization. Conflicts with time_range.

max_delay int

How long (in seconds) to wait for late datapoints. See Delayed Datapoints for more info. Max value is 900 seconds (15 minutes). Auto (as little as possible) by default.

min_delay int

How long (in seconds) to wait even if the datapoints are arriving in a timely fashion. Max value is 900 (15m).

name str

Name of the detector.

show_data_markers bool

When true, markers will be drawn for each datapoint within the visualization. true by default.

show_event_lines bool

When true, the visualization will display a vertical line for each event trigger. false by default.

start_time int

Seconds since epoch. Used for visualization. Conflicts with time_range.

tags Sequence[str]

Tags associated with the detector.

teams Sequence[str]

Team IDs to associate the detector to.

time_range int

Seconds to display in the visualization. This is a rolling range from the current time. Example: 3600 corresponds to -1h in web UI. 3600 by default.

timezone str

The property value is a string that denotes the geographic region associated with the time zone, (e.g. Australia/Sydney)

viz_options Sequence[DetectorVizOptionArgs]

Plot-level customization options, associated with a publish statement.

programText String

Signalflow program text for the detector. More info in the SignalFx docs.

rules List<Property Map>

Set of rules used for alerting.

authorizedWriterTeams List<String>

Team IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's team id (or user id in authorized_writer_users).

authorizedWriterUsers List<String>

User IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's user id (or team id in authorized_writer_teams).

description String

Description for the rule. Displays as the alert condition in the Alert Rules tab of the detector editor in the web UI.

disableSampling Boolean

When false, the visualization may sample the output timeseries rather than displaying them all. false by default.

endTime Number

Seconds since epoch. Used for visualization. Conflicts with time_range.

maxDelay Number

How long (in seconds) to wait for late datapoints. See Delayed Datapoints for more info. Max value is 900 seconds (15 minutes). Auto (as little as possible) by default.

minDelay Number

How long (in seconds) to wait even if the datapoints are arriving in a timely fashion. Max value is 900 (15m).

name String

Name of the detector.

showDataMarkers Boolean

When true, markers will be drawn for each datapoint within the visualization. true by default.

showEventLines Boolean

When true, the visualization will display a vertical line for each event trigger. false by default.

startTime Number

Seconds since epoch. Used for visualization. Conflicts with time_range.

tags List<String>

Tags associated with the detector.

teams List<String>

Team IDs to associate the detector to.

timeRange Number

Seconds to display in the visualization. This is a rolling range from the current time. Example: 3600 corresponds to -1h in web UI. 3600 by default.

timezone String

The property value is a string that denotes the geographic region associated with the time zone, (e.g. Australia/Sydney)

vizOptions List<Property Map>

Plot-level customization options, associated with a publish statement.

Outputs

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

Id string

The provider-assigned unique ID for this managed resource.

LabelResolutions Dictionary<string, int>

The resolutions of the detector alerts in milliseconds that indicate how often data is analyzed to determine if an alert should be triggered.

Url string

The URL of the detector.

Id string

The provider-assigned unique ID for this managed resource.

LabelResolutions map[string]int

The resolutions of the detector alerts in milliseconds that indicate how often data is analyzed to determine if an alert should be triggered.

Url string

The URL of the detector.

id String

The provider-assigned unique ID for this managed resource.

labelResolutions Map<String,Integer>

The resolutions of the detector alerts in milliseconds that indicate how often data is analyzed to determine if an alert should be triggered.

url String

The URL of the detector.

id string

The provider-assigned unique ID for this managed resource.

labelResolutions {[key: string]: number}

The resolutions of the detector alerts in milliseconds that indicate how often data is analyzed to determine if an alert should be triggered.

url string

The URL of the detector.

id str

The provider-assigned unique ID for this managed resource.

label_resolutions Mapping[str, int]

The resolutions of the detector alerts in milliseconds that indicate how often data is analyzed to determine if an alert should be triggered.

url str

The URL of the detector.

id String

The provider-assigned unique ID for this managed resource.

labelResolutions Map<Number>

The resolutions of the detector alerts in milliseconds that indicate how often data is analyzed to determine if an alert should be triggered.

url String

The URL of the detector.

Look up Existing Detector Resource

Get an existing Detector 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?: DetectorState, opts?: CustomResourceOptions): Detector
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        authorized_writer_teams: Optional[Sequence[str]] = None,
        authorized_writer_users: Optional[Sequence[str]] = None,
        description: Optional[str] = None,
        disable_sampling: Optional[bool] = None,
        end_time: Optional[int] = None,
        label_resolutions: Optional[Mapping[str, int]] = None,
        max_delay: Optional[int] = None,
        min_delay: Optional[int] = None,
        name: Optional[str] = None,
        program_text: Optional[str] = None,
        rules: Optional[Sequence[DetectorRuleArgs]] = None,
        show_data_markers: Optional[bool] = None,
        show_event_lines: Optional[bool] = None,
        start_time: Optional[int] = None,
        tags: Optional[Sequence[str]] = None,
        teams: Optional[Sequence[str]] = None,
        time_range: Optional[int] = None,
        timezone: Optional[str] = None,
        url: Optional[str] = None,
        viz_options: Optional[Sequence[DetectorVizOptionArgs]] = None) -> Detector
func GetDetector(ctx *Context, name string, id IDInput, state *DetectorState, opts ...ResourceOption) (*Detector, error)
public static Detector Get(string name, Input<string> id, DetectorState? state, CustomResourceOptions? opts = null)
public static Detector get(String name, Output<String> id, DetectorState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
name
The unique name of the resulting resource.
id
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
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
name
The unique name of the resulting resource.
id
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
The unique name of the resulting resource.
id
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
The unique name of the resulting resource.
id
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:
AuthorizedWriterTeams List<string>

Team IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's team id (or user id in authorized_writer_users).

AuthorizedWriterUsers List<string>

User IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's user id (or team id in authorized_writer_teams).

Description string

Description for the rule. Displays as the alert condition in the Alert Rules tab of the detector editor in the web UI.

DisableSampling bool

When false, the visualization may sample the output timeseries rather than displaying them all. false by default.

EndTime int

Seconds since epoch. Used for visualization. Conflicts with time_range.

LabelResolutions Dictionary<string, int>

The resolutions of the detector alerts in milliseconds that indicate how often data is analyzed to determine if an alert should be triggered.

MaxDelay int

How long (in seconds) to wait for late datapoints. See Delayed Datapoints for more info. Max value is 900 seconds (15 minutes). Auto (as little as possible) by default.

MinDelay int

How long (in seconds) to wait even if the datapoints are arriving in a timely fashion. Max value is 900 (15m).

Name string

Name of the detector.

ProgramText string

Signalflow program text for the detector. More info in the SignalFx docs.

Rules List<Pulumi.SignalFx.Inputs.DetectorRuleArgs>

Set of rules used for alerting.

ShowDataMarkers bool

When true, markers will be drawn for each datapoint within the visualization. true by default.

ShowEventLines bool

When true, the visualization will display a vertical line for each event trigger. false by default.

StartTime int

Seconds since epoch. Used for visualization. Conflicts with time_range.

Tags List<string>

Tags associated with the detector.

Teams List<string>

Team IDs to associate the detector to.

TimeRange int

Seconds to display in the visualization. This is a rolling range from the current time. Example: 3600 corresponds to -1h in web UI. 3600 by default.

Timezone string

The property value is a string that denotes the geographic region associated with the time zone, (e.g. Australia/Sydney)

Url string

The URL of the detector.

VizOptions List<Pulumi.SignalFx.Inputs.DetectorVizOptionArgs>

Plot-level customization options, associated with a publish statement.

AuthorizedWriterTeams []string

Team IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's team id (or user id in authorized_writer_users).

AuthorizedWriterUsers []string

User IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's user id (or team id in authorized_writer_teams).

Description string

Description for the rule. Displays as the alert condition in the Alert Rules tab of the detector editor in the web UI.

DisableSampling bool

When false, the visualization may sample the output timeseries rather than displaying them all. false by default.

EndTime int

Seconds since epoch. Used for visualization. Conflicts with time_range.

LabelResolutions map[string]int

The resolutions of the detector alerts in milliseconds that indicate how often data is analyzed to determine if an alert should be triggered.

MaxDelay int

How long (in seconds) to wait for late datapoints. See Delayed Datapoints for more info. Max value is 900 seconds (15 minutes). Auto (as little as possible) by default.

MinDelay int

How long (in seconds) to wait even if the datapoints are arriving in a timely fashion. Max value is 900 (15m).

Name string

Name of the detector.

ProgramText string

Signalflow program text for the detector. More info in the SignalFx docs.

Rules []DetectorRuleArgs

Set of rules used for alerting.

ShowDataMarkers bool

When true, markers will be drawn for each datapoint within the visualization. true by default.

ShowEventLines bool

When true, the visualization will display a vertical line for each event trigger. false by default.

StartTime int

Seconds since epoch. Used for visualization. Conflicts with time_range.

Tags []string

Tags associated with the detector.

Teams []string

Team IDs to associate the detector to.

TimeRange int

Seconds to display in the visualization. This is a rolling range from the current time. Example: 3600 corresponds to -1h in web UI. 3600 by default.

Timezone string

The property value is a string that denotes the geographic region associated with the time zone, (e.g. Australia/Sydney)

Url string

The URL of the detector.

VizOptions []DetectorVizOptionArgs

Plot-level customization options, associated with a publish statement.

authorizedWriterTeams List<String>

Team IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's team id (or user id in authorized_writer_users).

authorizedWriterUsers List<String>

User IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's user id (or team id in authorized_writer_teams).

description String

Description for the rule. Displays as the alert condition in the Alert Rules tab of the detector editor in the web UI.

disableSampling Boolean

When false, the visualization may sample the output timeseries rather than displaying them all. false by default.

endTime Integer

Seconds since epoch. Used for visualization. Conflicts with time_range.

labelResolutions Map<String,Integer>

The resolutions of the detector alerts in milliseconds that indicate how often data is analyzed to determine if an alert should be triggered.

maxDelay Integer

How long (in seconds) to wait for late datapoints. See Delayed Datapoints for more info. Max value is 900 seconds (15 minutes). Auto (as little as possible) by default.

minDelay Integer

How long (in seconds) to wait even if the datapoints are arriving in a timely fashion. Max value is 900 (15m).

name String

Name of the detector.

programText String

Signalflow program text for the detector. More info in the SignalFx docs.

rules List<DetectorRuleArgs>

Set of rules used for alerting.

showDataMarkers Boolean

When true, markers will be drawn for each datapoint within the visualization. true by default.

showEventLines Boolean

When true, the visualization will display a vertical line for each event trigger. false by default.

startTime Integer

Seconds since epoch. Used for visualization. Conflicts with time_range.

tags List<String>

Tags associated with the detector.

teams List<String>

Team IDs to associate the detector to.

timeRange Integer

Seconds to display in the visualization. This is a rolling range from the current time. Example: 3600 corresponds to -1h in web UI. 3600 by default.

timezone String

The property value is a string that denotes the geographic region associated with the time zone, (e.g. Australia/Sydney)

url String

The URL of the detector.

vizOptions List<DetectorVizOptionArgs>

Plot-level customization options, associated with a publish statement.

authorizedWriterTeams string[]

Team IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's team id (or user id in authorized_writer_users).

authorizedWriterUsers string[]

User IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's user id (or team id in authorized_writer_teams).

description string

Description for the rule. Displays as the alert condition in the Alert Rules tab of the detector editor in the web UI.

disableSampling boolean

When false, the visualization may sample the output timeseries rather than displaying them all. false by default.

endTime number

Seconds since epoch. Used for visualization. Conflicts with time_range.

labelResolutions {[key: string]: number}

The resolutions of the detector alerts in milliseconds that indicate how often data is analyzed to determine if an alert should be triggered.

maxDelay number

How long (in seconds) to wait for late datapoints. See Delayed Datapoints for more info. Max value is 900 seconds (15 minutes). Auto (as little as possible) by default.

minDelay number

How long (in seconds) to wait even if the datapoints are arriving in a timely fashion. Max value is 900 (15m).

name string

Name of the detector.

programText string

Signalflow program text for the detector. More info in the SignalFx docs.

rules DetectorRuleArgs[]

Set of rules used for alerting.

showDataMarkers boolean

When true, markers will be drawn for each datapoint within the visualization. true by default.

showEventLines boolean

When true, the visualization will display a vertical line for each event trigger. false by default.

startTime number

Seconds since epoch. Used for visualization. Conflicts with time_range.

tags string[]

Tags associated with the detector.

teams string[]

Team IDs to associate the detector to.

timeRange number

Seconds to display in the visualization. This is a rolling range from the current time. Example: 3600 corresponds to -1h in web UI. 3600 by default.

timezone string

The property value is a string that denotes the geographic region associated with the time zone, (e.g. Australia/Sydney)

url string

The URL of the detector.

vizOptions DetectorVizOptionArgs[]

Plot-level customization options, associated with a publish statement.

authorized_writer_teams Sequence[str]

Team IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's team id (or user id in authorized_writer_users).

authorized_writer_users Sequence[str]

User IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's user id (or team id in authorized_writer_teams).

description str

Description for the rule. Displays as the alert condition in the Alert Rules tab of the detector editor in the web UI.

disable_sampling bool

When false, the visualization may sample the output timeseries rather than displaying them all. false by default.

end_time int

Seconds since epoch. Used for visualization. Conflicts with time_range.

label_resolutions Mapping[str, int]

The resolutions of the detector alerts in milliseconds that indicate how often data is analyzed to determine if an alert should be triggered.

max_delay int

How long (in seconds) to wait for late datapoints. See Delayed Datapoints for more info. Max value is 900 seconds (15 minutes). Auto (as little as possible) by default.

min_delay int

How long (in seconds) to wait even if the datapoints are arriving in a timely fashion. Max value is 900 (15m).

name str

Name of the detector.

program_text str

Signalflow program text for the detector. More info in the SignalFx docs.

rules Sequence[DetectorRuleArgs]

Set of rules used for alerting.

show_data_markers bool

When true, markers will be drawn for each datapoint within the visualization. true by default.

show_event_lines bool

When true, the visualization will display a vertical line for each event trigger. false by default.

start_time int

Seconds since epoch. Used for visualization. Conflicts with time_range.

tags Sequence[str]

Tags associated with the detector.

teams Sequence[str]

Team IDs to associate the detector to.

time_range int

Seconds to display in the visualization. This is a rolling range from the current time. Example: 3600 corresponds to -1h in web UI. 3600 by default.

timezone str

The property value is a string that denotes the geographic region associated with the time zone, (e.g. Australia/Sydney)

url str

The URL of the detector.

viz_options Sequence[DetectorVizOptionArgs]

Plot-level customization options, associated with a publish statement.

authorizedWriterTeams List<String>

Team IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's team id (or user id in authorized_writer_users).

authorizedWriterUsers List<String>

User IDs that have write access to this detector. Remember to use an admin's token if using this feature and to include that admin's user id (or team id in authorized_writer_teams).

description String

Description for the rule. Displays as the alert condition in the Alert Rules tab of the detector editor in the web UI.

disableSampling Boolean

When false, the visualization may sample the output timeseries rather than displaying them all. false by default.

endTime Number

Seconds since epoch. Used for visualization. Conflicts with time_range.

labelResolutions Map<Number>

The resolutions of the detector alerts in milliseconds that indicate how often data is analyzed to determine if an alert should be triggered.

maxDelay Number

How long (in seconds) to wait for late datapoints. See Delayed Datapoints for more info. Max value is 900 seconds (15 minutes). Auto (as little as possible) by default.

minDelay Number

How long (in seconds) to wait even if the datapoints are arriving in a timely fashion. Max value is 900 (15m).

name String

Name of the detector.

programText String

Signalflow program text for the detector. More info in the SignalFx docs.

rules List<Property Map>

Set of rules used for alerting.

showDataMarkers Boolean

When true, markers will be drawn for each datapoint within the visualization. true by default.

showEventLines Boolean

When true, the visualization will display a vertical line for each event trigger. false by default.

startTime Number

Seconds since epoch. Used for visualization. Conflicts with time_range.

tags List<String>

Tags associated with the detector.

teams List<String>

Team IDs to associate the detector to.

timeRange Number

Seconds to display in the visualization. This is a rolling range from the current time. Example: 3600 corresponds to -1h in web UI. 3600 by default.

timezone String

The property value is a string that denotes the geographic region associated with the time zone, (e.g. Australia/Sydney)

url String

The URL of the detector.

vizOptions List<Property Map>

Plot-level customization options, associated with a publish statement.

Supporting Types

DetectorRule

DetectLabel string

A detect label which matches a detect label within program_text.

Severity string

The severity of the rule, must be one of: "Critical", "Major", "Minor", "Warning", "Info".

Description string

Description for the rule. Displays as the alert condition in the Alert Rules tab of the detector editor in the web UI.

Disabled bool

When true, notifications and events will not be generated for the detect label. false by default.

Notifications List<string>

List of strings specifying where notifications will be sent when an incident occurs. See Create A Single Detector for more info.

ParameterizedBody string

Custom notification message body when an alert is triggered. See Set Up Detectors to Trigger Alerts for more info.

ParameterizedSubject string

Custom notification message subject when an alert is triggered. See Set Up Detectors to Trigger Alerts for more info.

RunbookUrl string

URL of page to consult when an alert is triggered. This can be used with custom notification messages.

Tip string

Plain text suggested first course of action, such as a command line to execute. This can be used with custom notification messages.

DetectLabel string

A detect label which matches a detect label within program_text.

Severity string

The severity of the rule, must be one of: "Critical", "Major", "Minor", "Warning", "Info".

Description string

Description for the rule. Displays as the alert condition in the Alert Rules tab of the detector editor in the web UI.

Disabled bool

When true, notifications and events will not be generated for the detect label. false by default.

Notifications []string

List of strings specifying where notifications will be sent when an incident occurs. See Create A Single Detector for more info.

ParameterizedBody string

Custom notification message body when an alert is triggered. See Set Up Detectors to Trigger Alerts for more info.

ParameterizedSubject string

Custom notification message subject when an alert is triggered. See Set Up Detectors to Trigger Alerts for more info.

RunbookUrl string

URL of page to consult when an alert is triggered. This can be used with custom notification messages.

Tip string

Plain text suggested first course of action, such as a command line to execute. This can be used with custom notification messages.

detectLabel String

A detect label which matches a detect label within program_text.

severity String

The severity of the rule, must be one of: "Critical", "Major", "Minor", "Warning", "Info".

description String

Description for the rule. Displays as the alert condition in the Alert Rules tab of the detector editor in the web UI.

disabled Boolean

When true, notifications and events will not be generated for the detect label. false by default.

notifications List<String>

List of strings specifying where notifications will be sent when an incident occurs. See Create A Single Detector for more info.

parameterizedBody String

Custom notification message body when an alert is triggered. See Set Up Detectors to Trigger Alerts for more info.

parameterizedSubject String

Custom notification message subject when an alert is triggered. See Set Up Detectors to Trigger Alerts for more info.

runbookUrl String

URL of page to consult when an alert is triggered. This can be used with custom notification messages.

tip String

Plain text suggested first course of action, such as a command line to execute. This can be used with custom notification messages.

detectLabel string

A detect label which matches a detect label within program_text.

severity string

The severity of the rule, must be one of: "Critical", "Major", "Minor", "Warning", "Info".

description string

Description for the rule. Displays as the alert condition in the Alert Rules tab of the detector editor in the web UI.

disabled boolean

When true, notifications and events will not be generated for the detect label. false by default.

notifications string[]

List of strings specifying where notifications will be sent when an incident occurs. See Create A Single Detector for more info.

parameterizedBody string

Custom notification message body when an alert is triggered. See Set Up Detectors to Trigger Alerts for more info.

parameterizedSubject string

Custom notification message subject when an alert is triggered. See Set Up Detectors to Trigger Alerts for more info.

runbookUrl string

URL of page to consult when an alert is triggered. This can be used with custom notification messages.

tip string

Plain text suggested first course of action, such as a command line to execute. This can be used with custom notification messages.

detect_label str

A detect label which matches a detect label within program_text.

severity str

The severity of the rule, must be one of: "Critical", "Major", "Minor", "Warning", "Info".

description str

Description for the rule. Displays as the alert condition in the Alert Rules tab of the detector editor in the web UI.

disabled bool

When true, notifications and events will not be generated for the detect label. false by default.

notifications Sequence[str]

List of strings specifying where notifications will be sent when an incident occurs. See Create A Single Detector for more info.

parameterized_body str

Custom notification message body when an alert is triggered. See Set Up Detectors to Trigger Alerts for more info.

parameterized_subject str

Custom notification message subject when an alert is triggered. See Set Up Detectors to Trigger Alerts for more info.

runbook_url str

URL of page to consult when an alert is triggered. This can be used with custom notification messages.

tip str

Plain text suggested first course of action, such as a command line to execute. This can be used with custom notification messages.

detectLabel String

A detect label which matches a detect label within program_text.

severity String

The severity of the rule, must be one of: "Critical", "Major", "Minor", "Warning", "Info".

description String

Description for the rule. Displays as the alert condition in the Alert Rules tab of the detector editor in the web UI.

disabled Boolean

When true, notifications and events will not be generated for the detect label. false by default.

notifications List<String>

List of strings specifying where notifications will be sent when an incident occurs. See Create A Single Detector for more info.

parameterizedBody String

Custom notification message body when an alert is triggered. See Set Up Detectors to Trigger Alerts for more info.

parameterizedSubject String

Custom notification message subject when an alert is triggered. See Set Up Detectors to Trigger Alerts for more info.

runbookUrl String

URL of page to consult when an alert is triggered. This can be used with custom notification messages.

tip String

Plain text suggested first course of action, such as a command line to execute. This can be used with custom notification messages.

DetectorVizOption

Label string

Label used in the publish statement that displays the plot (metric time series data) you want to customize.

Color string

Color to use : gray, blue, azure, navy, brown, orange, yellow, iris, magenta, pink, purple, violet, lilac, emerald, green, aquamarine.

DisplayName string

Specifies an alternate value for the Plot Name column of the Data Table associated with the chart.

ValuePrefix string

, value_suffix - (Optional) Arbitrary prefix/suffix to display with the value of this plot.

Notes

It is highly recommended that you use both max_delay in your detector configuration and an extrapolation policy in your program text to reduce false positives/negatives.

max_delay allows SignalFx to continue with computation if there is a lag in receiving data points.

extrapolation allows you to specify how to handle missing data. An extrapolation policy can be added to individual signals by updating the data block in your program_text.

See Delayed Datapoints for more info.

ValueSuffix string
ValueUnit string

A unit to attach to this plot. Units support automatic scaling (eg thousands of bytes will be displayed as kilobytes). Values values are Bit, Kilobit, Megabit, Gigabit, Terabit, Petabit, Exabit, Zettabit, Yottabit, Byte, Kibibyte, Mebibyte, Gigibyte, Tebibyte, Pebibyte, Exbibyte, Zebibyte, Yobibyte, Nanosecond, Microsecond, Millisecond, Second, Minute, Hour, Day, Week.

Label string

Label used in the publish statement that displays the plot (metric time series data) you want to customize.

Color string

Color to use : gray, blue, azure, navy, brown, orange, yellow, iris, magenta, pink, purple, violet, lilac, emerald, green, aquamarine.

DisplayName string

Specifies an alternate value for the Plot Name column of the Data Table associated with the chart.

ValuePrefix string

, value_suffix - (Optional) Arbitrary prefix/suffix to display with the value of this plot.

Notes

It is highly recommended that you use both max_delay in your detector configuration and an extrapolation policy in your program text to reduce false positives/negatives.

max_delay allows SignalFx to continue with computation if there is a lag in receiving data points.

extrapolation allows you to specify how to handle missing data. An extrapolation policy can be added to individual signals by updating the data block in your program_text.

See Delayed Datapoints for more info.

ValueSuffix string
ValueUnit string

A unit to attach to this plot. Units support automatic scaling (eg thousands of bytes will be displayed as kilobytes). Values values are Bit, Kilobit, Megabit, Gigabit, Terabit, Petabit, Exabit, Zettabit, Yottabit, Byte, Kibibyte, Mebibyte, Gigibyte, Tebibyte, Pebibyte, Exbibyte, Zebibyte, Yobibyte, Nanosecond, Microsecond, Millisecond, Second, Minute, Hour, Day, Week.

label String

Label used in the publish statement that displays the plot (metric time series data) you want to customize.

color String

Color to use : gray, blue, azure, navy, brown, orange, yellow, iris, magenta, pink, purple, violet, lilac, emerald, green, aquamarine.

displayName String

Specifies an alternate value for the Plot Name column of the Data Table associated with the chart.

valuePrefix String

, value_suffix - (Optional) Arbitrary prefix/suffix to display with the value of this plot.

Notes

It is highly recommended that you use both max_delay in your detector configuration and an extrapolation policy in your program text to reduce false positives/negatives.

max_delay allows SignalFx to continue with computation if there is a lag in receiving data points.

extrapolation allows you to specify how to handle missing data. An extrapolation policy can be added to individual signals by updating the data block in your program_text.

See Delayed Datapoints for more info.

valueSuffix String
valueUnit String

A unit to attach to this plot. Units support automatic scaling (eg thousands of bytes will be displayed as kilobytes). Values values are Bit, Kilobit, Megabit, Gigabit, Terabit, Petabit, Exabit, Zettabit, Yottabit, Byte, Kibibyte, Mebibyte, Gigibyte, Tebibyte, Pebibyte, Exbibyte, Zebibyte, Yobibyte, Nanosecond, Microsecond, Millisecond, Second, Minute, Hour, Day, Week.

label string

Label used in the publish statement that displays the plot (metric time series data) you want to customize.

color string

Color to use : gray, blue, azure, navy, brown, orange, yellow, iris, magenta, pink, purple, violet, lilac, emerald, green, aquamarine.

displayName string

Specifies an alternate value for the Plot Name column of the Data Table associated with the chart.

valuePrefix string

, value_suffix - (Optional) Arbitrary prefix/suffix to display with the value of this plot.

Notes

It is highly recommended that you use both max_delay in your detector configuration and an extrapolation policy in your program text to reduce false positives/negatives.

max_delay allows SignalFx to continue with computation if there is a lag in receiving data points.

extrapolation allows you to specify how to handle missing data. An extrapolation policy can be added to individual signals by updating the data block in your program_text.

See Delayed Datapoints for more info.

valueSuffix string
valueUnit string

A unit to attach to this plot. Units support automatic scaling (eg thousands of bytes will be displayed as kilobytes). Values values are Bit, Kilobit, Megabit, Gigabit, Terabit, Petabit, Exabit, Zettabit, Yottabit, Byte, Kibibyte, Mebibyte, Gigibyte, Tebibyte, Pebibyte, Exbibyte, Zebibyte, Yobibyte, Nanosecond, Microsecond, Millisecond, Second, Minute, Hour, Day, Week.

label str

Label used in the publish statement that displays the plot (metric time series data) you want to customize.

color str

Color to use : gray, blue, azure, navy, brown, orange, yellow, iris, magenta, pink, purple, violet, lilac, emerald, green, aquamarine.

display_name str

Specifies an alternate value for the Plot Name column of the Data Table associated with the chart.

value_prefix str

, value_suffix - (Optional) Arbitrary prefix/suffix to display with the value of this plot.

Notes

It is highly recommended that you use both max_delay in your detector configuration and an extrapolation policy in your program text to reduce false positives/negatives.

max_delay allows SignalFx to continue with computation if there is a lag in receiving data points.

extrapolation allows you to specify how to handle missing data. An extrapolation policy can be added to individual signals by updating the data block in your program_text.

See Delayed Datapoints for more info.

value_suffix str
value_unit str

A unit to attach to this plot. Units support automatic scaling (eg thousands of bytes will be displayed as kilobytes). Values values are Bit, Kilobit, Megabit, Gigabit, Terabit, Petabit, Exabit, Zettabit, Yottabit, Byte, Kibibyte, Mebibyte, Gigibyte, Tebibyte, Pebibyte, Exbibyte, Zebibyte, Yobibyte, Nanosecond, Microsecond, Millisecond, Second, Minute, Hour, Day, Week.

label String

Label used in the publish statement that displays the plot (metric time series data) you want to customize.

color String

Color to use : gray, blue, azure, navy, brown, orange, yellow, iris, magenta, pink, purple, violet, lilac, emerald, green, aquamarine.

displayName String

Specifies an alternate value for the Plot Name column of the Data Table associated with the chart.

valuePrefix String

, value_suffix - (Optional) Arbitrary prefix/suffix to display with the value of this plot.

Notes

It is highly recommended that you use both max_delay in your detector configuration and an extrapolation policy in your program text to reduce false positives/negatives.

max_delay allows SignalFx to continue with computation if there is a lag in receiving data points.

extrapolation allows you to specify how to handle missing data. An extrapolation policy can be added to individual signals by updating the data block in your program_text.

See Delayed Datapoints for more info.

valueSuffix String
valueUnit String

A unit to attach to this plot. Units support automatic scaling (eg thousands of bytes will be displayed as kilobytes). Values values are Bit, Kilobit, Megabit, Gigabit, Terabit, Petabit, Exabit, Zettabit, Yottabit, Byte, Kibibyte, Mebibyte, Gigibyte, Tebibyte, Pebibyte, Exbibyte, Zebibyte, Yobibyte, Nanosecond, Microsecond, Millisecond, Second, Minute, Hour, Day, Week.

Import

Detectors can be imported using their string ID (recoverable from URL/#/detector/v2/abc123/edit, e.g.

 $ pulumi import signalfx:index/detector:Detector application_delay abc123

Package Details

Repository
SignalFx pulumi/pulumi-signalfx
License
Apache-2.0
Notes

This Pulumi package is based on the signalfx Terraform Provider.