κ°λ¨ν μλ₯Ό λ€μ΄λ³΄κ² μ΅λλ€.
$HOST λ³μκ° κ΅¬μ±λ λμ보λκ° ββμμ΅λλ€.
aws.$HOST.request.countλ₯Ό μ¬μ©νλ κ·Έλνκ° μμ΅λλ€.
λμ보λλ₯Ό λ³Ό λ Host1, Host2 λ±μ μ ννμ¬ μ μ ν λ©νΈλ¦μ νμν μ μμ΅λλ€.
μ΄μ μ΄κ²μ μ¬μ λͺ©λ‘μΌλ‘ λ°κΏ 맀λΆλ§λ€ grafanaκ° κ° νΈμ€νΈμ λν λ©νΈλ¦μ νμνλλ‘ νλ κ²μ΄ μ’μ΅λλ€.
λ κ° μ΄μμ νν°κ° μμΌλ©΄ μν©μ΄ μ‘°κΈ λ 볡μ‘ν΄μ§λλ€. λ§μ μ‘°ν©μ΄ μμΌλ©° κ·Έ μ€ μΌλΆλ λμ보λ κ΄μ°°μμκ² κ΄μ¬μ΄ μμ μ μμ΅λλ€.
μ΄λ¬ν μ΄μ λ‘ μ¬μ©μμκ² ν₯λ―Έλ‘μ΄ νν°/λ³μ μ‘°ν© λͺ©λ‘μ μ νν μ μλ λ°©λ²μ΄ μμΌλ©΄ μ’μ κ²μ
λλ€. κ·Έλ° λ€μ μ¬μ λͺ©λ‘μ μ΄λ¬ν μ‘°ν©μ μννκ³ μ μ ν λ©νΈλ¦μ΄ μλ λμ보λλ₯Ό νμν©λλ€.
μ¬μ λͺ©λ‘(μ: μ§λ 6μκ°, μ§λ 24μκ° λ±)μμλ μκ° λ²μμ λν΄ λ€λ₯Έ μ‘°ν©μ μ νν μ μκ² νλ κ²λ μ’μ κ²μ
λλ€.
@costimuraru μμ£Ό μ’μ μ μ!
:+1: μ¬μ λͺ©λ‘ κΈ°λ₯μ ν¨μ¬ λ μ μ©νκ² λ§λλλ€.
:+1: μ΄ κΈ°λ₯μ κ·Έλνλ₯Ό λͺ¨λ λ£μ μ μλ ν° νλ©΄μ΄ μκΈ° λλ¬Έμ νμν©λλ€.
:+1: μ€μ λ‘ μ΄ κΈ°λ₯μ λ¨μΌ νλ©΄μ μμΆν μ μλ λ§μ λμ보λκ° ββμλ μ°λ¦¬μ κ°μ νλ‘μ νΈμ μ μ©ν κ²μ λλ€.
μ΄κ²μ μ€μ λ‘ λ§€μ° μ μ©νκ² λ€λ¦¬μ§λ§ μμ μ¬μ λͺ©λ‘ 보기μμ λ³μ λ° μκ° μ€μ μ λ ΈμΆνλ λ° λ§€μ° λ³΅μ‘νκ³ μκ°μ΄ λ§μ΄ 걸립λλ€(λμ보λ λ‘λ/μ£ΌκΈ°μμ μ΄λ¬ν μ€μ λ° μ€μ λ³μ λ±μ μ²λ¦¬νλ λ Όλ¦¬ ꡬν). λ°λΌμ λ―Έλμ λ무 μ°μ μμκ° λμ κΈ°λ₯μ΄ λ κ²μ΄μ§λ§ v1.8μμ μμΆν μ μλ κΈ°λ₯μ μλλλ€.
@torkelo μκ² κ°μ¬νκ³ κ³μν΄μ μ’μ μΌμ νμμμ€!
:+1: μ΄ κΈ°λ₯μ΄ μμΌλ©΄ μ’μ κ²μ λλ€.
μ΄κ²μ΄ κ°λ° λκΈ°μ΄μ μλ λμ -- μ΄μ¨λ URLμ ν νλ¦Ώ λ³μλ₯Ό μ§μ ν μ μμ΅λκΉ? μ μ΄λ μ§κΈμ λΈλΌμ°μ νμ₯μ μ¬μ©νμ¬ λ§μ URLμ μνν μ μμ΅λλ€.
@rishid μ, ?var-<variable_name>=value
+1, μ΄ κΈ°λ₯ μμ²μλ λ§€μ° κ΄μ¬μ΄ μμ΅λλ€.
+1
+1
+1 ν νλ¦Ώκ³Ό ν¨κ» μ΄κ²μ νμμ λλ€.
곧 PRμ΄...
@costimuraru νλμ λ³μμ λν μ¬μ λͺ©λ‘μ ꡬννμΌλ©° μ΄μ λ€μ€ λ³μ μ‘°ν©μ μμ μ€μ λλ€. ꡬνμ΄ λΉ¨λΌμΌ ν©λλ€. λ€λ₯Έ μκ° λ²μλ₯Ό μ ννλ κ²μ μ΄κ² μμ μ κ·Έλ μ΄λ κΈ°λ₯μ΄ λ μ μμ΅λλ€. μ΄ λ°λ³΅μμλ ν νλ¦Ώ λ³μ μ‘°ν© μ¬μ λͺ©λ‘μ μννκ³ μμ΅λλ€.
κ΅μ₯ν©λλ€, @utkarshcmu !
λ€μμ PR - #2841 λ° μΌλΆ μ€ν¬λ¦°μ·μ λλ€.
"ν
νλ¦Ώ"μΌλ‘ μ΄λνλ©΄ μ΄μ μμ ν μλ‘μ΄ "μ¬μ λͺ©λ‘" νμ λ³Ό μ μμ΅λλ€.
μ¬μ λͺ©λ‘ νμ ν΄λ¦νλ©΄ λͺ¨λ λ³μκ° λμ΄λ λ€μ νλ©΄μ΄ νμλμ΄μΌ ν©λλ€.
λ³μ 3κ° μ€ 2κ°λ₯Ό μ ννκ³ "μμ"μ ν΄λ¦νμ΅λλ€. (λ΄κ° 2λ₯Ό μ νν μ΄μ λ μ΄ λ λ³μμ λͺ¨λ μ‘°ν©μ μ¬μνκ³ μΈ λ²μ§Έ λ³μλ κ³ μ λ μνλ‘ μ μ§νκ³ μΆκΈ° λλ¬Έμ
λλ€. μ°Έκ³ : κ³ μ λ³μλ κΈ°λ³Έ μ μ₯λ κ°μ κ°κ² λ©λλ€).
μ΄μ 첫 λ²μ§Έ λ³μλ₯Ό μΌμ νκ² μ μ§νκ³ μ¬μ λͺ©λ‘μ΄ λ λ²μ§Έ λ° μΈ λ²μ§Έ λ³μμ κ°λ₯ν λͺ¨λ μ‘°ν©μΌλ‘ μμλ¨μ μ μ μμ΅λλ€.
νμν κ²½μ° νΌλλ°±κ³Ό λ³κ²½ μ¬νμ μ 곡νμμμ€.
κ΅μ₯ν΄ @utkarshcmu
μ νμ΄! ν νλ¦Ώ μ€μ μ νμΌλ‘ μ¬μ λͺ©λ‘ κΈ°λ₯μ΄ μλμ§ νμ€νμ§ μμ΅λλ€. μ΄λ―Έ μ¬μ λͺ©λ‘ λ³΄κΈ°κ° μμ΅λλ€. ν νλ¦Ώ λμ보λμ λν μ¬μ λͺ©λ‘ μμ±μ ν΄λΉ 보기μ μΌλΆμ¬μΌ ν©λλ€.
@torkeloμ λμνλ©΄ μ΄κ²μ μ¬μ λͺ©λ‘ 보기μ μΌλΆλ‘ λ§λ€ κ²μ λλ€. κ·Έκ² λ μλ―Έκ° μμ΅λλ€. :)
ν νλ¦Ώ λ³μλ₯Ό κΈ°λ°μΌλ‘ νλ μ¬μ λͺ©λ‘μ μ΄μ μ¬μ λͺ©λ‘ 보기μμ νΈλ¦¬κ±°ν μ μμ΅λλ€. μ¬μ λͺ©λ‘μ μμνλ €λ©΄ λ€μ λ¨κ³λ₯Ό λ°λΌμΌ ν©λλ€.
μ¬μ λͺ©λ‘ ν΄λ¦:
μ¬μ λͺ©λ‘ μ νμ μ ννλ μΆκ° μ΅μ
μ΄ μλ λ€μ μ¬μ λͺ©λ‘ λ³΄κΈ°κ° νμλ©λλ€.
λμ보λλ₯Ό κΈ°λ°μΌλ‘ νλ μ¬μ λͺ©λ‘μ λν΄ λͺ¨λ κ²μ΄ λμΌνκ² μλν©λλ€.
μ΄μ ν
νλ¦Ώ λ³μλ₯Ό κΈ°λ°μΌλ‘ νλ μ¬μ λͺ©λ‘μ κ²½μ° λλ‘λ€μ΄ λ©λ΄μμ "λ³μ"λ₯Ό μ νν΄μΌ ν©λλ€.
κ·Έλ° λ€μ ν
νλ¦Ώ λ³μλ₯Ό κΈ°λ°μΌλ‘ μ¬μ λͺ©λ‘μ μ€νν΄μΌ νλ λμ보λλ₯Ό κ²μνκ³ μ νν©λλ€.
λμ보λλ₯Ό μ ννλ©΄ ν
νλ¦Ώ λ³μ λͺ©λ‘μ΄ μλμΌλ‘ νμλ©λλ€.
μ΄μ λ€μ λ¨κ³λ μ¬μ λͺ©λ‘μ μ€νν ν
νλ¦Ώ λ³μλ₯Ό μ ννκ³ μμμ ν΄λ¦νλ κ²μ
λλ€.
λ€μμ ν
νλ¦Ώ λ³μλ₯Ό κΈ°λ°μΌλ‘ ν μ¬μ λͺ©λ‘μ
λλ€.
μ¬μ λͺ©λ‘ 보기μ μ΄ λ³κ²½ μ¬νμ λν΄ μ΄λ»κ² μκ°νλμ§ μλ €μ£ΌμΈμ.
μ’μ 보μΈλ€
+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
μ΄ κΈ°λ₯μ΄ μΆκ°λμλμ§ μλ €μ£Όμ€ μ μλμ?
κ°μ₯ μ μ©ν λκΈ
:μΌμ΄ν¬: μ΄ νΈμ 5μ£Όλ μ κΈ°λ ν©λλ€.
μ λ°μ΄νΈλ₯Ό λ°μ μ μμ΅λκΉ?