DataCollector sensor settings - SoftFx/Hierarchical-Sensor-Monitoring GitHub Wiki

Instant sensor

Full setup example for a instant sensor

var collector = new DataCollector(productKey);

var sensorOptions = new InstantSensorOptions()
{
    Description = "tests",
    SensorUnit = Unit.KB,

    KeepHistory = TimeSpan.FromDays(31),
    SelfDestroy = TimeSpan.FromDays(31),

    EnableForGrafana = true,
    AggregateData = true,

    TtlAlert = AlertFactory.IfInactivityPeriodIs(TimeSpan.FromMinutes(15)).ThenSetIcon("🎃").AndNotify("Time is over").Build(),

    Alerts = new List<InstantAlertTemplate>
    {
        AlertFactory.IfValue(AlertOperation.GreaterThan, 5).ThenNotify("$product $path test").AndSetIcon("🤣").AndSetSensorError().Build(),
        AlertFactory.IfComment(AlertOperation.IsChanged).ThenNotify("$product $path comment is changed").AndSetIcon("🎃").BuildAndDisable(),

        AlertFactory.IfValue(AlertOperation.GreaterThan, 5).AndValue(AlertOperation.LessThanOrEqual, 20).ThenSetIcon("Sds").BuildAndDisable(),
    }
};

var sensor = collector.CreateDoubleSensor("testSettings/testAlerts22222", sensorOptions);

await collector.Start();

or just set a description of a sensor

var collector = new DataCollector(productKey);

var sensor = collector.CreateDoubleSensor("testSettings/testAlerts22222", "test description");

await collector.Start();

Bar sensor

Full setup example for a bar sensor

var collector = new DataCollector(productKey);

var sensorOptions = new BarSensorOptions()
{
    Description = "tests",
    SensorUnit = Unit.MB,

    PostDataPeriod = TimeSpan.FromSeconds(15), // how often to send the current bar
    BarTickPeriod = TimeSpan.FromSeconds(5), // how often to update the value of the current bar
    BarPeriod = TimeSpan.FromMinutes(5), // timeframe of the current bar

    KeepHistory = TimeSpan.FromDays(31),
    SelfDestroy = TimeSpan.FromDays(31),

    EnableForGrafana = true,
    AggregateData = true,

    TtlAlert = AlertFactory.IfInactivityPeriodIs(TimeSpan.FromMinutes(15)).ThenSetIcon("🎃").AndNotify("Time is over").Build(),

    Alerts = new List<BarAlertTemplate>
    {
        AlertFactory.IfMean(AlertOperation.GreaterThan, 5).ThenNotify("$product $path test").AndSetIcon("🤣").AndSetSensorError().Build(),
        AlertFactory.IfBarComment(AlertOperation.IsChanged).ThenNotify("$product $path comment is changed").AndSetIcon("🎃").BuildAndDisable(),

        AlertFactory.IfMax(AlertOperation.GreaterThan, 5).AndMax(AlertOperation.LessThanOrEqual, 20).ThenSetIcon("Sds").BuildAndDisable(),
    }
};

var barSensor = collector.CreateIntBarSensor("testSettings/testAlerts22222", sensorOptions);

await collector.Start();

or just set a description of a sensor

var collector = new DataCollector(productKey);

var barSensor = collector.Create10MinIntBarSensor("testSettings/testAlerts22222", "test description");

await collector.Start();