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

8 kluvi
položil/-a 5.11. 23:18

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. 0:17

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.