스프링 클라우드 슬루스 공식 레퍼런스를 한글로 번역한 문서입니다.
전체 목차는 여기에 있습니다.
목차
- Common application properties
- 6.31. Spring Cloud Sleuth Spans
- 6.31.1. Annotation New Or Continue Span
- 6.31.2. Async Annotation Span
- 6.31.3. Async Callable Span
- 6.31.4. Async Runnable Span
- 6.31.5. Batch Job Span
- 6.31.6. Batch Step Span
- 6.31.7. Cassandra Span
- 6.31.8. Circuit Breaker Function Span
- 6.31.9. Circuit Breaker Supplier Span
- 6.31.10. Config Span
- 6.31.11. Deployer Deploy Span
- 6.31.12. Deployer Get Log Span
- 6.31.13. Deployer Scale Span
- 6.31.14. Deployer Statuses Span
- 6.31.15. Deployer Status Span
- 6.31.16. Deployer Undeploy Span
- 6.31.17. Jdbc Connection Span
- 6.31.18. Jdbc Query Span
- 6.31.19. Jdbc Result Set Span
- 6.31.20. Kafka Consumer Span
- 6.31.21. Kafka On Message Span
- 6.31.22. Kafka Producer Span
- 6.31.23. Messaging Span
- 6.31.24. Mvc Handler Interceptor Span
- 6.31.25. Quartz Trigger Span
- 6.31.26. R2dbc Query Span
- 6.31.27. Rsocket Requester Span
- 6.31.28. Rsocket Responder Span
- 6.31.29. Rx Java Trace Action Span
- 6.31.30. Scheduled Annotation Span
- 6.31.31. Security Context Change
- 6.31.32. Session Create Span
- 6.31.33. Session Delete Span
- 6.31.34. Session Find Span
- 6.31.35. Session Save Span
- 6.31.36. Task Execution Listener Span
- 6.31.37. Task Runner Span
- 6.31.38. Tx Span
- 6.31.39. Web Filter Span
Common application properties
스프링에선 application.properties
, application.yml
파일이나 커맨드 라인 인자로 다양한 프로퍼티들을 지정할 수 있다. 이 페이지는 일반적인 Spring Cloud Sleuth 프로퍼티들과, 이 프로퍼티를 통해 동작하는 내부 클래스들이 정리되어 있다.
클래스패스에 있는 다른 jar 파일에서도 프로퍼티를 사용할 수 있기 때문에, 여기 있는 것들이 전부는 아니다. 직접 나만의 프로퍼티를 정의하는 것도 가능하다.
Name | Default | Description |
---|---|---|
spring.sleuth .async.configurer.enabled |
true |
디폴트 AsyncConfigurer를 활성화한다. |
spring.sleuth .async.enabled |
true |
트레이싱tracing 정보를 다른 스레드로도 전파할 수 있도록, 비동기와 관련된 컴포넌트들의 계측instrumentation을 활성화한다. |
spring.sleuth .async.ignored-beans |
무시하고 트레이스trace 전용 클래스로 래핑하지 않아야 하는 {@link java.util.concurrent.Executor} 빈 이름 목록. | |
spring.sleuth .baggage.correlation-enabled |
true |
baggage 컨텍스트를 로깅 컨텍스트와 연계한다correlate. |
spring.sleuth .baggage.correlation-fields |
네트워크를 통해 전파propagate해야 하는 필드 목록. | |
spring.sleuth .baggage.local-fields |
JVM 프로세스 내에서는 접근할 수 있지만 네트워크를 통해 전파propagate하지는 않는 필드 목록. | |
spring.sleuth .baggage.remote-fields |
네트워크 상에서와 똑같이 프로세스 내에서도 참조하는 필드 목록. 예를 들어 “x-vcap-request-id” 필드는 프리픽스까지 포함해서 그대로 설정된다. | |
spring.sleuth .baggage.tag-fields |
자동으로 태그로도 추가되는 필드 목록. | |
spring.sleuth .batch.enabled |
true |
Spring Batch 계측instrumentation을 활성화한다. |
spring.sleuth .cassandra.enabled |
true |
Cassandra 계측instrumentation을 활성화한다. |
spring.sleuth .circuitbreaker.enabled |
true |
Spring Cloud CircuitBreaker 계측instrumentation을 활성화한다. |
spring.sleuth .config.server.enabled |
true |
Spring Cloud Config Server 계측instrumentation을 활성화한다. |
spring.sleuth .deployer.enabled |
true |
Spring Cloud Deployer 계측instrumentation을 활성화한다. |
spring.sleuth .deployer.status-poll-delay |
500 |
배포한 애플리케이션의 상태를 조회하기 위한 디폴트 폴링 지연 시간. |
spring.sleuth.enabled | true |
|
spring.sleuth .feign.enabled |
true |
Feign을 사용할 때 span 정보를 전파propagation하도록 만든다. |
spring.sleuth .feign.processor.enabled |
true |
Feign 컨텍스트를 감싸 트레이싱tracing 로직을 적용하는 포스트 프로세서post processor를 활성화한다. |
spring.sleuth .function.enabled |
true |
Spring Cloud Function과 Spring Cloud Function 기반 프로젝트(ex. Spring Cloud Stream) 계측instrumentation을 활성화한다. |
spring.sleuth .grpc.enabled |
true |
GRPC를 사용할 때 span 정보를 전파propagation하도록 만든다. |
spring.sleuth .http.enabled |
true |
HTTP 지원을 활성화한다. |
spring.sleuth.integration .enabled |
true |
Spring Integration 계측instrumentation을 활성화한다. |
spring.sleuth.integration .patterns |
[!hystrixStreamOutput*, *, !channel*] | 채널 이름을 매칭하는 패턴 목록. @see org.springframework.integration.config.GlobalChannelInterceptor#patterns() 디폴트는 Hystrix Stream과 functional Stream의 채널 이름과 매칭되지 않는 모든 채널 이다. |
spring.sleuth.integration .websockets.enabled |
true |
웹소켓 추적을 시작한다. |
spring.sleuth.jdbc .datasource-proxy.enabled |
true |
datasource-proxy 추적을 활성화해야 하는지? |
spring.sleuth.jdbc .datasource-proxy.json-format |
false |
쿼리를 로깅할 때 json으로 출력한다. @see ProxyDataSourceBuilder#asJson() |
spring.sleuth.jdbc .datasource-proxy.logging |
쿼리를 로깅할 때 사용할 로깅 | |
spring.sleuth.jdbc .datasource-proxy.multiline |
true |
쿼리 로그를 여러 줄에 걸쳐 기록한다. @see ProxyDataSourceBuilder#multiline() |
spring.sleuth.jdbc .datasource-proxy .query.enable-logging |
false |
로그에 모든 쿼리를 남기도록 만든다. |
spring.sleuth.jdbc .datasource-proxy .query.log-level |
DEBUG |
쿼리 로거 레벨. |
spring.sleuth.jdbc .datasource-proxy .query.logger-name |
쿼리 로거 이름. | |
spring.sleuth.jdbc .datasource-proxy .slow-query.enable-logging |
false |
로그에 slow query를 기록하도록 만든다. |
spring.sleuth.jdbc .datasource-proxy .slow-query.log-level |
WARN |
slow query 로거 레벨. |
spring.sleuth.jdbc .datasource-proxy .slow-query.logger-name |
slow query 로거 이름. | |
spring.sleuth.jdbc .datasource-proxy .slow-query.threshold |
300 |
쿼리가 몇 초 이상 소요되면 slow query로 간주할 지. |
spring.sleuth.jdbc .enabled |
true |
JDBC 계측instrumentation을 활성화한다. |
spring.sleuth.jdbc .excluded-data-source-bean-names |
데코레이터 패턴으로 감싸지 않을 데이터 소스 빈 이름 목록. | |
spring.sleuth.jdbc .includes |
어떤 타입을 추적할지. | |
spring.sleuth.jdbc .p6spy.custom-appender-class |
사용할 클래스 파일 (logging=custom일 때만 해당한다). 이 클래스는 반드시 {@link com.p6spy.engine.spy.appender.FormattedLogger}를 구현해야 한다. | |
spring.sleuth.jdbc .p6spy.enable-logging |
false |
JDBC 이벤트 로깅을 시작한다. |
spring.sleuth.jdbc .p6spy.enabled |
true |
p6spy 추적을 활성화할지? |
spring.sleuth.jdbc .p6spy.log-file |
spy.log |
사용할 로그 파일 이름 (logging=file일 때만 해당한다). |
spring.sleuth.jdbc .p6spy.log-filter.pattern |
정규식 패턴을 사용해 로그 메시지를 필터링한다. 매칭되는 메시지들만 로그에 남긴다. | |
spring.sleuth.jdbc .p6spy.log-format |
커스텀 로그 포맷. | |
spring.sleuth.jdbc .p6spy.logging |
쿼리를 로그에 남길 때 사용할 로깅 | |
spring.sleuth.jdbc .p6spy.multiline |
true |
멀티 라인 출력을 활성화한다. |
spring.sleuth.jdbc .p6spy.tracing .include-parameter-values |
false |
유효한 (‘?’는 실제 값으로 치환한) SQL 문자열을 트레이싱tracing 시스템에 보고한다. (참고사항) 메시지를 로깅할 때는 이 설정에 영향받지 않는다. |
spring.sleuth .kafka.enabled |
true |
Apache Kafka 클라이언트 계측instrumentation을 활성화한다. |
spring.sleuth.messaging .aspect.enabled |
false |
{@link MessageMapping} 래핑을 활성화할지. |
spring.sleuth.messaging .enabled |
false |
메시지 처리를 추적할지. |
spring.sleuth.messaging .jms.enabled |
true |
JMS 추적을 시작한다. |
spring.sleuth.messaging .jms.remote-service-name |
jms |
JMS 리모트 서비스 이름. |
spring.sleuth.messaging .kafka.enabled |
true |
Kafka 추적을 시작한다. |
spring.sleuth.messaging .kafka.mapper.enabled |
true |
DefaultKafkaHeaderMapper를 활성화해 카프카 헤더를 추적할지. |
spring.sleuth.messaging .kafka.remote-service-name |
kafka |
Kafka 리모트 서비스 이름. |
spring.sleuth.messaging .kafka.streams.enabled |
false |
Kafka Streams 추적을 시작할지. |
spring.sleuth.messaging .rabbit.enabled |
true |
RabbitMQ 추적을 시작한다. |
spring.sleuth.messaging .rabbit.remote-service-name |
rabbitmq |
Rabbit 리모트 서비스 이름. |
spring.sleuth.mongodb .enabled |
true |
MongoDb 추적을 시작한다. |
spring.sleuth.mongodb .socket-address-span-customizer.enabled |
false |
Mongo span에 SocketAddress 정보를 세팅한다. |
spring.sleuth .opentracing.enabled |
true |
OpenTracing 지원을 활성화한다. |
spring.sleuth .propagation.type |
트레이싱tracing 컨텍스트 전파 타입. | |
spring.sleuth .quartz.enabled |
true |
Quartz 추적을 시작한다. |
spring.sleuth .r2dbc.enabled |
true |
R2dbc 계측instrumentation을 활성화한다. |
spring.sleuth.reactor .decorate-on-each |
true |
true면 모든 연산자를 감싸게 되고decorate, 성능은 저하되지만 각 연산자의 트레이싱tracing 항목이 항상 로그로 기록된다. false면 마지막 연산자를 감싸게 되고decorate, 성능은 좋아지지만 로그에 트레이싱tracing 항목이 남지 않을 수 있다. @deprecated {@link SleuthReactorProperties#instrumentationType}을 이용해 값 자체를 직접 명시해라. |
spring.sleuth.reactor .enabled |
true |
true면 리액터 계측instrumentation을 활성화한다. |
spring.sleuth.reactor .instrumentation-type |
||
spring.sleuth.reactor .netty.debug.enabled |
false |
WARNING: 심각한 성능 이슈가 발생할 수 있으므로 반드시 주의해서 사용해라. 리액터 네티에 대한 추가적인 계측instrumentation을 활성화한다. |
spring.sleuth .redis.enabled |
true |
Redis를 사용할 때 span 정보를 전파propagation하도록 만든다. |
spring.sleuth .redis.legacy.enabled |
false |
Brave를 통해서만 동작하는, Redis의 레거시 트레이싱tracing 기능을 활성화한다. |
spring.sleuth .redis.remote-service-name |
redis |
원격 Redis 엔드포인트를 위한 서비스 이름. |
spring.sleuth .rpc.enabled |
true |
RPC 추적을 시작한다. |
spring.sleuth .rsocket.enabled |
true |
true면 rsocket 계측instrumentation을 활성화한다. |
spring.sleuth.rxjava .schedulers.hook.enabled |
true |
RxJavaSchedulersHook을 통해 RxJava 지원을 활성화한다. |
spring.sleuth.rxjava .schedulers.ignoredthreads |
[HystrixMetricPoller, \^RxComputation.*$] | span을 샘플링하지 않을 스레드 이름. |
spring.sleuth .sampler.probability |
샘플링해야 하는 요청의 비율. 예를 들어, 1.0 - 100%의 요청을 샘플링할 수 있다. 정수 단위까지만 지원한다 (다시 말해, 0.1% 만큼 추적하는 건 불가능하다). | |
spring.sleuth .sampler.rate |
10 |
트래픽이 적을 땐, 초당 전송률을 정해두면 서지 보호surge protection가 가능해져 더 좋을 수 있다. 예를 들어, 엔드포인트에 초당 50개보다 많은 요청은 발생하지 않는다고 가정할 수 있다. 트래픽이 갑자기 급증해서 요청이 초당 5000건 발생하더라도, 여전히 초당 50건만 추적한다. 반면 10%와 같은 비율을 지정해둔 경우, 같은 트래픽 급증으로도 초당 500개를 추적하게 되고, 스토리지에 과부하가 걸릴 수 있다. Amazon X-Ray는 같은 이유로 속도를 제한하는 샘플러(Reservoir)를 제공한다. Brave 역시 {@link brave.sampler.RateLimitingSampler}를 통해 같은 방식으로 속도를 제한한다. |
spring.sleuth .sampler.refresh.enabled |
true |
샘플러에 리프레시 스코프를 활성화한다. |
spring.sleuth .scheduled.enabled |
true |
{@link org.springframework.scheduling.annotation.Scheduled} 추적을 시작한다. |
spring.sleuth .scheduled.skip-pattern |
건너뛰어야 하는 클래스의 풀 네임fully qualified name 패턴. | |
spring.sleuth .session.enabled |
true |
Spring Session 계측instrumentation을 활성화한다. |
spring.sleuth.span-filter. additional-span-name-patterns-to-ignore |
추가로 무시할 span 이름 목록. {@link #spanNamePatternsToSkip}에 추가된다. | |
spring.sleuth .span-filter.enabled |
false |
디폴트 Sleuth 핸들러 메커니즘을 켠다. 특정 span을 무시하고 export하지 않을 수 있다. |
spring.sleuth.span-filter .span-name-patterns-to-skip |
^catalogWatchTaskScheduler$ | 무시할 span 이름 목록. 이 span들은 외부 시스템으로 전송되지 않는다. |
spring.sleuth .supports-join |
true |
True일 땐 트레이싱tracing 시스템이 클라이언트와 서버가 span ID를 공유할 수 있도록 지원한다는 뜻이다. |
spring.sleuth .task.enabled |
true |
Spring Cloud Task 계측instrumentation을 활성화한다. |
spring.sleuth .trace-id128 |
false |
true일 땐 64비트 대신 128비트의 트레이스trace ID를 생성한다. |
spring.sleuth .tracer.mode |
어떤 트레이서 구현체를 선택할지 설정한다. | |
spring.sleuth .tx.enabled |
true |
Spring TX 계측instrumentation을 활성화한다. |
spring.sleuth .vault.enabled |
true |
Spring Vault 계측instrumentation을 활성화한다. |
spring.sleuth .web.additional-skip-pattern |
추적을 건너뛸 추가적인 URL 패턴. 이 패턴은 {@link SleuthWebProperties#skipPattern}에 추가된다. | |
spring.sleuth .web.client.enabled |
true |
{@link org.springframework.web.client.RestTemplate}에 인터셉터를 주입한다. |
spring.sleuth .web.client.skip-pattern |
클라이언트 측 트레이싱tracing에서 건너뛰어야 하는 URL 패턴. | |
spring.sleuth .web.enabled |
true |
true면 웹 애플리케이션에 대한 계측instrumentation을 활성화한다. |
spring.sleuth .web.filter-order |
0 |
트레이싱tracing 필터를 등록해야 하는 순서. |
spring.sleuth.web .ignore-auto-configured-skip-patterns |
false |
true로 설정하면 자동 설정된 skip 패턴을 무시한다. |
spring.sleuth .web.servlet.enabled |
true |
servlet 계측instrumentation을 활성화한다. |
spring.sleuth .web.skip-pattern |
/api-docs.*|/swagger.*|.*\.png |.*\.css|.*\.js|.*\.html |/favicon.ico|/hystrix.stream |
트레이싱tracing에서 건너뛰어야 하는 URL 패턴. |
spring.sleuth .web.tomcat.enabled |
true |
Tomcat에 대한 트레이싱tracing 계측instrumentation을 시작한다. |
spring.sleuth .web.webclient.enabled |
true |
WebClient에 대한 트레이싱tracing 계측instrumentation을 시작한다. |
spring.zipkin .activemq.message-max-bytes |
100000 |
ActiveMQ를 통해 Zipkin으로 span을 전송할 때, 메시지에 허용할 최대 바이트 수. |
spring.zipkin .activemq.queue |
zipkin |
span을 Zipkin으로 전송하는 ActiveMQ의 큐 이름. |
spring.zipkin .api-path |
baseUrl에 suffix로 추가할 API 경로. New Relic같은 다른 모니터링 도구를 사용할 때 적용할 수 있다. 트레이스trace API는 경로가 따로 필요 없으므로, 공백(““)으로 설정하면 된다. | |
spring.zipkin .base-url |
http://localhost:9411/ | zipkin 쿼리 서버 인스턴스의 URL. Zipkin이 서비스 디스커버리에 등록되어 있는 경우, Zipkin 서버의 서비스 ID를 제공할 수도 있다 (e.g. zipkinserver/). |
spring.zipkin .check-timeout |
1000 |
Zipkin의 가용성availability을 확인할 때 사용할 타임아웃 (밀리 세컨드). |
spring.zipkin .compression.enabled |
false |
|
spring.zipkin .discovery-client-enabled |
{@code false}로 설정하면 {@link ZipkinProperties#baseUrl}을 항상 URL로 취급한다. | |
spring.zipkin .enabled |
true |
Zipkin으로 span 전송을 시작한다. |
spring.zipkin .encoder |
Zipkin으로 전송하는 span의 인코딩 타입. Zipkin 서버가 최신이 아니라면 {@link SpanBytesEncoder#JSON_V1}으로 설정해라. | |
spring.zipkin .kafka.topic |
zipkin |
Zipkin으로 span을 전송할 때 사용할 카프카 토픽 이름. |
spring.zipkin .locator.discovery.enabled |
false |
서비스 디스커버리를 통해 호스트명을 찾을 수 있도록 설정한다. |
spring.zipkin .message-timeout |
1 |
span을 Zipkin으로 일괄 전송할 때 이만큼 시간이 경과하면pending 타임아웃된다. |
spring.zipkin .queued-max-spans |
1000 |
보고한 span과 전송한 span의 최대 backlog. |
spring.zipkin .rabbitmq.addresses |
Zipkin으로 span을 전송하는 데 사용하는 RabbitMQ 브로커의 주소. | |
spring.zipkin .rabbitmq.queue |
zipkin |
Zipkin으로 span을 전송하는 데 사용하는 RabbitMQ 대기열 이름. |
spring.zipkin .sender.type |
Zipkin으로 span을 전송하는 수단. | |
spring.zipkin .service.name |
HTTP를 통해 Span을 전송한 서비스의 이름 (Zipkin에 표시되어야 한다). |
6.31. Spring Cloud Sleuth Spans
여기서부터는 Spring Cloud Sleuth가 생성한 모든 span들이 정리돼있다.
6.31.1. Annotation New Or Continue Span
@NewSpan 또는 @ContinueSpan 애노테이션을 래핑한 span.
Span 이름 %s
- %s
가 포함되어 있기 때문에, 이 이름은 런타임에 동적으로 리졸브된다.
감싸고 있는 클래스의 풀 네임fully qualified name
org.springframework.cloud.sleuth.instrument.annotation.SleuthAnnotationSpan
Table 1. Tag Keys
Name | Description |
---|---|
class | 메소드에 Sleuth 애노테이션을 선언한 클래스 이름. |
method | Sleuth 애노테이션을 선언한 메소드 이름. |
Table 2. Event Values
Name | Description |
---|---|
%s.after | @ContinueSpan 또는 @NewSpan을 선언한 메소드를 실행한 후에 추가된다. (이름에 %s 가 포함되어 있으므로 최종 값은 런타임에 리졸브된다) |
%s.afterFailure | @ContinueSpan 또는 @NewSpan을 선언한 메소드에서 예외를 던진 다음 추가된다. (이름에 %s 가 포함되어 있으므로 최종 값은 런타임에 리졸브된다) |
%s.before | @ContinueSpan 또는 @NewSpan을 선언한 메소드를 실행하기 전에 추가된다. (이름에 %s 가 포함되어 있으므로 최종 값은 런타임에 리졸브된다) |
6.31.2. Async Annotation Span
@Async 애노테이션을 래핑한 span. 기존 span을 계속 이어가거나, 현재 span이 없는 경우 새 span을 생성한다.
Span 이름 %s
- %s
가 포함되어 있기 때문에, 이 이름은 런타임에 동적으로 리졸브된다.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.async.SleuthAsyncSpan
Table 3. Tag Keys
Name | Description |
---|---|
class | 메소드에 @Async를 선언한 클래스 이름. |
method | @Async를 선언한 메소드 이름. |
6.31.3. Async Callable Span
Callable을 계측instrumentation해야 할 때마다 생성되는 span.
Span 이름 %s
- %s
가 포함되어 있기 때문에, 이 이름은 런타임에 동적으로 리졸브된다.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.async.SleuthAsyncSpan
6.31.4. Async Runnable Span
Runnable을 계측instrumentation해야 할 때마다 생성되는 span.
Span 이름 %s
- %s
가 포함되어 있기 때문에, 이 이름은 런타임에 동적으로 리졸브된다.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.async.SleuthAsyncSpan
6.31.5. Batch Job Span
Job execution을 감싸서 만든 span.
Span 이름 %s
- %s
가 포함되어 있기 때문에, 이 이름은 런타임에 동적으로 리졸브된다.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.batch.SleuthBatchSpan
Table 4. Tag Keys
Name | Description |
---|---|
batch.job.executionId | 스프링 배치의 execution ID. |
batch.job.instanceId | 스프링 배치의 job 인스턴스 ID. |
batch.job.name | 스프링 배치의 job 이름. |
6.31.6. Batch Step Span
Step execution을 감싸서 만든 span.
Span 이름 %s
- %s
가 포함되어 있기 때문에, 이 이름은 런타임에 동적으로 리졸브된다.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.batch.SleuthBatchSpan
Table 5. Tag Keys
Name | Description |
---|---|
batch.job.executionId | 스프링 배치의 execution ID. |
batch.step.executionId | 스프링 배치의 execution ID. |
batch.step.name | 스프링 배치의 job 이름. |
batch.step.type | 스프링 배치의 job 타입. |
6.31.7. Cassandra Span
CqlSession executions를 감싸서 만든 span.
Span 이름 %s
- %s
가 포함되어 있기 때문에, 이 이름은 런타임에 동적으로 리졸브된다.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.cassandra.SleuthCassandraSpan
모든 태그와 이벤트엔 항상
cassandra.
프리픽스가 붙어있다!
Table 6. Tag Keys
Name | Description |
---|---|
cassandra.cql | Cassandra CQL을 담고 있는 태그. |
cassandra.keyspace | Cassandra keyspace 이름. |
cassandra.node[%s].error | 지정한 노드에서 발생한 에러를 담고있는 태그. (이름에 %s 가 포함되어 있기 때문에, 최종 값은 런타임에 리졸브된다) |
Table 7. Event Values
Name | Description |
---|---|
cassandra.node.error | 지정한 노드에서 에러가 발생할 때마다 세팅한다. |
cassandra.node.success | 세션 처리에 성공했을 때 설정한다. |
6.31.8. Circuit Breaker Function Span
CircuitBreaker에 폴백으로 전달한 Function을 래핑할 때 생성하는 span.
Span 이름 %s
- %s
가 포함되어 있기 때문에, 이 이름은 런타임에 동적으로 리졸브된다.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.circuitbreaker.SleuthCircuitBreakerSpan
6.31.9. Circuit Breaker Supplier Span
CircuitBreaker에 전달한 Supplier를 래핑할 때 생성하는 span.
Span 이름 %s
- %s
가 포함되어 있기 때문에, 이 이름은 런타임에 동적으로 리졸브된다.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.circuitbreaker.SleuthCircuitBreakerSpan
6.31.10. Config Span
EnvironmentRepository를 감싸서 만든 span.
Span 이름 find
.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.config.SleuthConfigSpan
Table 8. Tag Keys
Name | Description |
---|---|
config.environment.class | EnvironmentRepository 구현체. |
config.environment.method | EnvironmentRepository에서 실행한 메소드. |
6.31.11. Deployer Deploy Span
애플리케이션을 배포할 때 생성한 span.
Span 이름 deploy
.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.deployer.SleuthDeployerSpan
Table 9. Tag Keys
Name | Description |
---|---|
deployer.app.group | 배포한 애플리케이션의 그룹. |
deployer.app.id | 배포한 애플리케이션의 ID. |
deployer.app.name | 배포한 애플리케이션의 이름. |
deployer.platform.cf.org | CloudFoundry org. |
deployer.platform.cf.space | CloudFoundry space. |
deployer.platform.cf.url | CloudFoundry API URL. |
deployer.platform.k8s.namespace | Kubernetes namespace. |
deployer.platform.k8s.url | Kubernetes API URL. |
deployer.platform.name | 애플리케이션이 배포되고 있는 플랫폼 이름. |
Table 10. Event Values
Name | Description |
---|---|
%s | deployer가 배포한 애플리케이션의 상태를 변경할 때. (이름에 %s 가 포함되어 있기 때문에, 최종 값은 런타임에 리졸브된다) |
deployer.start | deployer가 애플리케이션의 배포를 시작했을 때. |
6.31.12. Deployer Get Log Span
배포한 애플리케이션의 로그를 요청할 때 생성하는 span.
Span 이름 getLog
.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.deployer.SleuthDeployerSpan
Table 11. Tag Keys
Name | Description |
---|---|
deployer.app.group | 배포한 애플리케이션의 그룹. |
deployer.app.id | 배포한 애플리케이션의 ID. |
deployer.app.name | 배포한 애플리케이션의 이름. |
deployer.platform.cf.org | CloudFoundry org. |
deployer.platform.cf.space | CloudFoundry space. |
deployer.platform.cf.url | CloudFoundry API URL. |
deployer.platform.k8s.namespace | Kubernetes namespace. |
deployer.platform.k8s.url | Kubernetes API URL. |
deployer.platform.name | 애플리케이션이 배포되고 있는 플랫폼 이름. |
Table 12. Event Values
Name | Description |
---|---|
%s | deployer가 배포한 애플리케이션의 상태를 변경할 때. (이름에 %s 가 포함되어 있기 때문에, 최종 값은 런타임에 리졸브된다) |
deployer.start | deployer가 애플리케이션의 배포를 시작했을 때. |
6.31.13. Deployer Scale Span
배포한 애플리케이션의 스케일 변경을 요청할 때 생성하는 span.
Span 이름 scale
.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.deployer.SleuthDeployerSpan
Table 13. Tag Keys
Name | Description |
---|---|
deployer.app.group | 배포한 애플리케이션의 그룹. |
deployer.app.id | 배포한 애플리케이션의 ID. |
deployer.app.name | 배포한 애플리케이션의 이름. |
deployer.platform.cf.org | CloudFoundry org. |
deployer.platform.cf.space | CloudFoundry space. |
deployer.platform.cf.url | CloudFoundry API URL. |
deployer.platform.k8s.namespace | Kubernetes namespace. |
deployer.platform.k8s.url | Kubernetes API URL. |
deployer.platform.name | 애플리케이션이 배포되고 있는 플랫폼 이름. |
deployer.scale.count | Scale 카운트. |
deployer.scale.deploymentId | Scale 요청의 deployment id. |
Table 14. Event Values
Name | Description |
---|---|
%s | deployer가 배포한 애플리케이션의 상태를 변경할 때. (이름에 %s 가 포함되어 있기 때문에, 최종 값은 런타임에 리졸브된다) |
deployer.start | deployer가 애플리케이션의 배포를 시작했을 때. |
6.31.14. Deployer Statuses Span
배포한 애플리케이션들의 상태를 요청할 때 생성하는 span.
Span 이름 statuses
.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.deployer.SleuthDeployerSpan
Table 15. Tag Keys
Name | Description |
---|---|
deployer.app.group | 배포한 애플리케이션의 그룹. |
deployer.app.id | 배포한 애플리케이션의 ID. |
deployer.app.name | 배포한 애플리케이션의 이름. |
deployer.platform.cf.org | CloudFoundry org. |
deployer.platform.cf.space | CloudFoundry space. |
deployer.platform.cf.url | CloudFoundry API URL. |
deployer.platform.k8s.namespace | Kubernetes namespace. |
deployer.platform.k8s.url | Kubernetes API URL. |
deployer.platform.name | 애플리케이션이 배포되고 있는 플랫폼 이름. |
Table 16. Event Values
Name | Description |
---|---|
%s | deployer가 배포한 애플리케이션의 상태를 변경할 때. (이름에 %s 가 포함되어 있기 때문에, 최종 값은 런타임에 리졸브된다) |
deployer.start | deployer가 애플리케이션의 배포를 시작했을 때. |
6.31.15. Deployer Status Span
배포한 애플리케이션의 상태를 요청할 때 생성하는 span.
Span 이름 status
.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.deployer.SleuthDeployerSpan
Table 17. Tag Keys
Name | Description |
---|---|
deployer.app.group | 배포한 애플리케이션의 그룹. |
deployer.app.id | 배포한 애플리케이션의 ID. |
deployer.app.name | 배포한 애플리케이션의 이름. |
deployer.platform.cf.org | CloudFoundry org. |
deployer.platform.cf.space | CloudFoundry space. |
deployer.platform.cf.url | CloudFoundry API URL. |
deployer.platform.k8s.namespace | Kubernetes namespace. |
deployer.platform.k8s.url | Kubernetes API URL. |
deployer.platform.name | 애플리케이션이 배포되고 있는 플랫폼 이름. |
Table 18. Event Values
Name | Description |
---|---|
%s | deployer가 배포한 애플리케이션의 상태를 변경할 때. (이름에 %s 가 포함되어 있기 때문에, 최종 값은 런타임에 리졸브된다) |
deployer.start | deployer가 애플리케이션의 배포를 시작했을 때. |
6.31.16. Deployer Undeploy Span
배포한 애플리케이션을 회수undeploy할 때 생성하는 span.
Span 이름 undeploy
.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.deployer.SleuthDeployerSpan
Table 19. Tag Keys
Name | Description |
---|---|
deployer.app.group | 배포한 애플리케이션의 그룹. |
deployer.app.id | 배포한 애플리케이션의 ID. |
deployer.app.name | 배포한 애플리케이션의 이름. |
deployer.platform.cf.org | CloudFoundry org. |
deployer.platform.cf.space | CloudFoundry space. |
deployer.platform.cf.url | CloudFoundry API URL. |
deployer.platform.k8s.namespace | Kubernetes namespace. |
deployer.platform.k8s.url | Kubernetes API URL. |
deployer.platform.name | 애플리케이션이 배포되고 있는 플랫폼 이름. |
Table 20. Event Values
Name | Description |
---|---|
%s | deployer가 배포한 애플리케이션의 상태를 변경할 때. (이름에 %s 가 포함되어 있기 때문에, 최종 값은 런타임에 리졸브된다) |
deployer.start | deployer가 애플리케이션의 배포를 시작했을 때. |
6.31.17. Jdbc Connection Span
JDBC 커넥션이 만들어질 때 생성하는 span.
Span 이름 connection
.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.jdbc.SleuthJdbcSpan
모든 태그와 이벤트엔 항상
jdbc.
프리픽스가 붙어있다!
Table 21. Tag Keys
Name | Description |
---|---|
jdbc.datasource.driver | JDBC 데이터소스 드라이버 이름. |
jdbc.datasource.pool | JDBC 데이터소스 풀 이름. |
6.31.18. Jdbc Query Span
JDBC 쿼리를 실행할 때 생성하는 span.
Span 이름 %s
- %s
가 포함되어 있기 때문에, 이 이름은 런타임에 동적으로 리졸브된다.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.jdbc.SleuthJdbcSpan
모든 태그와 이벤트엔 항상
jdbc.
프리픽스가 붙어있다!
Table 22. Tag Keys
Name | Description |
---|---|
jdbc.query | SQL 쿼리. |
jdbc.row-count | SQL row 수. |
Table 23. Event Values
Name | Description |
---|---|
jdbc.commit | 트랜잭션을 커밋했을 때. |
jdbc.rollback | 트랜잭션을 롤백했을 때. |
6.31.19. Jdbc Result Set Span
JDBC ResultSet을 사용할 때 생성하는 span.
Span 이름 result-set
.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.jdbc.SleuthJdbcSpan
모든 태그와 이벤트엔 항상
jdbc.
프리픽스가 붙어있다!
Table 24. Tag Keys
Name | Description |
---|---|
jdbc.query | SQL 쿼리. |
jdbc.row-count | SQL row 수. |
Table 25. Event Values
Name | Description |
---|---|
jdbc.commit | 트랜잭션을 커밋했을 때. |
jdbc.rollback | 트랜잭션을 롤백했을 때. |
6.31.20. Kafka Consumer Span
카프카 컨슈머 측에서 생성하는 span.
Span 이름 kafka.consume
.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.kafka.SleuthKafkaSpan
모든 태그와 이벤트엔 항상
kafka.
프리픽스가 붙어있다!
Table 26. Tag Keys
Name | Description |
---|---|
kafka.offset | 카프카 오프셋 번호. |
kafka.partition | 카프카 파티션 번호. |
kafka.topic | 카프카 토픽 이름. |
6.31.21. Kafka On Message Span
카프카 컨슈머 측에서 MessageListener를 사용할 때 생성하는 span.
Span 이름 kafka.on-message
.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.kafka.SleuthKafkaSpan
모든 태그와 이벤트엔 항상
kafka.
프리픽스가 붙어있다!
Table 27. Tag Keys
Name | Description |
---|---|
kafka.offset | 카프카 오프셋 번호. |
kafka.partition | 카프카 파티션 번호. |
kafka.topic | 카프카 토픽 이름. |
6.31.22. Kafka Producer Span
카프카 프로듀서 측에서 생성하는 span.
Span 이름 kafka.produce
.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.kafka.SleuthKafkaSpan
모든 태그와 이벤트엔 항상
kafka.
프리픽스가 붙어있다!
Table 28. Tag Keys
Name | Description |
---|---|
kafka.topic | 카프카 토픽 이름. |
6.31.23. Messaging Span
메시지를 전송하거나 받았을 때 생성하는 span.
Span 이름 %s
- %s
가 포함되어 있기 때문에, 이 이름은 런타임에 동적으로 리졸브된다.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.messaging.SleuthMessagingSpan
Table 29. Tag Keys
Name | Description |
---|---|
%s | 커스텀 옵션을 통해 사용자가 제공한 키들. (이름에 %s 가 포함되어 있기 때문에, 최종 값은 런타임에 리졸브된다) |
channel | Spring Integration 채널 이름. |
function.name | Spring Cloud Function 함수 이름. |
6.31.24. Mvc Handler Interceptor Span
HandlerInterceptor를 감싸서 만든 span. 현재 span을 계속 이어가고 태그에 저장한다.
Span 이름 %s
- %s
가 포함되어 있기 때문에, 이 이름은 런타임에 동적으로 리졸브된다.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.web.mvc.SleuthMvcSpan
Table 30. Tag Keys
Name | Description |
---|---|
mvc.controller.class | 메소드에 @Scheduled 애노테이션을 선언한 클래스 이름. |
mvc.controller.method | @Scheduled 애노테이션을 선언한 메소드 이름. |
6.31.25. Quartz Trigger Span
트리거가 실행되고 완료됐을 때 생성하는 span.
Span 이름 %s
- %s
가 포함되어 있기 때문에, 이 이름은 런타임에 동적으로 리졸브된다.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.quartz.SleuthQuartzSpan
Table 31. Tag Keys
Name | Description |
---|---|
quartz.trigger | 트리거 이름. |
6.31.26. R2dbc Query Span
R2dbc 쿼리를 실행할 때 생성하는 span.
Span 이름 query
.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.r2dbc.SleuthR2dbcSpan
모든 태그와 이벤트엔 항상
r2dbc.
프리픽스가 붙어있다!
Table 32. Tag Keys
Name | Description |
---|---|
r2dbc.connection | R2DBC 커넥션 이름. |
r2dbc.query[%s] | R2DBC 쿼리 이름. (이름에 %s 가 포함되어 있기 때문에, 최종 값은 런타임에 리졸브된다) |
r2dbc.thread | R2DBC 스레드 이름. |
6.31.27. Rsocket Requester Span
RSocket requester 측에서 생성하는 span.
Span 이름 %s
- %s
가 포함되어 있기 때문에, 이 이름은 런타임에 동적으로 리졸브된다.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.rsocket.SleuthRSocketSpan
모든 태그와 이벤트엔 항상
rsocket.
프리픽스가 붙어있다!
Table 33. Tag Keys
Name | Description |
---|---|
rsocket.request-type | R2DBC 스레드 이름. |
rsocket.route | RSocket route 이름. |
6.31.28. Rsocket Responder Span
RSocket responder 측에서 생성하는 span
Span 이름 %s
- %s
가 포함되어 있기 때문에, 이 이름은 런타임에 동적으로 리졸브된다.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.rsocket.SleuthRSocketSpan
6.31.29. Rx Java Trace Action Span
Rx Java를 래핑한 span.
Span 이름 rxjava
.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.rxjava.SleuthRxJavaSpan
Table 34. Tag Keys
Name | Description |
---|---|
thread | 스레드 이름. |
6.31.30. Scheduled Annotation Span
애노테이션을 선언한 메소드를 래핑한 span. 새 span을 생성하거나 기존 span을 계속 이어간다.
Span 이름 %s
- %s
가 포함되어 있기 때문에, 이 이름은 런타임에 동적으로 리졸브된다.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.scheduling.SleuthSchedulingSpan
Table 35. Tag Keys
Name | Description |
---|---|
class | 메소드에 @Scheduled를 선언한 클래스 이름. |
method | @Scheduled를 선언한 메소드 이름. |
6.31.31. Security Context Change
현재 span에서 SecurityContextChangedEvent가 발생했음을 나타낸다.
Span 이름 Security Context Change
.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.security.SleuthSecuritySpan
Table 36. Event Values
Name | Description |
---|---|
Authentication cleared %s | SecurityContext에서 Authentication 객체가 제거될 때 생성하는 이벤트. (이름에 %s 가 포함되어 있기 때문에, 최종 값은 런타임에 리졸브된다) |
Authentication replaced %s | SecurityContext의 Authentication 객체를 새 객체로 교체할 때 생성하는 이벤트. (이름에 %s 가 포함되어 있기 때문에, 최종 값은 런타임에 리졸브된다) |
Authentication set %s | SecurityContext에 Authentication 객체를 추가할 때 생성하는 이벤트. (이름에 %s 가 포함되어 있기 때문에, 최종 값은 런타임에 리졸브된다) |
6.31.32. Session Create Span
새 session을 만들어야 할 때 생성하는 span.
Span 이름 session.create
.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.session.SleuthSessionSpan
6.31.33. Session Delete Span
session을 삭제할 때 생성하는 span.
Span 이름 session.delete
.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.session.SleuthSessionSpan
6.31.34. Session Find Span
새 session을 검색할 때 생성하는 span.
Span 이름 session.find
.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.session.SleuthSessionSpan
모든 태그와 이벤트엔 항상
session.
프리픽스가 붙어있다!
Table 37. Tag Keys
Name | Description |
---|---|
session.index.name |
6.31.35. Session Save Span
새 session을 저장할 때 생성하는 span.
Span 이름 session.save
.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.session.SleuthSessionSpan
6.31.36. Task Execution Listener Span
태스크의 수명 주기 내에서 생성하는 span.
Span 이름 %s
- %s
가 포함되어 있기 때문에, 이 이름은 런타임에 동적으로 리졸브된다.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.task.SleuthTaskSpan
6.31.37. Task Runner Span
태스크 runner를 실행할 때 생성하는 span.
Span 이름 %s
- %s
가 포함되어 있기 때문에, 이 이름은 런타임에 동적으로 리졸브된다.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.task.SleuthTaskSpan
6.31.38. Tx Span
이전 트랜잭션이 없을 때 생성하는 span. 트랜잭션이 이미 있었다면, 전파propagation가 필요하지 않는 한 기존 span을 계속 유지한다.
Span 이름 tx
.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.tx.SleuthTxSpan
모든 태그와 이벤트엔 항상
tx.
프리픽스가 붙어있다!
Table 38. Tag Keys
Name | Description |
---|---|
tx.isolation-level | 트랜잭션 고립 수준. |
tx.name | 트랜잭션 이름. |
tx.propagation-level | 트랜잭션 전파 레벨. |
tx.read-only | 트랜잭션이 read-only인지 여부. |
tx.timeout | 트랜잭션 타임아웃. |
tx.transaction-manager | TransactionManager 이름. |
6.31.39. Web Filter Span
WebFilter를 감싸서 만든 span. 현재 span을 계속 이어가거나, 새 span을 만들어 태그에 저장한다.
Span 이름 %s
- %s
가 포함되어 있기 때문에, 이 이름은 런타임에 동적으로 리졸브된다.
감싸고 있는 클래스의 풀 네임fully qualified name org.springframework.cloud.sleuth.instrument.web.SleuthWebSpan
Table 39. Tag Keys
Name | Description |
---|---|
http.status_code | 응답 상태 코드. |
mvc.controller.class | 요청을 처리하는 클래스 이름. |
mvc.controller.method | 요청을 처리하는 메소드 이름. |
전체 목차는 여기에 있습니다.