Невозможно наблюдать TraceId и SpanId в Spring Cloud Sleuth

Я пытаюсь запустить Spring Cloud Sleuth и наблюдать за журналами traceid, span id oin.

Я настроил, как показано ниже, но когда я вызываю запрос, я вижу в журналах любой traceId или logId.

Кто-нибудь поможет с этим. Спасибо.

2020-12-02 11:40:02 [main] INFO  az.iba.ms.chasis.ChasisApplication - Started ChasisApplication in 21.425 seconds (JVM running for 23.816)
2020-12-02 11:40:03 [RMI TCP Connection(2)-172.31.109.104] INFO  o.a.c.c.C.[.[localhost].[/chasis-ms] - Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-12-02 11:40:03 [RMI TCP Connection(2)-172.31.109.104] INFO  o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
2020-12-02 11:40:03 [RMI TCP Connection(2)-172.31.109.104] INFO  o.s.web.servlet.DispatcherServlet - Completed initialization in 24 ms
2020-12-02 11:40:17 [http-nio-8081-exec-1] INFO  a.i.m.c.controller.ChasisController - Request {}helloChasis from chasis-ms

build.gradle

compile group: 'org.springframework.cloud', name: 'spring-cloud-starter-sleuth', version: '2.2.6.RELEASE'

compile group: 'org.springframework.cloud', name: 'spring-cloud-starter-zipkin', version: '2.2.6.RELEASE'

Controller.java

package az.iba.ms.chasis.controller;

import az.iba.ms.chasis.entity.Chasis;
import az.iba.ms.chasis.logger.MainLogger;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import lombok.extern.log4j.Log4j2;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import org.springframework.beans.factory.annotation.Autowired;

@RestController
@RequestMapping(value = "/v1")
@Log4j2
@Api(produces = MediaType.APPLICATION_JSON_VALUE, tags = "Chasis microservice")
public class ChasisController {

    private static final MainLogger LOGGER = MainLogger.getLogger(ChasisController.class);

    private static final Logger LOG = LoggerFactory.getLogger(ChasisController.class);


    @Autowired
    private RestTemplate restTemplate;

    @ApiOperation(value = "View a list of accounts for given CIF list", response = Chasis.class)
    @ApiResponses(value = {
            @ApiResponse(code = 200, message = "Successfully retrieved message"),
            @ApiResponse(code = 404, message = "The resource is not found")}
    )
    @GetMapping("/hello")
    public String helloChasis() {
        LOG.info("Request {}" + "helloChasis from chasis-ms");
        return "Greetings from Chasis";
    }

}

person Community    schedule 02.12.2020    source источник
comment
Вы установили вероятность сэмплера на 1.0, чтобы гарантировать, что ваша конечная точка будет отобрана? Вы можете попробовать отправить 10 запросов, чтобы убедиться, что 1 из них действительно отслеживается. Мы описываем это поведение в документации.   -  person Marcin Grzejszczak    schedule 02.12.2020
comment
Я изменил настройку на sleuth.sampler.probability: 1.0, но ни один из журналов не изменился   -  person    schedule 02.12.2020
comment
Я не вижу вашего кода - то, что вы делаете, - это абсолютно простые вещи, поэтому они должны работать нормально. Возможно, вы изменили формат ведения журнала, возможно, у вас есть несоответствие зависимостей (я уже вижу, что вместо спецификации вы используете жестко запрограммированные версии). Если вы перейдете на start.spring.io, создадите новый проект с сыщиком в пути к классам, все будет работать из коробки.   -  person Marcin Grzejszczak    schedule 02.12.2020
comment
Привет, @MarcinGrzejszczak, я задал аналогичный вопрос, у меня есть файл конфигурации, но все еще есть такая же проблема, как у пользователя, который задал этот вопрос. Вы можете проверить мой вопрос здесь stackoverflow.com/questions/65688048/   -  person laban_luka    schedule 12.01.2021


Ответы (1)


Если мне нужно угадать, это вызвано некоторыми пользовательскими настройками Log4J, которые у вас есть, точнее вашим шаблоном Log4J (я их не вижу, поэтому просто предполагаю). Spring Cloud Sleuth полагается на шаблоны журналов это настройка, выполненная Spring Boot из коробки (см .: logging config).

Я предлагаю вам сначала попробовать и использовать конфигурацию по умолчанию, и если она работает, вы можете настроить шаблон по умолчанию (я не рекомендую настраивать это, значения по умолчанию довольно хороши).

person Jonatan Ivanov    schedule 17.12.2020