1. Packages
  2. Chronosphere
Chronosphere v0.9.10 published on Thursday, Oct 23, 2025 by Chronosphere

Chronosphere

chronosphere logo
Chronosphere v0.9.10 published on Thursday, Oct 23, 2025 by Chronosphere
    Meet Neo: Your AI Platform Teammate

    The Chronosphere Pulumi Provider allows Pulumi to manage supported Chronosphere resources.

    Example

    import * as pulumi from "@pulumi/pulumi";
    import * as chronosphere from "@pulumi-chronosphere/pulumi-chronosphere";
    
    let testTeam = new chronosphere.Team("testTeam", {
      name: "Pulumi Test Team",
      slug: "pulumi-test-team",
    });
    
    let testNotifier = new chronosphere.EmailAlertNotifier("testNotifier", {
      name: "Pulumi Test Notifier",
      slug: "pulumi-test-notifier",
      to: "blackhole@example.com",
    });
    
    let testNotificationPolicy = new chronosphere.NotificationPolicy(
      "testNotificationPolicy",
      {
        name: "Pulumi Test Notification Policy",
        slug: "pulumi-test-notification-policy",
        teamId: testTeam.id,
        routes: [
          {
            severity: "warn",
            notifiers: [testNotifier.slug],
          },
        ],
      }
    );
    
    let testCollection = new chronosphere.Collection("testCollection", {
      name: "Pulumi Test Collection",
      slug: "pulumi-test-collection",
      teamId: testTeam.id,
      notificationPolicyId: testNotificationPolicy.id,
    });
    
    let testMonitor = new chronosphere.Monitor("testMonitor", {
      name: "Pulumi Test Monitor",
      slug: "pulumi-test-monitor",
      collectionId: testCollection.id,
      query: {
        prometheusExpr: 'chrono_test_metric{job="chrono_test_job"}',
      },
      seriesConditions: {
        conditions: [
          {
            op: "GT",
            value: 1000,
            severity: "critical",
            sustain: "10h",
          },
        ],
      },
    });
    
    export const teamSlug = testTeam.slug;
    export const monitorSlug = testMonitor.slug;
    
    team = chronosphere.Team("testTeam",
        name="Pulumi Test Team",
        slug="pulumi-test-team",
    )
    
    notifier = chronosphere.EmailAlertNotifier("testNotifier",
        name="Pulumi Test Notifier",
        slug="pulumi-test-notifier",
        to="blackhole@example.com",
    )
    
    notification_policy = chronosphere.NotificationPolicy("testNotificationPolicy",
        name="Pulumi Test Notification Policy",
        slug="pulumi-test-notification-policy",
        team_id=team.id,
        routes=[{
            "severity": "warn",
            "notifiers": [notifier.slug],
        }],
    )
    
    collection = chronosphere.Collection("testCollection",
        name="Pulumi Test Collection",
        slug="pulumi-test-collection",
        team_id=team.id,
        notification_policy_id=notification_policy.id,
    )
    
    monitor = chronosphere.Monitor("testMonitor",
        name="Pulumi Test Monitor",
        slug="pulumi-test-monitor",
        collection_id=collection.id,
        query={
            "prometheus_expr": 'chrono_test_metric{job="chrono_test_job"}',
        },
        series_conditions={
            "conditions": [{
                "op": "GT",
                "value": 1000,
                "severity": "critical",
                "sustain": "10h",
            }],
        },
    )
    
    package main
    
    import (
    	"log"
    
    	"github.com/chronosphereio/pulumi-chronosphere/sdk/go/chronosphere"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		team, err := chronosphere.NewTeam(ctx, "example-team", &chronosphere.TeamArgs{
    			Name: pulumi.String("Pulumi Test Team"),
    			Slug: pulumi.String("pulumi-test-team"),
    		})
    		if err != nil {
    			log.Fatal(err)
    		}
    
    		testNotifier, err := chronosphere.NewEmailAlertNotifier(ctx, "testNotifier", &chronosphere.EmailAlertNotifierArgs{
    			Name: pulumi.String("Pulumi Test Notifier"),
    			Slug: pulumi.String("pulumi-test-notifier"),
    			To:   pulumi.String("blackhole@example.com"),
    		})
    		if err != nil {
    			log.Fatal(err)
    		}
    
    		testNotificationPolicy, err := chronosphere.NewNotificationPolicy(ctx, "testNotificationPolicy", &chronosphere.NotificationPolicyArgs{
    			Name:   pulumi.String("Pulumi Test Notification Policy"),
    			Slug:   pulumi.String("pulumi-test-notification-policy"),
    			TeamId: team.ID(),
    			Routes: chronosphere.NotificationPolicyRouteArray{
    				&chronosphere.NotificationPolicyRouteArgs{
    					Severity:  pulumi.String("warn"),
    					Notifiers: pulumi.StringArray{testNotifier.Slug},
    				},
    			},
    		})
    		if err != nil {
    			log.Fatal(err)
    		}
    
    		testCollection, err := chronosphere.NewCollection(ctx, "testCollection", &chronosphere.CollectionArgs{
    			Name:                 pulumi.String("Pulumi Test Collection"),
    			Slug:                 pulumi.String("pulumi-test-collection"),
    			TeamId:               team.ID(),
    			NotificationPolicyId: testNotificationPolicy.ID(),
    		})
    		if err != nil {
    			log.Fatal(err)
    		}
    
    		testMonitor, err := chronosphere.NewMonitor(ctx, "testMonitor", &chronosphere.MonitorArgs{
    			Name:         pulumi.String("Pulumi Test Monitor"),
    			Slug:         pulumi.String("pulumi-test-monitor"),
    			CollectionId: testCollection.ID(),
    			Query: &chronosphere.MonitorQueryArgs{
    				PrometheusExpr: pulumi.String(`chrono_test_metric{job="chrono_test_job"}`),
    			},
    			SeriesConditions: &chronosphere.MonitorSeriesConditionsArgs{
    				Conditions: chronosphere.MonitorSeriesConditionsConditionArray{
    					&chronosphere.MonitorSeriesConditionsConditionArgs{
    						Op:       pulumi.String("GT"),
    						Value:    pulumi.Float64(1000),
    						Severity: pulumi.String("critical"),
    						Sustain:  pulumi.String("10h"),
    					},
    				},
    			},
    		})
    		if err != nil {
    			log.Fatal(err)
    		}
    
    		ctx.Export("teamSlug", team.Slug)
    		ctx.Export("monitorSlug", testMonitor.Slug)
    
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Security.Cryptography.X509Certificates;
    using Chronosphere.Pulumi.Chronosphere;
    using Chronosphere.Pulumi.Chronosphere.Inputs;
    using Pulumi;
    
    return await Deployment.RunAsync(() =>
    {
        var team = new Team("testTeam", new TeamArgs
        {
            Name = "Pulumi Test Team",
            Slug = "pulumi-test-team",
        });
    
        var notifier = new EmailAlertNotifier("testNotifier", new EmailAlertNotifierArgs
        {
            Name = "Pulumi Test Notifier",
            Slug = "pulumi-test-notifier",
            To = "blackhole@example.com",
        });
    
        var notificationPolicy = new NotificationPolicy("testNotificationPolicy", new NotificationPolicyArgs
        {
            Name = "Pulumi Test Notification Policy",
            Slug = "pulumi-test-notification-policy",
            TeamId = team.Id,
            Routes = new[]
            {
                new NotificationPolicyRouteArgs
                {
                    Severity = "warn",
                    Notifiers = new[] { notifier.Slug },
                },
            },
        });
    
        var collection = new Collection("testCollection", new CollectionArgs
        {
            Name = "Pulumi Test Collection",
            Slug = "pulumi-test-collection",
            TeamId = team.Id,
            NotificationPolicyId = notificationPolicy.Id,
        });
    
        var monitor = new Chronosphere.Pulumi.Chronosphere.Monitor("testMonitor", new MonitorArgs
        {
            Name = "Pulumi Test Monitor",
            Slug = "pulumi-test-monitor",
            CollectionId = collection.Id,
            Query = new MonitorQueryArgs
            {
                PrometheusExpr = "chrono_test_metric{job=\"chrono_test_job\"}",
            },
            SeriesConditions = new MonitorSeriesConditionsArgs
            {
                Conditions = new[]
                {
                    new MonitorSeriesConditionsConditionArgs
                    {
                        Op = "GT",
                        Value = 1000,
                        Severity = "critical",
                        Sustain = "10h",
                    },
                },
            },
        });
    
        return new Dictionary<string, object?>
        {
            ["monitorSlug"] = monitor.Slug,
        };
    });
    
    chronosphere logo
    Chronosphere v0.9.10 published on Thursday, Oct 23, 2025 by Chronosphere
      Meet Neo: Your AI Platform Teammate