์ฌ์ฉ ์ฌ๋ก: 'ID' ์์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฉํธ๋ฆญ์ ์ ์ฅํ ์ ์์ง๋ง ํ ํ๋ฆฟ ๋ณ์ ์ ํ UI๊ฐ ๋ ์ธ๊ฐ ์นํ์ ์ธ ๋ ์ด๋ธ์ ์ฌ์ฉํ๋๋ก ํ๊ณ ์ถ์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ด๋ถ ๋๋ฉ์ธ ID๋ฅผ ์ฌ์ฉํ์ฌ ๋๋ฉ์ธ๋ณ๋ก ๋ฉํธ๋ฆญ์ ์ถ์ ํ์ง๋ง ํ ํ๋ฆฟ ๋ณ์ ์ ํ๊ธฐ UI์์ ๋๋ฉ์ธ์ URL์ ์ฌ์ฉํ๋ ค๊ณ ํฉ๋๋ค.
@torkelo ๋๋ ์ด๊ฒ์ ๊ตฌํํ๋ ๋ฐ ์ปท์ ํ ์ ์์ต๋๋ค. ๊ตฌํ์ ๋ํ ๋น์ ์ ์๊ฐ์ ๋ฌด์์ ๋๊น? ๋ด ํน์ ์ฌ์ฉ ์ฌ๋ก์ ๊ฒฝ์ฐ ์กฐํ๋ฅผ ์ํด ์ธ๋ถ ์๋น์ค๋ฅผ ์คํํด์ผ ํ๋ฏ๋ก ์์์ JS ํจ์๋ฅผ ์ ๊ณตํ์ฌ ๊ฐ -> ํ ์คํธ ๋ณํ์ ์ํํ ์ ์๊ธฐ๋ฅผ ์ํฉ๋๋ค. ์ด๊ธฐ ๊ตฌํ์ ๋งคํ ๊ธฐ๋ฅ์ ์ ์ํ๋ ๋์๋ณด๋ JSON์ ๊ตฌ์ฑ ๊ฐ์ ์ถ๊ฐํ๋ ๊ฒ์ผ ์ ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. ๋ฏธ๋ฆฌ ๋น๋๋ ๋งคํ ๊ธฐ๋ฅ(์: ์ ๊ท์ ๋์ฒด)์ผ๋ก ๋ ๊ฐ๋จํ ๋งคํ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด UI ์ง์์ ๋์ค์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
๋ํ UI๋ฅผ ํตํด ์ ์ฒด ๋์๋ณด๋ JSON์ ํธ์งํ๋ ๊ธฐ๋ฅ๋ ์ด์ ์ฐ๊ฒฐ๋์ง๋ง ์ด๋ ค์ด ๊ฒ์ผ๋ก ํ๋ช ๋๋ฉด ๋ด๋ณด๋ด๊ธฐ -> ํธ์ง -> ๊ฐ์ ธ์ค๊ธฐ๊ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ์๋ํฉ๋๋ค.
์คํฌ๋ฆฝํ ๋ ๋์๋ณด๋๋ฅผ ์ฌ์ฉํ์ฌ ์ด ์์ ์ ์ํํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ผ๋ฐ/์ ์ฅ๋ json ๋์๋ณด๋์ ๊ตฌํํ๋ ค๊ณ ์๋ํ๋ ๊ฒ์ ํ์ํฉ๋๋ค.
+1
๋๋ ์ด๊ฒ์ ์ ์ด๋ ๊ฐ๋จํ ๋ฒ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. A -> B์์ ๊ตฌ์ฑ๋ ๋งคํ๊ณผ ๊ฐ์ ๊ฒ
๋ด ์๋๋ฆฌ์ค์์๋ ๋ณ์ ๋๋กญ๋ค์ด(CustomerName1, CustomerName2 ๋ฑ)์์ ์ํฐํฐ ์ด๋ฆ์ ์ ํํ๊ณ ์ถ์ง๋ง ๋ฉํธ๋ฆญ ์ด๋ฆ๊ณผ ๊ด๋ จํ์ฌ ๋ด๋ถ์ ์ผ๋ก ์ซ์ ID๋ฅผ ์ฌ์ฉํฉ๋๋ค.
app.requests.$customer1_ID.count
+1
#3138์์ ๋ณํฉ
์๋ฅผ ๋ค์ด
fooBar
๋ฐbaz_quuxInternal
๊ฐ์ผ๋ก ์ฌ์ฉ์ ์ ์ ํ ํ๋ฆฟ ๋ณ์๋ฅผ ์์ฑํ ๋ UI๊ฐ "Foo bar" ๋ฐ "Baz"๋ก ์ฒดํฌ๋ฐ์ค๋ฅผ ํ์ํ๋๋ก ํ ์ ์์ต๋๋ค.์ด๋ ์ค๋ณต์ ์ค์ด๊ธฐ ์ํด ๋ฐ๋ณต๋๋ ํ๊ณผ ๋ง์ถค ๋ณ์๋ฅผ ์ฌ์ฉํ ๋ ํนํ ์ผ๋ฐ์ ์ด์ง๋ง ์ต์์ ์ธก์ ํญ๋ชฉ์ ์ฌ์ฉ์์๊ฒ ์น์ํ์ง ์์ ์ ์์ต๋๋ค.
์ ๊ท์์ ์ฌ์ฉํ์ฌ ์ฟผ๋ฆฌ๋ ํ ํ๋ฆฟ ๊ฐ(์: ํ์ฐ ์์ฑ)์ ๋ํด์๋ ์ด๋ฅผ ์ ์ฌ์ ์ผ๋ก ์ง์ํ ์ ์์ต๋๋ค(๋์ฒด๊ฐ ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ). ์ ๊ท์ ์ง์์ด ์ด๋ฏธ ์กด์ฌํ์ง๋ง ์ฌ์ฉ๋ ๊ฐ๊ณผ ๋ ์ด๋ธ ๋ชจ๋์ ์ ์ฉ๋ฉ๋๋ค. ๊ฐ์น๋ฅผ ์ํด์๋ง ์ฌ์ฉํ๋ค๋ฉด ๊ฐ์น๊ฐ ์์ ๊ฒ์ ๋๋ค.
์๋ฅผ ๋ค์ด, ํ์ฐ ์ฟผ๋ฆฌ๊ฐ ํ ํ๋ฆฟ์์ ์ฌ์ฉํ๊ธฐ ์ํด
kafka.messagesByTopic.myservice_*
๋ฅผ ํ์ฅํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์์ ์ ๋์ฌ๋ฅผ ์ ๊ฑฐํ๊ธฐ๋ฅผ ์ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ค์ ํจ๋์์ ์ฌ์ฉํ ๊ฒฝ์ฐ ์ ๋์ฌ๋ฅผ ํฌํจํด์ผ ํฉ๋๋ค. ํ ํ๋ฆฟ ๋ณ์๊ฐ ๋ฉํธ๋ฆญ ์์ฑ์ ํฌํจ๋ ์ ์์ผ๋ฏ๋ก (Grafana 2.x ์ด์์์) ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ผ๋ฏ๋ก ๋ชจ๋ ํจ๋๊ณผ ํ์ ๋ชจ๋ โโ๋ฉํธ๋ฆญ์์ ์ ๋์ฌ๋ฅผ ํ๋์ฝ๋ฉํ ์ ์์ง๋ง ํผํ๋ ๊ฒ์ด ์ข์ต๋๋ค.์ด๋ฌํ "๋ ์ด๋ธ" ๊ฐ์ด ์กด์ฌํ๋ฉด ํจ๋ ๋ด๋ถ์์๋ ์ก์ธ์คํ ์ ์์ผ๋ฉด ์ ์ฉํ ๊ฒ์ ๋๋ค. ํ ๋ฐ/๋๋ ํจ๋ ์ ๋ชฉ์ ๋ณ์๋ฅผ ํฌํจํ ๋์ ๊ฐ์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ ์ด๋ธ์ ์ฌ์ฉํ๋๋ก ๋ง๋ค๊ฑฐ๋(์ ๋ชฉ ํ๋์ ํฌํจ๋ ๊ฒฝ์ฐ) ๋์ฒด ๊ตฌ๋ฌธ(์:
$$Variable
๋๋ ๊ธฐํ)์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
http://play.grafana.org/dashboard/db/test?editview=templating ์ "๋ณ์ ๋ ์ด๋ธ"์ ์ต์ ์ผ๋ก ํ์ํฉ๋๋ค. ๋ซ์ ์ ์์ต๋๊น?
ํธ์ง: ๋ฒ๊ทธ๋ฅผ ์๋ชป ์ดํดํ์ต๋๋ค. ์ฃ์กํฉ๋๋ค! :) ๊ณ์ํ์ญ์์ค.
๊ทธ๊ฒ์ ๋ณ์ ๊ฐ์ด ์๋๋ผ ๋ณ์์ ๋ํด ์น์ํ ์ด๋ฆ์ ๊ฐ๋ ์ต์ ์ผ ๋ฟ์ ๋๋ค.
+1
+1
+1
+1
+1
+1
์ด ์ํ๋ ๋ฌด์์
๋๊น?
๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๊น?
3.0 ํ์ด๋์์ ๊ฐ๋ฅํ๊ฐ์?
๋ง์ ๋ถ๋ค์ด ๊ธฐ๋ค๋ฆฌ์๋ ๊ธฐ๋ฅ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๋๋ฅผ ํฌํจํด์ :-)
+1
๋๋ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ์์๊ฒ ๋์ฐํด ๋ณด์ด๋ ์ ๊ท ํํ์์ ์ผ๋ถ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
+1
+1
+1
์ด๊ฒ์ด ์์ผ๋ฉด ์ ๊ท ํํ์์ ํ
ํ๋ฆฟ ๋ณ์์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
+1
+1
+1
+1
+1
+1
@mbell697 @torkelo
Grafana๋ฅผ ์ฌ์ฉํ๋ ๋ด๋ถ ์๋น์ค๋ฅผ ์ํด ์ด๊ฒ์ ๊ตฌํํ์ต๋๋ค. ํธ์คํธ์ uuid๋ฅผ ์ฌ์ฉํ๋ฏ๋ก(ํธ์คํธ ์ด๋ฆ์ ๋ณ๊ฒฝํด๋ ๋ฉํธ๋ฆญ ๊ธฐ๋ก ๋ฐ ๊ธฐํ ์ฌ๋ฌ ์ฌํญ์ด ์์ค๋์ง ์์) ์ด๋ฌํ uuid๋ฅผ ์ฌ์ฉ์์๊ฒ ํ์ํ๋ ๊ฒ์ ํ์ฉ๋์ง ์์์ต๋๋ค. uuid ๊ฐ์ ๊ฐ์งํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ http ๋์ ์ ์ฌ์ฉํ์ฌ ๋ณํํ๋ ์ฌ์ฉ ์ฌ๋ก์ ๋ํด ํน์ ํจ์น๋ฅผ ์ํํ์ต๋๋ค. ๊ทธ๊ฒ์ ์ฐ๋ฆฌ์๊ฒ ์ ์๋ํ์ง๋ง ์ผ๋ฐ์ ์ด๊ณ ํ์ฉ๋๋ ์ ์คํธ๋ฆผ์ ์ ํธํฉ๋๋ค.
๋งคํ์ ์ํํ ์ ์๋ URL์ ๊ฐ๋ฆฌํค๋ 'variable_translation_url' ์ต์ ์ ์ถ๊ฐํ๋ ๊ฒ์ด ํ์ฉ๋ฉ๋๊น? (ํ์ํ ๊ฒฝ์ฐ ์ ํ์ ์ธ์ฆ ํ ํฐ ์ฌ์ฉ) ๋๋ ๋ค์ด๋ก๋ํ ์ ์๊ณ ๋ฒ์ญ์ด ํ์ํ ์ง์ ์์ templateValuesSrv.js์ ํํฌํ ์ ์๋ javascript src๋ฅผ ๊ฐ๋ฆฌํค๋ variable_translation_script(ํด๋น ์ต์ ์ด ์ค์ ๋ ๊ฒฝ์ฐ) ?
templateValuesSrv.js ์ฝ๋๋ฅผ ๊ณต์ ํ ์ ์์ต๋๊น? ๋๋ ๊ทธ๊ฒ์ ์๋ํ๊ณ ์ถ๋ค.
@ZhuWanShan ์ด๊ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
https://github.com/sangoma/grafana/commit/fa109c23bc92c3121173579afbd87a04d7e2f523
๊ฑฐ๊ธฐ์ 2๊ฐ์ง ์ ๊ทผ ๋ฐฉ์์ด ํ์๋ฉ๋๋ค. ์ฒซ ๋ฒ์งธ๋ ๋งคํ์ ์ํํ๊ธฐ ์ํด HTTP URL์ ๊ฐ๋ฆฌํค๋ '์ฟผ๋ฆฌ' ์์ฑ์ ์ฌ์ฉํ์ฌ ์๋ก์ด ํ ํ๋ฆฟ ๋ณ์ ์ ํ 'http'๋ฅผ ๋์ ํ์ฌ ๋ณด๋ค ์ผ๋ฐ์ ์ด์์ต๋๋ค(_getHttpVariableOptions ์ฐธ์กฐ). ๋์ค์ ์ต์ ํ ์คํธ(ํ์ ๊ฐ)๊ฐ UUID ์ ๊ท์๊ณผ ์ผ์นํ๋์ง ๊ฐ์งํ๊ณ ๋ฐํํ๋ /api/v1/nodes/grafana-hosts/์ ๋ํ ํ๋ ์ฝ๋ฉ๋ HTTP ํธ์ถ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ ๋ณ์๋ฅผ ๊ฐ์ ๋ก ๋งคํํ๋ ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ ๊ตฌํํ์ต๋๋ค. ๋ชจ๋ ์ต์ ์ ๋งคํ. ๊ทธ๊ฒ์ ์ง๊ธ๊น์ง ์ ์๋ํ์ผ๋ฉฐ ์ด๊ฒ์ ์ผ๋ฐ ๋ฐฉ๋ฒ์ผ๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ง์นจ์ด ํ์ํฉ๋๋ค.
+1
+1
๊ด์ฌ ์๋ ์ฌ๋์ Simple JSON Datasource ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ์ฌ ํน์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ํด๊ฒฐํ ์ ์์์ต๋๋ค.
์ฆ, ํ๋ฌ๊ทธ์ธ์ ํ์ฌ ํ ํ๋ฆฟ ๋ณ์ ์ฟผ๋ฆฌ๋ฅผ ์ง์ํ์ง ์์ง๋ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ด pull ์์ฒญ ์ด ๋ง์คํฐ์ ๋ณํฉ๋์์ต๋๋ค. ํ๋ฌ๊ทธ์ธ์ ์ ๋ฐ์ดํธ๋ Grafana.net ๋ฆด๋ฆฌ์ค๊ฐ ์ด๋ ์์ ์ ๋ฐ๋ผ์ผ ํฉ๋๋ค.
์ด๋ฅผ ํตํด Grafana์์ ์ฌ์ฉ์ ์ ์ HTTP ์๋ํฌ์ธํธ๋ฅผ ๋ฐ์ดํฐ ์์ค๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. 4๊ฐ์ง ๋ฐฉ๋ฒ๋ง ๊ตฌํ ํ๋ฉด ๋ฉ๋๋ค. ์ฟผ๋ฆฌ ๊ธฐ๋ฐ ํ
ํ๋ฆฟ ๋ณ์์ ํจ๊ป ์ฌ์ฉํ๋ฉด HTTP ๋์ ์ /search
API ์์ฒญ์ ์์ ํ๊ณ ๋ณธ๋ฌธ์ { "target": "{template query content here}" }
ํ์์ JSON ๊ฐ์ฒด๊ฐ ๋ฉ๋๋ค. ์ํ๋ ๋๋ก ์ฟผ๋ฆฌ ๋ด์ฉ์ ๊ตฌ๋ฌธ ๋ถ์ํ ์ ์์ต๋๋ค.
๋์ ์์ ๊ฐ ๋ฐฐ์ด์ ๋ฐํํ๋ฉด ๋ค์ ํ์์ผ๋ก ํ
ํ๋ฆฟ ๋ณ์ ๊ฐ ["custom value 1", "custom value 2"]
์ ๊ธฐ๋ณธ ๋ชฉ๋ก์ด ์์ฑ๋ฉ๋๋ค. [{ "text": "custom value 1", value: 0 }]
์ฌ๊ธฐ์ text
์์ฑ์ ๋ฐฐ์ด ํญ๋ชฉ๋น ๋ฐํ๋ ๊ฐ์
๋๋ค. value
์์ฑ์ ๋ฐํ ๋ฐฐ์ด์ ์๋ ๋ณ์์ ์ธ๋ฑ์ค์
๋๋ค.
๋๋ ํ
์คํธ/๊ฐ ๊ฐ์ฒด ๋ฐฐ์ด [{ "text": "label", "value": 123 }]
์ ๋ฐํํ ์ ์์ผ๋ฉฐ Grafana๋ text
์์ฑ์ ํ
ํ๋ฆฟ ๋ณ์์ ๋ ์ด๋ธ๋ก ์ฌ์ฉํ๊ณ value
์์ฑ์ ์์ ๊ฐ์ผ๋ก ์ฌ์ฉํฉ๋๋ค. ํ
ํ๋ฆฟ ๋ณ์.
์ ๊ท์ ํ์์ ์ฟผ๋ฆฌ์ ๋ค๋ฅธ ํ ํ๋ฆฟ ๋ณ์๋ฅผ ๋์ ์ผ๋ก ์ฃผ์ ํ๊ณ ์ฒ๋ฆฌ๋ฅผ ์ํด ๋์ ์ผ๋ก ๋์ ์ผ๋ก ๋ณด๋ผ ์ ์์ต๋๋ค.
์ด๊ฒ์ ๋ชจ๋ ์จ๋ฆฌ์ด์ฑ ์๋๋ฆฌ์ค๋ฅผ ํด๊ฒฐํ์ง ๋ชปํ์ง๋ง ํ ํ๋ฆฟ ์ฟผ๋ฆฌ์ ๋์ ์ผ๋ก ๋ค๋ฅธ ํ ํ๋ฆฟ ๋ณ์๋ฅผ ์ฝ์ ํ๋ ๊ฒ์ ํฌํจํ์ฌ ํ ํ๋ฆฟ ๋ณ์์ ์ฌ์ฉํ ์ ์๋ ์์์ HTTP ๋ฐ์ดํฐ ์์ค๋ฅผ ๊ฐ๋ ๊ฒ์ ์ข์ ๋๊ตฌ์ ๋๋ค.
๋๋ ์ฌ๋์ด๋ค.
+1
+1
+1
+1
+1
+1
+1000
+1
+2
์ด ์์ผ๋ฉด ๋งค์ฐ ์ ์ฉํ ๊ฒ์ ๋๋ค. ์ค์ ๋ก ์ด๋ฆ๊ณผ uuid๋ฅผ ๋ชจ๋ ๊ฐ์ง ๊ฐ์ฒด๊ฐ ๋ง์ด ์์ต๋๋ค. ์ด๋ฆ์ ํ์ํ๊ณ ์ถ์ง๋ง uuid๋ฅผ ๋ณ์์ ์ ์ฅํฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ํ ์ ์๋ค๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
์ฟผ๋ฆฌ(๊ธฐ์กด): SHOW TAG VALUES FROM "vcd_vm" WITH KEY = "uuid" ์ฌ๊ธฐ์ "OrgVdc" =~ /^$vDC$/)
๋ ์ด๋ธ(์ ๊ท): "vcd_vm" WITH KEY = "name"์ ํ๊ทธ ๊ฐ ํ์(์ฌ๊ธฐ์ "uuid" =~ /^$tag$/)
+1
+1
+1
+1
+1
+1
+1
'์ฌ์ฉ์ ์ ์' ํ ํ๋ฆฟ ๋ณ์๊ฐ '๊ฐ' ๋ชฉ๋ก๊ณผ '๋ ์ด๋ธ' ๋ชฉ๋ก(๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ์ ์ ์ ํด์/๋์ ๋๋ฆฌ)์ ๋ชจ๋ ์ ๋ ฅ์ผ๋ก ์ฌ์ฉํ๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
+1
+1
์ด๋ ๊ณต์ Cloudwatch ๋ด๋ณด๋ด๊ธฐ์์ ๋ด๋ณด๋ธ AWS CloudFront ๋ฐ์ดํฐ์ ์ ์ฉํฉ๋๋ค. CloudFront์ ๋ฐ์ดํฐ๋ ์ฌ๋์ด ์ฌ์ฉํ์ง ์๋ ID๋ก ํ์๋ฉ๋๋ค. ๊ทธ๋ํ๋ฅผ ๋ณด๊ณ ์๋ ์ธ๊ฐ์ด "EAUUWLGUQEPFWV; EVWWU9PGWIB" ๋์ "foo.example.com; bar.example.com"์ ๋ณด๋ ๊ฒ์ด ํจ์ฌ ์ฝ์ต๋๋ค...
+1
๋จผ์ ๋ฉ์ง ์ ํ์ ๊ฐ๋ฐํ๊ณ ์ ์ธ๊ณ์ ๊ณต์ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
์ด๊ฒ์ด ์์ผ๋ก ๋ช ๋ฌ ์์ ๊ตฌํ๋ ๊ฐ๋ฅ์ฑ์ ๋ํ ์์๊ฐ ์์ต๋๊น? ์ ๋ ๊ณ์ํด์ @meverett ์ ์ ์๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ตฌํํ๊ฑฐ๋ ์ด๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ด ์ด๋ ์ ๋ ์๋ฏธ๊ฐ ์๋์ง ๊ฐ๋ ํด๋ณด๋ ค๊ณ ํฉ๋๋ค.
HTTP ๋์ ์ ํตํด ์ด๊ฒ์ ๊ตฌํํ๋ ๊ฒ์ ์ด ๋ฌธ์ ์ ๊ณ ๋๋ก ์ผ๋ฐํ๋ ๋ฒ์ ์ ๋ํ ๊น๋ํ ์๋ฃจ์ ์ด์ง๋ง ํ์ํ ๋ชจ๋ ๊ฒ์ด ์ ๋นํ ์์ "์น์ํ ํ์ ์ด๋ฆ" -> "์น์ ํ์ง ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ" ์.
@svet-b fwiw, ์ฐ๋ฆฌ๋ @meverett ์ ์ ์์ ์ฌ์ฉํ๋๋ก ์ฎ๊ฒผ๊ณ ๊ณ ํต์ค๋ฝ์ง ์๊ณ ๊นจ๋ํ์ต๋๋ค. ๋ฐ์ดํฐ ์์ค ํ๋ฌ๊ทธ์ธ์ ๊ตฌ์ถํ๋ ๋ฐ ๋ช ์๊ฐ์ด๋ฉด ์ถฉ๋ถํฉ๋๋ค.
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
@meverett ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ฝค ์ ์๋ํ์ง๋ง ๋ค์ค ๊ฐ ๋ณ์์ ํจ๊ป ์ฌ์ฉํ ๋ ๋ถ์กฑํฉ๋๋ค. ์๋ฆฌ์ฆ๋ (๋ด ๊ฒฝ์ฐ์๋) influxdb์ ํ๊ทธ๋ก๋ง ๋ ์ด๋ธ์ ์ง์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ํ ์ ์ ์ฌํญ์ด ์์ต๋๊น? :)
+1
+1
+1
+1
+1
์๋ ํ์ธ์, ์ด ๋ฌธ์ ๋ ๊ฝค ์ ๊ธฐ์ ์ผ๋ก ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์์ ์๋ฃจ์ ์ ์ฌ์ฉ ํ๋ ์์ Node.js ์น ์์ฉ ํ๋ก๊ทธ๋จ์ ํจ๊ป ๋ฃ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
๊ทธ๊ฒ์ ๋งค์ฐ ๊ธฐ๋ณธ์ ์ด์ง๋ง ๋ด ์๋ ์๊ฒฌ์์ ์ธ๊ธํ ํจํด์ ์์ ํ ๊ตฌํํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์กฐํ ๋ฐ์ดํฐ๋ฅผ ์์ฃผ ์ ๋ฐ์ดํธ๋์ง ์๋ ๋จ์ผ JSON ํ์ผ์ ๋ฃ์ ์ ์๋ค๋ฉด ์ฆ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ทธ๋ ์ง ์์ผ๋ฉด ์ด๋ฅผ ์์์ ์ผ๋ก ์ฌ์ฉํ๊ณ ์ํ๋ ์์ค(๋ฌผ๋ก ์ฌ์ฉ์๊ฐ ํ๋ก๊ทธ๋๋ฐํจ)์์ ์จ๋ฆฌ์ด์ฑ ๋ฐ์ดํฐ์ ์ก์ธ์คํ๋๋ก ํ์ฅํ๊ณ SimpleJson ๋ฐ์ดํฐ ์์ค ํ๋ฌ๊ทธ์ธ์ด ์ฌ์ฉํ ์ ์๋ ๋ฐฉ์์ผ๋ก ์ฑ์ ํตํด ์ ๊ณตํ ์ ์์ต๋๋ค. ํ ํ๋ฆฟ ๋ณ์ ์จ๋ฆฌ์ด์ฑ/๋งคํ์ ๊ตฌ๋ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์์ ์น ์ฑ์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ ์ฌ๊ธฐ ์ ์์ต๋๋ค.
๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์๋ฃจ์ ์ค์ ์ ๋ํ ์ถ๊ฐ ์ง์/์ค๋ช ์ ์์ฒญํ๋ ์์ฒญ์ด ๊ฐ๋ ์์์ต๋๋ค.
๊ฑด๋ฐฐ
+1
+1
์์ ์๋ฃจ์
@meverett ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์๋ฃจ์
์ ์คํํ Docker ์ปจํ
์ด๋๋ฅผ ๋ง๋ค๊ธฐ ์ํด Dockerfile์ ์ฌ์ฉํ์ฌ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ง๋ค์์ต๋๋ค. ๋น๋ ์ Dockerfile๊ณผ ํจ๊ป ์ฌ์ฉ์ ์ ์ data.json
๋ฅผ ๊ฐ์ ธ์ค๋๋ก ์ค์ ๋ฉ๋๋ค. ์ฌ๋๋ค์๊ฒ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
https://github.com/shirakaba/GrafanaSimpleJsonValueMapper-docker
๏ผ1
+1
+1
์ด๊ฒ์ +1ํ๋ ค๋ฉด ํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ๊ตฌ๋
ํ๊ณ ์๋ 74๋ช
์ ์ง์ฆ๋๊ฒ ํ ๊ฒ์ด๋ฉฐ ๋๊ตฐ๊ฐ๊ฐ ๋์์ ์์ ์ฌํญ์ ๊ตฌํํ๊ธฐ๋ฅผ ๋ฐ๋ผ๊ณ ์๋ค๋ ์ ์ ๋ช
์ฌํ์ญ์์ค.
GitHub๋ ์ด์ ๋๋ฌธ์ ๋ฐ์์ ์ถ๊ฐํ์ต๋๋ค ...
+1
+1
+1
์ด๊ฒ์ ์ข์ ๊ฒ์
๋๋ค! ๊ธด ์ซ์ ๊ฐ ๋ชฉ๋ก์ด ์์ง๋ง ๊ฐ ์์ฒด๋ณด๋ค ๊ฐ๊ฐ์ ๋ํด ์ฌ๋์๊ฒ ์น์ํ ๋ ์ด๋ธ์ ํ์ํ๋ ๊ฒ์ด ํจ์ฌ ๋ ์ข์ต๋๋ค.
๋ณ์: myListOfLongs {์ด๋ฆ: ๋์ํ ๊ฐ: 122321312332, ์ด๋ฆ: ๋ฅด๋
ธ ๊ฐ: 6666666}
+1!
+1
+1
#11534์ ๋ํ ๋ชจ๋ ์
๋ฐ์ดํธ(๋ฐ๋ณต๋ ํจ๋/ํ์ ์ฌ์ฉํ ๋ ๋์ ์ ๋ชฉ ํ์ฉ)
+1
+111111
+1
+1
+1, ์ด ๊ธฐ๋ฅ์ด ๋งค์ฐ ํ์ํฉ๋๋ค.
+1
+1
+1
+1
+1
์ด๊ฒ์ MySql ๋ฐ PostgreSQL์์ ์๋ํฉ๋๋ค.
๋ ๋ค๋ฅธ ์ต์ ์ ํค/๊ฐ ๋ณ์๋ฅผ ์์ฑํ ์ ์๋ ์ฟผ๋ฆฌ์ ๋๋ค. ์ฟผ๋ฆฌ๋ __text ๋ฐ __value๋ผ๋ ๋ ๊ฐ์ ์ด์ ๋ฐํํด์ผ ํฉ๋๋ค. __text ์ด ๊ฐ์ ๊ณ ์ ํด์ผ ํฉ๋๋ค(๊ณ ์ ํ์ง ์์ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ๊ฐ์ด ์ฌ์ฉ๋จ). ๋๋กญ๋ค์ด์ ์ต์ ์๋ ์น์ํ ์ด๋ฆ์ ํ ์คํธ๋ก, id๋ฅผ ๊ฐ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ํ ์คํธ์ ๊ฐ์ด ์์ต๋๋ค. hostname์ ํ ์คํธ๋ก, id๋ฅผ ๊ฐ์ผ๋ก ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ ์์:
SELECT hostname AS __text, id AS __value FROM my_host
http://docs.grafana.org/features/datasources/mysql/#query -๋ณ์
๋ง์ถค ๋ณ์๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํฉ๋๋ค.
[{
"__text": "Server 1",
"__value": 1
},
{
"__text": "Server 2",
"__value": 2
}
]
JSON์ด๋ผ๋ ์๋ก์ด ์ ํ์ด ์์ต๋๊น?
@johnymachine ๊ฐ์ฌํฉ๋๋ค! PostgreSQL ๋ฐ์ดํฐ ์์ค์ ์ ์ด์ธ๋ ธ์ต๋๋ค.
์ด๊ฒ์ ํ์ฅ์ผ๋ก ๋ณ์์ __text
์น์
์ ๊ฒ์ํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น? ์ด๊ฒ์ ๊ทธ๋ํ๋ฅผ ๋ฐ๋ณตํ ๋ ์ ๋ง ์ ์ฉํ ๊ฒ์
๋๋ค.
์๋ ํ์ธ์ @MGinshe , ์ด๊ฒ์ ์ ์๋ํฉ๋๋ค(ํ ์คํธ๋ ๊ฐ์ ์ฌ์ฉํจ).
ํธ์ง: ์ด ๋ฒ๊ทธ์ ์ด๊ธฐ ์ปจํ ์คํธ๋ฅผ ์๋ชป ์ดํดํ์ต๋๋ค. ์๋ ์ฃผ์์ ๋ฌด์ํ์ญ์์ค. #9292๋ฅผ ์ํ ๊ฒ์ด์์ต๋๋ค.
@torkelo @nmaniwa
https://github.com/grafana/grafana/pull/12609 ๋ ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด ์ฌ๊ธฐ์์ ์๊ตฌํ๋ ๊ฒ์ ๊ตฌํํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ ๊ทธ๊ฒ์ด ๋ซํ ์๊ณ ๋ณํฉ๋์ง ์์ต๋๊น?
์๋์, ๊ทธ ๋ฌธ์ ๋ ์์ ํ ๋ค๋ฅธ ๋ฌธ์ ์ ๊ดํ ๊ฒ์ ๋๊น, ์๋๋ฉด ์๋ชป๋ ๋ฌธ์ ์ ์ฐ๊ฒฐํ์ต๋๊น?
์์ง๋ ์ด๊ฒ์ ๋ํ ์์์ด ์์ต๋๊น? ์, ์ฐ๋ฆฌ๋ 2018 ๋ ์ ๋๋ค !! ๊ฐ์ฌ ํด์!
@dmayan @johnymachine ์ด ๋ต๋ณํ์ต๋๋ค. ์ด๊ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด๊ฒ์ MySql ๋ฐ PostgreSQL์์ ์๋ํฉ๋๋ค.
๋ ๋ค๋ฅธ ์ต์ ์ ํค/๊ฐ ๋ณ์๋ฅผ ์์ฑํ ์ ์๋ ์ฟผ๋ฆฌ์ ๋๋ค. ์ฟผ๋ฆฌ๋ __text ๋ฐ __value๋ผ๋ ๋ ๊ฐ์ ์ด์ ๋ฐํํด์ผ ํฉ๋๋ค. __text ์ด ๊ฐ์ ๊ณ ์ ํด์ผ ํฉ๋๋ค(๊ณ ์ ํ์ง ์์ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ๊ฐ์ด ์ฌ์ฉ๋จ). ๋๋กญ๋ค์ด์ ์ต์ ์๋ ์น์ํ ์ด๋ฆ์ ํ ์คํธ๋ก, id๋ฅผ ๊ฐ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ํ ์คํธ์ ๊ฐ์ด ์์ต๋๋ค. hostname์ ํ ์คํธ๋ก, id๋ฅผ ๊ฐ์ผ๋ก ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ ์์:
SELECT hostname AS __text, id AS __value FROM my_host
http://docs.grafana.org/features/datasources/mysql/#query -๋ณ์
๋ง์ถค ๋ณ์๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํฉ๋๋ค.
[{ "__text": "Server 1", "__value": 1 }, { "__text": "Server 2", "__value": 2 } ]
JSON์ด๋ผ๋ ์๋ก์ด ์ ํ์ด ์์ต๋๊น?
๋๋ MySQL์ด๋ PostgreSQL์ ์ฌ์ฉํ์ง ์์ต๋๋ค. ์ด๊ฒ์ Grafana ๊ธฐ๋ฅ์ด์ด์ผ ํฉ๋๋ค. ์๋๋ค
์ผ์ข
์ ํดํน.
๊ฐ์ฌ ํด์!
El jue., 9์ 27์ผ 2018๋
05:52, ๋ฌดํ๋ง๋ ํจ๋๋ฆฌ ์๋ฆผ @github.com
๊ธฐ๋ก:
@dmayan https://github.com/dmayan ๋ต๋ณ๋์์ต๋๋ค. ์ด๊ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด๊ฒ์ MySql ๋ฐ PostgreSQL์์ ์๋ํฉ๋๋ค.
๋ ๋ค๋ฅธ ์ต์ ์ ํค/๊ฐ ๋ณ์๋ฅผ ์์ฑํ ์ ์๋ ์ฟผ๋ฆฌ์ ๋๋ค. ์ฟผ๋ฆฌ
__text ๋ฐ __value๋ผ๋ ๋ ๊ฐ์ ์ด์ ๋ฐํํด์ผ ํฉ๋๋ค. __ํ ์คํธ
์ด ๊ฐ์ ๊ณ ์ ํด์ผ ํฉ๋๋ค(๊ณ ์ ํ์ง ์์ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ๊ฐ์
์ฌ์ฉ ๋). ๋๋กญ๋ค์ด์ ์ต์ ์๋ ๋ค์์ ํ์ฉํ๋ ํ ์คํธ์ ๊ฐ์ด ์์ต๋๋ค.
์น์ํ ์ด๋ฆ์ ํ ์คํธ๋ก, id๋ฅผ ๊ฐ์ผ๋ก ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์
ํธ์คํธ ์ด๋ฆ์ ํ ์คํธ๋ก, id๋ฅผ ๊ฐ์ผ๋ก ์ฌ์ฉํ์ฌ ์ฟผ๋ฆฌ:SELECT ํธ์คํธ ์ด๋ฆ AS __ํ ์คํธ, ID AS __๊ฐ FROM my_host
http://docs.grafana.org/features/datasources/mysql/#query -๋ณ์
๋ง์ถค ๋ณ์๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํฉ๋๋ค.
[{
"__text": "์๋ฒ 1",
"__๊ฐ": 1
},
{
"__ํ ์คํธ": "์๋ฒ 2",
"__๊ฐ": 2
}
]JSON์ด๋ผ๋ ์๋ก์ด ์ ํ์ด ์์ต๋๊น?
โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/grafana/grafana/issues/1032#issuecomment-425011676 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AWcYqEwxjXiXE07uM0ZG-A284TghEIR2ks5ufJG4gaJpZM4C4cjS
.
๊ฝค ์ ์ฉํ ๊ธฐ๋ฅ์ ๋๋ค. ์ด ๊ธฐ๋ฅ์ด ์ธ๋ถ์ ์๋ค๋ฉด ์ฌ๊ธฐ์์ ๋ง์ ๋์์ด ๋ ๊ฒ์ ๋๋ค. ํ์ฐ์ ํ์๋ฅผ ์ ์ฅํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฐ๋ผ์ Graphite์์ ์์ด๋ฅผ ์ฌ์ฉํด์ผ ํ์ง๋ง grafana ๋์๋ณด๋์ ์ค๊ตญ์ด๋ฅผ ํ์ํ๊ณ ์ถ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์ ๊ฒฝํ์ด ํจ์ฌ ๋ ์ข์ ๊ฒ์ ๋๋ค.
์ด ๊ธฐ๋ฅ์ด ๊ณง ์คํ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋ ๊ฐ์ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ID->์ด๋ฆ ๋งคํ์ ์ํํ์ต๋๋ค. ์ฒซ ๋ฒ์งธ ๋ณ์๋ ๊ฐ๋ฅํ ๋ชจ๋ ID(๊ฐ)๋ฅผ ๋์ดํ๊ณ ๋ ๋ฒ์งธ ๋ณ์๋ ID์ ์ผ์นํ๋ ์ด๋ฆ(ํ์ ํ ์คํธ)์ ๋์ดํฉ๋๋ค. ์ด์์ ์ด๊ฑฐ๋ ์์์ง๋ ์์ง๋ง ํธ๋ฆญ์ ์ํํฉ๋๋ค.
๋๋ ๊ทธ๊ฒ์ ์ค์ฒฉ ๋ณ์ ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ณ์ ์ ํ๊ธฐ ์ค ํ๋๋ฅผ ์จ๊ธธ ์ ์์ต๋๋ค.
+1
+1
@FdeFabricio InfluxDB๋ฅผ ์ฌ์ฉํ์ จ์ต๋๊น? ๋ค๋ฅธ ๊ฐ์ ๋ณ๊ฒฝํ ๋ ํ๋์ ๊ฐ์ ์๋์ผ๋ก ์ ๋ฐ์ดํธํฉ๋๊น? ๊ทธ๋ ๋ค๋ฉด ์ด๋ป๊ฒ ํฉ๋๊น?
@bassie1995
InfluxDB๋ฅผ ์ฌ์ฉํ์ต๋๊น?
๋ค
๋ค๋ฅธ ๊ฐ์ ๋ณ๊ฒฝํ ๋ ํ๋์ ๊ฐ์ ์๋์ผ๋ก ์ ๋ฐ์ดํธํฉ๋๊น?
๋ค
๊ทธ๋ ๋ค๋ฉด ์ด๋ป๊ฒ ํฉ๋๊น?
์ด๋ฏธ ์ ํํ ๊ฐ๊ณผ ์ผ์นํ๋ ํญ๋ชฉ์ ์ ํํ๋ ์ฟผ๋ฆฌ ์ ํ ๋ณ์(์: SELECT "name" FROM playlists WHERE ("id" =~ /^$playlist_id$/)
. ์ด์ ID๊ฐ ์๋ ๋ณ์์ ์ด๋ฆ์ด ์๋ ๋ณ์)๊ฐ ์์ต๋๋ค.
@bassie1995 @FdeFabricio ์ด ์์ ์ ๋ฐ๋๋ก ํ ์๋ ์์ต๋๋ค.
SELECT "id" FROM playlists WHERE ("name" =~ /^$playlist_name$/)
)์ด๋ ๊ฒ ํ๋ฉด ์ฌ์ฉ์์๊ฒ ์ด๋ฆ์ผ๋ก ์ฌ์ ๋ชฉ๋ก์ ์ ํํ๋ ์ต์ ์ด ํ์๋์ง๋ง ์ฌ์ ๋ชฉ๋ก ID๋ ์จ๊ฒจ์ง๋๋ค. ์ฌ์ ๋ชฉ๋ก ํญ๋ชฉ ๋ฑ์ ๊ฒ์ํ๊ธฐ ์ํด ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ฌ์ ๋ชฉ๋ก ID์ ๊ณ์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
PostgreSQL/MySQL ๋ฐ์ดํฐ ์์ค์ __name
๋ฐ __value
๊ตฌ๋ฌธ์ id->name ๋ชจํธ์ฑ์ ๋ฐฉ์งํ๊ณ ํ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ ์๋ฅผ ์ค์ด๊ธฐ ๋๋ฌธ์ ์ฌ์ ํ ์ด์์ ์
๋๋ค. ๊ธฐ๋ณธ ๊ธฐ๋ฅ IMO์ฌ์ผ ํฉ๋๋ค.
์์ @johnymachine ์ ์๊ฒฌ์ ๊ธฐ๋ฐ์ผ๋ก ํ ๋ ๋ค๋ฅธ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ์์ต๋๋ค. ์ผ๋ถ ๋ฐ์ดํฐ ์์ค์์ ์ด์ ๋ํ ์ง์์ด ์์ต๋๋ค. ๋ฐ์ดํฐ ์์ค์์ ์ง์๋์ง ์๋ ๊ฒฝ์ฐ MySQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํ๊ณ ๊ฑฐ๊ธฐ์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๊ณ __value ๋ฐ __text๋ฅผ ๋ฐํํ๋ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ๋ด ๊ฒฝ์ฐ ์ํ(์ง๋ฆฌ์ ์ํ)์์ ๋ฐ์ดํฐ๊ฐ ์ ์ ์ธ ๊ฒฝ์ฐ ์๋ํฉ๋๋ค. ์ฌ์ฉ์ ์ ์๋ก ์ ์๋ ๋ณ์์ ๋ํด ์ด ๊ธฐ๋ฅ์ ์ํ๋ ์ฌ๋์๊ฒ๋ ์ด๊ฒ์ด ์ข์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด๋ฉฐ ์ด์จ๋ ๋ ๋์ ์๋ฃจ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ชจ๋ ๋ณ์ ๋ชฉ๋ก์ ํ ์์น์ ์ ์ฅํ๊ณ ๋ ์ฝ๊ฒ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ ์ผํ ๋จ์ ์ MySQL์ ์ค์นํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
SELECT SingleChar AS __value, ShortName AS __text FROM TSDB. State
์ด ์๋ฃจ์ ์ ๋ฐ๋ณต ๊ทธ๋ํ, ๋ฐ๋ณต ํ ๋ฐ ๋ณ์์ ๋ค์ค ์ ํ์ด ์๋ ๊ฒฝ์ฐ์๋ ์๋ํฉ๋๋ค. "Girl Power"๋ฅผ ํ์ํ๊ธฐ ์ํด 2๊ฐ์ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ์์ ์๋ ์ด๋ฌํ ์ํฉ์์ ์๋ํ์ง ์์ต๋๋ค.
๋๋ ๊ทธ ๋ฌธ์ ๋ฅผ ๋ง์ง์ ๊ฑฐ๋ฆฌ๊ณ ์์๊ณ ๋ค์ hackinsh ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ์์ต๋๋ค ...
Perl ํ๊ธฐ๋ฒ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด ์์ฑ๋ ํด์๊ฐ ํ์ํ์ต๋๋ค.
Perl
%units = (
'ฮผSv/h' => 1.0,
'mrem/h' => 0.1 );
๋์๋ณด๋ ๋ณ์ Type
: Custom
, Values separated by comma
: mrem/h, ฮผSv/h
๋ฅผ ๋ง๋ ๋ค์ JSON Model
๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ํธ์งํ์ต๋๋ค.
JSON
{
"allValue": null,
"current": {
"tags": [],
"text": "mrem/h",
"value": "0.1"
},
"hide": 0,
"includeAll": false,
"label": null,
"multi": false,
"name": "units",
"options": [
{
"selected": true,
"text": "mrem/h",
"value": "0.1"
},
{
"selected": false,
"text": "ฮผSv/h",
"value": "1.0"
}
],
"query": "mrem/h, ฮผSv/h",
"skipUrlSync": false,
"type": "custom"
}
์ด๊ฒ์ด ์๋ํ๋ ๋์(์ผ๋ง ๋์) GUI๋ฅผ ํตํด ๋์๋ณด๋๋ฅผ ํธ์งํ๋ฉด ๋ค์ ์๋ํ์ง ์๋ ์ํ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค. :-|
๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ ์ ์๋ ๋ค๋ฅธ ์์คํ ์ด ์๋ ๊ฒฝ์ฐ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ ๋ค๋ฅธ ์ต์ :
JSON ๋ฐ์ดํฐ ์์ค ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํฉ๋๋ค. https://grafana.com/plugins/simpod-json-datasource ๋ฅผ ์ฌ์ฉ ์ค์ ๋๋ค.
ํ์ํ ๋ฐ์ดํฐ๊ฐ ์๋ ์ผ๋ถ ์์คํ
์์๋ /
์ํ ํ์ธ ๋์ ๊ณผ /search
๋์ ๋ง ๊ตฌํํฉ๋๋ค. /search
๋์ ์ ๋ค์๊ณผ ๊ฐ์ JSON์ ๋ฐํํด์ผ ํฉ๋๋ค. [{ "text": "A Human Name", "value": "123456" }, ...]
. text
์์ฑ์ ๋ณ์ ์ ํ ๋๋กญ๋ค์ด์ ํ์๋๊ณ value
๋ ๋ฉํธ๋ฆญ ์ฟผ๋ฆฌ์ ์ฌ์ฉ๋ฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ด ์ ๋ฐ์ดํฐ ์์ค์ ๋ํด ์ฟผ๋ฆฌํ๋๋ก ๋์๋ณด๋ ๋ณ์๋ฅผ ์ค์ ํฉ๋๋ค. ๋ค์ ํด๋กญ์ง๋ง ๋ฐ์ดํฐ ์์ค์ ๋ํด target
ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ์ฌ์ฉํ๋ ค๋ ๋ฐ์ดํฐ ์ธํธ๊ฐ ์ฌ๋ฌ ๊ฐ์ธ ๊ฒฝ์ฐ ๋ฐํํด์ผ ํ ๋ด์ฉ์ ๋ฐฑ์๋์ ์๋ฆด ์ ์์ต๋๋ค.
์ด๊ฒ์ +1. ๋๋ ์ด๊ฒ์ ํ๋ ๋ฐฉ๋ฒ์ ์ ๋ง๋ก ์ํ์ง๋ง ๋ฐฑ์๋์ ์์กดํ์ง ์๋ ๋ฐฉ๋ฒ(์ฐ๋ฆฌ๋ ํ์ฐ์ ์ฌ์ฉํฉ๋๋ค)์ ์ํฉ๋๋ค.
+1 ์๋ํ๋ ์๋ฃจ์ ์ด ์์ต๋๊น?
@BlackRider97 ์์ ์ฃผ์์ ์ดํด๋ณด์ญ์์ค. PostgreSQL(๊ทธ๋ฆฌ๊ณ ์๋ง๋ MySQL, MSSQL ๋ฑ)์ ์ํ ๋ช ๊ฐ์ง ์์ ์๋ฃจ์ ์ด ์์ต๋๋ค.
์๋ฃจ์ 1: https://github.com/grafana/grafana/issues/1032#issuecomment -409124505
์๋ฃจ์ 2: https://github.com/grafana/grafana/issues/1032#issuecomment -453242766
@thinrope ์์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌํํ๋ ๊ฒ์ ์ ๋ง ์ฐ์ํ ์์ ์ด ๋ ๊ฒ์
๋๋ค.
์ฌ์ฉ์ ์ง์ ๋ณ์์์ JSON์ ์ฌ์ฉํ ์ ์๊ฑฐ๋ ๋ณ์ ์ ํ์ด "JSON"์ธ ๊ฒฝ์ฐ ํดํน ์์ด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ผ๋ฉฐ ๋จ์ ์ ์์ต๋๋ค.
+1 ์ด์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
+1
+1
๋ฐ๋์ ์์ด์ผ ํ๋ ๊ธฐ๋ฅ์
๋๋ค.
๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ํธ์คํธ ์ด๋ฆ์ ์ ๊ท์์ ์ฌ์ฉํ์ฌ ์ผ๋ถ ํธ์คํธ๋ฅผ ํํฐ๋งํฉ๋๋ค. ๋ด ์๋ฒ์๋ ํธ์คํธ ์ด๋ฆ์ ํจํด์ด ํฌํจ๋์ด ์์ผ๋ฏ๋ก ์ ๊ท์์ ์ฌ์ฉํ์ฌ ์ง์ ๋ ๊ทธ๋ฃน์ ๋ชจ๋ ์๋ฒ ๋ชฉ๋ก์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ๋ชป์๊ธด ์ ๊ท ํํ์์ ํ์ํ๋ ๋์ ๋๋กญ๋ค์ด ๋ฉ๋ด์ ๋ ์ด๋ธ๋ก "๊ทธ๋ฃน A์ ์๋ฒ"์ ๊ฐ์ ์์ ์ด๋ฆ์ ํ์ํ๊ณ ์ถ์ต๋๋ค.
์ด๊ฒ์ ์ฌ์ฉ์ ์ ์ ๊ฐ์ ์
๋ ฅํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ด ๊ฐ๋จํ ์ ์์ต๋๋ค.
label1:value1, value2, label3:value3, label5:value5
๋ ์ด๋ธ์ ์ ํ ์ฌํญ์
๋๋ค. :
๊ฐ ๋ฌธ์์ด์ ์์ผ๋ฉด :
์์ ๋ชจ๋ ๊ฒ์ด ๋ ์ด๋ธ์ด๊ณ ๋ค์ ๋ชจ๋ ๊ฒ์ด ๊ฐ์
๋๋ค.
,
๋ฌธ์์ ๋ํด ํ ์ ์๋ ๊ฒ์ฒ๋ผ ๋ ์ด๋ธ ์ด๋ฆ์ด๋ ๊ฐ์ ํ์ํ ๊ฒฝ์ฐ :
๋ฅผ ์ด์ค์ผ์ดํํ๋ ๋ฐฉ๋ฒ์ด ์์ด์ผ ํฉ๋๋ค.
๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ ์ ์๋ ๋ค๋ฅธ ์์คํ ์ด ์๋ ๊ฒฝ์ฐ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ ๋ค๋ฅธ ์ต์ :
JSON ๋ฐ์ดํฐ ์์ค ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํฉ๋๋ค. https://grafana.com/plugins/simpod-json-datasource ๋ฅผ ์ฌ์ฉ ์ค์ ๋๋ค.
ํ์ํ ๋ฐ์ดํฐ๊ฐ ์๋ ์ผ๋ถ ์์คํ ์์๋
/
์ํ ํ์ธ ๋์ ๊ณผ/search
๋์ ๋ง ๊ตฌํํฉ๋๋ค./search
๋์ ์ ๋ค์๊ณผ ๊ฐ์ JSON์ ๋ฐํํด์ผ ํฉ๋๋ค.[{ "text": "A Human Name", "value": "123456" }, ...]
.text
์์ฑ์ ๋ณ์ ์ ํ ๋๋กญ๋ค์ด์ ํ์๋๊ณvalue
๋ ๋ฉํธ๋ฆญ ์ฟผ๋ฆฌ์ ์ฌ์ฉ๋ฉ๋๋ค.๊ทธ๋ฐ ๋ค์ ์ด ์ ๋ฐ์ดํฐ ์์ค์ ๋ํด ์ฟผ๋ฆฌํ๋๋ก ๋์๋ณด๋ ๋ณ์๋ฅผ ์ค์ ํฉ๋๋ค. ๋ค์ ํด๋กญ์ง๋ง ๋ฐ์ดํฐ ์์ค์ ๋ํด
target
ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ์ฌ์ฉํ๋ ค๋ ๋ฐ์ดํฐ ์ธํธ๊ฐ ์ฌ๋ฌ ๊ฐ์ธ ๊ฒฝ์ฐ ๋ฐํํด์ผ ํ ๋ด์ฉ์ ๋ฐฑ์๋์ ์๋ฆด ์ ์์ต๋๋ค.
๋๋์ด ๊ตฌํ์ํ๊ณ ๊ทธ๊ฒ์ ๋๋ฅผ ์ํด ์๋ํ์ง๋ง ํธ๋ ๋ (๋ฒ๋ก) ๋ ์ด๋ธ์ ๋ถ์ด ์์ต๋๋ค ... ID (์ซ์) ๋๋ ์ ์๋์ง ์์๊ฑฐ๋ ๋ค๋ฅธ ๋ง๋ ์๋๋ ๊ฒ์ ์ป์ต๋๋ค.
์กฐ์ธํด์ฃผ์ค ์ ์๋์?
์ค
+1
๋๋ ๋ํ ์ง๊ธ ์ฐ๋ฆฌ ํ์ฌ์ Grafana์์ @mbell697 ์ด ์ค๋ช ํ JSON-hack์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด์ํ ์ ๊ท์ ๋ฌธ์ IMHO๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ด ๊ฒ์ ๋ฐ์ดํฐ๊ฐ ๋ณด์ด๋ Graphite ์ฟผ๋ฆฌ์ ํ์ํ ๊ทธ๋ฃน์ ์ ๊ณตํ๋ ์์ ํ์ด์ฌ ํ๋ผ์คํฌ ์ฑ์ ์ค์ ํ์ต๋๋ค.
@app.route('/search', methods=['POST'])
def search():
data = [
{"text": "fs-servers", "value": "{FS-server-1,FS-server-2,FS-server-3}"},
{"text": "db-a-servers", "value": "{db-server-1,}"},
{"text": "db-b-servers", "value": "{db-server-2,db-server-3}"}
]
return jsonify(data)
๊ทธ๋์ ๋์๋ณด๋์์ json-source๋ฅผ ์ฌ์ฉํ์ฌ "group"์ด๋ผ๋ ์ฟผ๋ฆฌ ๋ณ์๋ฅผ ๋ง๋ ๋ค์ /fs-.*/
๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ท์ ํ๋๋ก "fs-servers" ๊ทธ๋ฃน์ ํํฐ๋งํ๋ ค๊ณ ์๋ํ์ง๋ง ์๋ํ์ง ์์ต๋๋ค. ์์๋๋ก - ์ฃผ์๋ฅผ ๋ง์ง์๊ฑฐ๋ฆฌ๋ค๊ฐ ์ ๊ท์์ด "ํ
์คํธ" ํ๋๊ฐ ์๋๋ผ "๊ฐ"์ ์ด๋ป๊ฒ๋ ์ ์ฉ๋๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค. ๋๊ตฐ๊ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด๋ ์์ด๋์ด๊ฐ ์์ต๋๊น?
+1
+1
์ด์ ๋ํ ์๊ตฌ ์ฌํญ์ ๋ํ ๋์ ๊ฒฌํด:
์ฐ๋ฆฌ์ ๊ฒฝ์ฐ ๊ฐ์ ๊ฒ์ ๋ ๊ฐ์ง ๋ณํ์ ์๊ฐํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฒ์ ๋ณธ์ง์ ์ผ๋ก ๋ณ์นญ์ ๋๋ค. ๋ ๊ฒฝ์ฐ ๋ชจ๋ ๋์๋ณด๋ ์์ ์๋ ์ต์ข ์ฌ์ฉ์๊ฐ ์ดํดํ๊ธฐ ์ฌ์ด ํ ํ๋ฆฟ ๋ณ์ ๋ชฉ๋ก์ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ๋ ค๊ณ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฟผ๋ฆฌ์ ์ฌ์ฉ๋ ๊ฐ์ ๊ธฐ๋ณธ ๊ฐ์ ๋๋ค.
์ 1 - ๊ฐ๋จํ ์ผ๋์ผ ์ด๋ฆ ๋ณํ. ๋ฐ๋ผ์ ์ด ๊ฒฝ์ฐ ๋ฉํธ๋ฆญ ๊ฐ์ผ๋ก ๊ฒ์๋ ์ซ์ ๊ตญ๊ฐ ์ฝ๋๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ซ์ ์ฝ๋๋ฅผ ์๊ธฐํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๋ฐ๋ผ์ "US" ๋๋ "Canada"๋ฅผ ํ์ํ๋ ค๊ณ ํฉ๋๋ค.
{ "๋ฏธ๊ตญ" == "01" }
{ "์บ๋๋ค" == "02" }
"์บ๋๋ค"๋ฅผ ์ ํํ ๊ฒฝ์ฐ ์ฟผ๋ฆฌ์ ์ ๋ฌ๋๋ ํ ํ๋ฆฟ ๋ณ์ ๊ฐ์ "02"์ ๋๋ค.
์ 2 - ์ผ๋๋ค ๋งคํ์
๋๋ค. ๋ด๋ถ์ ์ผ๋ก ๋ฐฐํฌ ๋จ๊ณ๊ฐ ์์ต๋๋ค(์: s0, s1, s2, s3, s4). ๊ทธ๋ฌ๋ ์ต์ข
์ฌ์ฉ์๋ ์ด๊ฒ์ "dev, beta, prod"๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ด ๋งคํํ๋ ค๊ณ ํฉ๋๋ค.
{ "๊ฐ๋ฐ์" == ["s1"] }
{ "๋ฒ ํ" == ["s2", "s3"] }
{ "prod" == ["s4", "s5", "s6"] } ๋๋ ๋ ๋์ ์์ง "prod" == s[456]
๋ฐ๋ผ์ "prod"๊ฐ ์ ํ๋๋ฉด "s4,s5,s6"์ด ์ฟผ๋ฆฌ์ ์ ๋ฌ๋ฉ๋๋ค.
๋ณ์ ์ด๋ฆ์ด stageVar์ธ ์ฟผ๋ฆฌ ๊ด์ (์์ 2 ์ฌ์ฉ)์์
๋ฉํธ๋ฆญ ํ๊ทธ ์ด๋ฆ์ stage:
ํธ์ถ๊ณผ ๊ฐ์ aliasBy()์ ๋ํ ํ์์ฑ์ ๊ทธ๋ฆฌ ๋ง์ง ์์ง๋ง ๋ค์๊ณผ ๊ฐ์ ๋ ๋ง์ ๊ฒ๋ค์ด ํ์ํฉ๋๋ค.
stage=~${stageVar. ๊ฐ:์ ๊ท์ }
๋ณ์นญ($stageVar.label)
์ ํํ ํ ํ๋ฆฟ ๋ณ์ ๊ฐ์ผ๋ก ๊ฒฐ๊ณผ๋ฅผ ํํฐ๋งํฉ๋๋ค. ๋๊ตฐ๊ฐ๊ฐ aliasBy() ํจ์์ ๊ฐ์ ๊ฒ์ ์๋ํ๊ณ ์ฌ์ฉํ ์๋ ์์ง๋ง ๊ตฌ๋ฌธ ์ค๋ฅ๋ผ๋ฉด ๊ด์ฐฎ์ต๋๋ค. ๋จ์ผ ๊ฐ์ ๊ธฐ๋ํ๋ ํจ์์ ์ ๋ฌ๋ ๋ฐฐ์ด์ ๋ณํ์ ๋ง์ ์ฒ๋ผ ๊ณ ์น ๊ฒ์ด๋ผ๊ณ ๋ ๊ธฐ๋ํ์ง ์์ต๋๋ค.
๋งคํ์ ๊ดํด์๋ ์ฌ์ฉ์๊ฐ ์ ์ ์ผ๋ก ์ ์ํ๋ ๊ฒ์ผ๋ก ์ถฉ๋ถํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด์์ ์ผ๋ก๋ ๋งคํํด์ผ ํ๋ ๊ฐ ๋ชฉ๋ก(์: "01", "02", "03")์ ์ป๊ธฐ ์ํด MT์ ์ฟผ๋ฆฌ๋ฅผ ์ํํ ๋ค์ ๋งคํ/๋ณ์นญ์ ์ฝ๊ฒ ์ถ๊ฐํ ์ ์์ต๋๋ค. ๋งคํ๋์ง ์์ ๊ฐ์ "๊ธฐ๋ณธ" ๋ฒํท์ผ๋ก ์ด๋ํฉ๋๋ค.
+1
+1
๋๋ ์ด๊ฒ์ด ํฌํจ๋์ง ์์๋ค๋ ์ฌ์ค์ ๋งค์ฐ ๋๋์ต๋๋ค. ์ ๋ ์ด "๋ช ๋ฐฑํ" ์ผ์ ์ด๋ป๊ฒ ํ๋์ง ์์๋ด๋ ค๊ณ ๊ฝค ๋ง์ ์๊ฐ์ ๋ณด๋๊ณ ๊ฒฐ๊ตญ ๊ทธ๊ฒ์ด ์กด์ฌํ์ง ์๋๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ๊ธฐ ์ํด ์ฌ๊ธฐ๊น์ง ์์ต๋๋ค.
์์์ ์ค๋ช ํ ๊ฒ์ฒ๋ผ ๋์ ์ผ๋ก ๋ค์ ์์ฑํ๋ ๊ธฐ๋ฅ์ ํ์์ ์ผ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ ํ ํญ๋ชฉ์ ๋จ์ผ ๋๋ ๋ค์ค ์ ํ ๊ฒฐ๊ณผ์ ์ ์ ์ผ๋ก ๋งคํํ๋ "์ฌ์ฉ์ ์ง์ " ํ๋์ ํ์ฅ ๋ฒ์ ์ธ ๋จ๊ธฐ ํดํน(๋๋ ์๊ตฌ์ ์ธ "์ฌ์ด" ๋ชจ๋ธ)์๋ ๋ง์กฑํฉ๋๋ค.
์ฐ๋ฆฌ์ ์๋ ๊ตญ๊ฐ ์ฝ๋์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ข ์ข ๊ตญ๊ฐ๊ฐ ์๋ ์ง๋ฆฌ์ ์ง์ญ์ ๊ธฐ๋ฐ์ผ๋ก ์์คํ ํด๋ฌ์คํฐ๋ฅผ ๋ณด๊ณ ์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ๊ตญ๊ฐ ์ฝ๋๋ฅผ Prometheus ์๋ฒ์ ํค๋ก ์ ์ฅํฉ๋๋ค. ๊ทธ๋์ ์ง๊ธ์ ๋ถ๋ฏธ์ ๋ชจ๋ ์์คํ ์ ๋ณด๋ ค๋ฉด ๊ฑฐ์ 100๊ฐ ๊ตญ๊ฐ์์ ์ฟผ๋ฆฌ ๊ธฐ๋ฐ ์ต์ ๋ชฉ๋ก์์ US, CA, MX๋ฅผ ์๋์ผ๋ก ์ ํํด์ผ ํฉ๋๋ค. ๋ถ์์ ์ํด ์ ๋ฝ์ด๋ ์์์, ์ํ๋ฆฌ์นด์ ๋ชจ๋ ๊ตญ๊ฐ๋ฅผ ์ ํํ๋ ๋ฐ ์ผ๋ง๋ ๋ง์ ์๊ฐ์ ํ ์ ํ๋์ง ๋งํ ์ ์์ต๋๋ค. ๊ฐ ์ง์ญ์ ๋ํด ์์ ํ ๋ค๋ฅธ ๋์๋ณด๋๋ฅผ ์ค์ ํ๋ ๊ฒ์ ๊ฑฐ์ ๊ฐ์น๊ฐ ์์ต๋๋ค. ์ด๋ ํฐ๋ฌด๋์์ง๋ง ๊ทธ๋ํ๋ฅผ ํ๋ ์ฝ๋ฉํ์ง ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ๋๋ค. ๋งคํ์ผ๋ก ์์ ํ ์๋ก์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋ ๋ค์ ์จ๊ฒจ์ง ์ฟผ๋ฆฌ๋ฅผ ์ํํ๋ ๊ฒ๋ ์ด์์ ์ด์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.
๋ด ์ด๋ณ ๊ฟ:
์ด๊ฒ์ ๊ฐ๋ฅํ ์๋ก์ด ์ ํ์ ๋ณ์๋ก์ "์ฌ์ฉ์ ์ง์ ๋ชฉ๋ก" ์ต์
์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฌ์ฉ์ ์ง์ ๋ชฉ๋ก์ ์ ํํ๋ฉด ๋น์ด ์๋ ์ํ๋ก ์์๋์ง๋ง "์ฌ์ฉ์ ์ง์ " ๋ชจ๋ธ์ด ์ค๋๋ ๋ณด์ด๋ ๊ฒ๊ณผ ๋งค์ฐ ์ ์ฌํฉ๋๋ค. "์ถ๊ฐ" ๋ฒํผ์ด ๋ํ๋ฉ๋๋ค. "์ถ๊ฐ"๋ฅผ ํด๋ฆญํ๋ฉด ๊ฐ๊ฐ์ ์ฑ์ธ ์ ์๋ "ํ์ ๊ฐ:" ๋ฐ "๊ฒ์ ๊ฐ:"์ด ์๋ 2๊ฐ์ ํ๋ ์
๋ ฅ ๋ฐฐ์ด์ด ์์ฑ๋ฉ๋๋ค. "ํ์ ๊ฐ"์ ์ฌ์ฉ์๊ฐ ์ ํ ๋ชฉ๋ก์ ํ์ํ๊ณ ์ ํ๋ ๋ชจ๋ ๊ฒ์
๋๋ค. ์ฌ๋ก, "๋ถ๋ฏธ". ๊ทธ๋ฌ๋ฉด "๊ฒ์ ๊ฐ"์ด ์ฟผ๋ฆฌ์ ํ์๋ ๊ฒ์
๋๋ค. ๋ค์ ๋งํ์ง๋ง ๋ถ๋ฏธ์ ๊ฒฝ์ฐ ์ด ์์์๋ "us,ca,mx"๊ฐ ๋ฉ๋๋ค. ์ธ์ ๋ ์ง "์ญ์ " ์์ด์ฝ(ํด์งํต?)์ ๊ฐ๋ณ ๋ผ์ธ์ ์๊ฒฉ์ผ๋ก ๋ง๋ญ๋๋ค. "์ถ๊ฐ" ๋ฒํผ์ ๋ค์ ํด๋ฆญํ๋ฉด ์ฌ์ฉ์๊ฐ ์ต์
๋ชฉ๋ก์ ์๋ฃํ ๋๊น์ง ์ ํ์ด๋ง์ด ์์ฑ๋ฉ๋๋ค. "๋ค์ค ๊ฐ" ๋ฐ "๋ชจ๋ ์ ํ" ์ต์
์ ๊ธฐ์กด ์ฌ์ฉ์ ์ง์ ๋ชจ๋ธ๊ณผ ์ ์ฌํ๊ฒ ์ ์ง๋ฉ๋๋ค.
๋๋ ์ด๊ฒ์ด ํฌํจ๋์ง ์์๋ค๋ ์ฌ์ค์ ๋งค์ฐ ๋๋์ต๋๋ค. ์ ๋ ์ด "๋ช ๋ฐฑํ" ์ผ์ ์ด๋ป๊ฒ ํ๋์ง ์์๋ด๋ ค๊ณ ๊ฝค ๋ง์ ์๊ฐ์ ๋ณด๋๊ณ ๊ฒฐ๊ตญ ๊ทธ๊ฒ์ด ์กด์ฌํ์ง ์๋๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ๊ธฐ ์ํด ์ฌ๊ธฐ๊น์ง ์์ต๋๋ค.
๋๋ MySQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ ๋ฝ, ๋ถ๋ฏธ ๋ฑ ๋๋กญ๋ค์ด์์ ์ํ๋ ํญ๋ชฉ์ผ๋ก ํ ์ด๋ธ์ ์์ฑํฉ๋๋ค. ๋ ๋ฒ์งธ ํ๋์๋ ์ผ์น์ํค๋ ค๋ ํญ๋ชฉ๊ณผ ์ผ์นํ๋ ์ ๊ท์์ด ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ MySQL์ ๋ฐ์ดํฐ ์์ค๋ก ์ถ๊ฐํ๊ณ ๋ณ์๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๊ฒ์ ํดํน์ด์ง๋ง ์ค์ ๋ก๋ ๊ฝค ์ ์๋ํฉ๋๋ค. ๋๋ ๋น์ ์ดํ๋ ค๋ ์ ํํ ์ผ์ ๊ทธ๊ฒ์ ์ฌ์ฉํฉ๋๋ค.
๋๋ ์๋ฆฌํ ํดํน์ ๊ฐ์ฌํ์ง๋ง ์ฐ๋ฆฌ์๊ฒ๋ ์ด๊ฒ์ด ์ง์ ํ ํด๊ฒฐ์ฑ ์ด ์๋๋๋ค. ๋งค์ฐ ์ ์ ์ธ ๊ฐ๋จํ ํค/๊ฐ ๋์ฒด๋ฅผ ์ํํ๊ธฐ ์ํด ์์ ํ ์๋ก์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค(MySQL์ ์ ํ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ์ด์์ ๋ถ๊ฐ๋ฅํจ)๋ฅผ ์ค์ ํ๋ ๊ฒ์ ๊ฑด๋๋ฐ์ด์ผ ํ ๋ง์ ๋ฌธ์ ์ฒ๋ผ ๋ณด์ ๋๋ค.
๋๋ ์ด๊ฒ์ ๋ํด ์กฐ๊ธ ๋ ์๊ฐํ๊ณ ์์๊ณ ์์์ ์ค๋ช ํ ๊ฒ๋ณด๋ค ์ด ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ํจ์ฌ ๋ ์ฐ์ํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ "๋ณ์ ๋งคํฌ๋ก"๋ผ๊ณ ๋ถ๋ฅผ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ ๊ด๋ฆฌ์๊ฐ ์ด๋ฌํ ๋งคํฌ๋ก ์ค ํ๋(๋๋ ๊ทธ ์ด์)๋ฅผ ์ ํํ๋ฉด ๋ช ๋ช ๋ ๋ณ์๊ฐ ์ค์ ๋๊ณ ์ฃผ์ด์ง ๊ฐ์ด ๊ธฐ์กด ๊ฐ ์งํฉ์ ์ถ๊ฐ๋๋๋ก ์ง์ ํ ์ ์๋ค๋ ์ ์ ์ ์ธํ๊ณ ๋ ์ฌ์ฉ์ ์ง์ ๋ชฉ๋ก์ฒ๋ผ ๋ณด์ ๋๋ค. ์ด๊ฒ์ ์ ์ ์ผ๋ก UI ๊ธฐ๋ฐ ๋ชจ๋ธ์ด๋ฉฐ ์ค์ ๋ณ์ ๊ฐ๋ ์ ์ ํ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค. ๊ธฐ์กด ๋ณ์ ์์ ์๋ ์์ฑ ์คํ ๋ ์ด์ด๋ฅผ ์์ฑํ ๋ฟ์ ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์์ฑ ๋๋ ์ฟผ๋ฆฌ ํตํฉ์ ํ์ํ ์ถ๊ฐ ๋ณ์ ์์ด ์ด์ ๋ฒ์ ๊ณผ ํธํ๋ฉ๋๋ค.
๋ณ์๋ฅผ ์ค์ ํ๋ ๋งคํฌ๋ก๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์๊ฐ ๊ฐ์ด ์ ํ๋ ๋ ๊ฐ์ ๋ณผ ์ ์์ผ๋ฉฐ ์ฌ์ฉ์๊ฐ ์ด์ ์ฃผ์๊ณผ ๊ฐ์ด ๋ณ๋์ ๋ณ์๋ฅผ ๋ง๋๋ ๋์ ๊ฐ ๋ณ์๋ฅผ ์ด๊ณ ์ ํ ํญ๋ชฉ์ด๋ ๋ฐ์ดํฐ๋ฅผ ํ์ธ/์กฐ์ํ ์ ์์ต๋๋ค. ์์ํ๋ค. ์ด๊ฒ์ ํจ์ฌ ๋ ์ง๊ด์ ์ผ ๊ฒ์ ๋๋ค.
์์:
๋ฐ๋ผ์ "๋ถ๋ฏธ - ๊ธฐ๋ณธ ํด๋ฌ์คํฐ"๋ผ๋ ๋ณ์ ๋งคํฌ๋ก๋ "๊ตญ๊ฐ" ๋ณ์๋ฅผ "us,ca,mx"๋ก ์ค์ ํ๊ณ "ํด๋ฌ์คํฐ:" ๋ณ์๋ฅผ "๊ธฐ๋ณธ"์ผ๋ก ์ค์ ํฉ๋๋ค. ๋งคํฌ๋ก ๋ณ์ ํ๋ค์ด์ ๋ค์ ํฐ์นํ์ง ์๋ ํ, ์ด๋ฆ์ด ์ง์ ๋ ๊ฐ ๋ณ์๋ฅผ ํ๋ค์ดํ๋ฉด ํด๋น ์ค์ ์ด ํ์๋๋ฏ๋ก(์จ๊ฒจ์ง ๊ฒฝ์ฐ ์ ์ธ) ๊ตญ๊ฐ: ๋ชฉ๋ก์ ๊ตญ๊ฐ๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ๋บ ์ ์์ต๋๋ค.
"์ค์ ํ๊ธฐ ์ ์ ๋ช ๋ช ๋ ๋ณ์ ์ง์ฐ๊ธฐ"์ ๋ถ์ธ ๊ฐ์ด ์์ ์ ์์ผ๋ฏ๋ก ์ด ๋งคํฌ๋ก์ ๋ํ ์ ํ ๋ชฉ๋ก์ด ๋ณ๊ฒฝ๋๋ฉด ์ง์ ๋ ๋ณ์์ ๋ค๋ฅธ ์ค์ ์ด ์ง์์ง๋๋ค. ์ด๋ ์ด์ ์ ์ค์ ํ ํญ๋ชฉ์ ํฌํจํ ์ ์๋์ง ๋ช ํํ์ง ์์ ๋ชฉ๋ก์ ์ ์ฉํ ์ ์์ต๋๋ค. ํ๋ ์ด์์ ๊ฐ๋ณ ๋งคํฌ๋ก ์ต์ ์ด ์ ํ๋ ๊ฒฝ์ฐ ํน์ ๊ฐ์ ๊ฒฝ์ ์ค์ ์ด ์๋ ๊ฒฝ์ฐ ๊ฒ์ฌํ ๋ชฉ๋ก์ ๋ง์ง๋ง ์ต์ ์ด "์น๋ฆฌ"ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๊ทธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. (์ด ์ง์ฐ๊ธฐ ์์ ์ ๋ณ์๋ณ๋ก ์ง์ ๋์ด์ผ ํ๋ค๊ณ ์ฃผ์ฅํ ์ ์์ง๋ง ์ฝ๊ฐ ๋ณต์กํ๊ฒ ๋ค๋ฆด ๊ฒ ๊ฐ์ต๋๋ค... ํ์ง๋ง ๋ง๋์?)
๋ค์์ "๊ตญ๊ฐ" ๋ฐ "ํด๋ฌ์คํฐ"๋ผ๋ ๊ธฐ์กด ๋ณ์๊ฐ ์๋ ๊ฐ์์ ์์ ๋๋ค.
๋ณ์ ๋งคํฌ๋ก ์ด๋ฆ: ์ง์ญ
Name1: ๋ถ๋ฏธ - ๊ธฐ๋ณธ ํด๋ฌ์คํฐ
์ค์ ํ๊ธฐ ์ ์ ๋ช
๋ช
๋ ๋ณ์ ์ง์ฐ๊ธฐ: Y
๋ณ์1: ๊ตญ๊ฐ
๊ฐ1: us,ca,mx
๋ณ์2: ํด๋ฌ์คํฐ
๊ฐ2: ๊ธฐ๋ณธ
Name2: Nordics - ๋ณด์กฐ ํด๋ฌ์คํฐ
์ค์ ํ๊ธฐ ์ ์ ๋ช
๋ช
๋ ๋ณ์ ์ง์ฐ๊ธฐ: Y
๋ณ์1: ๊ตญ๊ฐ
๊ฐ1: se,fi,no,dk,is
๋ณ์2: ํด๋ฌ์คํฐ
๊ฐ2: ๋ณด์กฐ
๋๋ ์๋ฆฌํ ํดํน์ ๊ฐ์ฌํ์ง๋ง ์ฐ๋ฆฌ์๊ฒ๋ ์ด๊ฒ์ด ์ง์ ํ ํด๊ฒฐ์ฑ ์ด ์๋๋๋ค. ๋งค์ฐ ์ ์ ์ธ ๊ฐ๋จํ ํค/๊ฐ ๋์ฒด๋ฅผ ์ํํ๊ธฐ ์ํด ์์ ํ ์๋ก์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค(MySQL์ ์ ํ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ์ด์์ ๋ถ๊ฐ๋ฅํจ)๋ฅผ ์ค์ ํ๋ ๊ฒ์ ๊ฑด๋๋ฐ์ด์ผ ํ ๋ง์ ๋ฌธ์ ์ฒ๋ผ ๋ณด์ ๋๋ค.
์ด๋ฐ ๋ง์์ ํ์ค ๊ฑฐ๋ผ ์์ํ์ต๋๋ค. ํ์ค์ ๋น์ ์ด ํดํน์ ์์ฒญํ๊ณ ์ด ํดํน์ผ๋ก ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๊ณ ์ค์ ์ด ์ด๋ ต์ง ์๊ณ ๋ฏธ๋์ ๋๋๋ฆฌ๊ธฐ ์ด๋ ต์ง ์์ต๋๋ค. ์๋ก์ด ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๊ณ์ ์ถ๊ฐํ ๋ MySQL์ ๊ฑฐ๊ธฐ์ ๋๋ ๊ฒ์ด ์ค์ ๋ก ๋งค์ฐ ํธ๋ฆฌํ๋ค๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค. MySQL์ ์ถ์ ํ๊ณ ์ ๋ฐ์ดํธํ ์ ์๋ ํธ๋ฆฌํ ์ฅ์์ ๋๋ค. ์๊ฐํด ๋ณด๋ฉด ์ด๋ฌํ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ฌ๋ฌ ๋์๋ณด๋์์ ์ฌ์ฉํ๊ณ ์ค์์์ ์ ์ง ๊ด๋ฆฌํ๋ ค๋ฉด ์ด๋๊ฐ์ ์ ์ฅํด์ผ ํฉ๋๋ค. ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ ์ ์๋ ๊ฒฝ์ฐ ์ด๋ฅผ ์ ์ฅํ ์ค์ ์ด ํ์ํฉ๋๋ค. ๋ฐ๋ผ์ ์ค์ ๋ก MySQL์ ์ฌ์ฉํ๋ ๊ฒ์ด ์๋ฒฝํฉ๋๋ค. ์ถ๊ฐ๋ ๋ณด๋์ค๋ MySQL ์ฑ์ฐ๊ธฐ๋ฅผ ์๋ํํ๊ธฐ๊ฐ ๋งค์ฐ ์ฝ๋ค๋ ๊ฒ์ ๋๋ค.
PostgreSQL์ด ์๋ ๊ฒฝ์ฐ ๋งคํ์ ์ํ ์ค์ ํ ์ด๋ธ์ ์์ฑํ ํ์๊ฐ ์์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ํ ์ ์์ต๋๋ค.
SELECT *
FROM
(
VALUES
('London server 1', 'london_srv_1'),
('London server 2', 'london_srv_2'),
('New York server 1', 'ny_srv_1'),
('New York server 2', 'ny_srv_2')
) AS t (__text, __value)
๊ทธ๋ฌ๋ ์ซ์ ๊ฐ์์๋ ์๋ํ์ง ์์ต๋๋ค.
SELECT * FROM ( VALUES ( 'OK', '0'), ( 'ERROR', '1') ) AS t (__text, __value)
๋์๋ณด๋ ๋ก๋ ์:
๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ๋งค๊ฐ๋ณ์๋ฅผ ์ ํํ ๋
์ ํ ์: OK + ERROR
์ซ์ ๊ฐ์ ์ํ๋ฉด ์์ ๋ฐ์ดํ๋ฅผ ์ ๊ฑฐํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ํ ์คํธ๋ก ํด์๋ฉ๋๋ค.
SELECT * FROM ( VALUES ( 'OK', 0), ( 'ERROR', 1) ) AS t (__text, __value)
๋ต๋ณ์ ๋ํด @GlennMatthys glenn์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ํ์ง๋ง ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์์น๋ฅผ ์ด๋ฏธ ์ฐพ์์ต๋๋ค.
SELECT * FROM ( VALUES ( 'OK', 0), ( 'Warning', 1), ('Critical', 2) ) AS t (__text, __value)
๋ค์ค ๊ฐ ๊ตฌ์ฑ:
๊ทธ๊ฒ์ ์ผ์ด๋๋ค
3๊ฐ์ง ์ํ ์ ํ
๋ค์ค ๊ฐ์น ๋๊ธฐ:
GlennMatthys - ๊ทํ์ ์๋ฃจ์ ์ ์๋ฒฝํฉ๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
MySQL์ ๊ฒฝ์ฐ:
SELECT * FROM ( VALUES row('a', 1), row('b', 2) ) AS t (__text, __value)
Mariadb๋ ์ด๋ป์ต๋๊น? ๊ทธ๊ฒ์ ๋๋ฅผ ์ํด ์๋ํ์ง ์์ต๋๋ค (mariaDB ๋ฒ์ : 10.5.5)
SELECT * FROM ( VALUES row('a', 1), row('b', 2) ) AS t (__text, __value);
ERROR 1064 (42000)..............
๋๋ ์ด์ :
SELECT * FROM ( VALUES ( 'OK', 0), ( 'Warning', 1), ('Critical', 2) ) AS t (__text, __value);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your
MariaDB server version for the right syntax to use near '(__text, __value)' at line 1
Values โโ๋ฌธ์ ๋ ์ด์ ์ฌ์ฉํ ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค...
์๋๋ฉด ๋ด๊ฐ ์๋ชปํ๋ ๋ค๋ฅธ ๊ฒ์ด ์์ต๋๊น?
@radoeka ์ด์ MariaDB/MySQL์ ๊ฒฝ์ฐ
SELECT * FROM
(
SELECT 'London server 1' AS '__text', 'london_srv_1' AS '__value'
UNION ALL SELECT 'London server 2', 'london_srv_2'
UNION ALL SELECT 'New York server 1', 'ny_srv_1'
UNION ALL SELECT 'New York server 2', 'ny_srv_2'
) AS t;
@GlennMatthys ์์ฐ ์์ฐ ์์ฐ, ์ผ๋ง๋ ๋น ๋ฅธ ์๋ต์
๋๊น! ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ์๋ํฉ๋๋ค.
๋๋ ์คํ๋ ค ์๋ก์ด ๋ฒ์ ์ mariadb๋ฅผ ์คํํ๊ณ ์๋ค๊ณ ์๊ฐํ์ง๋ง ๊ทธ๋ ์ง ์์ต๋๋ค(2๊ฐ์ ๋ Linux ๋ฐฐํฌํ ์ฌ์ฉ).
๊ฐ์ฌ ํด์.
์ด๊ฒ์ Prometheus์์ ์ง์๋์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ #27829๋ก ๋ค์ ์ด๋ฉด ์ ์ ๋ฐ์ดํฐ์ ๋ํด์๋ง ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@thinrope ์์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌํํ๋ ๊ฒ์ ์ ๋ง ์ฐ์ํ ์์ ์ด ๋ ๊ฒ์ ๋๋ค.
์ฌ์ฉ์ ์ง์ ๋ณ์์์ JSON์ ์ฌ์ฉํ ์ ์๊ฑฐ๋ ๋ณ์ ์ ํ์ด "JSON"์ธ ๊ฒฝ์ฐ ํดํน ์์ด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ผ๋ฉฐ ๋จ์ ์ ์์ต๋๋ค.