λͺ¨λν°λ§μ λͺ¨λν°λ§ ν μκ°μ λλ€! grafana μν λ°μ΄ν°λ₯Ό jsonμΌλ‘ λ°ννλ / status λλ / health μλ ν¬μΈνΈκ° μμΌλ©΄ μ’μ κ²μ λλ€.
μν μλ ν¬μΈνΈμμ μ»κ³ μΆμ κ²μ λ€μκ³Ό κ°μ΅λλ€.
μ :
/μν
{ "date_sources_ok": True, "database_ok": True, "authorization_ok": True, "grafana_version": "2.5.1"}
++
: +1 :
μν URLμ΄ μΈμ μ μμ±νμ§ μλμ§ νμΈ
: +1 :
+1, μ΄κ²μ loadbalancer λ€μμ grafanaλ₯Ό μ€ννλ λ° λ§€μ° μ μ©ν©λλ€. loadbalancerλ / health HTTPλ₯Ό νΈμΆνμ¬ grafanaκ° HTTP 200 OKλ₯Ό λ°ννλμ§ νμΈν©λλ€.
λλ λ¨μν κ²μ λͺ¨μ λμμ§λ§ νμ¬λ‘μλ νΉλ³ν λ§μ‘±μ€λ½μ§ μμ΅λλ€.
λꡬλ μ§ νμ¬ μνμ λ§μ€ν°λ₯Ό μ΄ν΄λ³΄κ³ μΆλ€λ©΄ : https://github.com/grafana/grafana/compare/master...theangryangel : feature / health_check
λ€μκ³Ό κ°μ κ²°κ³Όλ₯Ό λ°νν©λλ€.
{"current_timestamp":"2016-06-04T18:43:49+01:00","database_ok":true,"session_ok":true,"version":{"built":1464981754,"commit":"v3.0.4+158-g7cbaf06-dirty","version":"3.1.0"}}
μλ λ°μ΄ν°λ² μ΄μ€ κ²μ¬μμ μΌλΆ ν΅κ³λ₯Ό λ°ννμ§λ§ μλΌ λμ΅λλ€. 쿼리λ₯Ό "select 1"κ³Ό κ°μ΄ ν¨μ¬ λ κ°λ¨ν κ²μΌλ‘ μ ν ν μ μμΌλ©° μ€λ₯κ° μλμ§ νμΈν©λλ€. κ·Έλ§ν κ°μΉκ° μλμ§ νμ€νμ§ μμ΅λλ€.
μΈμ νμΈλ νΉν λ§μ‘±μ€λ½μ§ μμ΅λλ€. ν μ€νΈ λ§μΉ΄λ‘± μλ²λ₯Ό μΈμ°κ³ μΈμ 곡κΈμλ₯Ό μμν λ λ°μν μμλ ν¨λμμ 볡ꡬ ()νμ§ μκ³ ν μ€νΈνκΈ°κ° μ½μ§ μμ κ² κ°μ΅λλ€. λλ λ§μΉ΄λ‘± / μΈμ μ μμ νμ¬ κ° μλ²μ ν μ€νΈ κΈ°λ₯μ μΆκ°ν©λλ€. 곡κΈμ. μ§κΈ λΉμ₯ μ§μ¦λλ κ²μ νΉλ³ν μνμ§ μλ Set-Cookie ν€λλ₯Ό λ°νν©λλ€. λ§μΉ΄λ‘±μ λν΄ λ κ²½νμ΄ λ§μ μ¬λμΌλ‘λΆν° μ΄κ²μ κ°μ Έκ° μμλ λͺ κ°μ§ μ견μ κ°μ¬λ립λλ€ π
λ°μ΄ν° μμ€λ₯Ό νμΈνλ κ²μ grafanaκ° μμ±λλ λ°©μμ κ³ λ €ν λ μ΄κ²μ μλνλ κ²μ΄ νΉν μ μ μ μ΄ μλ κ² κ°μ΅λλ€. μ κΈ°μ μΈ λͺ¨λν°λ§ μμ€ν μ μΆκ°νλ κ²μ΄ λ μ μμΌ κ²μ λλ€.
λμΌν λ¬Έμ μ μ§λ©΄νμΌλ©° ν΄κ²° λ°©λ²μΌλ‘ μ μ© μΈμ¦ API ν€λ₯Ό μ¬μ©νμ¬λ‘λ λ°Έλ°μμμ API νΈμΆμ μ¬μ©ν©λλ€. option httpchk
μμ μ¬μ©μ μ§μ HTTP ν€λλ₯Ό μ€μ νλ μ μ©ν "μ¨κ²¨μ§"κΈ°λ₯μ΄μλ HAProxyλ₯Ό μ¬μ©νκ³ μμ΅λλ€.
option httpchk GET /api/org HTTP/1.0\r\nAccept:\ application/json\r\nContent-Type:\ application/json\r\nAuthorization:\ Bearer\ your_api_key\r\n
(νμλ νΈμ€νΈ ν€λλ₯Ό μ€μ ν΄μΌνκ³ HAProxy ꡬμ±μμ λμ μΌλ‘ κ°μ Έμ¬ μ μκΈ° λλ¬Έμ 1.1μ΄ μλ HTTP / 1.0μ μ¬μ©ν΄μΌν©λλ€.)
/api/org
λ μ€λ² ν€λκ° κ±°μμλ κ°μ₯ κ°λ¨ν μμ²μΌλ‘ 보μ΄λ©°λ‘λ λ°Έλ°μμ μ νν νμν HTTP 200μ λ°ννλ©° μ μΈμ
μ μμ±νμ§ μμ΅λλ€.
μ΄ λ¬Έμ μ λν μ§μ μ΄λ νλ³΄κ° μμ΅λκΉ?
+1
kubernetesμ λͺ¨λ² μ¬λ‘μ²λΌ μ΄κ²μ λ³λμ / liveness λ° / readiness μλ ν¬μΈνΈλ‘ λΆν ν©λλ€. / livenessλ grafana μμ²΄κ° μ€ν μ€μΈμ§ μ¬λΆ λ§ λνλ΄κ³ , / readinessλ νΈλν½μλ°μ μ€λΉκ°λμλμ§ μ¬λΆλ₯Ό λνλ΄λ©° μ’ μμ±μ λλ¬ ν μ μλμ§ μ¬λΆλ₯Ό νμΈν©λλ€.
kubernetesμμ νμ± μλ ν¬μΈνΈκ° νλ‘λΈλκ³ 200 okλ‘ μλ΅νλ λ° μ¬λ¬ λ² μ€ν¨νλ©΄ 컨ν μ΄λκ° μ£½κ³ μ 컨ν μ΄λλ‘ κ΅μ²΄λ©λλ€. μ€λΉ μλ ν¬μΈνΈλ 컨ν μ΄λλ₯Ό μλΉμ€μ μΌλΆλ‘ λ§λ€κ³ νΈλν½μ μ μ‘νλ λ° μ¬μ©λ©λλ€. λ‘λ λ°Έλ°μμμ μΆκ° λ° μ κ±°νλ κ²κ³Ό κ°μ΅λλ€.
+1
/ metrics Prometheus μλ ν¬μΈνΈλ₯Ό μΆκ°νλ κ²μ μ΄λ»μ΅λκΉ?
+1
Amazon ECSμ κ°μ μΌλΆ μλΉμ€μμ μν νμΈμ΄ νμν μ¬λ :
μ΄ ν΄νΉμ μ¬μ©νμμμ€. κ²½λ‘ /public/img/grafana_icon.svg
, HTTP μ½λ : 200.
+1
κ·Έλμ λ¨μν HTTP code: 200
λ§ μ°Ύκ³ μλ€λ©΄ /login
. μ λλ£μ μ λ λ°©κΈ Grafanaλ₯Ό Kubernetes ν΄λ¬μ€ν°μ λ°°ν¬νμΌλ©° ν΄λΉ μλ ν¬μΈνΈλ₯Ό μ¬μ©νμ¬ νμ± / μ€λΉ νλ‘λΈμ λν΄ μ μλνμ΅λλ€. Google Compute Engine λΆν λΆμ°κΈ°μμλ μλν©λλ€.
λͺ¨λ μ¬λμ΄μ΄λ₯Ό κΈ°μ μ μΌλ‘ μμνλ λ°©λ²μ μκ³ μλ€κ³ μκ°νμ§λ§ μμ μ μΈλΆ μ’ μμ±μ ν¬ν¨ν μλΉμ€ μν λͺ¨λν°λ§μ λͺ μ μ μΌλ‘ μ§μνλ κ²μ λλ€.
λ΄ iPhoneμμ 보λ
2016 λ 12 μ 5 μΌ μ€ν 4μ 9 λΆμ Hunter Satterwhite [email protected] μ λ€μκ³Ό κ°μ΄ μΌμ΅λλ€.
κ°λ¨ν HTTP μ½λ 200μ μ°Ύκ³ μλ€λ©΄ / loginμ μ¬μ©νμμμ€. μ λλ£μ μ λ λ°©κΈ Grafanaλ₯Ό Kubernetes ν΄λ¬μ€ν°μ λ°°ν¬νμΌλ©° ν΄λΉ μλ ν¬μΈνΈλ₯Ό μ¬μ©νμ¬ νμ± / μ€λΉ νλ‘λΈμ λν΄ μ μλνμ΅λλ€. Google Compute Engine λΆν λΆμ°κΈ°μμλ μλν©λλ€.
β
μ΄ μ€λ λλ₯Ό ꡬλ νκΈ° λλ¬Έμμ΄ λ©μμ§κ° μ μ‘λμμ΅λλ€.
μ΄ μ΄λ©μΌμ μ§μ λ΅μ₯νκ±°λ GitHubμμ 보거λ μ€λ λλ₯Ό μμκ±°νμμμ€.
νΉμ μ¬μ© μ¬λ‘λ₯Ό μΆκ°νκ³ μΆμ΅λλ€. μ¬μ©μκ° λ‘κ·ΈμΈνκ³ κ·Έλνλ₯Ό νμ ν μ μλμ§ νμΈνλ €λ©΄ κ°λ¨ν HTTP μλ ν¬μΈνΈκ° νμν©λλ€. /login
μ κ°μ μ μ 리μμ€μ μλ ν¬μΈνΈλ₯Ό μ¬μ©νμ¬μ΄ λ¬Έμ λ₯Ό ν΄κ²°ν μ μλ€λ κ²μ μκ³ μμ§λ§ Grafana λ΄λΆκ° μμλλ‘ μ€νλκ³ μλμ§ νμΈνλ κ²μ΄ μ λ§ νμν©λλ€. λ°μ΄ν° μμ€μ λν λ³λμ μν νμΈμ΄ μμΌλ―λ‘ λ°μ΄ν° μμ€μμ λ°μ΄ν°λ₯Ό κ²μνκΈ° μν΄ λ°λμ μν νμΈμ΄ νμνμ§λ μμ΅λλ€.
μ΄κ²μ +1.
2016 λ
12 μ 5 μΌ μμμΌ μ€ν 11:51, Philip Wernersbach <
[email protected]> μμ± :
ꡬ체μ μΈ μ¬μ© μ¬λ‘λ₯Ό μΆκ°νκ³ μΆμ΅λλ€. κ°λ¨ν HTTP μλ ν¬μΈνΈκ° νμν©λλ€.
μ¬μ©μκ° λ‘κ·ΈμΈνκ³ κ·Έλνλ₯Ό νμ ν μ μλμ§ νμΈν©λλ€. λλ μ°λ¦¬κ°
λΆμ¬λ₯Ό ν΄κ²°νκΈ°μν / loginκ³Ό κ°μ μ μ 리μμ€ λ° μλ ν¬μΈνΈ
νμ§λ§ Grafanaκ°
λ΄λΆκ° μμλλ‘ μ€ν μ€μ λλ€. μν νμΈμ΄ λ°λμ νμν κ²μ μλλλ€.
λ³λμ μν νμΈμ΄ μμΌλ―λ‘ λ°μ΄ν° μμ€μμ λ°μ΄ν°λ₯Ό κ²μνκΈ° μν΄
κ·Έλ€μ μν΄.β
λκΈμ λ¬μ κΈ° λλ¬Έμ μμ ν κ²μ λλ€.
μ΄ μ΄λ©μΌμ μ§μ λ΅μ₯νκ³ GitHubμμ νμΈνμΈμ.
https://github.com/grafana/grafana/issues/3302#issuecomment-265060171 ,
λλ μ€λ λ μμκ±°
https://github.com/notifications/unsubscribe-auth/AIESgm7BZw3jqs8ElVWU9v7CjtcXBYFwks5rFOm-gaJpZM4Gm4T8
.
-
[μ΄λ―Έμ§ : TransLoc_logos_gear-blue_600x600.png]
νν° μν° νμ΄νΈ
리λ λΉλ λ° μ΄μ μμ§λμ΄, TransLoc
μ : 252.762.5177 | http://transloc.com http://www.transloc.com/
[μ΄λ―Έμ§ : μμ
λ―Έλμ΄ μμ΄μ½ -03.png] https://www.facebook.com/TransLoc/ [μ΄λ―Έμ§ :
μμ
λ―Έλμ΄ μμ΄μ½ -04.png] https://www.linkedin.com/company/transloc [μ΄λ―Έμ§ :
μμ
λ―Έλμ΄ μμ΄μ½ -02.png] http://www.twitter.com/transloc [μ΄λ―Έμ§ : μμ
media icons-01.png] http://www.instagram.com/transloc_inc
λ°λΌμ νμ¬ 4.0μλ λ΄λΆ λ©νΈλ¦μ΄μλ / api / metrics μλ ν¬μΈνΈκ° μμ΅λλ€.
κ·Έλ¬λ λ¬Έμ λ λ€μκ³Ό κ°μ κ²μ μμ²ν©λλ€.
{ "date_sources_ok": True, "database_ok": True, "authorization_ok": True, "grafana_version": "2.5.1" }
μ¬κΈ°μ μμλλ λ΄μ©μ λν μμΈν μ€λͺ
μ΄ μμΌλ©΄ μ’μ κ²μ
λλ€. API μν νΈμΆμ λͺ¨λ μ‘°μ§μ λͺ¨λ λ°μ΄ν° μμ€μ λν΄ μ€μκ° νμΈμ μνν΄μΌν©λκΉ? / health api νΈμΆμ΄ μ΄λ£¨μ΄μ§λ©΄ μ¦μ μνν΄μΌν©λκΉ?
μΉμΈ νμΈμ 무μμ μλ―Έν©λκΉ?
@torkelo λ μμ΄λμ΄λ₯Ό λμ§λ €κ³ νμ§λ§ / healthλ grafana-serverμ μ€μΉλ νλ¬κ·ΈμΈ λͺ¨λμ λν΄λ³΄κ³ ν μμμ κ²μ λ±λ‘ ν μ μμ΄μΌνλ€κ³ μκ°ν©λλ€.
{
"ok": false,
"items": [
"datasources": {
"ok": true,
},
"database": {
"ok": false,
"msg": "Cannot communicate ###.###.###.###/XXXXXXX"
},
...
]
}
κΈ°λ³Έμ μΌλ‘ μν νμΈμ μλ ν¬μΈνΈκ° νΈμΆ λ λ λͺ¨λ μ¬νμ λν μ€μκ° νμΈμ μνν©λλ€. μ¬λλ€μ΄ μν νμΈμ νΉμ νλͺ©μΌλ‘ 격리νλ €λ κ²½μ° elasticsearchκ° ν΄λ¬μ€ν° μνλ₯Ό μν΄ νλ κ²κ³Ό κ°μ μμ μ μν ν μ μμ΅λλ€. μ¬λ¬Όμ΄ μΈλΆ μλΉμ€ (κΆν λΆμ¬, λ°μ΄ν°λ² μ΄μ€ λ±) μΈ κ²½μ° μ΅μν μ°κ²° ν μ€νΈκ° μνλκ³ μ¬λ¬Όμ μ ν©ν κΈ°ν μ¨ μ μ± κ²μ¬κ° μνλ©λλ€ (μ : λ°μ΄ν°λ² μ΄μ€μ κ²½μ° SELECT 1, μΈμ¦μμν LDAP λ°μΈλ ν μ€νΈ λ±).
μ΄μ κ°μ μΆλ ₯μ μ¬μ©νλ©΄ λͺ¨λν°λ§ κ²μ¬μμ λ¬Έμ λ₯Ό μ 체μ μΌλ‘ νμΈνλ λμμ νΉμ λ¬Έμ λ₯Ό μ°Ύκ³ κ·Έμ λ°λΌ μΆλ ₯ ν μ μμ΅λλ€.
+1
@torkelo μ§μ°λ λ΅λ³μ λν΄ μ£μ‘ν©λλ€ λ°©κΈ κ·νμ μ§λ¬Έμ 보μμ΅λλ€.
TL; DR
@andyfeller κ·Έμ λκΈμμ μ’μ μΌμνκ³ λ΄κ° μΌλμ λμλ κ²μ
λλ€.
Grafanaλ₯Ό λͺ¨λν°λ§νλ λ° μ¬μ©λλ λμ (λλ λμ )μ μΈλΆ μ 보μ ν¨κ» λ κ°μ§ μ§λ¬Έμ λ΅ν΄μΌν©λλ€.
A)μ΄ Grafana μΈμ€ν΄μ€κ° μ€λΉλμ΄ μμ΅λκΉ?
B)μ΄ Grafana μΈμ€ν΄μ€κ° κ΅¬μ± μλμ λ°λΌ μμλλ‘ μ€νλκ³ μμ΅λκΉ?
μ¬κΈ°μ "κ΅¬μ± μλ"κ° ν΅μ¬μ λλ€. μλκ° μλ―Ένλ λ°λ μλ₯Ό λ€μ΄ κ΄λ¦¬μκ° λ°μ΄ν° μμ€λ‘ μΆκ° ν λ μ μ₯λ ꡬμ±μ΄ μ¬λ°λ₯Έμ§ μ¬λΆμ κ΄κ³μμ΄ μ¬μ©ν μμμ κ²μΌλ‘ κΈ°λνλ€λ κ²μ λλ€. λ°λΌμ ꡬμ±λ λ°μ΄ν° μμ€λ₯Ό Grafanaμμ μ¬μ©ν μμλ κ²½μ° λͺ¨λν°λ§ μλ ν¬μΈνΈλ κ·Έλ κ²ν΄μΌνλ©° λμΌν λ°©μμΌλ‘ λ§€μ° μ μ©ν "ν μ€νΈ"λ²νΌμ΄ μλνλ μ΄μ λ₯Ό μλ €μΌν©λλ€.
μ΄λ₯νλ λΉνκΈ°μ κ΄μ μμ μκ°νλ λ° λμμ΄λ©λλ€. λ¨Όμ λΉνκΈ°κ° μ΄λ₯μ μλ£νκ³ κ³΅μ€μ μλ€λ κ²μ μμμΌν©λλ€. κ·Έλ° λ€μ λΉνκΈ°κ° μμλλ‘ λͺ©μ μ§λ₯Ό ν₯ν΄ λΉννκ³ μλ€λ κ²μ μμμΌν©λλ€. μν κ³ λμ λλ¬ "μ ;-))λ₯Ό μλ―Έν©λλ€.
μ΄κ²μ λ€λ₯Έ μ¬λλ€μ΄ μ§μ ν / live / ready λλ Elasticsearch λͺ¨λΈμ / health (1) / state (2) λλ Sensu (3)μ / health λ° / infoμ λ€μ λΉκ΅ λ μ μμ΅λλ€.
IMHO νλμ μλ ν¬μΈνΈλ‘ μΆ©λΆνμ§λ§ λλΆλΆμ μ΅μ λꡬμμ λ κ°μ μλ ν¬μΈνΈλ₯Ό 보λ κ²μ λ΄ λ§μμ λ°κΎΈλ κ²μ
λλ€. Bκ° Aμ νμ μ§ν©μ΄λΌκ³ μκ°νλ―λ‘ μμ§ μ€λλμ§ μμλ€κ³ κ°μ ν΄ λ³΄κ² μ΅λλ€. λ°λΌμ λ°ν λ JSONμ 2 κ°μ λ μ μ΄μλ λμ μ΄λ₯Ό λ°μν©λλ€. κ·Έλ° λ€μ Grafanaλ₯Ό ν΄λ¬μ€ν°λ§ ν μμλ μ΄λ λ "/ cluster_state"λ₯Ό μΆκ° ν μ μμ΅λλ€.
μ΄μ κ° λ΅λ³μ μΈλΆ μ¬νκ³Ό κ΄λ ¨νμ¬ λ€μκ³Ό κ°μ μ΄κΈ° μκ°μ΄ μμ΅λλ€.
μΈλΆ μ¬ν :
B μΈλΆ μ¬ν :
Bμλ ν¨μ¬ λ λ§μ κ²μ΄ μμΌλ―λ‘ λͺ¨λν°λ§μ 2 κ°μ λμ μΌλ‘ λλλ κ²μ΄ λ ν©λ¦¬μ μΌ μ μμ΅λλ€.
μλ ν¬μΈνΈκ° 쿼리 λ λ (μ¦μμμ, API λ±) μ΄λ€ μΌμ΄ λ°μνλμ§μ κ΄ν΄μλ λκ° κ΅¬νμ λλ΄λμ§ μ°κΈ°ν©λλ€.
λͺ κ°μ§-λͺ λ°±ν?-μ‘°μΈ :
λͺ¨λν°λ§ λ°μ΄ν°λ₯Ό μμ§νλ λ° μ¬μ©λλ 리μμ€λ₯Ό λ§€μ° μΌλμλκ³ κ³μΈ‘ μ½λλ‘ λ§€μ° "보νΈ"ν΄μΌν©λλ€. Grafana κ΄λ¦¬μκ° "Grafana λͺ¨λν°λ§μ΄ Grafanaλ₯Ό μ€λ¨νμ΅λλ€"λλ "Grafanaκ° λͺ¨λν°λ§μ μμν μ΄ν X % μλκ° λλ €μ‘μ΅λλ€"μν©μ νΌν μ μλλ‘ λμμ€λλ€. .
μ 곡λ λͺ¨λν°λ§ λ°μ΄ν°μ λν΄ κ°λ₯ν ν νμ νμμμ€. 경보 νΌλ‘λ μ μΌλ³μ λλ€.
(1) https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-health.html
(2) https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-state.html
(3) https://sensuapp.org/docs/0.23/api/health-and-info-api.html#the -info-api-endpoint
(4) https://blog.codinghorror.com/get-your-database-under-version-control/
4.2.0μ΄ λ°©κΈ λμλλ° μμ§ μλΉμ€λ₯Ό μ‘°μ¬ ν λ°©λ²μ΄ μλμ? (k8s ν΄λ¬μ€ν°λ₯Ό μκ°νμμμ€)
@torkelo @dynekμ μμ μ΄ μλ€κ³ μκ°ν©λλ€. μ΄κ²μ λ μ΄μ μ ν μ¬νμ΄ μλλλ€. κΈ°μ‘΄ λκ΅¬λ‘ μ€λ μν ν μμλ μμ
(μ : κ΄λ¦¬ λλ λ©νΈλ¦ νμ΄μ§ νμ©)μ΄ λ¬Έμνλμ΄μλ "Grafana λͺ¨λν°λ§ λ°©λ²"μ λν λ¬Έμμ μ μΉμ
μ΄λ μ΄ μ μμμ κ°μ μμ ν μ μ© API λ μ΄μ νμν©λλ€. .
μλͺ»λ λ°©μμΌλ‘ λ°μλ€μ΄μ§ λ§μμμ€. μ°μ μμκ° λ¬΄μμΈμ§ λ§μ λλ¦¬λ €λ κ²μ΄ μλλλ€. λͺ¨λν°λ§ λ°©λ²μ λν μ λ΄ λΆλΆμμ΄ μμ© νλ‘κ·Έλ¨μ΄ "μν°νλΌμ΄μ¦ μ€λΉ"μνκ°λλ κ²μ νλ ν맀λΌλ κ²μ
λλ€.
+1
grafana μνλ₯Ό νμΈνκΈ° μν΄ κ°λ¨ν http λμ μ μΆκ°νμ΅λλ€.
GET /api/health
{
"commit": "349f3eb",
"database": "ok",
"version": "4.1.0"
}
λ°μ΄ν°λ² μ΄μ€ (mysql / postgres / sqlite3)μ μ°κ²°ν μμλ κ²½μ° database
νλμ "μ€ν¨"λ₯Ό λ°νν©λλ€. Grafanaλ μ¬μ ν μν μ½λ 200μΌλ‘ μλ΅ν©λλ€.μ΄ κ²½μ° λ¬΄μμ΄ μ¬λ°λ₯Έμ§ νμ€νμ§ μμ΅λλ€.
μ΄ μλ ν¬μΈνΈμμ κ°μ₯ μ€μν μ μ μΈμ μ΄ μμ±λμ§ μλλ€λ κ²μ λλ€ (API ν€ λλ κΈ°λ³Έ μΈμ¦μΌλ‘ μΈμ μ νΈμΆνμ§ μμΌλ©΄ λ€λ₯Έ API νΈμΆμ΄ μν ν μμλ μμ ).
λ°μ΄ν°λ² μ΄μ€μ μ°κ²°ν μ μμ λ μν μ½λ 503μΌλ‘ λ°ννλ κ²μ΄ κ°μ₯ μ’μ§ μμ΅λκΉ?
Kubernetesλ λ€μμ μ¬μ©ν©λλ€.
200λ³΄λ€ ν¬κ±°λ κ°κ³ 400λ³΄λ€ μμ μ½λλ μ±κ³΅μ λνλ λλ€. λ€λ₯Έ μ½λλ μ€ν¨λ₯Ό λνλ λλ€.
μ, db μνκ° μ€ν¨νμ λ 503 μν μ½λκ° κ°μ₯ μ’λ€κ³ μκ°ν©λλ€.
503μ /api/health
μλ ν¬μΈνΈκ° Kubernetesμ readiness
νμΈμλ§ κ°μ₯ μ ν©νλ€λ κ²μ μλ―Έν©λλ€. μ΄ κ²μ¬κ° liveness
λλ©΄ λ°μ΄ν°λ² μ΄μ€ λ¬Έμ λ‘ μΈν΄ λͺ¨λ ν¬λκ° μ’
λ£λ©λλ€. λ°μ΄ν°λ² μ΄μ€ κ²μ¬λ₯Ό μλ΅νλ 쿼리 λ§€κ° λ³μκ° μμ΅λκΉ?
@JorritSalverda μλ§λ tcpSocket
체ν¬μΈμ livenessProbe
/metrics
λ μΈμ
μ μμ±νκ±°λ db μμ²μ λ°ννμ§ μμ΅λλ€.
μ°λ¦¬λ μΌλ°μ μΌλ‘ 곡격μ μΈ μ€λΉ μν νμΈ λ° μν λ νμ± μν νμΈμ μνν©λλ€. 1 μ΄, μ€λΉ ββμνμμ 1 λ² μ€ν¨, 60 μ΄ 10 λ² μ€ν¨ 1 λ² νμ± μνμμ μ±κ³΅, λ¬Έμ κ°μμ λ μλ΅ μ¬ λΌμ°ν μ΄ κ°λ₯νμ§λ§ λμμ μ체 λ³΅κ΅¬κ° νμν κ²½μ° κ°λ₯ν, λΆνμν ν¬λ λ€μ μμμ λ°©μ§ν©λλ€. κ·Έλ¬λ μ§μμ μΈ DB λ¬Έμ λ‘ μΈν΄ μ¬μμμ΄ λ°μνμ¬ μ»¨ν μ΄λ μνκ° μ’μ§ μμ κ²½μ° μ€μ λ‘ λμμ΄ λ μ μμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
grafana μνλ₯Ό νμΈνκΈ° μν΄ κ°λ¨ν http λμ μ μΆκ°νμ΅λλ€.
λ°μ΄ν°λ² μ΄μ€ (mysql / postgres / sqlite3)μ μ°κ²°ν μμλ κ²½μ°
database
νλμ "μ€ν¨"λ₯Ό λ°νν©λλ€. Grafanaλ μ¬μ ν μν μ½λ 200μΌλ‘ μλ΅ν©λλ€.μ΄ κ²½μ° λ¬΄μμ΄ μ¬λ°λ₯Έμ§ νμ€νμ§ μμ΅λλ€.μ΄ μλ ν¬μΈνΈμμ κ°μ₯ μ€μν μ μ μΈμ μ΄ μμ±λμ§ μλλ€λ κ²μ λλ€ (API ν€ λλ κΈ°λ³Έ μΈμ¦μΌλ‘ μΈμ μ νΈμΆνμ§ μμΌλ©΄ λ€λ₯Έ API νΈμΆμ΄ μν ν μμλ μμ ).