Grafana: ν…œν”Œλ¦Ώ λ³€μˆ˜κ°€ μžˆλŠ” μž¬μƒ λͺ©λ‘ 지원

에 λ§Œλ“  2014λ…„ 09μ›” 08일  Β·  132μ½”λ©˜νŠΈ  Β·  좜처: grafana/grafana

κ°„λ‹¨ν•œ 예λ₯Ό λ“€μ–΄λ³΄κ² μŠ΅λ‹ˆλ‹€.
$HOST λ³€μˆ˜κ°€ κ΅¬μ„±λœ λŒ€μ‹œλ³΄λ“œκ°€ β€‹β€‹μžˆμŠ΅λ‹ˆλ‹€.
aws.$HOST.request.countλ₯Ό μ‚¬μš©ν•˜λŠ” κ·Έλž˜ν”„κ°€ μžˆμŠ΅λ‹ˆλ‹€.
λŒ€μ‹œλ³΄λ“œλ₯Ό λ³Ό λ•Œ Host1, Host2 등을 μ„ νƒν•˜μ—¬ μ μ ˆν•œ λ©”νŠΈλ¦­μ„ ν‘œμ‹œν•  수 μžˆμŠ΅λ‹ˆλ‹€.
이제 이것을 μž¬μƒ λͺ©λ‘μœΌλ‘œ λ°”κΏ” λ§€λΆ„λ§ˆλ‹€ grafanaκ°€ 각 ν˜ΈμŠ€νŠΈμ— λŒ€ν•œ λ©”νŠΈλ¦­μ„ ν‘œμ‹œν•˜λ„λ‘ ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

두 개 μ΄μƒμ˜ ν•„ν„°κ°€ 있으면 상황이 쑰금 더 λ³΅μž‘ν•΄μ§‘λ‹ˆλ‹€. λ§Žμ€ 쑰합이 있으며 κ·Έ 쀑 μΌλΆ€λŠ” λŒ€μ‹œλ³΄λ“œ κ΄€μ°°μžμ—κ²Œ 관심이 없을 수 μžˆμŠ΅λ‹ˆλ‹€.
μ΄λŸ¬ν•œ 이유둜 μ‚¬μš©μžμ—κ²Œ ν₯미둜운 ν•„ν„°/λ³€μˆ˜ μ‘°ν•© λͺ©λ‘μ„ 선택할 수 μžˆλŠ” 방법이 있으면 쒋을 κ²ƒμž…λ‹ˆλ‹€. 그런 λ‹€μŒ μž¬μƒ λͺ©λ‘μ€ μ΄λŸ¬ν•œ 쑰합을 μˆœν™˜ν•˜κ³  μ μ ˆν•œ λ©”νŠΈλ¦­μ΄ μžˆλŠ” λŒ€μ‹œλ³΄λ“œλ₯Ό ν‘œμ‹œν•©λ‹ˆλ‹€.
μž¬μƒ λͺ©λ‘(예: μ§€λ‚œ 6μ‹œκ°„, μ§€λ‚œ 24μ‹œκ°„ λ“±)μ—μ„œλ„ μ‹œκ°„ λ²”μœ„μ— λŒ€ν•΄ λ‹€λ₯Έ 쑰합을 선택할 수 있게 ν•˜λŠ” 것도 쒋을 κ²ƒμž…λ‹ˆλ‹€.

aredashboard prioritnice-to-have typfeature-request

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

:케이크: 이 호의 5주년을 κΈ°λ…ν•©λ‹ˆλ‹€.

μ—…λ°μ΄νŠΈλ₯Ό 받을 수 μžˆμŠ΅λ‹ˆκΉŒ?

λͺ¨λ“  132 λŒ“κΈ€

@costimuraru μ•„μ£Ό 쒋은 μ œμ•ˆ!

:+1: μž¬μƒ λͺ©λ‘ κΈ°λŠ₯을 훨씬 더 μœ μš©ν•˜κ²Œ λ§Œλ“­λ‹ˆλ‹€.

:+1: 이 κΈ°λŠ₯은 κ·Έλž˜ν”„λ₯Ό λͺ¨λ‘ 넣을 수 μžˆλŠ” 큰 화면이 μ—†κΈ° λ•Œλ¬Έμ— ν•„μš”ν•©λ‹ˆλ‹€.

:+1: μ‹€μ œλ‘œ 이 κΈ°λŠ₯은 단일 화면에 μ••μΆ•ν•  수 μžˆλŠ” λ§Žμ€ λŒ€μ‹œλ³΄λ“œκ°€ β€‹β€‹μžˆλŠ” μš°λ¦¬μ™€ 같은 ν”„λ‘œμ νŠΈμ— μœ μš©ν•  κ²ƒμž…λ‹ˆλ‹€.

이것은 μ‹€μ œλ‘œ 맀우 μœ μš©ν•˜κ²Œ λ“€λ¦¬μ§€λ§Œ μ‹œμž‘ μž¬μƒ λͺ©λ‘ λ³΄κΈ°μ—μ„œ λ³€μˆ˜ 및 μ‹œκ°„ 섀정을 λ…ΈμΆœν•˜λŠ” 데 맀우 λ³΅μž‘ν•˜κ³  μ‹œκ°„μ΄ 많이 κ±Έλ¦½λ‹ˆλ‹€(λŒ€μ‹œλ³΄λ“œ λ‘œλ“œ/μ£ΌκΈ°μ—μ„œ μ΄λŸ¬ν•œ μ„€μ • 및 μ„€μ • λ³€μˆ˜ 등을 μ²˜λ¦¬ν•˜λŠ” 논리 κ΅¬ν˜„). λ”°λΌμ„œ λ―Έλž˜μ— λ„ˆλ¬΄ μš°μ„  μˆœμœ„κ°€ 높은 κΈ°λŠ₯이 될 κ²ƒμ΄μ§€λ§Œ v1.8μ—μ„œ μ••μΆ•ν•  수 μžˆλŠ” κΈ°λŠ₯은 μ•„λ‹™λ‹ˆλ‹€.

@torkelo μ—κ²Œ κ°μ‚¬ν•˜κ³  κ³„μ†ν•΄μ„œ 쒋은 일을 ν•˜μ‹­μ‹œμ˜€!

:+1: 이 κΈ°λŠ₯이 있으면 쒋을 κ²ƒμž…λ‹ˆλ‹€.

이것이 개발 λŒ€κΈ°μ—΄μ— μžˆλŠ” λ™μ•ˆ -- μ–΄μ¨Œλ“  URL에 ν…œν”Œλ¦Ώ λ³€μˆ˜λ₯Ό 지정할 수 μžˆμŠ΅λ‹ˆκΉŒ? 적어도 μ§€κΈˆμ€ λΈŒλΌμš°μ € ν™•μž₯을 μ‚¬μš©ν•˜μ—¬ λ§Žμ€ URL을 μˆœν™˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

@rishid 예, ?var-<variable_name>=value

+1, 이 κΈ°λŠ₯ μš”μ²­μ—λ„ 맀우 관심이 μžˆμŠ΅λ‹ˆλ‹€.

+1

+1

+1 ν…œν”Œλ¦Ώκ³Ό ν•¨κ»˜ 이것은 ν•„μˆ˜μž…λ‹ˆλ‹€.

곧 PR이...

@costimuraru ν•˜λ‚˜μ˜ λ³€μˆ˜μ— λŒ€ν•œ μž¬μƒ λͺ©λ‘μ„ κ΅¬ν˜„ν–ˆμœΌλ©° 이제 닀쀑 λ³€μˆ˜ 쑰합을 μž‘μ—… μ€‘μž…λ‹ˆλ‹€. κ΅¬ν˜„μ΄ 빨라야 ν•©λ‹ˆλ‹€. λ‹€λ₯Έ μ‹œκ°„ λ²”μœ„λ₯Ό μ„ νƒν•˜λŠ” 것은 이것 μœ„μ— μ—…κ·Έλ ˆμ΄λ“œ κΈ°λŠ₯이 될 수 μžˆμŠ΅λ‹ˆλ‹€. 이 λ°˜λ³΅μ—μ„œλŠ” ν…œν”Œλ¦Ώ λ³€μˆ˜ μ‘°ν•© μž¬μƒ λͺ©λ‘μ„ μˆ˜ν–‰ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

ꡉμž₯ν•©λ‹ˆλ‹€, @utkarshcmu !

λ‹€μŒμ€ PR - #2841 및 일뢀 μŠ€ν¬λ¦°μƒ·μž…λ‹ˆλ‹€.

"ν…œν”Œλ¦Ώ"으둜 μ΄λ™ν•˜λ©΄ 이제 μ™„μ „νžˆ μƒˆλ‘œμš΄ "μž¬μƒ λͺ©λ‘" 탭을 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.
screen shot 2015-09-29 at 3 14 13 am

μž¬μƒ λͺ©λ‘ 탭을 ν΄λ¦­ν•˜λ©΄ λͺ¨λ“  λ³€μˆ˜κ°€ λ‚˜μ—΄λœ λ‹€μŒ 화면이 ν‘œμ‹œλ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.
screen shot 2015-09-29 at 3 14 16 am

λ³€μˆ˜ 3개 쀑 2개λ₯Ό μ„ νƒν•˜κ³  "μ‹œμž‘"을 ν΄λ¦­ν–ˆμŠ΅λ‹ˆλ‹€. (λ‚΄κ°€ 2λ₯Ό μ„ νƒν•œ μ΄μœ λŠ” 이 두 λ³€μˆ˜μ˜ λͺ¨λ“  쑰합을 μž¬μƒν•˜κ³  μ„Έ 번째 λ³€μˆ˜λŠ” κ³ μ •λœ μƒνƒœλ‘œ μœ μ§€ν•˜κ³  μ‹ΆκΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. μ°Έκ³ : κ³ μ • λ³€μˆ˜λŠ” κΈ°λ³Έ μ €μž₯된 값을 κ°–κ²Œ λ©λ‹ˆλ‹€).
screen shot 2015-09-29 at 3 14 22 am

이제 첫 번째 λ³€μˆ˜λ₯Ό μΌμ •ν•˜κ²Œ μœ μ§€ν–ˆκ³  μž¬μƒ λͺ©λ‘μ΄ 두 번째 및 μ„Έ 번째 λ³€μˆ˜μ˜ κ°€λŠ₯ν•œ λͺ¨λ“  μ‘°ν•©μœΌλ‘œ μ‹œμž‘λ¨μ„ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.
screen shot 2015-09-29 at 3 14 36 am

ν•„μš”ν•œ 경우 ν”Όλ“œλ°±κ³Ό λ³€κ²½ 사항을 μ œκ³΅ν•˜μ‹­μ‹œμ˜€.

ꡉμž₯ν•΄ @utkarshcmu

잘 ν–ˆμ–΄! ν…œν”Œλ¦Ώ μ„€μ •μ˜ νƒ­μœΌλ‘œ μž¬μƒ λͺ©λ‘ κΈ°λŠ₯이 μžˆλŠ”μ§€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 이미 μž¬μƒ λͺ©λ‘ 보기가 μžˆμŠ΅λ‹ˆλ‹€. ν…œν”Œλ¦Ώ λŒ€μ‹œλ³΄λ“œμ— λŒ€ν•œ μž¬μƒ λͺ©λ‘ μž‘μ„±μ€ ν•΄λ‹Ή 보기의 일뢀여야 ν•©λ‹ˆλ‹€.

@torkelo에 λ™μ˜ν•˜λ©΄ 이것을 μž¬μƒ λͺ©λ‘ 보기의 μΌλΆ€λ‘œ λ§Œλ“€ κ²ƒμž…λ‹ˆλ‹€. 그게 더 μ˜λ―Έκ°€ μžˆμŠ΅λ‹ˆλ‹€. :)

ν…œν”Œλ¦Ώ λ³€μˆ˜λ₯Ό 기반으둜 ν•˜λŠ” μž¬μƒ λͺ©λ‘μ€ 이제 μž¬μƒ λͺ©λ‘ λ³΄κΈ°μ—μ„œ νŠΈλ¦¬κ±°ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μž¬μƒ λͺ©λ‘μ„ μ‹œμž‘ν•˜λ €λ©΄ λ‹€μŒ 단계λ₯Ό 따라야 ν•©λ‹ˆλ‹€.

μž¬μƒ λͺ©λ‘ 클릭:
screen shot 2015-09-30 at 10 59 44 am

μž¬μƒ λͺ©λ‘ μœ ν˜•μ„ μ„ νƒν•˜λŠ” μΆ”κ°€ μ˜΅μ…˜μ΄ μžˆλŠ” λ‹€μŒ μž¬μƒ λͺ©λ‘ 보기가 ν‘œμ‹œλ©λ‹ˆλ‹€.
screen shot 2015-09-30 at 10 59 50 am
λŒ€μ‹œλ³΄λ“œλ₯Ό 기반으둜 ν•˜λŠ” μž¬μƒ λͺ©λ‘μ— λŒ€ν•΄ λͺ¨λ“  것이 λ™μΌν•˜κ²Œ μž‘λ™ν•©λ‹ˆλ‹€.

이제 ν…œν”Œλ¦Ώ λ³€μˆ˜λ₯Ό 기반으둜 ν•˜λŠ” μž¬μƒ λͺ©λ‘μ˜ 경우 λ“œλ‘­λ‹€μš΄ λ©”λ‰΄μ—μ„œ "λ³€μˆ˜"λ₯Ό 선택해야 ν•©λ‹ˆλ‹€.
screen shot 2015-09-30 at 11 07 37 am

그런 λ‹€μŒ ν…œν”Œλ¦Ώ λ³€μˆ˜λ₯Ό 기반으둜 μž¬μƒ λͺ©λ‘μ„ μ‹€ν–‰ν•΄μ•Ό ν•˜λŠ” λŒ€μ‹œλ³΄λ“œλ₯Ό κ²€μƒ‰ν•˜κ³  μ„ νƒν•©λ‹ˆλ‹€.
screen shot 2015-09-30 at 11 00 13 am

λŒ€μ‹œλ³΄λ“œλ₯Ό μ„ νƒν•˜λ©΄ ν…œν”Œλ¦Ώ λ³€μˆ˜ λͺ©λ‘μ΄ μžλ™μœΌλ‘œ ν‘œμ‹œλ©λ‹ˆλ‹€.
screen shot 2015-09-30 at 11 00 16 am

이제 λ‹€μŒ λ‹¨κ³„λŠ” μž¬μƒ λͺ©λ‘μ„ μ‹€ν–‰ν•  ν…œν”Œλ¦Ώ λ³€μˆ˜λ₯Ό μ„ νƒν•˜κ³  μ‹œμž‘μ„ ν΄λ¦­ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.
screen shot 2015-09-30 at 11 00 44 am

λ‹€μŒμ€ ν…œν”Œλ¦Ώ λ³€μˆ˜λ₯Ό 기반으둜 ν•œ μž¬μƒ λͺ©λ‘μž…λ‹ˆλ‹€.
screen shot 2015-09-30 at 11 00 51 am
screen shot 2015-09-30 at 11 00 58 am

μž¬μƒ λͺ©λ‘ 보기의 이 λ³€κ²½ 사항에 λŒ€ν•΄ μ–΄λ–»κ²Œ μƒκ°ν•˜λŠ”μ§€ μ•Œλ €μ£Όμ„Έμš”.

μ’‹μ•„ 보인닀

+1

+1, @utkarshcmu 이 κΈ°λŠ₯에 λŒ€ν•œ μ†Œμ‹μ΄ μžˆμŠ΅λ‹ˆκΉŒ?

@evandro-portugal grafana용 μž¬μƒ λͺ©λ‘ κΈ°λŠ₯을 κ΅¬ν˜„ν–ˆμ§€λ§Œ 이전에 λ³‘ν•©λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. μ½”λ“œκ°€ 많이 λ°”λ€Œμ—ˆκΈ° λ•Œλ¬Έμ— 이제 μž‘μ—…μ„ λ‹€μ‹œ ν•΄μ•Ό ν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

@utkarshcmu λ§žμŠ΅λ‹ˆλ‹€. 이에 λŒ€ν•œ λ§ˆμ§€λ§‰ μ½”λ“œλŠ” μ–΄λ””μ—μ„œ 얻을 수 μžˆμŠ΅λ‹ˆκΉŒ? μ €λ₯Ό μœ„ν•΄ λ­”κ°€λ₯Ό 해보고 μ‹ΆμŠ΅λ‹ˆλ‹€. 제 κ²½μš°μ—λŠ” μš°μ„ μˆœμœ„κ°€ λ†’κΈ° λ•Œλ¬Έμ— λͺ¨λ“  μ£ΌκΈ°κ°€ 끝날 λ•Œλ§ˆλ‹€ λ³€μˆ˜κ°€ μœ„μΉ˜λ₯Ό λ³€κ²½ν•˜λ„λ‘ ν•˜λ©΄ λ©λ‹ˆλ‹€. 그러면 κ·€ν•˜μ˜ λΆ„κΈ°λ₯Ό 얻을 λ•ŒκΉŒμ§€ λ­”κ°€λ₯Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 병합

@μ—λ°˜λ“œλ‘œ-포λ₯΄νˆ¬κ°ˆ
λ‹€μŒμ€ 이전 μ½”λ“œμž…λ‹ˆλ‹€.
λ‚΄ Grafana 포크둜 μ΄λ™ν•˜μ‹­μ‹œμ˜€ - https://github.com/justforkit/grafana
그리고 "variable-playlist" λΈŒλžœμΉ˜μ—μ„œ Grafanaλ₯Ό λΉŒλ“œν•΄ λ³΄μ„Έμš”.

@utkarshcmu , κ°μ‚¬ν•©λ‹ˆλ‹€. μ½”λ“œλ₯Ό μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. μ½”λ“œλ₯Ό λ‹€μ‹œ μž‘μ—…ν•  κ³„νšμž…λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ μ§€κΈˆ μ‚¬μš©ν•˜κ³  μžˆλŠ” grafana의 μ‹€μ œ master λΈŒλžœμΉ˜μ— 맞게 μˆ˜μ •ν•˜λ©΄ μž‘μ—…μ„ κ³΅μœ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” μ§€κΈˆ λͺ‡ 번의 νœ΄κ°€λ₯Ό κ°€μ§ˆ 것이고 (μ—¬κΈ°μ—μ„œ μΉ΄λ‹ˆλ°œ) 그것을 가지고 놀 κ³„νšμž…λ‹ˆλ‹€.

@evandro-portugal λ¬Όλ‘ , μ›ν•˜λŠ” 경우 λ‹€μ‹œ μž‘μ—…ν•˜μ‹­μ‹œμ˜€. μ—¬κΈ°μ—μ„œ 적어도 일주일 λ™μ•ˆ μž‘μ—…ν•  κ³„νšμ΄ μ—†μŠ΅λ‹ˆλ‹€. μΉ΄λ‹ˆλ°œμ„ μ¦κΈ°μ‹­μ‹œμ˜€. :)

@torkelo 이 κΈ°λŠ₯을 핡심 grafana에 병합할 수 μžˆμŠ΅λ‹ˆκΉŒ? μ΄λŠ” ν…œν”Œλ¦Ώ λ³€μˆ˜κ°€ λ‹€λ₯Έ λ™μΌν•œ λŒ€μ‹œλ³΄λ“œλ₯Ό μž¬μƒν•˜λŠ” 데 맀우 μœ μš©ν•œ κ°œμ„  사항인 것 κ°™μŠ΅λ‹ˆλ‹€.

λ˜ν•œ @bergquist / @torkeloκ°€ 이 κΈ°λŠ₯을 λ³‘ν•©ν•˜λŠ” 데 λ™μ˜ν•˜λ©΄ 이전 PR μ½”λ“œλ₯Ό μž¬μž‘μ—…ν•˜μ—¬ μ΅œμ‹  Grafana μ½”λ“œμ™€ ν˜Έν™˜λ˜λ„λ‘ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

@digrich λ³‘ν•©μ΄λž€ 무엇을 μ˜λ―Έν•©λ‹ˆκΉŒ? 이것은 홍보가 μ•„λ‹™λ‹ˆλ‹€ :)

@utkarshcmu 의 이전 PR(#2841)을 μ°Έμ‘°ν•˜λ €κ³  ν–ˆμ§€λ§Œ κ·Έκ°€ λ§ˆμ§€λ§‰ λŒ“κΈ€μ—μ„œ μ–ΈκΈ‰ν–ˆλ“―μ΄ κ·ΈλŠ” λ‹€μ‹œ μž‘μ—…ν•˜κ³  μƒˆ PR을 μ œμΆœν•΄μ•Ό ν•©λ‹ˆλ‹€.

+1

μ•ˆλ…•ν•˜μ„Έμš” @torkelo μž…λ‹ˆλ‹€. 이 μœ μš©ν•œ κΈ°λŠ₯을 κΈ°λ‹€λ¦¬λŠ” λ™μ•ˆ ν•΄κ²° 방법을 μ°Ύκ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

슀크립트둜 μž‘μ„±λœ λŒ€μ‹œλ³΄λ“œλ₯Ό 기반으둜 μž¬μƒ λͺ©λ‘κ³Ό 같은 것을 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆκΉŒ?

이 μŠ€ν¬λ¦½νŒ…λœ λŒ€μ‹œλ³΄λ“œλŠ” λ‹€λ₯Έ ν…œν”Œλ¦Ώ λŒ€μ‹œλ³΄λ“œλ₯Ό λ‘œλ“œν•˜κ³  URLμ—μ„œ μ–΄λ–€ μ‹μœΌλ‘œλ“  λ³€μˆ˜λ₯Ό 전달할 수 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.

+1

λ°˜λ…„μ΄ μ§€λ‚¬λŠ”λ° 이런 μ†Œμ‹μ€ μ—†λ‚˜μš”?

λ¬΄μ†Œμ‹ :(

이 κΈ°λŠ₯ μš”μ²­μ„ μœ„ν•΄ μ‹œκ°„μ΄ ν•„μš”ν•  것 κ°™μŠ΅λ‹ˆλ‹€!

+1

+1

+1

+1

URL을 톡해 λ³€μˆ˜λ₯Ό 전달할 수 μžˆμœΌλ―€λ‘œ μž„μ‹œ μ†”λ£¨μ…˜μ€ 이 κ°„λ‹¨ν•œ iframe carousel/rotator html νŽ˜μ΄μ§€μž…λ‹ˆλ‹€ . 이

ν‘œμ‹œν•˜λ €λŠ” λŒ€μ‹œλ³΄λ“œκ°€ β€‹β€‹ν¬ν•¨λœ BASE_URL 및 dashboards_list 배열을 μ§€μ •ν•˜κΈ° BASE_URL ν•˜λ©΄ λ©λ‹ˆλ‹€.

이것은 μ•½κ°„ 관련이 μ—†λŠ” μ§ˆλ¬Έμ΄μ§€λ§Œ λŒ€μ‹œλ³΄λ“œμ— "λ‹€μŒ"/"이전" 호슀트(λ˜λŠ” μ‹€μ œλ‘œ ν…œν”Œλ¦Ών™”λœ λ³€μˆ˜) λ²„νŠΌμ„ κ°€μ§ˆ 수 μžˆλŠ” 방법이 μžˆμŠ΅λ‹ˆκΉŒ?
λ“œλ‘­λ‹€μš΄μ„ μ‚¬μš©ν•˜μ—¬ 전체 호슀트 집합을 μˆ˜λ™μœΌλ‘œ μŠ€ν¬λ‘€ν•˜λ €λŠ” 경우 맀우 λ²ˆκ±°λ‘œμ›Œμ§‘λ‹ˆλ‹€.

여기에 μ–΄λ–€ μ‘°μΉ˜κ°€ μžˆμŠ΅λ‹ˆκΉŒ? 우리의 λͺ¨λ“  λŒ€μ‹œλ³΄λ“œλŠ” ν…œν”Œλ¦Ών™”λ˜μ–΄ μžˆμœΌλ―€λ‘œ ν…œν”Œλ¦Ώ κΈ°λŠ₯이 μ—†κ±°λ‚˜ varsλ₯Ό 전달할 κ°€λŠ₯성이 μ—†μœΌλ©΄ μž¬μƒ λͺ©λ‘ κΈ°λŠ₯을 거의 μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1, @utkarshcmu 아직 μž‘μ—…

@thattolleyguy - 친ꡬ, μ§€κΈˆμœΌλ‘œμ„œλŠ” 더 이상 이 μž‘μ—…μ„ ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

+1
λŒ€μ‹œλ³΄λ“œκ°€ ​​더 κΈΈκΈ° λ•Œλ¬Έμ— μžλ™ 슀크둀 κΈ°λŠ₯도 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 그렇지 μ•ŠμœΌλ©΄ λŒ€λΆ€λΆ„μ˜ νŒ¨λ„μ΄ μž¬μƒ λͺ©λ‘μ—μ„œ μˆ¨κ²¨μ§„ μƒνƒœλ‘œ μœ μ§€λ©λ‹ˆλ‹€(TVμ—μ„œ).

+1

+1

+1

이 κΈ°λŠ₯에 λŒ€ν•œ μ†Œμ‹μ΄ μžˆμŠ΅λ‹ˆκΉŒ?

그런 μž‘ν’ˆμ΄ μ“°λ ˆκΈ°ν†΅μ— κ°”λ‹€λŠ” 것은 정말 λ†€λΌμš΄ μΌμž…λ‹ˆλ‹€.

λ‚˜λŠ” 이 일을 ν•  μ‹œκ°„μ΄ μ—†μ—ˆλ‹€. λ‚˜λŠ” λ˜ν•œ grafana μ½”λ“œμ— μ΅μˆ™ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ λ‹€λ₯Έ μ‚¬λžŒμ΄ 관심이 μžˆλ‹€λ©΄ 자유둭게 μ‚¬μš©ν•˜μ‹­μ‹œμ˜€. μ•ˆλ˜λ©΄ μ‹œκ°„λ‚ λ•Œ ν•œλ²ˆ ν•΄λ΄μ•Όκ² μŠ΅λ‹ˆλ‹€.

+1

+1

+1

@torkelo 이것을 λ‹€μŒ λ¦΄λ¦¬μŠ€μ— ν¬ν•¨μ‹œν‚¬ κ°€λŠ₯성이 μžˆμŠ΅λ‹ˆκΉŒ? νŒ€μ΄ μš΄μ˜ν•˜λŠ” λͺ¨λ“  앱을 μˆœν™˜ν•˜λ„λ‘ ν•  수 μžˆλ‹€λ©΄ 정말 쒋을 κ²ƒμž…λ‹ˆλ‹€.

@davidkarlsen 이 κΈ°λŠ₯에 λŒ€ν•œ ν’€ λ¦¬ν€˜μŠ€νŠΈκ°€ μ—†μœΌλ©° 베타 λ²„μ „μ΄λ―€λ‘œ 그럴 κ°€λŠ₯성은 거의 μ—†μŠ΅λ‹ˆλ‹€. κΈ°λŠ₯ μš”μ²­μ€ λˆ„κ΅°κ°€κ°€ μž‘μ—…μ„ ν•˜κ³  이에 λŒ€ν•΄ μž‘μ—…ν•˜λŠ” μ‚¬λžŒμ„ μ•Œμ§€ λͺ»ν•˜λŠ” ν•œ κ΅¬ν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μ•„ - μ’€ λΉ¨λžμ–΄μš” - https://github.com/grafana/grafana/pull/2841 λ©€μ—ˆμ§€λ§Œ ν¬κΈ°ν•œ 것 κ°™μŠ΅λ‹ˆλ‹€ ;-(

+1

+1

+1

+1

+1

μž¬μƒ λͺ©λ‘μ—μ„œ λŒ€μ‹œλ³΄λ“œ PLUS 쿼리 λ¬Έμžμ—΄μ„ μ‚¬μš©ν•˜λŠ” 것은 μ–΄λ–»μŠ΅λ‹ˆκΉŒ?
μ΄λ ‡κ²Œ ν•˜λ©΄ λͺ¨λ“  λ³€μˆ˜μ™€ μ‹œκ°„ λ²”μœ„κ°€ "μžλ™μœΌλ‘œ" μΆ”κ°€λ©λ‹ˆλ‹€.

λ‚΄ μ˜ˆμ—μ„œ 이것은
?orgId=1&var-DATACENTER=dc1&var-FQDN=All&from=now-2d&to=now

무슨 일이...거의 4년이 걸리고 λ§ˆμŠ€ν„° μ½”λ“œλ₯Ό μΆ”κ°€ν•˜μ§€ μ•ŠλŠ” κΈ°λŠ₯이.....λ„ˆλ¬΄ μ›ƒκΈ°λ„€μš”.

그것은 ν•„μˆ˜ν’ˆμž…λ‹ˆλ‹€!

+1

μ™œ 이런 κΈ°λŠ₯이 아직 μΆœμ‹œλ˜μ§€ μ•Šμ•˜λŠ”μ§€ 이해가 λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€....

+1

+1

이 κΈ°λŠ₯에 진전이 μžˆμŠ΅λ‹ˆκΉŒ? 이것은 ν•„μˆ˜ν’ˆμž…λ‹ˆλ‹€. 이것이 μ—†μœΌλ©΄ μž¬μƒ λͺ©λ‘μ€ 적어도 제 κ²½μš°μ—λŠ” 거의 μ“Έλͺ¨κ°€ μ—†μŠ΅λ‹ˆλ‹€.

이 κΈ°λŠ₯도 보고 μ‹ΆμŠ΅λ‹ˆλ‹€. ν˜„μž¬ 이 κΈ°λŠ₯을 μœ„ν•΄ λŒ€μ‹œλ³΄λ“œλ₯Ό λ³΅μ œν•΄μ•Ό ν•©λ‹ˆλ‹€.

μœ„μ™€ λ§ˆμ°¬κ°€μ§€λ‘œ μž¬μƒ λͺ©λ‘μ„ μ‚¬μš© κ°€λŠ₯ν•˜κ²Œ λ§Œλ“€κΈ° μœ„ν•΄ μ—¬λŸ¬ 화면을 λ³΅μ œν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€. 이 κΈ°λŠ₯은 ν›Œλ₯­ν•  κ²ƒμž…λ‹ˆλ‹€.

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

이 κΈ°λŠ₯이 μ–Όλ§ˆλ‚˜ λ§Žμ€ 관심을 가지고 μžˆλŠ”μ§€ λ³΄λ‹ˆ 진전이 μ—†λŠ” 것이 μ•ˆνƒ€κΉμŠ΅λ‹ˆλ‹€.
@costimuraru @utkarshcmu , 이 μš”μ²­μ˜ μƒνƒœλ₯Ό μ•Œκ³  μžˆμŠ΅λ‹ˆκΉŒ? 이 κΈ°λŠ₯을 κΈ°λ‹€λ¦¬λŠ” 것을 κ³ λ €ν•΄μ•Ό ν•©λ‹ˆκΉŒ, μ•„λ‹ˆλ©΄ λŒ€μ•ˆμ„ μ°Ύμ•„μ•Ό ν•©λ‹ˆκΉŒ?

이 κΈ°λŠ₯도 λ³‘ν•©λ˜κΈ°λ₯Ό 정말 μ›ν•©λ‹ˆλ‹€!

이번 달에 ν•œ 번 더 λ„μ „ν•΄λ³Όκ²Œμš”!

paramsκ°€ μžˆλŠ” μ—¬λŸ¬ λŒ€μ‹œλ³΄λ“œλ₯Ό ν‘œμ‹œν•΄μ•Ό ν•˜λŠ” 경우 ν•΄κ²° 방법은 iframeμ—μ„œ λŒ€μ‹œλ³΄λ“œλ₯Ό ν‘œμ‹œν•˜λŠ” html νŒŒμΌμ„ λ§Œλ“€κ³  κ°„λ‹¨ν•œ JS 슀크립트둜 νšŒμ „ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 이것은 λ‚΄ raspiμ—μ„œ grafana λŒ€μ‹œλ³΄λ“œλ₯Ό νšŒμ „ν•˜λŠ” 데 μ‚¬μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Grafana dashboard rotator</title>

    <style>
        #title {
            position: fixed;
            right: 20px;
            top: 10px;
            color: rgba(255, 0, 0, 0.5);
            background-color: rgba(0, 0, 0, 0.7);
            padding: 10px;
            font-weight: bold;
            font-size: 6em;
            font-family: sans-serif;
            margin: 0;
        }

        body,
        html {
            width: 100%;
            height: 100%;
            margin: 0;
            padding: 0;
            position: relative;
        }

        iframe {
            width: 100%;
            height: 100%;
            border: 0;
        }

        #timer {
            position: fixed;
            bottom: 10px;
            right: 20px;
            color: rgba(255, 0, 0, 0.5);
            background-color: rgba(0, 0, 0, 0.7);
            padding: 10px;
            font-weight: bold;
            font-size: 2em;
            font-family: sans-serif;
            margin: 0;
        }
    </style>
</head>

<body>

    <h1 id="title"></h1>
    <iframe x-name="SLA PROD EU" src="https://mygrafana.example.com/services-availability?orgId=1&var-ds=Graphite-EU&var-env=prod-eu&var-package=cds-red-bull-high-touch&var-service=All&refresh=30s&from=now-1h&to=now"></iframe>
    <iframe x-name="SLA PROD US" src="https://mygrafana.example.com/services-availability?services-availability?from=now-1h&orgId=1&refresh=30s&to=now&var-ds=Graphite&var-env=prod&var-package=cds-cds&var-service=All"></iframe>
    <iframe x-name="REQUESTS EU" src="https://mygrafana.example.com/services-details?orgId=1&from=now-24h&to=now&var-ds=Graphite-EU&var-env=prod-eu&var-service=All&refresh=30s"></iframe>

    <small id="timer"></small>
    <!-- ROUND ROBIN SCRIPT -->
    <script>

        ; (function (globals) {

            //UMD
            if (typeof define !== 'undefined' && define.amd) { //require.js / AMD
                define([], function () {
                    return rr
                })
            } else if (typeof module !== 'undefined' && module.exports) { //CommonJS
                module.exports = rr
            } else { //script / browser
                globals.rr = rr
            }

            function rr(arr, lastIndex) {
                if (!Array.isArray(arr)) throw new Error("Input is not an array.")
                if (arr.length === 0) return null

                if (arr._rr == null) {
                    arr._rr = 0
                    return arr[0]
                }

                if (arr.length === 1)
                    return arr[0]

                if (typeof lastIndex == 'number')
                    arr._rr = lastIndex

                //is outside of range?
                if (arr._rr >= arr.length - 1 || arr._rr < 0) {
                    arr._rr = 0
                    return arr[0]
                } else {
                    arr._rr += 1
                    return arr[arr._rr]
                }
            }

            rr.splice = function (arr, idx, len) {
                if (!Array.isArray(arr)) throw new Error("Input is not an array.")
                if (arr.length === 0) return

                arr.splice(idx, len);

                if (arr._rr == null) {
                    arr._rr = 0
                    return;
                }

                if (arr._rr >= idx)
                    arr._rr -= 1
            }

            rr.spliceCurrent = function (arr, len) {
                rr.splice(arr, arr._rr, len)
            }

        })(this);
    </script>


    <!-- ROTATOR -->
    <script>
        const interval = 10000; //dashboard switch interval
        const initializingTime = 60000; //initializing time
        const iframes = document.getElementsByTagName('iframe')
        const arr = [...iframes];
        let last = null;

        let count = initializingTime / 1000;
        document.getElementById('title').innerText = `Initializing... (${count}s)`

        const initializingTimer = setInterval(() => {
            count = count > 0 ? count -= 1 : 0;
            document.getElementById('title').innerText = `Initializing... (${count}s)`
        }, 1000)


        let switcherTimer;
        const switcher = () => {
            if (switcherTimer) {
                clearInterval(switcherTimer);
            }

            let count = interval / 1000;
            switcherTimer = setInterval(() => {
                count = count > 0 ? count -= 1 : 0;
                document.getElementById('timer').innerText = `(${count}s)`
            }, 1000)

            const curr = rr(arr)
            curr.scrollIntoView();
            document.getElementById('title').innerText = `${curr.attributes['x-name'].value} (${arr._rr + 1}/${arr.length})`
        }

        setTimeout(() => {
            clearInterval(initializingTimer);

            document.getElementById('title').innerText = `${arr[0].attributes['x-name'].value} (1/${arr.length}) `

            switcher();
            setInterval(switcher, interval)

        }, initializingTime /*give dashboards some time to load*/)

    </script>


    <script>
        //Interval to refresh whole page once per 2 hours. To prevent memory leaks.
        setInterval(() => {
            window.location.reload()
        }, 7200000)
    </script>

</body>

</html>

iframe의 src μ†μ„±μ—μ„œ νŠΉμ • λŒ€μ‹œλ³΄λ“œ URL을 μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

    <iframe x-name="SLA PROD EU" src="https://mygrafana.example.com/services-availability?orgId=1&var-ds=Graphite-EU&var-env=prod-eu&var-package=cds-red-bull-high-touch&var-service=All&refresh=30s&from=now-1h&to=now"></iframe>

νšŒμ „ 간격은 const interval = 10000 밀리 λ‹¨μœ„λ‘œ μ„€μ •λ©λ‹ˆλ‹€.
λ¬Όλ‘  더 λ§Žμ€ iframe을 μΆ”κ°€ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

μ˜€ν”ˆ 5λ…„, 이 μ½”λ“œκ°€ μΆœμ‹œλ  μ˜ˆμ •μž…λ‹ˆκΉŒ?

μ†”μ§νžˆ 6ν™”μ—μ„œ 보고 μ‹Άμ—ˆλŠ”λ°.. :)

또 λ‹€λ₯Έ +1, 이에 λŒ€ν•œ μ—…λ°μ΄νŠΈκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

:케이크: 이 호의 5주년을 κΈ°λ…ν•©λ‹ˆλ‹€.

μ—…λ°μ΄νŠΈλ₯Ό 받을 수 μžˆμŠ΅λ‹ˆκΉŒ?

μ•ˆλ…•ν•˜μ„Έμš”, 맀우 μ€‘μš”ν•œ κΈ°λŠ₯μž…λ‹ˆλ‹€. 이에 λŒ€ν•œ μ—…λ°μ΄νŠΈκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

μ ˆλŒ€ 이런 일이 없을 거라 ν™•μ‹ ν•©λ‹ˆλ‹€ πŸ˜”

grafanaλ₯Ό μ‚¬μš©ν•˜μ—¬ ν•˜λ‚˜μ˜ dahboard ν…œν”Œλ¦Ώμ„ μ‚¬μš©ν•˜μ—¬ μ•½ 30λŒ€μ˜ μ„œλ²„λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.
이것이 μ—†μœΌλ©΄ ν…œν”Œλ¦Ώ μ—…λ°μ΄νŠΈλ₯Ό 원할 λ•Œ 30개의 ν…œν”Œλ¦Ώμ„ λ³€κ²½ν•΄μ•Ό ν•©λ‹ˆλ‹€.

이 μ˜΅μ…˜μ€ 맀우 μœ μš©ν•  κ²ƒμž…λ‹ˆλ‹€

:) 마이크둜 μ„œλΉ„μŠ€ μ„Έκ³„μ—μ„œλŠ” μ„œλΉ„μŠ€λ‹Ή λŒ€μ‹œλ³΄λ“œλ₯Ό κ°–λŠ” 것이 λ„ˆλ¬΄ μ–΄λ €μšΈ κ²ƒμž…λ‹ˆλ‹€. 이 μ˜΅μ…˜μ€ μž¬μƒ λͺ©λ‘μ— ν‘œμ‹œν•  수 μžˆλ„λ‘ μˆ˜μ‹­ 개의 λŒ€μ‹œλ³΄λ“œλ₯Ό μ‚¬μš©ν•˜λŠ” λŒ€μ‹  μ„œλΉ„μŠ€λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜λŠ” 데 맀우 νŽΈλ¦¬ν•˜κ³  μ‰¬μšΈ κ²ƒμž…λ‹ˆλ‹€.

정말 μœ μš©ν•œ κΈ°λŠ₯이 될 κ²ƒμž…λ‹ˆλ‹€.

+1

+1 - μœ μš©ν•œ κΈ°λŠ₯이 될 κ²ƒμž…λ‹ˆλ‹€.

+1

+1

+1; 이것에 λŒ€ν•œ μƒνƒœλŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ?

+1

+1

+1

+1

+1

+1
이것은 μ‹€μ œλ‘œ 맀우 μœ μš©ν•  κ²ƒμž…λ‹ˆλ‹€. 이 μš”μ²­μ€ 이미 5년이 λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

+1

이것에 λŒ€ν•΄ +1.

λ˜ν•œ $instanceκ°€ μž¬μƒ λͺ©λ‘μ—μ„œ μžλ™μœΌλ‘œ μ±„μ›Œμ§€κ³  ν™•μž₯될 수 μžˆλ„λ‘ Prometheus μ„œλΉ„μŠ€ 검색에 μ—°κ²°ν•  수 μžˆλ‹€λ©΄ 쒋을 κ²ƒμž…λ‹ˆλ‹€. κ·Έλ ‡κ²Œ ν•˜λ©΄ μΈμŠ€ν„΄μŠ€κ°€ 온/μ˜€ν”„λΌμΈμ΄ 되면 μž¬μƒ λͺ©λ‘μ—μ„œ μžλ™μœΌλ‘œ μΆ”κ°€/μ œκ±°λ©λ‹ˆλ‹€.

이것은 ν‚€μ˜€μŠ€ν¬ λͺ¨λ“œμ—μ„œλ„ 맀우 νŽΈλ¦¬ν•œ κΈ°λŠ₯μž…λ‹ˆλ‹€.

+1

이 κΈ°λŠ₯이 μΆ”κ°€λ˜μ—ˆλŠ”μ§€ μ•Œλ €μ£Όμ‹€ 수 μžˆλ‚˜μš”?

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰