<% import  'fusion_alerts.macros' as fusion_alerts %>

<% set base_tags = {
    "itype": "fusion",
} %>
<% set shmick_tags = {
    "itype": "rtyserver",
} %>

<% set services = [
    {
        "name": "samohod",
        "tags": shmick_tags|merge_with_dict({
            "prj" : "saas-refresh-samohod"
        }),
        "geo_with_ctype": [
            ("vla", "prod"),
            ("man", "prod"),
            ("sas", "prod")
        ]
    },
    {
        "name": "shmick",
        "tags": shmick_tags|merge_with_dict({
            "prj" : "saas-refresh-shmick"
        }),
        "geo_with_ctype": [
            ("sas", "prod"),
            ("man", "prod"),
            ("vla", "prod")
        ]
    },
    {
        "name": "shmick_hamster",
        "tags": shmick_tags|merge_with_dict({
            "prj" : "saas-hamster-shmick"
        }),
        "geo_with_ctype": [
            ("sas", "prod"),
            ("man", "prod"),
            ("vla", "prod")
        ]
    },
    {
        "name": "samohod_beta",
        "tags": shmick_tags|merge_with_dict({
            "prj" : "saas-refresh-samohod-beta",
        }),
        "geo_with_ctype": [
            ("sas", "experiment"),
            ("man", "experiment"),
            ("vla", "experiment")
        ]
    },
    {
        "name": "samohod_beta2",
        "tags": shmick_tags|merge_with_dict({
            "prj" : "saas-refresh-samohod-beta2",
        }),
        "geo_with_ctype": [
            ("sas", "experiment"),
            ("man", "experiment"),
            ("vla", "experiment")
        ]
    },
    {
        "name": "samokhod_beta2",
        "tags": base_tags|merge_with_dict({
            "prj" : "saas-refresh-samokhod-beta2",
            "tier" : "FusionSamokhodBeta2"
        }),
        "geo_with_ctype": [
            ("sas", "experiment"),
            ("man", "experiment"),
            ("vla", "experiment")
        ]
    },
    {
        "name": "mercury_staging",
        "tags": base_tags|merge_with_dict({
            "prj" : "web-refresh-3day",
            "tier" : "Fusion3dayTier0SEPE14858"
        }),
        "geo_with_ctype": [
            ("sas", "experiment"),
            ("man", "experiment"),
            ("vla", "experiment")
        ]
    },
    {
        "name": "hamster",
        "tags": shmick_tags|merge_with_dict({
            "prj" : "saas-refresh-samohod-hamster"
        }),
        "geo_with_ctype": [
            ("vla", "hamster"),
            ("man", "hamster"),
            ("sas", "hamster")
        ]
    },
    {
        "name": "news",
        "tags": base_tags|merge_with_dict({
            "prj" : "saas-news-quick",
            "tier" : "none"
        }),
        "geo_with_ctype": [
            ("sas", "prestable"),
            ("man", "prod"),
            ("vla", "prod")
        ],
        "early_detect": "true"
    },
    {
        "name": "news_prestable",
        "tags": base_tags|merge_with_dict({
            "prj" : "saas-news-quick",
            "tier" : "none"
        }),
        "geo_with_ctype": [
            ("vla", "test")
        ],
        "early_detect": "true"
    }
] %>


<% set alerts = [
    {
        "name": "receive_lag",
        "signal": "aver(saas_unistat-backend-df-receive_lag_avvv)",
        "limits_by_service": {
            "quick": [1800, 3000],
            "samohod": [1800, 3000],
            "samohod_beta": [3600, 10000],
            "samohod_beta2": [3600, 10000],
            "samokhod_beta2": [3600, 10000],
            "shmick": [1800, 3000],
            "hamster": [1800, 3000],
            "news": [1800, 3000]
        },
        "flaps": {
            "stable": 360,
            "critical": 800
        }
    },
    {
        "name": "receive_lag",
        "signal": "aver(saas_unistat-backend-df-receive_lag_avvv)",
        "limits_by_service": {
            "shmick_hamster": [1800, 3000]
        },
        "flaps": {
            "stable": 3600,
            "critical": 10800
        }
    },
    {
        "name": "receive_lag",
        "signal": "aver(saas_unistat-backend-df-receive_lag_avvv)",
        "limits_by_service": {
            "mercury_staging": [3600, 10000]
        },
        "flaps": {
            "stable": 360,
            "critical": 800
        },
        "early_detect": true
    },
    {
        "name": "ssd_usage",
        "signal": "max(portoinst-volume_/ssd_usage_perc_txxx, portoinst-volume_/data_usage_perc_txxx)",
        "limits_by_service": {
            "quick": [80, 90],
            "samohod": [80, 90],
            "samohod_beta": [80, 90],
            "samohod_beta2": [80, 90],
            "samokhod_beta2": [80, 90],
            "mercury_staging": [80, 90],
            "shmick": [80, 90],
            "shmick_hamster": [80, 90],
            "hamster": [80, 90],
            "news": [80, 90]
        },
        "early_detect": true
    },
    {
        "sharded": true,
        "name": "docs_in_shard-%s",
        "signal": "aver(saas_unistat-index-disk-docs-shard-%s_avvv)",
        "limits_by_service": {
            "quick": [400000, 200000],
            "samohod": [400000, 200000],
            "samohod_beta": [400000, 200000],
            "samohod_beta2": [400000, 200000],
            "samokhod_beta2": [400000, 200000],
            "mercury_staging": [400000, 200000],
            "shmick": [400000, 200000],
            "shmick_hamster": [400000, 200000],
            "hamster": [400000, 200000]
        }
    },
    {
        "name": "searchable_age",
        "signal": "aver(saas_unistat-index-searchable-age-avg_avvv)",
        "limits_by_service": {
            "quick": [600, 1000],
            "samohod": [600, 1000],
            "samohod_beta": [600, 1000],
            "samohod_beta2": [600, 1000],
            "samokhod_beta2": [600, 1000],
            "shmick": [660, 1300],
            "shmick_hamster": [600, 1200],
            "mercury_staging": [1000, 1500],
            "hamster": [600, 1000],
            "news": [600, 1000]
        },
        "flaps": {
            "stable": 480,
            "critical": 1800
        },
        "early_detect": false
    },
    {
        "name": "perc_docfetcher_5xx",
        "signal": "perc(sum(saas_unistat-backend-df-error-5xx_dmmm), max(sum(saas_unistat-backend-index-2xx_dmmm, saas_unistat-backend-index-5xx_dmmm), 10))",
        "limits": [0.1, 0.5],
        "flaps": {
            "boost": 60,
            "critical": 900,
            "stable": 30
        }
    },
    {
        "name": "surplus-doc-count",
        "signal": "aver(saas_unistat-surplus-doc-count_dvvm)",
        "limits": [30, 1000],
        "flaps": {
            "boost": 0,
            "critical": 0,
            "stable": 0
        }
    },
    {
        "name": "surplus-lifetime",
        "signal": "saas_unistat-surplus-lifetime-stolen_axxx",
        "limits": [7200, 21600],
        "flaps": {
            "boost": 0,
            "critical": 60,
            "stable": 60
        },
        "early_detect": true
    },
    {
        "name": "max-doc-count",
        "signal": "aver(saas_unistat-index-disk-docs_avvv)",
        "limits_by_service": {
            "news": [450000, 500000],
            "news_prestable": [450000, 500000]
        },
        "early_detect": true
    }
] %>

<% for perc, limits in [
        (10, [4, 8]),
        (20, [4, 8]),
        (30, [4, 8]),
        (40, [10, 15]),
        (50, [10, 20]),
        (60, [15, 100]),
        (70, [20, 100]),
        (80, [25, 100])
   ]
%>
    <% do alerts.append({
            "name": "health_perc_below_%s"|format(perc),
            "signal": "fusion_healthcare_mon-health_perc_below_%s_dmmm"|format(perc),
            "limits": limits
       })
    %>
<% endfor %>


<< fusion_alerts.generate("base", services, alerts) >>
