2023. 5. 15. 11:06γμΈνλ°/μ€νλ§ λΆνΈ - ν΅μ¬ μ리μ νμ©
1οΈβ£ Spring Actuator
μ€λ¬΄μμλ κ°λ°μ νλ€ νλ©΄ μꡬμ¬νλλ‘ κ°λ°μ νλ κ²μ λμ΄μ λ§λ μλΉμ€μ λ¬Έμ κ° μλμ§ μλμ§ λͺ¨λν°λ§νκ³ μ§νλ€μ μ¬μ΄μ κ°μνλ νλμ΄ νμνλ€.
μ΄λ° νλμ νλ‘λμ μ€λΉ κΈ°λ₯μ΄λΌκ³ νλλ° νλ‘λμ μ μ΄μμ λ°°ν¬ν λ μ€λΉν΄μΌνλ λΉ κΈ°λ₯μ μΈ μμλ€μ λ»νλ€.
- μ§ν metric, μΆμ trace, κ°μ¬ auditing
- λͺ¨λν°λ§
μ ν리μΌμ΄μ μ΄ νμ¬ μ΄μμλμ§, λ‘κ·Έ μ 보λ μ μμ μΌλ‘ μ€μ λμ΄ μλμ§, 컀λ₯μ νμ μΌλ§λ μ¬μ©λκ³ μλ μ§ λ±μ νμΈν μ μμ΄μΌ νλλ° μ€νλ§ λΆνΈλ actuatorλΌλ κ±Έ μ κ³΅ν΄ νλ‘λμ μ€λΉ κΈ°λ₯μ νΈλ¦¬νκ² μ¬μ©ν μ μλλ‘ λμμ€λ€.
Spring Actuatorλ μ΄μμ€μΈ μ ν리μΌμ΄μ μ HTTPλ JMX λ₯Ό μ΄μ©ν΄μ λͺ¨λν°λ§νκ³ κ΄λ¦¬ν μ μλ κΈ°λ₯μ μ 곡νλ€.
2οΈβ£ Actuator μ¬μ©λ²
μ€νλ§μ΄ μ 곡νλ μ‘μΈμμ΄ν°λ₯Ό μ¬μ©νκΈ° μν΄μλ λΌμ΄λΈλ¬λ¦¬λ₯Ό μΆκ°ν΄μΌνλ€.
implementation 'org.springframework.boot:spring-boot-starter-actuator' //actuator μΆκ°
build.gradleμ μ‘μΈμμ΄ν° λΌμ΄λΈλ¬λ¦¬λ₯Ό μΆκ°νλ€.
λΌμ΄λΈλ¬λ¦¬λ₯Ό μΆκ°νκ³ μ ν리μΌμ΄μ μ μ€νν λ€μ
localhost:8080/actuator
λ₯Ό μ€ννλ©΄
/actuatorλ μ¬μ©κ°λ₯ν μ€λν¬μΈνΈ λͺ©λ‘μ νμΈν μ μλ€.
endpoints λ λͺ¨λν°λ§μ΄λ μ‘°μμ ν μ μλλ‘ νλ μ°κ²°μ μΌλ‘ κΈ°λ³Έ endpoints λ₯Ό μ 곡νκ³ μ¬μ©μκ° νμμ λ°λΌ μΆκ°ν μλ μλ€.
/actuator/healthλ₯Ό 보면
μ΄ κΈ°λ₯μ νμ¬ μλ²κ° μ λμνκ³ μλμ§ μ ν리μΌμ΄μ μ ν¬μ€ μνλ₯Ό λνλ΄λ κ²μ΄λ€.
(κΈ°λ³Έ μ€μ μ μ΄λ κ² νμ¬ μνλ§ νμΈν μ μλλ‘ λμ΄ μκ³ λ λ§μ κΈ°λ₯μ 보기 μν΄μλ λ ΈμΆ μ€μ μ΄ νμνλ€.)
management:
endpoints:
web:
exposure:
include: "*"
λ λ§μ μ‘μΈμμ΄ν° κΈ°λ₯μ μΉμ λ ΈμΆμν€κΈ° μν΄μλ application.ymlμ μ€μ ν΄μ£Όλ©΄ λκ³ ,
κ·Έ λ€μ /actuator λ₯Ό νλ©΄
μ‘μΈμμ΄ν°κ° μ 곡νλ λ§μ κΈ°λ₯μ νμΈν μ μλ€.
μ΄λ κ² μ‘μΈμμ΄ν°κ° μ 곡νλ κΈ°λ₯μ endpoint λΌκ³ νλ κ²μ΄λ€.
health : μ ν리μΌμ΄μ μν
metrics : λ©λͺ¨λ¦¬, μ€λ λ μν λ±
logger : logger μ 보λ₯Ό λ³΄κ³ , logger level μν λ³κ²½ λ±
beans : μ€νλ§ μ»¨ν μ΄λμ λ±λ‘λ λΉ μ‘°ν
3οΈβ£ Acuator Endpoint μ€μ
endpointλ₯Ό μ¬μ©νλ €λ©΄ 2κ°μ§ μ€μ μ΄ νμνλ€.
- μ€λν¬μΈνΈ νμ±ν
- μ€λν¬μΈνΈ λ ΈμΆ
-> μ€λν¬μΈνΈλ₯Ό νμ±ννλ€λ κ²μ ν΄λΉ κΈ°λ₯ μ체λ₯Ό μ¬μ©ν μ§ λ§μ§ on, offλ₯Ό κ²°μ νλ κ²μ΄κ³ ,
μ€λν¬μΈνΈλ₯Ό λ ΈμΆνλ€λ κ²μ μ€λν¬μΈνΈλ₯Ό HTTP μ λ ΈμΆν μ§ μλλ©΄ JMXμ λ ΈμΆν μ§ μ ννλ κ²μ΄λ€.
(κ·Όλ° μ€λν¬μΈνΈκ° νμ±νλμ§ μμΌλ©΄ λ ΈμΆ μ¬λΆλ₯Ό κ²°μ ν΄λ 보μ΄μ§ μλλ€.)
λλΆλΆμ μ€λν¬μΈνΈλ νμ±νλμ΄μκ³ , λ ΈμΆν μ§λ§ μ ννλ©΄ λλ€.(shutdown μ μΈ)
management:
endpoints:
web:
exposure:
include: "*"
μ΄ μ΅μ μ λͺ¨λ μ€λν¬μΈνΈλ₯Ό μΉμ λ ΈμΆνλ€λ λ»μ΄κ³ , μ΄λ shutdown μ€λν¬μΈνΈλ μΌλ¨ νμ±ν μμ²΄κ° μλμ΄ μκΈ° λλ¬Έμ λ ΈμΆλ λμ§ μλλ€.
λ§μ½ shutdown μ€λν¬μΈνΈλ₯Ό νμ±ννλ €λ©΄
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
shutdown:
enabled: true
management.endpoint.shutdown.enabled λ₯Ό trueλ‘ μ€μ ν΄μ£Όλ©΄ λλ€.
localhost:8080/actuator/shutdown μ POSTλ‘ μμ²νλ©΄ μ€μ μλ²κ° μ’ λ£λλ κ²μ νμΈν μ μλ€.
( μ΄ κΈ°λ₯μ μ€μ μλ²κ° μ’ λ£λλ κ²μ΄κΈ° λλ¬Έμ μ£Όμν΄μ μ¬μ©ν΄μΌ νλ€..!!)
4οΈβ£ Endpoint μ’ λ₯
μ΄λ κ² κ°κ° μ€λν¬μΈνΈλ₯Ό ν΅ν΄μ μ ν리μΌμ΄μ μ μ λ§μ κΈ°λ₯μ κ΄λ¦¬νκ³ λͺ¨λν°λ§ν μ μλ€.
Endpoint μ’ λ₯
- beans : μ€νλ§ μ»¨ν μ΄λμ λ±λ‘λ μ€νλ§ λΉμ 보μ¬μ€λ€.
- conditions : conditionμ ν΅ν΄μ λΉμ λ±λ‘ν λ νκ° μ‘°κ±΄κ³Ό μΌμΉνκ±°λ μΌμΉνμ§ μλ μ΄μ λ₯Ό νμνλ€.
- configprops : @ConfigurationProperties λ₯Ό 보μ¬μ€λ€.
- env: Environment μ 보λ₯Ό 보μ¬μ€λ€.
- health : μ ν리μΌμ΄μ ν¬μ€ μ 보λ₯Ό 보μ¬μ€λ€.
- httpexchanges : HTTP νΈμΆ μλ΅ μ 보λ₯Ό 보μ¬μ€λ€. -> HttpExchangeRepositoryλ₯Ό ꡬνν λΉμ λ³λλ‘ λ±λ‘ν΄μΌ μ¬μ© κ°λ₯
- info : μ ν리μΌμ΄μ μ 보λ₯Ό 보μ¬μ€λ€.
- loggers : μ ν리μΌμ΄μ λ‘κ±° μ€μ μ 보μ¬μ£Όκ³ λ³κ²½ν μ μλ€.
- metrics : μ ν리μΌμ΄μ μ λ©νΈλ¦ μ 보λ₯Ό 보μ¬μ€λ€.
- mappings : @RequestMapping μ 보λ₯Ό 보μ¬μ€λ€.
- threaddump : μ°λ λ λ€νλ₯Ό μ€νν΄μ 보μ¬μ€λ€.
- shutdown : μ ν리μΌμ΄μ μ μ’ λ£νλ€. (κΈ°λ³Έ: λΉνμ±ν)
'μΈνλ° > μ€νλ§ λΆνΈ - ν΅μ¬ μ리μ νμ©' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μ€νλ§ λͺ¨λν°λ§ (μ‘μΈμμ΄ν°, λ§μ΄ν¬λ‘λ―Έν°, λ©νΈλ¦, νλ‘λ©ν μ°μ€, κ·ΈλΌνλ) (0) | 2023.05.16 |
---|---|
μ€νλ§ Actuator Endpoint (health, info, logger, httpexchanges) (0) | 2023.05.15 |
μ€νλ§ YAML, @Profile (0) | 2023.05.11 |
μ€νλ§ μΈλΆ μ€μ μ¬μ© λ°©λ² (Environment) (0) | 2023.05.11 |
μ€νλ§ μΈλΆ μ€μ λ°©λ² (μ€μ νμΌ μ°μ μμ) (0) | 2023.05.10 |