Databáze pro ukládání metrik rubrika: Databáze: NoSQL

7 kluvi
položil/-a 5.11.2018

Ahoj.
Sháním nějakou databázi do které bych chtěl ukládat různé metriky ohledně výkonu aplikace. První věc co řeším jsou zápisy do Elasticsearche. Mám nějaké workery co ukládají data přes bulk requesty a potřebuju ke každému requestu co do ES pošlu zalogovat:

  • jak dlouho trval
  • kolik akcí v něm bylo
  • kolik jakých akcí (index/update/delete)
  • do jakých indexů to bylo
  • jaký typ workeru to byl (omezený výčet)

Od databáze pak očekávám odpovědi na dotazy typu:

  • jaký byl průměrný čas (nebo počet dotazů) za posledních 10min?
  • kolik se "dnes" udělalo operací typu update do indexu xxx workerem yyy?

Aktuálně to řeším ukládáním do Redisu, ale s přibývajícími nároky na různé "pohledy" na data to začíná byt dost nekomfortní (1 dotaz do Elasticu způsobí asi 15 zápisů do Redisu a číslo se bude už jen zvyšovat).

Máte někdo nějaký tip na vhodnou databázi? Měla by být nejspíš in-memory, protože tam může chodit i stovky requestů/s.

Komentáře

odkaz
12 ivoszz
odpověděl/-a 6.11.2018

Elastic na to není nejlepší, i když se dá použít. Z toho co píšeš, se nejedná o trasování, ale čisté metriky. V tom případě je možností určitě více, ale mezi nejzajímavější podle mne patří buď Prometheus nebo InfluxDB. Oba produkty jsou OSS, i když InfluxDB jen jako single node (to ale určitě není limitující). Práce s InfluxDB by byla přímočarejší, Prometheus funguje trochu jinak, což ale zpravidla nemusí být na závadu. Pro oba je vhodným frontendem Grafana.

P.S.: Určitě bych k tomu nepřistupoval jako k logování. Jsou to čisté metriky. Buď bych odesílal eventy (InfluxDB) nebo přímo v aplikaci ty metriky zpracovával a slízal je pak přes Promethea. Logy vše jenom komplikují a zpomalují.

Pro zobrazení všech 4 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.