This post is also available in English.
This post is also available in Espagnol.
Sărbătorile de iarnă sunt după colț și unii dintre noi se apropie de un foc sau caută briza calmă a mării, lucrul cel mai important pe care îl avem în comun este să petrecem sărbătorile în liniște. Mie ca Site Reliability Engineer îmi plac zilele de on-call relaxate. Vă dăruiesc în acest scurt articol o dovadă de liniște, care vă v-a ajuta să deveniți maeștrii ai observabilității Serverless.
În niște articole anterioare publicate pe blogul Elastic, ați putut vedea cum se folosește Elastic Agent și cum se integrează cu Kubernetes. Poate ați căutat mai departe și ați devenit curioși cum se folosesc alertele în Kubernetes cu ajutorul observabilității Elastic. Felicitări! Acum jobul meu ca SRE-elf este să vă arăt o șmecherie despre cum să vă folosiți mai bine de alertele generate asupra cozilor beats-urilor.
Probabil ați dori să vă aventurați mai departe în ținutul beats-urilor și să migrați către Elastic Agent. Un sfat: să fiți atenți când acele cozi ale beats-urilor încep să crească. De ce ar fi ele atât de importante? Filebeat strânge fișiere de metrici despre sine la fiecare 30 de secunde în mod implicit. Dacă aceste fișiere conțin metrici, fișierele sunt serializate în JSON și emise în logurile Filbeat-ului la nivelul INFO.
De exemplu:
{"log.level":"info","@timestamp":"2023-07-14T12:50:36.811Z","log.logger":"monitoring","log.origin":{"file.name":"log/log.go","file.line":187},"message":"Non-zero metrics in the last 30s","service.name":"filebeat","monitoring":{"metrics":{"beat":{"cgroup":{"memory":{"mem":{"usage":{"bytes":0}}}},"cpu":{"system":{"ticks":692690,"time":{"ms":60}},"total":{"ticks":3167250,"time":{"ms":150},"value":3167250},"user":{"ticks":2474560,"time":{"ms":90}}},"handles":{"limit":{"hard":1048576,"soft":1048576},"open":32},"info":{"ephemeral_id":"2bab8688-34c0-4522-80af-db86948d547d","uptime":{"ms":617670096},"version":"8.6.2"},"memstats":{"gc_next":57189272,"memory_alloc":43589824,"memory_total":275281335792,"rss":183574528},"runtime":{"goroutines":212}},"filebeat":{"events":{"active":5,"added":52,"done":49},"harvester":{"open_files":6,"running":6,"started":1}},"libbeat":{"config":{"module":{"running":15}},"output":{"events":{"acked":48,"active":0,"batches":6,"total":48},"read":{"bytes":210},"write":{"bytes":26923}},"pipeline":{"clients":15,"events":{"active":5,"filtered":1,"published":51,"total":52},"queue":{"acked":48}}},"registrar":{"states":{"current":14,"update":49},"writes":{"success":6,"total":6}},"system":{"load":{"1":0.91,"15":0.37,"5":0.4,"norm":{"1":0.1138,"15":0.0463,"5":0.05}}}},"ecs.version":"1.6.0"}}
Acest câmp .monitoring.metrics ne oferă informații specifice asupra obiectelor .beat, .libbeat sau .filebeat. Pentru această demonstrație, luăm în considerare obiectul .libbeat ca fiind cel mai comun cu toate Beats-urile și îl vom folosi în definiția alertei noastre Serverless.
Obiectul .libbeat vine în mai multe arome care te vor ajută să-ți personalizezi necesitățile pentru acest tip de alertă. Eu mi-am ales câștigătorul: .pipeline.events.active. Acest câmp ne v-a arăta dacă numărul evenimentelor va continua să crească, caz în care ar trebui fim atenți să nu depășească punctul în care această metrică ar atinge capacitatea maximă a cozii. Dacă acest lucru se întâmplă, Filebeat se va opri din a mai stoca alte evenimente. Nu ne dorim acest lucru. Implementând următoarea alertă îi va face foarte fericiți pe colegii SRE și poate pe managerul tău.
Interfața utilizatorului Kibana ne oferă metoda cea mai simplă și mai rapidă pentru a defini aceste alerte: am folosit în final câmpul
monitoring.metrics.libbeat.pipeline.events.active și am adăugat elastic-agent într-o agregare de tipul Log Threshold. Puteți să vă reglați pragul alertei după cum doriți în funcție de fluxul de date și de input-ul pe care îl primiți.
Gata! Ușor de implementat și cu siguranță folositor atât în cadrul cât și în afara sistemului Serverless. Dar înainte să plecați, vă invit să vă uitați pe lista de bunătățuri a versiunii 8.11 aduse de Elasticsearch. Niște elfi mai nebunatici mi-au menționat că o nouă regulă din observabilitate denumită Custom threshold a apărut în previzualizare tehnică. Încercați-le pe toate de pe listă și bucurați-vă de o zi liniștită de Crăciun!