首頁 >後端開發 >Golang >jaeger-all-in-one docker-compose.yaml 配置用於將追蹤儲存到 postgresql

jaeger-all-in-one docker-compose.yaml 配置用於將追蹤儲存到 postgresql

WBOY
WBOY轉載
2024-02-06 08:09:03833瀏覽

jaeger-all-in-one docker-compose.yaml 配置用于将跟踪存储到 postgresql

問題內容

目前,我使用docker-compose.yaml 檔案和Collector-gateway.yaml 檔案作為otel 收集器,將追蹤資訊傳送給jaeger。我想要實現的是使用 postgresql 實現資料持久化,並且我正在嘗試使用這個 github repo:text。但是,在使用 docker-compose up 啟動 docker 容器時,我不斷遇到此錯誤。

錯誤日誌:

jaeger-postgresql-jaeger-all-in-one-1  | {"level":"fatal","ts":1696996008.1216166,"caller":"./main.go:110","msg":"Failed to init storage factory","error":"grpc-plugin builder failed to create a store: error attempting to connect to plugin rpc client: fork/exec /etc/cmd/jaeger-pg-store: exec format error","stacktrace":"main.main.func1\n\t./main.go:110\ngithub.com/spf13/cobra.(*Command).execute\n\tgithub.com/spf13/[email protected]/command.go:940\ngithub.com/spf13/cobra.(*Command).ExecuteC\n\tgithub.com/spf13/[email protected]/command.go:1068\ngithub.com/spf13/cobra.(*Command).Execute\n\tgithub.com/spf13/[email protected]/command.go:992\nmain.main\n\t./main.go:243\nruntime.main\n\truntime/proc.go:267"}

有關我的程式碼的更多上下文 docker-compose.yaml:

version: "3"
services:
  # Jaeger
  jaeger-all-in-one:
    image: jaegertracing/all-in-one:latest
    ports:
      - "16686:16686"
      - "14268"
      - "14250"
    environment:
      - SPAN_STORAGE_TYPE=grpc-plugin
      - COLLECTOR_OTLP_ENABLED=true
    volumes:
      - ./jaeger-pg-store:/etc/cmd/jaeger-pg-store
      - ./collector-gateway.yaml:/etc/collector-gateway.yaml
    command: ["--grpc-storage-plugin.binary=/etc/cmd/jaeger-pg-store", "--grpc-storage-plugin.configuration-file=/etc/collector-gateway.yaml"]
    
  # Collector
  collector-gateway:
    image: otel/opentelemetry-collector-contrib:0.53.0
    volumes:
      - ./collector-gateway.yaml:/etc/collector-gateway.yaml
      - ./jaeger-pg-store:/etc/cmd
    command: [ "--config=/etc/collector-gateway.yaml"]
    ports:
      - "1888:1888"   # pprof extension
      - "13133:13133" # health_check extension
      - "4317:4317"        # OTLP gRPC receiver
      - "4318:4318"        # OTLP HTTP receiver
      - "55670:55679" # zpages extension
    depends_on:
      - jaeger-all-in-one
    links:
      - jaeger-all-in-one

自從我在 mac 系統上使用以來,我嘗試使用 CGO_ENABLED=0 GOARCH=amd64 GOOS=darwin 建立 jaeger-plugin-store 。總的來說,我還是比較新的。

奇怪的是,當我按照自述文件中的正常說明進行操作時,該說明從二進位檔案中將jaeger-all-in-one 作為可執行檔運行,而不是透過docker-compose 運行,它可以工作,但無法檢測到我的postgres 資料庫。但是,我最好想用我的 docker-compose 檔案來運行它。


正確答案


相關錯誤是

fork/exec /etc/cmd/jaeger-pg-store: exec format error

這表示二進位格式不相容。當您在 Docker 容器中運行時,您的二進位檔案具有與本機電腦不同的作業系統視圖,即您使用的 Docker 映像是為 Linux 建置的,但您試圖將其指向為 MacOS 建置的插件二進位檔案。您還需要為 Linux 建立插件二進位。

以上是jaeger-all-in-one docker-compose.yaml 配置用於將追蹤儲存到 postgresql的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除