microservices 조사를 향해 ~ activator-play-tracing을 사용해보십시오!

1. 하고 싶은 일



이전 게시물 에서 docker-compose를 이용하여 zipkin 서비스를 손쉽게 움직일 수 있게 되었으므로 playframework를 이용하여 zipkin에 레코드를 등록할 수 있는지 시도해 보았습니다.

lightbend 사이트를 보면 activator template가 제공되었기 때문에 움직이기로 결정했습니다.
  • h tp // w w.ぃ ght d. 코 m / 아 c 치 ゔ ぁ r / mp ぁ 테 / 아 c 치 ゔ ぁ y rp y t 라신 g

  • 2. 실시 순서



    2-1. 템플릿을 git clone


    git clone https://github.com/levkhomich/activator-play-tracing.git
    

    2-2. conf/application.conf의 Zipkin 호스트 수정


    cd activator-play-tracing
    
    vim conf/application.conf
    

    편집하는 부분은 host만이 됩니다.

    conf/application.conf
    akka {
      extensions = ["com.github.levkhomich.akka.tracing.TracingExtension"]
      tracing {
        sample-rate = 1
        enabled = true
        host = "ここを書き換える"
        port = 9410
      }
    }
    

    위가 akka-tracingTracingExtension.scala에서 읽혀진 것 같습니다.

    activator 샘플의 소스에서는, GlobalSettings (을)를 사용하고 있는 것 같습니다. . .
    그리고, akka-tracing의 소스에서도 GlobalSettings (을)를 사용하고 있는 것 같은. . .

    2-3. activator 시작


    ./activator
    

    잠시 동안 의존이 해소되기를 기다리면 콘솔에 들어갈 수있었습니다.

    2-4. application 시작


    run
    

    시작하면 다음과 같은 화면이 시작됩니다.



    2-5. Zipkin의 WEB UI를 확인해 본다





    풀다운에 application라는 태그가 추가되었음을 알 수 있습니다.

    템플릿으로 시작하면 쉽게 사용할 수 있는 인상입니다.
    다만, 0으로부터 스스로 만든 프로젝트로, 튜토리얼 설정를 하는 것만으로, 아래와 같은 메세지가 나와 이용 불가와 같이 보입니다.
    [error] - com.github.levkhomich.akka.tracing.SpanHolder - Thrift transport error: Cannot write to null outputStream
    [error] - com.github.levkhomich.akka.tracing.SpanHolder - Zipkin collector is unavailable. Failed to send 0 spans during postStop.
    [info] - play.api.Play - Application started (Dev)
    

    접속 불량이 일어나고 있는 것 같은. .

    3. activator-play-tracing의 처리 흐름의 추측



    play의 응용 프로그램이 시작되기 전에 다음과 같은 움직임을하고 있다고 생각합니다.
    (잘못되었으면 누군가 지적해 주세요(><))
  • GlobalSettings 메커니즘은 Global.scalaTracingSettings입니다.
  • TracingSettings에서 conf/application.conf의 설정을 읽고 Thrift 통신 연결을 open
  • tracer를 play.libs.Akka 시스템으로 등록

  • 어플리케이션이 개시되면(자), Controller이면, extends 된 PlayControllerTracing 경유로 트레이스가 실시된다. (여기도 디버깅하면서 확인하려고합니다)

    4. 소감


  • GlobalSettings 비추천입니다. . htp // d. 하테나. 네. jp/ぅぇい/20160305/1457174406
  • akka-tracing이 어쩐지 이해하기 어렵다. . 좀 더 읽어 보자.
  • akka-tracing이 내부에서, GlobalSettings의 라이브러리 읽고 있는 곳은 있을까. module화할 수 없는 것일까.


  • 오늘은 이상입니다.

    좋은 웹페이지 즐겨찾기