peckadesign / Monitoring

Monitoring na dostupnost webů, generování feedů, DNS, HTTPS atd.
40 stars 8 forks source link

Hlídat počet výskytů hledaného slova ve feedech a porovnat s hodnotou předchozí kontroly #24

Open petrzdansky opened 7 years ago

petrzdansky commented 7 years ago

Prosím, vytvořit kontrolu, kde:

Princip dané monitorovací úlohy by měl být ten, že si danou frázi v daný čas vygrepuji, zjistím počet a porovnám s hodnotou, kterou mám naposledy uloženou. Pokud ten rozdíl bude vyšší/menší než je definovaná hranice, tak pošli upozornění/chybu.

Konkrétní příklad: budu chtít v heuréka feedu kontrolovat počet produktů skladem. Zadám tedy vyhledávací frázi <DELIVERY_DATE>0</DELIVERY_DATE>, kontrolu budu chtít provádět např. v 7 hodin ráno (vím, že generování feedu končí většinou v 06:00, tak si tam dám nějakou rezervu) a budu chtít poslat upozornění, pokud se počet produktů skladem bude oproti minulé kontrole liší o více než 100 produktů nahoru nebo dolů.

Jinak by měla tahle funkce fungovat obecně nejen na feedy

Nápad na rozšíření do budoucna: pro tenhle typ monitoringu by stálo za to ukládat ty zjištěné počty nějak historicky do DB např. mít údaje za poslední měsíc a mít tak možnost se podívat na historii počtů

Prosím @MilanPala Milana a @tomasfoltyn Tomáše o programátorskou analýzu náročnosti, případně technických zádrhelů

cc @karelrujzl @JakubRejnus @peckadesign/projektaci

MilanPala commented 7 years ago

Rozšíření do budoucna:

Toto bude výhledově součástí monitoringu. Jen to nebudeme ukládat do MySQL, ale někam bokem. Každý by chtěl vidět, kdy mu jeho feedy nejely, kdy mu vypadly kontroly dostupnosti stránek atd. Nemůžeme si ale kvůli tomu zaplnit transakční databázi. Až přijde dobrý nápad, tak to doděláme.

MilanPala commented 7 years ago

Když nad tím přemýšlím, tak stejnou věc jsme chtěli řešit pro počet produktů ve feedu. Nakonec z té kontroly vznikla kontrola, která řeší aktuálnost feedu a jeho velikost. Nestahuje se obsah, jen hlavičky a můžeš to tak kontrolovat jak často chceš.

Z obou kontrol je možné vynechat slovo feed. Jedna kontrola řeší aktuálnost odpovědi, druhá řeší obsah té odpovědi. Pokud první kontrolu necháme, tak tuto bych předělal na obecnou "Najdi počet výskytů v odpovědi". Můžeš si tak hlídat třeba počet novinek na homepagi, nebo tak něco. Implementačně zbývá dořešit, zda pro to použít XPath, nebo jen fulltext.

JakubRejnus commented 7 years ago

Kluci, mě to přijde jako dobrý nápad, já jen, ať z toho pak není histerie o tom, že se něco děje s feedem a vono to vlastně je přirozený koloběh...To bych totiž nerad :-)

MilanPala commented 7 years ago

Máme tam histerze. Třeba pro kontrolu dostupnosti máme 5 sekundový timeout, která má dvojnásobnou rezervu. Aby alert zahlásil, musí selhat dva po sobě. Stejně tak tady by to hlásilo, pokud to spadne pod určitou mez. Pokud ze dne na den vypadne 20 % produktů, tak to už je podezřelé. Tak nějak bych si to představoval.

JakubRejnus commented 7 years ago

To je dobrý přístup...páč pokud by si někdo anstavil ten rozdíl vyvolávajíc alert třeba na 5% bude ho mít ve schránce každý druhý den:-) to samé se týká velikosti feedu

petrzdansky commented 7 years ago

Samozřejmě s tím nastavením je potřeba opatrně a případně ho ladit. Tohle grep řešení mi přijde fajn a docela obecné na všechny možné věci, kde se opakuje nějaký výskyt stejného prvku.

karelrujzl commented 7 years ago

Ještě mě napadlo, pokud bysme nechtěli ten feed parsovat, co informaci o počtu produktů a poštu produktů skladem sbírat už při generování feedu a ukládat někam? Tím by se obešlo to, že se bude velký feed stahovat parsovat a zabírat strojový čas. Jen nápad...