Za mě dobrý, nedávno jsem viděl jeden team co si na obdobný task vzal spike na research a po 14 dnech přišel s tím ze to bude možné udělat. A v tu dobu neměl v podstatě nic k prezentaci. Předpokládám, že pro vás to bylo sobotní odpoledne. K té diakritice. Jména Prometheus labelů musí odpovídat teto regexp [a-zA-Z_][a-zA-Z0-9_]* tedy pouze ASCII alfanumericke znaky.
Na odstranění diakritiky bych zkusil Unicode property escapes a string.normalize funkci.
const str = “Žluťoučký kůň”
str.normalize("NFKD").replace(/\p{Diacritic}/gu, "")
a není lepší použít negaci toho pravidla? Protože přes tvůj výraz projde třeba ~, což ale také nemůže být v labelech.
Pokud je nějaký label nevalidní, prometheus nenačte nic z celého souboru, takže ošetřovat správně na výstupu je stěžejní. Tyhle ošetření, které fungují pouze na omezeném vzorku je pěkná past.
jo to je pravda, past to bude vzdycky, ja bych se v tomto pripade vydal cestou ne celeho jmena meny, ale pouzival bych 3 pismenne mezinarodni kody a problem by se vyresil take nejak sam od sebe. Myslim, ze v Grafana kdyby nekdo na celych jmenech trval by se to asi dalo vyresit nejakym key/value mapping, ale ruku do ohne bych za to nedal.
Ano, Grafana dovoluje modifikace zobrazovaných labelů - já v ní dělám třeba to, že z plného doménového jména stroje, které je v Prometheu jako "server.typ.datacentrum.domena.firma.com", si vytáhnu jen konkrétní části přes regex a zobrazím jako "datacentrum - server". A pro předem známé hodnoty (zajímají nás jen tyhle 4 měny) si člověk může udělat substituci jak chce.