I have a tick task that monitors memory usage by host. 

If said tick script groups by the "host" tag, then then creates a window, 
alert chain.

My understanding is that it will create a unique chain for each "host".

-Will that chain remain in existence forever? I.e. hosts come and go and 
are named dynamically.
-Will I have memory and threading issues, when I have 20K hosts?
-Is there a better way to handle this.

Tick script is as follows:

//This task will check to see if the average memory usage is above a 
threshold for a period of 2 minute,
//indicating that a host has memory issues.

var data = stream
    |from()
        .database(database)
        .retentionPolicy(retention_policy)
        .measurement('mem')
        .groupBy('host')
    |where(lambda: "deployment" == deployment)
    //|log() //Uncomment to debug

//Criteria Check
data
    |window()
        .period(memory_used_window_period)
        .every(memory_used_window_every)
    |mean('used_percent')
        .as('_value')
    //Slack
    |alert()
        .stateChangesOnly()
        .message('\'{{.TaskName}}\' --> \'{{ .Level }}\'
            Host \'{{ index .Tags "host" }}\'
            Used memory percentage is at {{ index .Fields "_value" | printf 
"%0.2f" }}% -- Expecting < {{ if eq .Level "CRITICAL" }}' + 
string(memory_used_critical_level) + '{{ else }}' + 
string(memory_used_warn_level) + '{{ end }}%')
        .warn(lambda: "_value" > memory_used_warn_level)
        .crit(lambda: "_value" > memory_used_critical_level)
        .slack()
          .channel(slack_channel)

    //OpsGenie
    |alert()
        .stateChangesOnly()
        .message('\'{{.TaskName}}\' --> \'{{ .Level }}\'
            Host \'{{ index .Tags "host" }}\'
            Used memory percentage is at {{ index .Fields "_value" | printf 
"%0.2f" }}% -- Expecting < {{ if eq .Level "CRITICAL" }}' + 
string(memory_used_critical_level) + '{{ else }}' + 
string(memory_used_warn_level) + '{{ end }}%')
        .crit(lambda: "_value" > memory_used_critical_level AND callout == 
TRUE)
        .slack()
          .channel(slack_channel)
        .opsGenie()
             .teams(opsgenie_team)
             .recipients([ opsgenie_recipients ])

-- 
Remember to include the version number!
--- 
You received this message because you are subscribed to the Google Groups 
"InfluxData" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/influxdb.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/influxdb/aa34e02d-1929-4529-9af4-1ae81005e5dd%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to