āĻ•ā§āĻ¯āĻžāĻĒāĻžāĻ¸āĻŋāĻŸāĻ°ā§‡ āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖā§‡āĻ° āĻ•ā§ŒāĻļāĻ˛

āĻ¸āĻŽā§āĻ­āĻŦāĻ¤, āĻ†āĻœ āĻ•ā§‡āĻ‰ āĻœāĻŋāĻœā§āĻžāĻžāĻ¸āĻž āĻ•āĻ°ā§‡ āĻ¨āĻž āĻ•ā§‡āĻ¨ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ•āĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨āĨ¤ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ¯ā§ŒāĻ•ā§āĻ¤āĻŋāĻ• āĻĒāĻĻāĻ•ā§āĻˇā§‡āĻĒ āĻšāĻ˛ āĻ¸āĻ‚āĻ—ā§ƒāĻšā§€āĻ¤ āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻž, āĻ¯āĻž āĻ†āĻĒāĻ¨āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ• āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ā§‡ (āĻŽā§‡āĻ˛, āĻ¸ā§āĻ˛ā§āĻ¯āĻžāĻ•, āĻŸā§‡āĻ˛āĻŋāĻ—ā§āĻ°āĻžāĻŽ) āĻĄā§‡āĻŸāĻžāĻ¤ā§‡ āĻ•ā§‹āĻ¨ā§‹ āĻŦāĻŋāĻšā§āĻ¯ā§āĻ¤āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ…āĻŦāĻšāĻŋāĻ¤ āĻ•āĻ°āĻŦā§‡āĨ¤ āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨ āĻšā§‹āĻŸā§‡āĻ˛ āĻŦā§āĻ•āĻŋāĻ‚ āĻ¸ā§‡āĻŦāĻž Ostrovok.ru āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ InfluxDB-āĻ¤ā§‡ āĻĸā§‡āĻ˛ā§‡ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ Grafana-āĻ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻŽā§ŒāĻ˛āĻŋāĻ• āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻžāĻ“ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ "āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ•āĻŋāĻ›ā§ āĻ—āĻŖāĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¤ā§āĻ˛āĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡" āĻāĻ° āĻŽāĻ¤ā§‹ āĻ•āĻžāĻœā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻŽāĻ°āĻž āĻ•ā§āĻ¯āĻžāĻĒāĻžāĻ¸āĻŋāĻŸāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŋāĨ¤

āĻ•ā§āĻ¯āĻžāĻĒāĻžāĻ¸āĻŋāĻŸāĻ°ā§‡ āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖā§‡āĻ° āĻ•ā§ŒāĻļāĻ˛
Kapacitor āĻšāĻ˛ TICK āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ•ā§‡āĻ° āĻ…āĻ‚āĻļ āĻ¯āĻž InfluxDB āĻĨā§‡āĻ•ā§‡ āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻāĻŸāĻŋ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻāĻ•āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ (āĻ¯ā§‹āĻ—āĻĻāĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡), āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻĄā§‡āĻŸāĻž āĻĨā§‡āĻ•ā§‡ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻ•āĻŋāĻ›ā§ āĻ—āĻŖāĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻĢāĻ˛āĻžāĻĢāĻ˛āĻŸāĻŋ InfluxDB-āĻ¤ā§‡ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, Slack/Telegram/mail āĻ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž āĻĒāĻžāĻ āĻžāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ• āĻļāĻžāĻ¨ā§āĻ¤ āĻāĻŦāĻ‚ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻœāĻŋāĻ¨āĻŋāĻ¸ āĻĨāĻžāĻ•āĻŦā§‡ āĻ¯āĻž āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ¸ā§āĻĒāĻˇā§āĻŸāĻ­āĻžāĻŦā§‡ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻŋāĻ¤ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡, āĻ†āĻŽāĻŋ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻŦā§‡āĻļ āĻ•āĻŋāĻ›ā§ āĻĻāĻ°āĻ•āĻžāĻ°ā§€, āĻ…-āĻ¸ā§āĻĒāĻˇā§āĻŸ āĻŸāĻŋāĻĒāĻ¸ āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ•āĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§‡āĻ›āĻŋ (TICKscipt-āĻāĻ° āĻŽā§ŒāĻ˛āĻŋāĻ• āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻ–āĻžāĻ¨ā§‡) āĻāĻŦāĻ‚ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¤āĻž āĻĻā§‡āĻ–āĻžāĻ¨āĨ¤

āĻšāĻ˛ āĻ¯āĻžāĻ‡!

float & int, āĻ—āĻŖāĻ¨āĻžāĻ° āĻ¤ā§āĻ°ā§āĻŸāĻŋ

āĻāĻ•āĻŸāĻŋ āĻāĻ•ā§‡āĻŦāĻžāĻ°ā§‡ āĻŽāĻžāĻ¨āĻ• āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž, āĻŦāĻ°ā§āĻŖā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡:

var alert_float = 5.0
var alert_int = 10
data|eval(lambda: float("value") > alert_float OR float("value") < float("alert_int"))

āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡()

āĻ¯āĻĻāĻŋ āĻāĻ•āĻŸāĻŋ āĻŸā§āĻ¯āĻžāĻ—/āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ° āĻĒā§‚āĻ°āĻŖ āĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ—āĻŖāĻ¨āĻžāĻ° āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻ˜āĻŸāĻŦā§‡:

|default()
        .tag('status', 'empty')
        .field('value', 0)

āĻ¯ā§‹āĻ—āĻĻāĻžāĻ¨ āĻĒā§‚āĻ°āĻŖ āĻ•āĻ°ā§āĻ¨ (āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ āĻŦāĻ¨āĻžāĻŽ āĻŦāĻžāĻ‡āĻ°ā§‡āĻ°)

āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡, āĻ¯ā§‹āĻ—āĻĻāĻžāĻ¨ āĻāĻŽāĻ¨ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻ—ā§āĻ˛āĻŋ āĻŦāĻžāĻ¤āĻŋāĻ˛ āĻ•āĻ°āĻŦā§‡ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ•ā§‹āĻ¨āĻ“ āĻĄā§‡āĻŸāĻž āĻ¨ā§‡āĻ‡ (āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ)āĨ¤
fill('null') āĻĻāĻŋāĻ¯āĻŧā§‡, āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ‡āĻ°ā§‡āĻ° āĻ¯ā§‹āĻ—āĻĻāĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻŦā§‡, āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ() āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻ–āĻžāĻ˛āĻŋ āĻŽāĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻĒā§‚āĻ°āĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡:

var data = res1
    |join(res2)
        .as('res1', 'res2)
        .fill('null')
    |default()
        .field('res1.value', 0.0)
        .field('res2.value', 100.0)

āĻāĻ–āĻžāĻ¨ā§‡ āĻāĻ–āĻ¨āĻ“ āĻāĻ•āĻŸāĻŋ nuance āĻ†āĻ›ā§‡. āĻ‰āĻĒāĻ°ā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡, āĻ¯āĻĻāĻŋ āĻ¸āĻŋāĻ°āĻŋāĻœā§‡āĻ° āĻāĻ•āĻŸāĻŋ (res1 āĻŦāĻž res2) āĻ–āĻžāĻ˛āĻŋ āĻĨāĻžāĻ•ā§‡, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ āĻ¸āĻŋāĻ°āĻŋāĻœ (āĻĄā§‡āĻŸāĻž)āĻ“ āĻ–āĻžāĻ˛āĻŋ āĻĨāĻžāĻ•āĻŦā§‡āĨ¤ āĻ—āĻŋāĻĨā§āĻŦā§‡ āĻāĻ‡ āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻŸāĻŋāĻ•āĻŋāĻŸ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ (1633, 1871, 6967) – āĻ†āĻŽāĻ°āĻž āĻ¸āĻ‚āĻļā§‹āĻ§āĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻ›āĻŋ āĻāĻŦāĻ‚ āĻāĻ•āĻŸā§ āĻ•āĻˇā§āĻŸ āĻ•āĻ°āĻ›āĻŋāĨ¤

āĻ—āĻŖāĻ¨āĻžāĻ¯āĻŧ āĻļāĻ°ā§āĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž (āĻ¯āĻĻāĻŋ āĻ˛ā§āĻ¯āĻžāĻŽā§āĻŦāĻĄāĻžāĻ¯āĻŧ āĻĨāĻžāĻ•ā§‡)

|eval(lambda: if("value" > 0, true, false)

āĻĒāĻŋāĻ°āĻŋāĻ¯āĻŧāĻĄā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ āĻĨā§‡āĻ•ā§‡ āĻļā§‡āĻˇ āĻĒāĻžāĻāĻš āĻŽāĻŋāĻ¨āĻŋāĻŸ

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ†āĻ—ā§‡āĻ° āĻ¸āĻĒā§āĻ¤āĻžāĻšā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻļā§‡āĻˇ āĻĒāĻžāĻāĻš āĻŽāĻŋāĻ¨āĻŋāĻŸā§‡āĻ° āĻŽāĻžāĻ¨ āĻ¤ā§āĻ˛āĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻĻā§āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻŦā§āĻ¯āĻžāĻšā§‡ āĻĄā§‡āĻŸāĻžāĻ° āĻĻā§āĻŸāĻŋ āĻŦā§āĻ¯āĻžāĻš āĻ¨āĻŋāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻŦāĻž āĻāĻ•āĻŸāĻŋ āĻŦāĻĄāĻŧ āĻ¸āĻŽāĻ¯āĻŧ āĻĨā§‡āĻ•ā§‡ āĻĄā§‡āĻŸāĻžāĻ° āĻ…āĻ‚āĻļ āĻŦā§‡āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨:

 |where(lambda: duration((unixNano(now()) - unixNano("time"))/1000, 1u) < 5m)

āĻļā§‡āĻˇ āĻĒāĻžāĻāĻš āĻŽāĻŋāĻ¨āĻŋāĻŸā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻŦā§āĻ¯āĻžāĻ°āĻŋāĻ¯āĻŧāĻžāĻ°āĻ¨ā§‹āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻŦā§‡, āĻ¯āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻ†āĻ—ā§‡ āĻĄā§‡āĻŸāĻž āĻ•ā§‡āĻŸā§‡ āĻĻā§‡āĻ¯āĻŧ:

|barrier()
        .period(5m)

āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ¯āĻŧ Go āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ

āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻĨā§‡āĻ•ā§‡ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻŽāĻŋāĻ˛ā§‡ āĻ¯āĻžāĻ¯āĻŧ text.templateāĻ¨ā§€āĻšā§‡ āĻ•āĻŋāĻ›ā§ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻ¸āĻŽā§āĻŽā§āĻ–ā§€āĻ¨ āĻ§āĻžāĻāĻ§āĻž āĻ†āĻ›ā§‡.

āĻ…āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ āĻ¯āĻĻāĻŋ

āĻ†āĻŽāĻ°āĻž āĻœāĻŋāĻ¨āĻŋāĻ¸āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸āĻžāĻœāĻŋāĻ¯āĻŧā§‡ āĻ°āĻžāĻ–āĻŋ āĻāĻŦāĻ‚ āĻŸā§‡āĻ•ā§āĻ¸āĻŸ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ˛ā§‹āĻ•ā§‡āĻĻā§‡āĻ° āĻ†āĻŦāĻžāĻ° āĻŸā§āĻ°āĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻŋ āĻ¨āĻž:

|alert()
    ...
    .message(
        '{{ if eq .Level "OK" }}It is ok now{{ else }}Chief, everything is broken{{end}}'
    )

āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ¯āĻŧ āĻĻāĻļāĻŽāĻŋāĻ• āĻŦāĻŋāĻ¨ā§āĻĻā§āĻ° āĻĒāĻ° āĻĻā§āĻŸāĻŋ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž

āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ° āĻĒāĻ āĻ¨āĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻ°āĻž:

|alert()
    ...
    .message(
        'now value is {{ index .Fields "value" | printf "%0.2f" }}'
    )

āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ¯āĻŧ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°āĻž

"āĻ•ā§‡āĻ¨ āĻšāĻŋā§ŽāĻ•āĻžāĻ° āĻ•āĻ°āĻ›ā§‡" āĻĒā§āĻ°āĻļā§āĻ¨ā§‡āĻ° āĻ‰āĻ¤ā§āĻ¤āĻ° āĻĻāĻŋāĻ¤ā§‡ āĻ†āĻŽāĻ°āĻž āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ¯āĻŧ āĻ†āĻ°āĻ“ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻ•āĻ°āĻŋ?

var warnAlert = 10
  |alert()
    ...
    .message(
       'Today value less then '+string(warnAlert)+'%'
    )

āĻ…āĻ¨āĻ¨ā§āĻ¯ āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž āĻļāĻ¨āĻžāĻ•ā§āĻ¤āĻ•āĻžāĻ°ā§€

āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻœāĻŋāĻ¨āĻŋāĻ¸ āĻ¯āĻ–āĻ¨ āĻĄā§‡āĻŸāĻžāĻ¤ā§‡ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ—ā§āĻ°ā§āĻĒ āĻĨāĻžāĻ•ā§‡, āĻ…āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻŦā§‡:

|alert()
      ...
      .id('{{ index .Tags "myname" }}/{{ index .Tags "myfield" }}')

āĻ•āĻžāĻ¸ā§āĻŸāĻŽ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ° āĻāĻ°

āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°ā§‡āĻ° āĻŦā§ƒāĻšā§Ž āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ¯āĻŧ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ exec, āĻ¯āĻž āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻĒāĻžāĻ¸ āĻ•āĻ°āĻž āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° (stdin) āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ - āĻ¸ā§ƒāĻœāĻ¨āĻļā§€āĻ˛āĻ¤āĻž āĻāĻŦāĻ‚ āĻāĻ° āĻŦā§‡āĻļāĻŋ āĻ•āĻŋāĻ›ā§ āĻ¨āĻ¯āĻŧ!

āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻžāĻ¸ā§āĻŸāĻŽāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻšāĻ˛ āĻ¸ā§āĻ˛ā§āĻ¯āĻžāĻ•ā§‡ āĻŦāĻŋāĻœā§āĻžāĻĒā§āĻ¤āĻŋ āĻĒāĻžāĻ āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ›ā§‹āĻŸ āĻĒāĻžāĻ‡āĻĨāĻ¨ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸāĨ¤
āĻĒā§āĻ°āĻĨāĻŽā§‡, āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ¯āĻŧ āĻāĻ•āĻŸāĻŋ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨-āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻŋāĻ¤ āĻ—ā§āĻ°āĻžāĻĢāĻ¨āĻž āĻ›āĻŦāĻŋ āĻĒāĻžāĻ āĻžāĻ¤ā§‡ āĻšā§‡āĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĻžāĻŽāĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡, āĻāĻ•āĻ‡ āĻ—ā§āĻ°ā§āĻĒā§‡āĻ° āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§€ āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻžāĻ¯āĻŧ āĻĨā§āĻ°ā§‡āĻĄā§‡ āĻ āĻŋāĻ• āĻ†āĻ›ā§‡ āĻ˛āĻŋāĻ–ā§āĻ¨, āĻ†āĻ˛āĻžāĻĻāĻž āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻ•āĻŸā§ āĻĒāĻ°ā§‡ - āĻļā§‡āĻˇ X āĻŽāĻŋāĻ¨āĻŋāĻŸā§‡āĻ° āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ­ā§āĻ˛ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻŸāĻŋāĻ¤ā§‡ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨āĨ¤

āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻšāĻ˛ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸ā§‚āĻšāĻŋāĻ¤ āĻ¯ā§‡ āĻ•ā§‹āĻ¨āĻ“ āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ˛āĻžāĻĒ (āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻ¯āĻĨā§‡āĻˇā§āĻŸ āĻ­āĻžāĻ˛ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡)āĨ¤
āĻāĻ•āĻŸāĻŋ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ° āĻŦāĻŋāĻŦāĻ°āĻŖā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ slack_handler.py āĻšāĻ˛ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸ā§āĻŦ-āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ:

topic: slack_graph
id: slack_graph.alert
match: level() != INFO AND changed() == TRUE
kind: exec
options:
  prog: /sbin/slack_handler.py
  args: ["-c", "CHANNELID", "--graph", "--search"]

āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻĄāĻŋāĻŦāĻžāĻ— āĻ•āĻ°āĻŦā§‡āĻ¨?

āĻ˛āĻ— āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻ¸āĻš āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ

|log()
      .level("error")
      .prefix("something")

āĻ˜āĻĄāĻŧāĻŋ (cli): kapacitor -url āĻšā§‹āĻ¸ā§āĻŸ-āĻŦāĻž-āĻ†āĻ‡āĻĒāĻŋ:9092 āĻ˛āĻ— lvl=āĻ¤ā§āĻ°ā§āĻŸāĻŋ

httpOut āĻ¸āĻš āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ

āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ā§‡ āĻĄā§‡āĻŸāĻž āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ:

|httpOut('something')

āĻĻā§‡āĻ–ā§āĻ¨ (āĻĒāĻžāĻ¨): āĻšā§‹āĻ¸ā§āĻŸ-āĻŦāĻž-āĻ†āĻ‡āĻĒāĻŋ:9092/kapacitor/v1/tasks/task_name/something

āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻļāĻ¨ āĻ¸ā§āĻ•āĻŋāĻŽ

  • āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻŸāĻžāĻ¸ā§āĻ• āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻŸā§‡ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻļāĻ¨ āĻŸā§āĻ°āĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡ āĻ—ā§āĻ°āĻžāĻĢāĻ­āĻŋāĻœ.
  • āĻāĻ•āĻŸāĻŋ āĻŦā§āĻ˛āĻ• āĻ¨āĻŋāĻ¨ āĻĄāĻŸ.
  • āĻ­āĻŋāĻ‰āĻ¯āĻŧāĻžāĻ°ā§‡ āĻĒā§‡āĻ¸ā§āĻŸ āĻ•āĻ°ā§āĻ¨, āĻ‰āĻĒāĻ­ā§‹āĻ—.

āĻ†āĻ° āĻ•ā§‹āĻĨāĻžāĻ¯āĻŧ āĻ°ā§‡āĻ• āĻĒā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨?

āĻ°āĻžāĻ‡āĻŸāĻŦā§āĻ¯āĻžāĻ•ā§‡ āĻ‡āĻ¨āĻĢā§āĻ˛āĻžāĻ•ā§āĻ¸āĻĄāĻŋāĻŦāĻŋāĻ¤ā§‡ āĻŸāĻžāĻ‡āĻŽāĻ¸ā§āĻŸā§āĻ¯āĻžāĻŽā§āĻĒ

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋ āĻ˜āĻ¨ā§āĻŸāĻžāĻ¯āĻŧ (groupBy(1h)) āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻ¯ā§‹āĻ—āĻĢāĻ˛ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻŋ āĻāĻŦāĻ‚ influxdb-āĻ āĻ¸āĻ‚āĻ˜āĻŸāĻŋāĻ¤ āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻžāĻŸāĻŋ āĻ°ā§‡āĻ•āĻ°ā§āĻĄ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ‡ (āĻ—ā§āĻ°āĻžāĻĢāĻ¨āĻžāĻ° āĻ—ā§āĻ°āĻžāĻĢā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻŸāĻŋāĻ° āĻ¸āĻ¤ā§āĻ¯āĻ¤āĻž āĻ¸ā§āĻ¨ā§āĻĻāĻ°āĻ­āĻžāĻŦā§‡ āĻĻā§‡āĻ–āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯)āĨ¤

influxDBOut() āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž āĻĨā§‡āĻ•ā§‡ āĻŸāĻžāĻ‡āĻŽāĻ¸ā§āĻŸā§āĻ¯āĻžāĻŽā§āĻĒā§‡ āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻŽāĻžāĻ¨ āĻ˛āĻŋāĻ–āĻŦā§‡; āĻ¸ā§‡āĻ‡ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€, āĻšāĻžāĻ°ā§āĻŸā§‡āĻ° āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻŸāĻŋ āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž āĻ†āĻ¸āĻžāĻ° āĻ†āĻ—ā§‡/āĻĒāĻ°ā§‡ āĻ˛ā§‡āĻ–āĻž āĻšāĻŦā§‡āĨ¤

āĻ¯āĻ–āĻ¨ āĻ¨āĻŋāĻ°ā§āĻ­ā§āĻ˛āĻ¤āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻ¯āĻŧ: āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻ¸ā§āĻŸāĻŽ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°āĻ•ā§‡ āĻ•āĻ˛ āĻ•āĻ°ā§‡ āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻŋ, āĻ¯āĻž āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻŸāĻžāĻ‡āĻŽāĻ¸ā§āĻŸā§āĻ¯āĻžāĻŽā§āĻĒā§‡āĻ° āĻ¸āĻžāĻĨā§‡ influxdb-āĻ āĻĄā§‡āĻŸāĻž āĻ˛āĻŋāĻ–āĻŦā§‡āĨ¤

āĻĄāĻ•āĻžāĻ°, āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻŦāĻ‚ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž

āĻ¸ā§āĻŸāĻžāĻ°ā§āĻŸāĻ†āĻĒā§‡, āĻ•ā§āĻ¯āĻžāĻĒāĻžāĻ¸āĻŋāĻŸāĻ° [āĻ˛ā§‹āĻĄ] āĻŦā§āĻ˛āĻ•ā§‡āĻ° āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻž āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻĨā§‡āĻ•ā§‡ āĻ•āĻžāĻœ, āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸ āĻāĻŦāĻ‚ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ° āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻ¸āĻ āĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻāĻ•āĻŸāĻŋ āĻŸāĻžāĻ¸ā§āĻ• āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡, āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻœāĻŋāĻ¨āĻŋāĻ¸āĻ—ā§āĻ˛āĻŋāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨:

  1. āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ - āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ†āĻ‡āĻĄāĻŋ/āĻ¨āĻžāĻŽā§‡ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤
  2. āĻĒā§āĻ°āĻ•āĻžāĻ° - āĻ¸ā§āĻŸā§āĻ°āĻŋāĻŽ/āĻŦā§āĻ¯āĻžāĻš
  3. dbrp – āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ•ā§‹āĻ¨ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ + āĻĒāĻ˛āĻŋāĻ¸āĻŋāĻ¤ā§‡ āĻšāĻ˛ā§‡ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§€āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ (dbrp "āĻ¸āĻ°āĻŦāĻ°āĻžāĻšāĻ•āĻžāĻ°ā§€āĨ¤""āĻ…āĻŸā§‹āĻœā§‡āĻ¨")

āĻ¯āĻĻāĻŋ āĻ•āĻŋāĻ›ā§ āĻŦā§āĻ¯āĻžāĻš āĻŸāĻžāĻ¸ā§āĻ•ā§‡ dbrp-āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ āĻ˛āĻžāĻ‡āĻ¨ āĻ¨āĻž āĻĨāĻžāĻ•ā§‡, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻĒā§āĻ°ā§‹ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻŸāĻŋ āĻļā§āĻ°ā§ āĻ•āĻ°āĻ¤ā§‡ āĻ…āĻ¸ā§āĻŦā§€āĻ•āĻžāĻ° āĻ•āĻ°āĻŦā§‡ āĻāĻŦāĻ‚ āĻ¸āĻ¤āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ˛āĻ—ā§‡ āĻāĻŸāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ˛āĻŋāĻ–āĻŦā§‡āĨ¤

āĻ•ā§āĻ°ā§‹āĻ¨ā§‹āĻ—ā§āĻ°āĻžāĻĢā§‡, āĻŦāĻŋāĻĒāĻ°ā§€āĻ¤ā§‡, āĻāĻ‡ āĻ˛āĻžāĻ‡āĻ¨āĻŸāĻŋ āĻĨāĻžāĻ•āĻž āĻ‰āĻšāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ; āĻāĻŸāĻŋ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ—ā§ƒāĻšā§€āĻ¤ āĻšāĻ¯āĻŧ āĻ¨āĻž āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĨ¤

āĻāĻ•āĻŸāĻŋ āĻ§āĻžāĻ°āĻ• āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻšā§āĻ¯āĻžāĻ• āĻ•āĻ°ā§āĻ¨: āĻĄāĻ•āĻžāĻ°āĻĢāĻžāĻ‡āĻ˛ -1 āĻĻāĻŋāĻ¯āĻŧā§‡ āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻ•āĻ°ā§‡ āĻ¯āĻĻāĻŋ //.+dbrp āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ˛āĻžāĻ‡āĻ¨ āĻĨāĻžāĻ•ā§‡, āĻ¯āĻž āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻŦāĻŋāĻ˛ā§āĻĄāĻŸāĻŋ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻ° āĻ•āĻžāĻ°āĻŖāĻŸāĻŋ āĻ…āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§‡ āĻŦā§āĻāĻ¤ā§‡ āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻŦā§‡āĨ¤

āĻāĻ• āĻĨā§‡āĻ•ā§‡ āĻ…āĻ¨ā§‡āĻ•ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§‹āĻ— āĻĻāĻŋāĻ¨

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻŸāĻžāĻ¸ā§āĻ•: āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻāĻ• āĻ¸āĻĒā§āĻ¤āĻžāĻšā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° 95 āĻ¤āĻŽ āĻļāĻ¤āĻžāĻ‚āĻļ āĻ¨āĻŋāĻ¤ā§‡ āĻšāĻŦā§‡, āĻāĻ‡ āĻŽāĻžāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻļā§‡āĻˇ 10 āĻāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻŽāĻŋāĻ¨āĻŋāĻŸā§‡āĻ° āĻ¤ā§āĻ˛āĻ¨āĻž āĻ•āĻ°ā§āĻ¨āĨ¤

āĻ†āĻĒāĻ¨āĻŋ āĻāĻ•-āĻĨā§‡āĻ•ā§‡-āĻ…āĻ¨ā§‡āĻ• āĻ¯ā§‹āĻ—āĻĻāĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦā§‡āĻ¨ āĻ¨āĻž, āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ—ā§‹āĻˇā§āĻ ā§€āĻ° āĻ‰āĻĒāĻ° āĻļā§‡āĻˇ/āĻŽāĻ§ā§āĻ¯/āĻŽāĻ§ā§āĻ¯ āĻ¨ā§‹āĻĄāĻŸāĻŋāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ°ā§€āĻŽā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻ•āĻ°ā§‡, āĻ¤ā§āĻ°ā§āĻŸāĻŋ "āĻšāĻžāĻ‡āĻ˛ā§āĻĄ āĻŽā§‡āĻ˛ā§‡ āĻ¨āĻž āĻšāĻ“āĻ¯āĻŧāĻž āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤āĻ—ā§āĻ˛āĻŋ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¨āĻž: āĻŦā§āĻ¯āĻžāĻš -> āĻ¸ā§āĻŸā§āĻ°ā§€āĻŽ" āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻŦā§‡āĨ¤

āĻ˛ā§āĻ¯āĻžāĻŽā§āĻŦāĻĄāĻž āĻāĻ•ā§āĻ¸āĻĒā§āĻ°ā§‡āĻļāĻ¨ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻāĻ•āĻŸāĻŋ āĻŦā§āĻ¯āĻžāĻšā§‡āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛āĻ“ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤

āĻĒā§āĻ°āĻĨāĻŽ āĻŦā§āĻ¯āĻžāĻš āĻĨā§‡āĻ•ā§‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ¨āĻŽā§āĻŦāĻ°āĻ—ā§āĻ˛āĻŋ udf-āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻžāĻ° āĻāĻŦāĻ‚ āĻ¸āĻžāĻ‡āĻĄāĻ˛ā§‹āĻĄā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻāĻ‡ āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻžāĻ° āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ†āĻŽāĻ°āĻž āĻāĻŸāĻž āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ•āĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°ā§‡āĻ›āĻŋ?

āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻžāĻ¯āĻŧ 100 āĻšā§‹āĻŸā§‡āĻ˛ āĻ¸āĻ°āĻŦāĻ°āĻžāĻšāĻ•āĻžāĻ°ā§€ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¤āĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§‡āĻ•ā§‡āĻ° āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻĨāĻžāĻ•āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ†āĻ¸ā§āĻ¨ āĻāĻŸāĻŋāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ āĻŦāĻ˛āĻŋāĨ¤ āĻāĻ‡ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒā§āĻ°āĻžāĻ¯āĻŧ 300 āĻŸāĻŋ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ āĻŦāĻ¨ā§āĻ§ āĻšāĻ¯āĻŧā§‡ āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ°ā§‡āĻ•āĻ°ā§āĻĄ āĻ•āĻ°āĻž āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡, āĻ†āĻŽāĻ°āĻž āĻ¤ā§āĻ°ā§āĻŸāĻŋāĻ° āĻšāĻžāĻ° (āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻāĻŦāĻ‚ āĻ¤ā§āĻ°ā§āĻŸāĻŋ) āĻ¨āĻŋāĻ°ā§€āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻŦāĨ¤

āĻ—ā§āĻ°āĻžāĻĢāĻ¨āĻž āĻ¨āĻ¯āĻŧ āĻ•ā§‡āĻ¨?

Grafana-āĻ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻž āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻžāĻ° āĻŦā§‡āĻļ āĻ•āĻŋāĻ›ā§ āĻ…āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ•āĻŋāĻ›ā§ āĻ¸āĻŽāĻžāĻ˛ā§‹āĻšāĻ¨āĻžāĻŽā§‚āĻ˛āĻ•, āĻ•āĻŋāĻ›ā§ āĻ†āĻĒāĻ¨āĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻšā§‹āĻ– āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨, āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡.

Grafana āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ + āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ—āĻŖāĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ āĻ¤āĻž āĻœāĻžāĻ¨ā§‡ āĻ¨āĻž, āĻ¤āĻŦā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻšāĻžāĻ° (āĻ…āĻ¨ā§āĻ°ā§‹āĻ§-āĻ¤ā§āĻ°ā§āĻŸāĻŋ)/āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨āĨ¤

āĻ¤ā§āĻ°ā§āĻŸāĻŋāĻ—ā§āĻ˛āĻŋ āĻ–āĻžāĻ°āĻžāĻĒ āĻĻā§‡āĻ–āĻžāĻšā§āĻ›ā§‡:

āĻ•ā§āĻ¯āĻžāĻĒāĻžāĻ¸āĻŋāĻŸāĻ°ā§‡ āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖā§‡āĻ° āĻ•ā§ŒāĻļāĻ˛

āĻāĻŦāĻ‚ āĻ¸āĻĢāĻ˛ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻĻā§‡āĻ–āĻž āĻšāĻ˛ā§‡ āĻ•āĻŽ āĻŽāĻ¨ā§āĻĻ:

āĻ•ā§āĻ¯āĻžāĻĒāĻžāĻ¸āĻŋāĻŸāĻ°ā§‡ āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖā§‡āĻ° āĻ•ā§ŒāĻļāĻ˛

āĻ āĻŋāĻ• āĻ†āĻ›ā§‡, āĻ†āĻŽāĻ°āĻž āĻ—ā§āĻ°āĻžāĻĢāĻ¨āĻžāĻ° āĻ†āĻ—ā§‡ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ¤ā§‡ āĻ°ā§‡āĻŸ āĻĒā§āĻ°āĻžāĻ•-āĻ—āĻŖāĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ āĻāĻŦāĻ‚ āĻ•āĻŋāĻ›ā§ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻāĻŸāĻŋ āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¨āĻ¯āĻŧ, āĻ•āĻžāĻ°āĻŖ... āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¤āĻžāĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻ…āĻ¨ā§āĻĒāĻžāĻ¤āĻ•ā§‡ "āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•" āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻŦāĻ‚ āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻžāĻ—ā§āĻ˛āĻŋ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ• āĻŽāĻžāĻ¨ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ (āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻšā§‹āĻ– āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ•āĻ°āĻŋ, āĻ˜āĻ¨ āĻ˜āĻ¨ āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž āĻĨāĻžāĻ•āĻ˛ā§‡ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§āĻ¨)āĨ¤

āĻāĻ—ā§āĻ˛āĻŋ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ "āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•" āĻāĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ:

āĻ•ā§āĻ¯āĻžāĻĒāĻžāĻ¸āĻŋāĻŸāĻ°ā§‡ āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖā§‡āĻ° āĻ•ā§ŒāĻļāĻ˛

āĻ•ā§āĻ¯āĻžāĻĒāĻžāĻ¸āĻŋāĻŸāĻ°ā§‡ āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖā§‡āĻ° āĻ•ā§ŒāĻļāĻ˛

āĻ†āĻŽāĻ°āĻž āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§€ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ‰āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻŋ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻŽāĻžāĻ¨ āĻ•āĻ°āĻŋ āĻ¯ā§‡ "āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•" āĻšāĻŋāĻ¤ā§āĻ°āĻŸāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻ°āĻŦāĻ°āĻžāĻšāĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻ‡ āĻ°āĻ•āĻŽāĨ¤ āĻāĻ–āĻ¨ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ āĻŋāĻ• āĻ†āĻ›ā§‡, āĻāĻŦāĻ‚ āĻ†āĻŽāĻ°āĻž āĻ—ā§āĻ°āĻžāĻĢāĻ¨āĻž āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž āĻ¸āĻ™ā§āĻ—ā§‡ āĻĒā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨?
āĻ†āĻŽāĻ°āĻž āĻĒāĻžāĻ°āĻŋ, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻŽāĻ°āĻž āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ‡ āĻšāĻžāĻ‡ āĻ¨āĻž, āĻ•āĻžāĻ°āĻŖ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻŦā§‡āĻ›ā§‡ āĻ¨āĻŋāĻ¤ā§‡ āĻšāĻŦā§‡:
āĻ•) āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻ˛āĻžāĻĻāĻžāĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻšā§āĻ° āĻ—ā§āĻ°āĻžāĻĢ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨ (āĻāĻŦāĻ‚ āĻŦā§‡āĻĻāĻ¨āĻžāĻĻāĻžāĻ¯āĻŧāĻ•āĻ­āĻžāĻŦā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻžāĻĨā§‡)
āĻ–) āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ āĻšāĻžāĻ°ā§āĻŸ āĻ›ā§‡āĻĄāĻŧā§‡ āĻĻāĻŋāĻ¨ (āĻāĻŦāĻ‚ āĻ°āĻ™āĻŋāĻ¨ āĻ˛āĻžāĻ‡āĻ¨ āĻāĻŦāĻ‚ āĻ•āĻžāĻ¸ā§āĻŸāĻŽāĻžāĻ‡āĻœāĻĄ āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻžāĻ¯āĻŧ āĻšāĻžāĻ°āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¨)

āĻ•ā§āĻ¯āĻžāĻĒāĻžāĻ¸āĻŋāĻŸāĻ°ā§‡ āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖā§‡āĻ° āĻ•ā§ŒāĻļāĻ˛

āĻ¤ā§āĻŽāĻŋ āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ•āĻ°āĻ˛ā§‡?

āĻ†āĻŦāĻžāĻ°, āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ā§‡ āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ˛ āĻļā§āĻ°ā§āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ (āĻ¯ā§‹āĻ— āĻšāĻ“āĻ¯āĻŧāĻž āĻ¸āĻŋāĻ°āĻŋāĻœ āĻœā§āĻĄāĻŧā§‡ āĻšāĻžāĻ° āĻ—āĻŖāĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡), āĻ…āĻ¨ā§āĻ°ā§‚āĻĒ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ¤ā§‡ āĻ‰āĻāĻ•āĻŋ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻŦāĻž āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻ†āĻŽāĻ°āĻž āĻļā§‡āĻˇ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¯āĻž āĻ•āĻ°ā§‡āĻ›āĻŋ:

  • āĻ•āĻ¯āĻŧā§‡āĻ• āĻ˜āĻ¨ā§āĻŸāĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĻā§āĻŸāĻŋ āĻ¸āĻŋāĻ°āĻŋāĻœā§‡ āĻ¯ā§‹āĻ—āĻĻāĻžāĻ¨ āĻ•āĻ°ā§āĻ¨, āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ—ā§āĻ°ā§āĻĒāĻŋāĻ‚ āĻ•āĻ°ā§āĻ¨;
  • āĻ¯āĻĻāĻŋ āĻ•ā§‹āĻ¨āĻ“ āĻĄā§‡āĻŸāĻž āĻ¨āĻž āĻĨāĻžāĻ•ā§‡ āĻ¤āĻŦā§‡ āĻ—ā§āĻ°ā§āĻĒ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡ āĻ¸āĻŋāĻ°āĻŋāĻœāĻŸāĻŋ āĻĒā§‚āĻ°āĻŖ āĻ•āĻ°ā§āĻ¨;
  • āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§€ āĻĄā§‡āĻŸāĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻļā§‡āĻˇ 10 āĻŽāĻŋāĻ¨āĻŋāĻŸā§‡āĻ° āĻŽāĻ§ā§āĻ¯āĻŽāĻž āĻ¤ā§āĻ˛āĻ¨āĻž āĻ•āĻ°ā§āĻ¨;
  • āĻ†āĻŽāĻ°āĻž āĻ•āĻŋāĻ›ā§ āĻĒā§‡āĻ˛ā§‡ āĻšāĻŋā§ŽāĻ•āĻžāĻ° āĻ•āĻ°āĻŋ;
  • āĻ†āĻŽāĻ°āĻž āĻ‡āĻ¨āĻĢā§āĻ˛āĻžāĻ•ā§āĻ¸āĻĄāĻŋāĻŦāĻŋāĻ¤ā§‡ āĻ¸āĻ‚āĻ˜āĻŸāĻŋāĻ¤ āĻ—āĻŖāĻ¨āĻžāĻ•ā§ƒāĻ¤ āĻšāĻžāĻ° āĻāĻŦāĻ‚ āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻžāĻ—ā§āĻ˛āĻŋ āĻ˛āĻŋāĻ–āĻŋ;
  • āĻļāĻŋāĻĨāĻŋāĻ˛ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒāĻžāĻ āĻžāĻ¨āĨ¤

āĻ†āĻŽāĻžāĻ° āĻŽāĻ¤ā§‡, āĻ†āĻŽāĻ°āĻž āĻ¯āĻ¤āĻŸāĻž āĻ¸āĻŽā§āĻ­āĻŦ āĻ¸ā§āĻ¨ā§āĻĻāĻ°āĻ­āĻžāĻŦā§‡ āĻļā§‡āĻˇ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ (āĻāĻŦāĻ‚ āĻ•āĻžāĻ¸ā§āĻŸāĻŽ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ†āĻ°āĻ“ āĻāĻ•āĻŸā§ āĻŦā§‡āĻļāĻŋ) āĻĒā§‡āĻ¤ā§‡ āĻšā§‡āĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĻžāĻŽ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ…āĻ°ā§āĻœāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒā§‡āĻ°ā§‡āĻ›āĻŋāĨ¤

āĻ†āĻĒāĻ¨āĻŋ github.com āĻ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻ•ā§‹āĻĄ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ и āĻ¨ā§āĻ¯ā§‚āĻ¨āĻ¤āĻŽ āĻ¸āĻžāĻ°ā§āĻ•āĻŋāĻŸ (āĻ—ā§āĻ°āĻžāĻĢāĻ­āĻŋāĻœ) āĻĢāĻ˛ā§‡ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸāĨ¤

āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ•ā§‹āĻĄā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ:

dbrp "supplier"."autogen"
var name = 'requests.rate'
var grafana_dash = 'pczpmYZWU/mydashboard'
var grafana_panel = '26'
var period = 8h
var todayPeriod = 10m
var every = 1m
var warnAlert = 15
var warnReset = 5
var reqQuery = 'SELECT sum("count") AS value FROM "supplier"."autogen"."requests"'
var errQuery = 'SELECT sum("count") AS value FROM "supplier"."autogen"."errors"'

var prevErr = batch
    |query(errQuery)
        .period(period)
        .every(every)
        .groupBy(1m, 'channel', 'supplier')

var prevReq = batch
    |query(reqQuery)
        .period(period)
        .every(every)
        .groupBy(1m, 'channel', 'supplier')

var rates = prevReq
    |join(prevErr)
        .as('req', 'err')
        .tolerance(1m)
        .fill('null')
    // СаĐŋĐžĐģĐŊŅĐĩĐŧ СĐŊĐ°Ņ‡ĐĩĐŊиŅ ĐŊŅƒĐģŅĐŧи, ĐĩŅĐģи иŅ… ĐŊĐĩ ĐąŅ‹ĐģĐž
    |default()
        .field('err.value', 0.0)
        .field('req.value', 0.0)
    // if в lambda: ŅŅ‡Đ¸Ņ‚Đ°ĐĩĐŧ Ņ€ĐĩĐšŅ‚, Ņ‚ĐžĐģŅŒĐēĐž ĐĩŅĐģи ĐžŅˆĐ¸ĐąĐēи ĐąŅ‹Đģи
    |eval(lambda: if("err.value" > 0, 100.0 * (float("req.value") - float("err.value")) / float("req.value"), 100.0))
        .as('rate')

// СаĐŋиŅŅ‹Đ˛Đ°ĐĩĐŧ ĐŋĐžŅŅ‡Đ¸Ņ‚Đ°ĐŊĐŊŅ‹Đĩ СĐŊĐ°Ņ‡ĐĩĐŊиŅ в иĐŊŅ„ĐģŅŽĐēŅ
rates
    |influxDBOut()
        .quiet()
        .create()
        .database('kapacitor')
        .retentionPolicy('autogen')
        .measurement('rates')

// вŅ‹ĐąĐ¸Ņ€Đ°ĐĩĐŧ Đ´Đ°ĐŊĐŊŅ‹Đĩ Са ĐŋĐžŅĐģĐĩĐ´ĐŊиĐĩ 10 ĐŧиĐŊŅƒŅ‚, ŅŅ‡Đ¸Ņ‚Đ°ĐĩĐŧ ĐŧĐĩдиаĐŊŅƒ
var todayRate = rates
    |where(lambda: duration((unixNano(now()) - unixNano("time")) / 1000, 1u) < todayPeriod)
    |median('rate')
        .as('median')

var prevRate = rates
    |median('rate')
        .as('median')

var joined = todayRate
    |join(prevRate)
        .as('today', 'prev')
    |httpOut('join')

var trigger = joined
    |alert()
        .warn(lambda: ("prev.median" - "today.median") > warnAlert)
        .warnReset(lambda: ("prev.median" - "today.median") < warnReset)
        .flapping(0.25, 0.5)
        .stateChangesOnly()
        // ŅĐžĐąĐ¸Ņ€Đ°ĐĩĐŧ в message ŅŅŅ‹ĐģĐēŅƒ ĐŊĐ° ĐŗŅ€Đ°Ņ„иĐē Đ´Đ°ŅˆĐąĐžŅ€Đ´Đ° ĐŗŅ€Đ°Ņ„Đ°ĐŊŅ‹
        .message(
            '{{ .Level }}: {{ index .Tags "channel" }} err/req ratio ({{ index .Tags "supplier" }})
{{ if eq .Level "OK" }}It is ok now{{ else }}
'+string(todayPeriod)+' median is {{ index .Fields "today.median" | printf "%0.2f" }}%, by previous '+string(period)+' is {{ index .Fields "prev.median" | printf "%0.2f" }}%{{ end }}
http://grafana.ostrovok.in/d/'+string(grafana_dash)+
'?var-supplier={{ index .Tags "supplier" }}&var-channel={{ index .Tags "channel" }}&panelId='+string(grafana_panel)+'&fullscreen&tz=UTC%2B03%3A00'
        )
        .id('{{ index .Tags "name" }}/{{ index .Tags "channel" }}')
        .levelTag('level')
        .messageField('message')
        .durationField('duration')
        .topic('slack_graph')

// "today.median" Đ´ŅƒĐąĐģиŅ€ŅƒĐĩĐŧ ĐēĐ°Đē "value", Ņ‚Đ°ĐēĐļĐĩ ĐŋиŅˆĐĩĐŧ в иĐŊŅ„ĐģŅŽĐēŅ ĐžŅŅ‚Đ°ĐģŅŒĐŊŅ‹Đĩ Ņ„иĐģĐ´Ņ‹ Đ°ĐģĐĩŅ€Ņ‚Đ° (keep)
trigger
    |eval(lambda: "today.median")
        .as('value')
        .keep()
    |influxDBOut()
        .quiet()
        .create()
        .database('kapacitor')
        .retentionPolicy('autogen')
        .measurement('alerts')
        .tag('alertName', name)

āĻāĻŦāĻ‚ āĻ‰āĻĒāĻ¸āĻ‚āĻšāĻžāĻ° āĻ•āĻŋ?

āĻ•ā§āĻ¯āĻžāĻĒāĻžāĻ¸āĻŋāĻŸāĻ° āĻāĻ•āĻ—ā§āĻšā§āĻ› āĻ—ā§āĻ°ā§āĻĒāĻŋāĻ‚ āĻ¸āĻš āĻŽāĻ¨āĻŋāĻŸāĻ°āĻŋāĻ‚-āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻ•āĻ°āĻ¤ā§‡, āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻ°ā§‡āĻ•āĻ°ā§āĻĄ āĻ•āĻ°āĻž āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻ—āĻŖāĻ¨āĻž āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻ•āĻ°āĻ¤ā§‡, āĻ•āĻžāĻ¸ā§āĻŸāĻŽ āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸāĻ—ā§āĻ˛āĻŋ (udf) āĻšāĻžāĻ˛āĻžāĻ¤ā§‡ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤āĨ¤

āĻĒā§āĻ°āĻŦā§‡āĻļā§‡āĻ° āĻŦāĻžāĻ§āĻž āĻ–ā§āĻŦ āĻŦā§‡āĻļāĻŋ āĻ¨āĻ¯āĻŧ - āĻ¯āĻĻāĻŋ āĻ—ā§āĻ°āĻžāĻĢāĻžāĻ¨āĻž āĻŦāĻž āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽāĻ—ā§āĻ˛āĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ‡āĻšā§āĻ›āĻžāĻ•ā§‡ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖāĻ°ā§‚āĻĒā§‡ āĻ¸āĻ¨ā§āĻ¤ā§āĻˇā§āĻŸ āĻ¨āĻž āĻ•āĻ°ā§‡ āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°ā§āĻ¨āĨ¤

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨