inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Bảng điều khiển giám sát dịch vụ MSA có thể được cấu hình dễ dàng ngay cả với những người không chuyên ngành

Tạo theo dõi đơn giản nhất thông qua API

/send 404 에러

165

Bumgu

3 câu hỏi đã được viết

0

안녕하세요,

gin 서버를 실행하고

curl -X GET localhost:8080/send

명령어를 실행하면 404 page not found 에러가 나옵니다.

어떤 부분이 문제인지 모르겠어 깃허브 주소 남깁니다.

확인해주시면 감사하겠습니다.

 

https://github.com/bonzonkim/trace-in-go

 

감사합니다.

docker msa open-telemetry jaeger opentracing

Câu trả lời 2

0

Bumgu

안녕하세요!
말씀하신 NewRouter를 호출해서 서버 구동 시 router path도 확인하고 get요청을 했고 Success가 응답되는것 까지 확인했습니다. 하지만 Jaeger UI에서 등록한 서비스가 나오지 않습니다.

 

image.png

코드상 놓친부분이 있을까요? 도커 명령어는 docker run -d -p6831:6831/udp -p16686:16686 --name myJaeger jaegertracing/all-in-one:latest 로 실행했습니다.

0

July

안녕하세요. 질문남겨주셔서 감사합니다!!

 

서비스가 등록이 되지 않는 이유는 다양하게 존재 할 수 있습니다. 대표적으로 접속을 시도하는 url이 잘못되었으면 서비스가 등록이 안되는 경우가 있고

 

추가적으로 조금 시간이 소요가 되는 경우도 있습니다. 1분 내지겠지만

 

코드상에서는 큰 이상한 부분이 보이지 금일 저녁에 한번 확인후에 다시 댓글 추가하겠습니다.

0

July

구체적인 부분은 한번 추가로 확인을 해봐야 하겠지만

func newRootSpan(name string, c *gin.Context) opentracing.Span {
	tracer := opentracing.GlobalTracer()
	spanCtx, _ := tracer.Extract(opentracing.HTTPHeaders, opentracing.HTTPHeadersCarrier(c.Request.Header))
	sendSpan := tracer.StartSpan(name, ext.RPCServerOption(spanCtx))

	defer sendSpan.Finish()
	return sendSpan
}


해당 코드에서 defer와 sendSpan을 return하는 부분에서 문제가 생길 수 있을꺼 같네요.

현재 API가 마무리 되지 않는 상태에서 span을 finish를 하는걸로 보입니다.
해당 코드를 동작시키기 보다는

 

func (s *sample) send(c *gin.Context) {
	fmt.Println("Send")

	tracer := opentracing.GlobalTracer()
	spanCtx, _ := tracer.Extract(opentracing.HTTPHeaders, opentracing.HTTPHeadersCarrier(c.Request.Header))
	sendSpan := tracer.StartSpan("send_span", ext.RPCServerOption(spanCtx))

	defer sendSpan.Finish()

	c.JSON(http.StatusOK, "Success Sample Span")
}


이런식으로 API가 마무리 된 이후에 Finish가 처리 가능하게 수정해보시면 될 꺼 같아요.

0

Bumgu

안녕하세요 빠른 답변 감사드립니다.

 

우선 말씀 하신대로 함수를 변경해 실행해보았지만 여전히 서비스에는 등록이 되지 않았습니다.

image.png

사용한 코드입니다

func (s *Router) send(c gin.Context) {

fmt.Println("=================Send=================")

tracer := opentracing.GlobalTracer()

spanCtx, _ := tracer.Extract(opentracing.HTTPHeaders, opentracing.HTTPHeadersCarrier(c.Request.Header))

sendSpan := tracer.StartSpan("send_span", ext.RPCServerOption(spanCtx))

defer sendSpan.Finish()

fmt.Println("=================Send1=================")

c.JSON(http.StatusOK, "Success Sample Span")

fmt.Println("=================Send2=================")

}


혹시 도커 이미지 버전의 차이가 있을까요??

 

그리고 강의 섹션4 6강 3분50초쯤 send()안의 트레이싱 로직을 newRootSpan()으로 분리해서 재사용 한다고 하셨는데, 제가 작성한 코드와 강의속 코드에 다른부분이 있을까요??

0

July

음 latest 버전이라서 최신 버전만을 사용할텐데 한번 추가로 확인해보도록 하겠습니딘.

0

Bumgu

이미지 버전의 문제였습니다

docker 실행시 :latest가 아닌 :1.6.0으로 실행시 정상적으로 등록됩니다.

0

July

최신 버전에서 추가적으로 이미지가 변경된 부분이 있었나보네요 ㅜ 확인해 주셔서 감사합니다!!

0

July

안녕하세요 코드상에서 라우터들은 정의 하셨는데 코드상에서 NewRouter를 호출하지 않으셔서 발생하시는거 같습니다.

 

서버가 구동될때 어떤 router path가 등록되는지 로그에 찍히게 되는데 해당부분 확인해보시면 될 꺼 같습니다!!

1

Bumgu

답변 감사합니다!!

관리자 페이지 질문

0

15

1

aws 로드 밸런서가 생성되지 않습니다.

0

22

2

민구님 설치시 또 막혀서 질문드려요

0

33

2

pg사가 있다고 가정하면

0

26

1

git clone 명령어를 어디 터미널에다 붙여넣어야 하나요?

0

35

2

html 파일을 못 불러 옵니다.

0

34

2

twitterdb 연결이 안돼요

1

30

2

이제 인프런에서 강의 더 안산다. 후져....

0

42

1

소스코드 어디서 다운받아요?

0

58

5

38강 클러스터에 컨트롤러 연결 질문

0

49

2

Docker 환경

0

68

2

Windows localhost:30000 연결 거부 현상

0

53

2

수강완료 후 문의 드립니다.

1

47

2

[15. ConfigMap, Secret - 실습] Env (File) 실습 시 문의사항

1

55

2

페어링 오류

0

48

2

코드자료 활용 깃

1

34

2

Node Schedule 실습 시 pod3 생성 시 메모리 요청량이 올라가지 않는 사항

1

45

1

강사님 가이드 부탁드립니다.

1

58

1

localhost:30000 접속 안되는 문제 관련 질문

0

67

2

Guest OS

1

61

2

회사 내 AI 툴 사용에 대한 질문

0

55

1

혹시 수업자료는 다운받을 수 있는 곳이 없나요?

0

60

2

Docker Desktop 설치 관련 질문

0

62

2

kubeTM Blog는 없어진건가요????

1

62

2