π§ νλ‘λμ μ€λΉ κΈ°λ₯
μ ν리μΌμ΄μ μ κ°λ°ν λμλ κΈ°λ₯μ μ μꡬμ¬νλ§μ κ°λ°νλ κ²μ΄ μλλλ€.
μλΉμ€λ₯Ό μ€μ λ°°ν¬ν μ΄ν μλΉμ€μ λ¬Έμ κ° μλμ§ λͺ¨λν°λ§νλ νλλ€μ΄ μΆκ°λ‘ νμν©λλ€.
μ΄μ νκ²½μμ μ ν리μΌμ΄μ μ μ€νν λ νμν μ΄λ¬ν κΈ°λ₯λ€μ νλ‘λμ μ€λΉ κΈ°λ₯μ΄λΌ ν©λλ€.
μ¦ νλ‘λμ μ μ΄μμ λ°°ν¬ν λ μ€λΉν΄μΌ νλ λΉ κΈ°λ₯μ μμλ€μ μλ―Έν©λλ€.
λ€μκ³Ό κ°μ κ²λ€μ΄ νλ‘λμ μ€λΉ κΈ°λ₯μ μν©λλ€.
- μ§ν (metric)
- μΆμ (trace)
- κ°μ¬ (auditing)
- λͺ¨λν°λ§
μ΄λ€μ μ ν리μΌμ΄μ μ΄ νμ¬ μ΄μμλμ§, λ‘κ·Έ μ 보λ μ μμ μΌλ‘ μ€μ λμλμ§, 컀λ₯μ νμ μΌλ§λ μ¬μ©λκ³ μλμ§ λ±μ νμΈνλλ° μ¬μ©λ©λλ€.
π§ μ€νλ§ λΆνΈ μ‘μΆμμ΄ν°
μ€νλ§ λΆνΈκ° μ 곡νλ μ‘μΆμμ΄ν°λ νλ‘λμ μ€λΉ κΈ°λ₯μ μν λ€μν κΈ°λ₯λ€μ μ 곡ν©λλ€.
λν λ§μ΄ν¬λ‘λ―Έν°, νλ‘λ©ν μ°μ€, κ·ΈλΌνλμ κ°μ μ΅κ·Ό μ ννλ λͺ¨λν°λ§ μμ€ν λ€κ³Όλ μ½κ² μ°λν μ μλλ‘ μ§μν©λλ€.
π§ μ‘μΆμμ΄ν° μμνκΈ°
βοΈ Build.gradle
plugins {
id 'java'
id 'org.springframework.boot' version '3.0.6'
id 'io.spring.dependency-management' version '1.1.0'
}
group = 'actuator.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-actuator' //actuator μΆκ°
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.h2database:h2'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
//test lombok μ¬μ©
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
}
tasks.named('test') {
useJUnitPlatform()
}
κ°λ¨ν actuator, jpa, web, lombok, h2λ§μ μΆκ°νμμ΅λλ€.
νλ‘μ νΈλ₯Ό μμν λ€, http://localhost:8080/actuatorλ‘ μμ²μ 보λ΄λ©΄ λ€μκ³Ό κ°μ νλ©΄μ λ³Ό μ μμ΅λλ€.
λμμλ μ£Όμλ€ μ€ http://localhost:8080/actuator/health λ‘ μ μμ νλ©΄ λ€μκ³Ό κ°μ νλ©΄μ λ³Ό μ μμ΅λλ€.
μ κΈ°λ₯μ νμ¬ μλ²κ° μ λμνκ³ μλμ§ μ ν리μΌμ΄μ μ ν¬μ€ μνλ₯Ό λνλ λλ€.
μλ¬΄λ° μ€μ μ νμ§ μμ μνμμ νμΈν μ μλ κΈ°λ₯λ€μ ν¬μ€ μνλ₯Ό νμΈν μ μλ κΈ°λ₯ λΏμ λλ€.
μ‘μΆμμ΄ν°λ ν¬μ€ μν λΏλ§ μλλΌ λ€λ₯Έ λ§μ κΈ°λ₯λ€μ μ 곡νλλ°, μ΄λ€μ μΉ νκ²½μμ λ³Ό μ μλλ‘ νκΈ° μν΄ λ€μκ³Ό κ°μ΄ μ€μ ν μ μμ΅λλ€.
βοΈ application.yml
management:
endpoints:
web:
exposure:
include: "*"
μ΄ν λ€μ http://localhost:8080/actuatorλ‘ μμ²μ 보λ΄λ©΄ λ€μκ³Ό κ°μ κ²°κ³Όλ₯Ό μ»μ μ μμ΅λλ€.
μ‘μΆμμ΄ν°κ° μ 곡νλ μλ§μ κΈ°λ₯λ€μ νμΈν μ μμ΅λλ€.
μ΄λ€μ λν μ€λͺ μ 곡μ λ¬Έμλ₯Ό μ°Έκ³ ν΄μ£ΌμΈμ.
μ‘μΆμμ΄ν°κ° μ 곡νλ κΈ°λ₯ νλνλλ₯Ό μλν¬μΈνΈλΌ λΆλ¦ λλ€.
κ°κ°μ μνΈν¬μΈνΈλ /actuator/{μλν¬μΈνΈλͺ } κ³Ό κ°μ νμμΌλ‘ μ κ·Όν μ μμ΅λλ€.
- http://localhost:8080/actuator/health : μ ν리μΌμ΄μ ν¬μ€ μ 보λ₯Ό 보μ¬μ€λλ€.
- http://localhost:8080/actuator/beans : μ€νλ§ μ»¨ν μ΄λμ λ±λ‘λ λΉμ 보μ¬μ€λλ€.
π§ μλν¬μΈνΈ μ€μ
μλν¬μΈνΈλ₯Ό μ¬μ©νλ €λ©΄ μνΈν¬μΈνΈλ₯Ό νμ±ννκ³ , μ΄λ₯Ό λ ΈμΆμμΌμΌ ν©λλ€.
μλν¬μΈνΈλ₯Ό νμ±ν νλ€λ κ²μ ν΄λΉ κΈ°λ₯ μ체λ₯Ό μ¬μ©ν μ§ λ§μ§λ₯Ό μ ννλ κ²μ λλ€.
μλν¬μΈνΈλ₯Ό λ ΈμΆνλ€λ κ²μ νμ±νλ μλν¬μΈνΈλ₯Ό HTTPμ λ ΈμΆν μ§ νΉμ JMXμ λ ΈμΆν μ§ μ ννλ κ²μ μλ―Έν©λλ€.
μλν¬μΈνΈλ₯Ό νμ±ννκ³ μΆκ°λ‘ HTTPλ₯Ό ν΅ν΄μ μΉμ λ ΈμΆν μ§, μλλ©΄ JMXλ₯Ό ν΅ν΄μ λ ΈμΆν μ§, νΉμ λ μμΉ λͺ¨λμ λ ΈμΆν μ§ λ± λ ΈμΆ μμΉλ₯Ό μ§μ ν΄μ£Όμ΄μΌ ν©λλ€.
νμ±νκ° λμ΄ μμ§ μμΌλ©΄ λ ΈμΆμ λμ§ μμ΅λλ€.
μ¦ νμ±νκ° μ νλμ΄μΌ ν©λλ€.
μλν¬μΈνΈλ λλΆλΆ κΈ°λ³ΈμΌλ‘ νμ±νλμ΄ μμ΅λλ€.
shutdownμ μ μΈν μλν¬μΈνΈλ λͺ¨λ κΈ°λ³Έμ μΌλ‘ νμ±νλμ΄ μμΌλ©°, λ¨μ§ λ ΈμΆμ΄ λμ΄ μμ§ μμ λΏμ λλ€.
λ°λΌμ μ΄λ€ μλν¬μΈνΈλ₯Ό λ ΈμΆν μ§ μ ννλ©΄ λ©λλ€.
μ°Έκ³ λ‘ HTTPμ JMXλ₯Ό μ νν μ μλλ°, λ³΄ν΅ JMXλ μ μ¬μ©νμ§ μμΌλ―λ‘ HTTPμ μ΄λ€ μλν¬μΈνΈλ₯Ό λ ΈμΆν μ§ μ ννλ©΄ λ©λλ€.
βοΈ application.yml - λͺ¨λ μλν¬μΈνΈλ₯Ό μΉμ λ ΈμΆ
management:
endpoints:
web:
exposure:
include: "*"
* μ΅μ μ λͺ¨λ μλν¬μΈνΈλ₯Ό μΉμ λ ΈμΆνλ κ²μ λλ€. μ°Έκ³ λ‘ shutdown μλν¬μΈνΈλ κΈ°λ³ΈμΌλ‘ νμ±ν λμ΄ μμ§ μκΈ° λλ¬Έμ λ ΈμΆλ λμ§ μμ΅λλ€.
π€ μλν¬μΈνΈ νμ±ννκΈ°
management.endpoint.{μλν¬μΈνΈλͺ }.enabled=trueλ₯Ό ν΅ν΄ νΉμ μλν¬μΈνΈλ₯Ό νμ±νν μ μμ΅λλ€.
βοΈ application.yml - shutdown μλν¬μΈνΈ νμ±ν
management:
endpoint:
shutdown:
enabled: true # shutdown μλν¬μΈνΈ νμ±ν
endpoints:
web:
exposure:
include: "*"
π€ μλν¬μΈνΈ λ ΈμΆνκΈ°
management.endpoints.web.exposure.include=*
management.endpoints.web.exposure.exclude=env,beans
μμ κ°μ μ€μ μ ν΅ν΄ μλν¬μΈνΈμ λ ΈμΆ μ¬λΆλ₯Ό μ€μ ν μ μμΌλ©°, μλ₯Ό λ€μ΄ μ μμμ κ²½μ° envμ beansλ₯Ό μ μΈν λͺ¨λ μλν¬μΈνΈλ₯Ό λ ΈμΆνλ€λ μλ―Έκ° λ©λλ€.
xmlμ λν΄ μ€μ νκΈ° μν΄μλ webμ xmlλ‘ μ€μ νλ©΄ λ©λλ€.
management.endpoints.jmx.exposure.include=health,info
π§ ν¬μ€ μ 보 - health μλν¬μΈνΈ
ν¬μ€ μ 보λ₯Ό μ¬μ©νλ©΄ μ ν리μΌμ΄μ μ λ¬Έμ κ° λ°μνμ λ λ¬Έμ λ₯Ό λΉ λ₯΄κ² μΈμ§ν μ μμ΅λλ€.
μμμ μ΄ν΄λ΄€μ§λ§, /actuator/healthλ‘ μ μνλ©΄ λ€μκ³Ό κ°μ κ²°κ³Όλ₯Ό μ»μ μ μμ΅λλ€.
ν¬μ€ μ 보λ λ¨μν μ ν리μΌμ΄μ μ΄ μμ²μ μλ΅ν μ μλμ§ νλ¨νλ κ²μ λμ΄μ, μ ν리μΌμ΄μ μ΄ μ¬μ©νλ λ°μ΄ν°λ² μ΄μ€κ° μλ΅νλμ§, λμ€ν¬ μ¬μ©λμλ λ¬Έμ κ° μλμ§μ κ°μ λ€μν μ 보λ€μ ν¬ν¨ν΄μ λ§λ€μ΄μ§λλ€.
λ€μκ³Ό κ°μ μμ±μ ν΅ν΄μ ν¬μ€ μ 보λ₯Ό λ μμΈν νμΈν μ μμ΅λλ€.
management:
endpoint:
health:
show-details: always # κΈ°λ³Έμ neverμ΄λ©°, when-authorized λΌλ μ΅μ
λ μ‘΄μ¬
κ²°κ³Όλ λ€μκ³Ό κ°μ΅λλ€.
show-detailsλ λ무 μμΈνκΈ° λλ¬Έμ, μ‘°κΈ λ κ°λ¨ν 보기 μν΄μλ show-componentsλ₯Ό μ€μ ν μ μμ΅λλ€.
management:
endpoint:
health:
show-components: always
κ²°κ³Όλ λ€μκ³Ό κ°μ΅λλ€.
μ΄μΈμλ μμΈν ν¬μ€ κ΄λ ¨ κΈ°λ₯μ λ€μ 곡μλ¬Έμλ₯Ό ν΅ν΄ νμΈν μ μμ΅λλ€.
https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html#actuator.endpoints.health
ν¬μ€ κΈ°λ₯μ μ§μ ꡬνν μλ μλλ°, μ΄λ¬ν λ°©λ²μ λν΄μλ 곡μ λ¬Έμλ₯Ό ν΅ν΄ νμΈν μ μμ΅λλ€.
https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html#actuator.endpoints.health.writing-custom-health-indicators
π§ μ ν리μΌμ΄μ μ 보 - info μλν¬μΈνΈ
info μλν¬μΈνΈλ₯Ό μ ν리μΌμ΄μ μ κΈ°λ³Έ μ 보λ₯Ό λ ΈμΆν©λλ€.
κΈ°λ³Έμ μΌλ‘ μ 곡νλ κΈ°λ₯λ€μ java, os, env, build, git μ΄λ©° κ°κ°μ λν μ€λͺ μ λ€μκ³Ό κ°μ΅λλ€.
π java
μλ° λ°νμ μ 보λ₯Ό μ 곡ν©λλ€.
κΈ°λ³ΈμΌλ‘ λΉνμ±ν λμ΄μμ΅λλ€.
λ€μκ³Ό κ°μ μ€μ μ ν΅ν΄ νμ±νλ₯Ό μ§νν μ μμ΅λλ€.
management:
info:
java:
enabled: true
μ‘°ν κ²°κ³Όλ λ€μκ³Ό κ°μ΅λλ€.
π os
OS(μ΄μ체μ ) μ 보λ₯Ό μ 곡ν©λλ€.
κΈ°λ³ΈμΌλ‘ λΉνμ±ν λμ΄μμ΅λλ€.
λ€μκ³Ό κ°μ μ€μ μ ν΅ν΄ νμ±νλ₯Ό μ§νν μ μμ΅λλ€.
management:
info:
os:
enabled: true
μ‘°ν κ²°κ³Όλ λ€μκ³Ό κ°μ΅λλ€.
π env
Enviromentμμ info λ‘ μμνλ μ 보λ₯Ό μ 곡ν©λλ€.
κΈ°λ³ΈμΌλ‘ λΉνμ±ν λμ΄μμ΅λλ€.
λ€μκ³Ό κ°μ μ€μ μ ν΅ν΄ νμ±νλ₯Ό μ§νν μ μμ΅λλ€.
management:
endpoints:
web:
exposure:
include: "*"
info:
env:
enabled: true
info:
app:
name: mallang # info.~~~ μ΄λ―λ‘ λ³΄μ¬μ§λ€.
some:
env: no show # infoλ‘ μμνμ§ μμΌλ―λ‘ λ³΄μ¬μ§μ§ μλλ€.
κ²°κ³Όλ λ€μκ³Ό κ°μ΅λλ€.
π build
λΉλ μ 보λ₯Ό μ 곡ν©λλ€.
META-INF/build-info.properties νμΌμ΄ νμν©λλ€.
κΈ°λ³ΈμΌλ‘ νμ±ν λμ΄μμ΅λλ€.
ν΄λΉ μ 보λ₯Ό 보기 μν΄μλ build.gradleμ λ€μκ³Ό κ°μ μ½λλ₯Ό μΆκ°ν΄μ£Όμ΄μΌ ν©λλ€.
(λ€μ λ§ν¬ μ°Έκ³ )
springBoot {
buildInfo()
}
μ΄ν λΉλ μ λ€μκ³Ό κ°μ΄ build/resources/main/META-INF/build.info.properties νμΌμ΄ μμ±μ΄ λ©λλ€.
/actuator/infoλ‘ λ€μ΄κ°λ©΄ λ€μκ³Ό κ°μ μ 보λ₯Ό νμΈν μ μμ΅λλ€.
π git
git μ 보λ₯Ό μ 곡ν©λλ€.
git.properties νμΌμ΄ νμν©λλ€.
κΈ°λ³ΈμΌλ‘ νμ±ν λμ΄μμ΅λλ€.
μ΄λ₯Ό μν΄μλ μ°μ λ€μκ³Ό κ°μ΄ git properties νλ¬κ·ΈμΈμ΄ νμν©λλ€.
(λ€μ λ§ν¬ μ°Έκ³ )
plugins {
id 'java'
id 'org.springframework.boot' version '3.0.6'
id 'io.spring.dependency-management' version '1.1.0'
id "com.gorylenko.gradle-git-properties" version "2.4.1" // git info μΆκ°
}
μ΄ν λΉλνλ©΄ λ€μκ³Ό κ°μ΄ git.properties νμΌμ΄ μμ±λ κ²μ μ μ μμ΅λλ€.
/actuator/infoλ‘ λ€μ΄κ°λ©΄ λ€μκ³Ό κ°μ μ 보λ₯Ό νμΈν μ μμ΅λλ€.
λ€μκ³Ό κ°μ΄ μ€μ νλ©΄ gitμ λν λ μμΈν μ 보λ₯Ό λ³Ό μ μμ΅λλ€.
management:
info:
git:
mode: full
κ²°κ³Όλ λ€μκ³Ό κ°μ΅λλ€.
π§ λ‘κ·Έ μ 보 - loggers μλν¬μΈνΈ
loggers μλν¬μΈνΈλ₯Ό μ¬μ©νλ©΄ λ‘κΉ κ³Ό κ΄λ ¨λ μ 보λ₯Ό νμΈνκ³ , λ μ€μκ°μΌλ‘ λ³κ²½ν μλ μμ΅λλ€.
μ΄λ μ½λλ₯Ό ν΅ν΄ μμ보λλ‘ νκ² μ΅λλ€.
λ€μκ³Ό κ°μ΄ κ°λ¨ν 컨νΈλ‘€λ¬λ₯Ό νλ μμ±νμ΅λλ€.
@Slf4j
@RestController
public class LogController {
@GetMapping("/log")
String log() {
log.trace("trace");
log.debug("debug");
log.info("info");
log.warn("warn");
log.error("error");
return "ok";
}
}
κΈ°λ³Έμ μΌλ‘ μμ²μ 보λΈλ€λ©΄, λ‘κ·Έ κ²°κ³Όλ λ€μκ³Ό κ°μ΅λλ€.
κΈ°λ³Έ μ€μ λ λ‘κ·Έ λ λ²¨μ΄ infoμ΄κΈ° λλ¬Έμ μμ κ°μ κ²°κ³Όκ° λμ¨ κ²μ λλ€.
μ΄μ λ‘κ·Έ λ 벨 μ€μ μ μ§ννλλ‘ νκ² μ΅λλ€.
logging:
level:
컨νΈλ‘€λ¬_μ 체_ν¨ν€μ§_κ²½λ‘: debug
μμ κ°μ΄ μ€μ ν μ΄ν λ€μ μμ²μ 보λ΄λ©΄ κ²°κ³Όλ μλμ κ°μ΅λλ€.
νμ¬ μνμμ loggers μλν¬μΈνΈλ₯Ό νΈμΆνλ©΄ κ²°κ³Όλ λ€μκ³Ό κ°μ΅λλ€.
π€ λ μμΈν μ‘°ννκΈ°
λ€μκ³Ό κ°μ΄ νΉμ λ‘κ±° μ΄λ¦μ κΈ°μ€μΌλ‘ μ‘°ννλ κ²λ κ°λ₯ν©λλ€.
/actuator/loggers/{λ‘κ±°μ΄λ¦}
μλ₯Ό λ€μ΄ /actuator/loggers/actuator.example.actuator μ²λΌ μ‘°ννλ©΄ κ²°κ³Όλ λ€μκ³Ό κ°μ΅λλ€.
π€ μ€μκ° λ‘κ·Έ λ 벨 λ³κ²½
κ°λ° μλ²λ λ³΄ν΅ DEBUG λ‘κ·Έλ₯Ό μ¬μ©ν©λλ€.
κ·Έλ¬λ μ΄μ μλ²λ μμ²μ΄ λ§€μ° λ§μΌλ―λ‘ DEBUG λ‘κ·ΈκΉμ§ λͺ¨λ μΆλ ₯νκ² λλ€λ©΄ μ±λ₯μ΄λ λμ€ν¬μ μν₯μ μ€ μ μμ΅λλ€.
λ°λΌμ μ΄μ μλ²μλ DEBUG λμ INFO λ‘κ·Έ λ 벨μ μ£Όλ‘ μ¬μ©ν©λλ€.
κ·Έλ°λ° μλΉμ€ μ΄μ μ€μ λ¬Έμ κ° μ겨μ κΈνκ² DEBUGλ TRACE λ‘κ·Έλ₯Ό λ¨κ²¨μ νμΈνκ³ μΆμ λΆλΆμ΄ μλ€λ©΄ μ΄λ»κ² ν΄μΌν κΉμ?
μΌλ°μ μΌλ‘λ λ‘κΉ μ€μ μ λ³κ²½νκ³ μλ²λ₯Ό λ€μ μμν΄μΌ ν©λλ€.
loggers μλν¬μΈνΈλ₯Ό μ¬μ©νλ©΄ μ ν리μΌμ΄μ μ λ€μ μμνμ§ μκ³ μ€μκ°μΌλ‘ λ‘κ·Έ λ 벨μ λ³κ²½ν μ μμ΅λλ€.
λ€μ μμ²μ ν¬μ€νΈλ§¨μ ν΅ν΄ POST λ©μλλ₯Ό μ¬μ©νμ¬ μμ²ν΄λ³΄λλ‘ νκ² μ΅λλ€.
POST - http://localhost:8080/actuator/loggers/actuator.example.actuator
content-type : application/json
body
{
"configuredLevel": "TRACE"
}
μ΄ν λ€μ /actuator/loggers/actuator.example.actuator λ‘ λ€μ΄κ°λ©΄ λ€μκ³Ό κ°μ΄ λ‘κ·Έ λ λ²¨μ΄ λ³κ²½λ κ²μ μ μ μμ΅λλ€.
π§ HTTP μμ² μλ΅ κΈ°λ‘ - httpexchanges μλν¬μΈνΈ
HTTP μμ²κ³Ό μλ΅μ κ³Όκ±° κΈ°λ‘μ νμΈνκ³ μΆλ€λ©΄ httpexchanges μλν¬μΈνΈλ₯Ό μ¬μ©ν μ μμ΅λλ€.
httpexchange μλν¬μΈνΈλ HttpExchangedRepository μΈν°νμ΄μ€μ ꡬν체λ₯Ό λΉμΌλ‘ λ±λ‘νλ©΄ μ¬μ©ν μ μμ΅λλ€.
(μ΄λ HttpExchangedRepository λΉμ΄ λ±λ‘λμ§ μμΌλ©΄ httpexchange μλν¬μΈνΈκ° νμ±νλμ§ μμ΅λλ€.)
λ€μκ³Ό κ°μ΄ μμλ₯Ό μν μ΄λ―Έ μ μλμ΄μλ κ°λ¨ν InMemory ꡬν체λ₯Ό μ¬μ©νλλ‘ νκ² μ΅λλ€.
@SpringBootApplication
public class ActuatorApplication {
public static void main(String[] args) {
SpringApplication.run(ActuatorApplication.class, args);
}
@Bean
public InMemoryHttpExchangeRepository httpExchangeRepository() {
return new InMemoryHttpExchangeRepository();
}
}
μ΄ν log λ‘ μμ²μ λ³΄λΈ λ€, /actuator/httpexchangesλ‘ λ€μ΄κ°λ©΄ κ²°κ³Όλ λ€μκ³Ό κ°μ΅λλ€.
μ°Έκ³ λ‘ ν΄λΉ κΈ°λ₯μ λ§€μ° λ¨μνκ³ κΈ°λ₯μ μ νμ΄ λ§κΈ° λλ¬Έμ κ°λ° λ¨κ³μμλ§ μ¬μ©νκ³ ,
μ€μ μ΄μ μλΉμ€μμλ λͺ¨λν°λ§ ν΄μ΄λ νν¬μΈνΈ, Zipkin κ°μ λ€λ₯Έ κΈ°μ μ μ¬μ©νλ κ²μ΄ μ’μ΅λλ€.
π§ μ‘μΆμμ΄ν°μ 보μ
μ‘μΆμμ΄ν°κ° μ 곡νλ κΈ°λ₯λ€μ νμΈνλκ²κ³Ό κ°μ΄ μ ν리μΌμ΄μ μ λ΄λΆ μ 보λ₯Ό λ무 λ§μ΄ λ ΈμΆνλ€λ λ¬Έμ μ μ΄ μμ΅λλ€.
λ°λΌμ μΈλΆ μΈν°λ· λ§μ΄ 곡κ°λ κ³³μ μ‘μΆμμ΄ν°μ μλν¬μΈνΈλ₯Ό 곡κ°νλ κ²μ 보μμ μ’μ§ μμ λ°©λ²μ λλ€.
μ‘μΆμμ΄ν°μ μλν¬μΈνΈλ€μ μΈλΆ μΈν°λ·μμ μ κ·Όμ΄ λΆκ°λ₯νκ² λ§κ³ , λ΄λΆμμλ§ μ κ·Ό κ°λ₯ν λ΄λΆλ§μ μ¬μ©νλ κ²μ΄ μμ ν©λλ€.
π μ‘μΆμμ΄ν°λ₯Ό λ€λ₯Έ ν¬νΈμμ μ€ν
μλ₯Ό λ€μ΄ μΈλΆ μΈν°λ· λ§μ ν΅ν΄μλ 8080 ν¬νΈμλ§ μ κ·Όν μ μκ³ ,
λ€λ₯Έ ν¬νΈλ λ΄λΆλ§μμλ§ μ κ·Όν μ μλ€λ©΄, μ‘μΆμμ΄ν°λ λ€λ₯Έ ν¬νΈλ₯Ό μ€μ νλ©΄ λ©λλ€.
management.server.port=μ€μ ν ν¬νΈλ²ν
π μ‘μΆμμ΄ν° URL κ²½λ‘μ μΈμ¦ μ€μ νκΈ°
μν©μ λ°λΌμλ ν¬νΈλ₯Ό λΆλ¦¬νλ κ²μ΄ μ΄λ ΅κ³ , μ΄μ© μ μμ΄ μΈλΆ μΈν°λ· λ§μ ν΅ν΄μ μ κ·Όν΄μΌ νλ κ²½μ°κ° μμ μ μμ΅λλ€.
μ΄λ¬ν κ²½μ° /actuator κ²½λ‘μ μλΈλ¦Ώ νν°, μ€νλ§ μΈν°μ ν° λλ μ€νλ§ μν리ν°λ₯Ό ν΅ν΄μ μΈμ¦λ μ¬μ©μλ§ μ κ·Ό κ°λ₯νλλ‘ μΆκ° κ°λ°μ΄ νμν©λλ€.
π§ μ°Έκ³ - μνΈν¬μΈνΈ κ²½λ‘ λ³κ²½
management:
endpoints:
web:
base-path: /XXX
π Reference
[μ€νλ§ λΆνΈ - ν΅μ¬ μ리μ νμ©. μΉμ 8] - κΉμνλ
'ποΈ Spring > λͺ¨λν°λ§' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[κ·ΈλΌνλ] - [2] 곡μ λμ보λ μ¬μ©νκΈ° (0) | 2023.06.11 |
---|---|
[κ·ΈλΌνλ] - [1] κ·ΈλΌνλ(Grafana) λμ보λ μμ± (2) | 2023.06.10 |
[νλ‘λ©ν μ°μ€] - νλ‘λ©ν μ°μ€(Prometheus) (0) | 2023.05.21 |
[μ‘μΆμμ΄ν°] - λ§μ΄ν¬λ‘λ―Έν°(Micrometer)μ λ©νΈλ¦(Metric) (0) | 2023.05.20 |