Отправка данных трассировки в OpenZIpkin с помощью Spring Cloud Sleuth

Обновление: я разместил код в моем репозитории, чтобы люди могли посмотреть там, чтобы увидеть, что может пойти не так.

Изменить: я почти уверен, что это код клиента НЕ ПУСКАЕТ статистику на сервер, но ни одно из приведенных ниже руководств не объясняет, как это можно включить: есть ли параметр конфигурации, который мне не хватает?

Я слежу за быстрым запуском как OpenZipkin, так и Spring Sleuth: у меня есть работающий сервер Zipkin из docker-zipkin с использованием docker-compose и Cassandra в качестве бэкэнда:

$ d ps
CONTAINER ID        IMAGE                                COMMAND                  CREATED             STATUS              PORTS                                                                               NAMES
5ca0f0b29900        openzipkin/zipkin:1.12.1             "/bin/sh -c 'test -n "   14 minutes ago      Up 8 minutes        0.0.0.0:9410-9411->9410-9411/tcp                                                    zipkin
7b243a0b61e3        openzipkin/zipkin-dependencies       "crond -f"               14 minutes ago      Up 8 minutes                                                                                            dependencies
e2e047fb3851        openzipkin/zipkin-cassandra:1.12.1   "/bin/sh -c /usr/loca"   14 minutes ago      Up 8 minutes        7000-7001/tcp, 0.0.0.0:3306->3306/tcp, 7199/tcp, 0.0.0.0:9042->9042/tcp, 9160/tcp   cassandra

Я создал и запустил образец приложения Spring Sleuth, и, похоже, оно правильно настроено для отслеживания вызовов:

# application.properties)
server.port = 9099
spring.application.name = zipkin-demo
spring.zipkin.baseUrl = http://localhost:9411/
spring.sleuth.sampler.percentage = 1.0

Журналы, кажется, показывают, что следы следует регистрировать:

2016-10-04 15:20:02.115  INFO [zipkin-demo,c6e06ff47bddaf4d,f7437cf1c7089522,true] 70899 --- [nio-9099-exec-3] com.apple.its.api.ApiController          : Forwarding to http://localhost:8088/api/v1/hello
2016-10-04 15:20:02.709  INFO [zipkin-demo,de3c25ea46e8b010,f7e6017757f0ce5e,true] 70899 --- [nio-9099-exec-4] com.apple.its.api.ApiController          : Forwarding to http://localhost:8088/api/v1/hello
2016-10-04 15:20:06.480  INFO [zipkin-demo,4c9fdeaab69b79b4,1dc8b9b7ce5c6fa5,true] 70899 --- [nio-9099-exec-5] com.apple.its.api.ApiController          : Sleeping for [278] millis
2016-10-04 15:20:08.833  INFO [zipkin-demo,2eb26be1a6867e5,b566753eb137026,true] 70899 --- [nio-9099-exec-8] com.apple.its.api.ApiController          : Sleeping for [467] millis
2016-10-04 15:20:10.608  INFO [zipkin-demo,eec83e7fc4ea9c9d,c88723b29ca4335c,true] 70899 --- [nio-9099-exec-1] com.apple.its.api.ApiController          : Sleeping for [20] millis
2016-10-04 15:20:12.035  INFO [zipkin-demo,63259dd1bac357e9,5cf013d16bb1ee98,true] 70899 --- [nio-9099-exec-4] com.apple.its.api.ApiController          : Sleeping for [22] millis

Однако пользовательский интерфейс не показывает никаких следов, что бы я ни делал. Странно то, что localhost:9411/trace действительно показывает кучу следов (похоже, они в основном от самого Zipkin), но их нет от приложения zipkin-demo.

Я считаю, что это связано с тем, что демонстрационное приложение не отправляет трассировки на хост, но я просто использую Пример приложения Spring, так что я могу делать не так?


person Marco Massenzio    schedule 04.10.2016    source источник
comment
Ваше приложение вызывает другое? AFAIR вам нужно как минимум 2, чтобы нарисовать график   -  person Marcin Grzejszczak    schedule 06.10.2016
comment
Это просто приложение для начинающих от Spring Sleuth; однако, как вы можете видеть в журналах, следы создаются. Чего, я полагаю, не хватает, так это отправки на сервер Zipkin.   -  person Marco Massenzio    schedule 07.10.2016
comment
Вы установили процент сэмплера на 1.0 или добавили AlwaysSampler?   -  person Marcin Grzejszczak    schedule 08.10.2016
comment
Да, я сделал это вот так, следуя примеру, но было бы здорово узнать, правильный ли это путь.   -  person Marco Massenzio    schedule 09.10.2016
comment
Обычно правильным способом является прибавление процентного значения выборки к 1,0. AlwaysSampler имеет смысл для тестов. Я немного запутался - у нас все еще есть проблема или нет? Это работает или есть ошибка?   -  person Marcin Grzejszczak    schedule 10.10.2016
comment
ну да, у меня все еще есть проблема :) нет трассировки отправляются на сервер: я почти уверен, что из приложения не выполняется POST - я не думаю, имеет какое-либо отношение к AlwaysSampler или процентному соотношению (FWIW, я уже пробовал все возможные варианты этого). Сервер вообще не получает никаких следов, и из документации вообще не ясно, что нужно сделать на стороне приложения, чтобы Spring Sleuth протолкнул их.   -  person Marco Massenzio    schedule 13.10.2016
comment
Не могли бы вы выложить где-нибудь свой образец?   -  person Marcin Grzejszczak    schedule 13.10.2016
comment
Это первая строка вопроса :) мое репо фактический URL: github.com/massenz/zipkindemo   -  person Marco Massenzio    schedule 14.10.2016
comment
эта конфигурация работала для меня в одном из моих приложений: spring.zipkin.baseUrl = localhost: 9411 spring.sleuth.enabled = true spring.sleuth.sampler.percentage = 1.0 Включение свойства может помочь!   -  person visrahane    schedule 28.02.2017


Ответы (2)


Если я не ошибаюсь (и я думаю, что нет), неудивительно, что вы не отправляете Spans в Zipkin, потому что вы не добавляли зависимость Zipkin. Проверьте раздел Sleuth with Zipkin via HTTP в документации: http://cloud.spring.io/spring-cloud-sleuth/spring-cloud-sleuth.html.

dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:Brixton.RELEASE"
    }
}
dependencies {
    compile "org.springframework.cloud:spring-cloud-starter-zipkin"
}
person Marcin Grzejszczak    schedule 20.10.2016

Этот конфиг работал у меня в одном из моих приложений:

  spring.zipkin.baseUrl = localhost:9411 
  spring.sleuth.enabled = true 
  spring.sleuth.sampler.percentage = 1.0 

Включение свойства может помочь!

person visrahane    schedule 05.03.2017
comment
spring.zipkin.baseUrl = localhost:9411 и spring.sleuth.enabled = true являются значениями по умолчанию, поэтому вам не нужно их устанавливать. По умолчанию для percentage установлено 0.1, поэтому каждая десятая трасса отправляется в Zipkin. Также вы должны добавить стартер Zipkin для отправки промежутков в Zipkin, иначе не имеет значения, каков ваш процент. - person Marcin Grzejszczak; 26.06.2018