Невозможно использовать сборщик opencensus для публикации трассировок в бэкэнд

У меня есть эти контейнеры на моем локальном хосте

openzipkin/zipkin | 0.0.0.0:9410->9410/tcp, 0.0.0.0:9412->9411/tcp

Всевышний / открытый коллектор:0.1.9 | 0.0.0.0:1777->1777/tcp, 0.0.0.0:8888->8888/tcp, 0.0.0.0:9411->9411/tcp, 0.0.0.0:32776->55678/tcp, 0.0.0.0:55680->55679/tcp |

Попытка напрямую использовать сборщик opencensus и моя конфигурация сборщика выглядит следующим образом

#opencensus collector configuration
receivers:
  zipkin:
    address: "127.0.0.1:9411"

exporters:
  zipkin:
    endpoint: "http://127.0.0.1:9412/api/v2/spans"

package main

import (
    "log"
    "math/rand"
    "net/http"
    "strings"
    "time"

    "contrib.go.opencensus.io/exporter/zipkin"
    "go.opencensus.io/plugin/ochttp"
    "go.opencensus.io/stats/view"
    "go.opencensus.io/trace"

    openzipkin "github.com/openzipkin/zipkin-go"
    zipkinHTTP "github.com/openzipkin/zipkin-go/reporter/http"
)


func registerZipkin() {
    localEndpoint, err := openzipkin.NewEndpoint("golangsvc", "<My IP Address>:8080")
    if err != nil {
        log.Fatalf("Failed to create Zipkin exporter: %v", err)
    }
    reporter := zipkinHTTP.NewReporter**("http://localhost:9411/api/v2/spans")**
    exporter := zipkin.NewExporter(reporter, localEndpoint)
    trace.RegisterExporter(exporter)
    trace.ApplyConfig(trace.Config{DefaultSampler: trace.AlwaysSample()})
}

func main() {
    registerZipkin()
    mux := http.NewServeMux()
    mux.HandleFunc("/list", list)

    log.Printf("Server listening! ...")
    log.Fatal(http.ListenAndServe(":8080", h))
}

func list(w http.ResponseWriter, r *http.Request) {
    log.Printf("Serving request: %s", r.URL.Path)
    res := strings.Repeat("o", rand.Intn(99971)+1)
    time.Sleep(time.Duration(rand.Intn(977)+1) * time.Millisecond)
    w.Write([]byte("Hello, w" + res + "rld!"))
}

Когда я запускаю этот пример, журналы сборщика имеют много ошибок

{"level":"info","ts":1565104219.6790097,"caller":"collector/collector.go:167","msg":"Starting...","NumCPU":2}
{"level":"info","ts":1565104219.6798325,"caller":"pprofserver/pprofserver.go:62","msg":"Starting net/http/pprof server","port":1777}
{"level":"info","ts":1565104219.6800768,"caller":"healthcheck/handler.go:99","msg":"Health Check server started","http-port":13133,"status":"unavailable"}
{"level":"info","ts":1565104219.680858,"caller":"config/config.go:490","msg":"Trace Exporter enabled","exporter":"zipkin"}
{"level":"info","ts":1565104219.6812553,"caller":"collector/collector.go:114","msg":"Running zPages","port":55679}
{"level":"info","ts":1565104220.6819282,"caller":"opencensus/receiver.go:51","msg":"OpenCensus receiver is running.","port":55678}
{"level":"info","ts":1565104220.6824179,"caller":**"zipkin/receiver.go:50","msg":"Zipkin receiver is running.","port":9411}**
{"level":"info","ts":1565104220.6848924,"caller":"collector/telemetry.go:93","msg":"Serving Prometheus metrics","port":8888}
{"level":"info","ts":1565104220.685225,"caller":"healthcheck/handler.go:133","msg":"Health Check state change","status":"ready"}
2019/08/06 15:11:24 failed to send the request: Post http://127.0.0.1:9412/api/v2/spans: dial tcp 127.0.0.1:9412: connect: connection refused
2019/08/06 15:11:25 failed to send the request: Post http://127.0.0.1:9412/api/v2/spans: dial tcp 127.0.0.1:9412: connect: connection refused
2019/08/06 15:11:26 failed to send the request: Post http://127.0.0.1:9412/api/v2/spans: dial tcp 127.0.0.1:9412: connect: connection refused
2019/08/06 15:11:27 failed to send the request: Post http://127.0.0.1:9412/api/v2/spans: dial tcp 127.0.0.1:9412: connect: connection refused

Я не могу использовать сборщик для отправки следов от сборщика opencensus на серверную часть zipkin.

Также пытался использовать Jaeger Backend для публикации следов от коллектора, но я все еще вижу те же ошибки.

1 ответ

У меня была неправильная конфигурация коллектора opencensus. Контейнерная сеть Docker не может видеть порт 9411, как это было в сети хоста. Я смог исправить проблему после того, как заметил эту неправильную конфигурацию.

Другие вопросы по тегам