Pada masa ini, saya menggunakan fail docker-compose.yaml dan fail Collector-gateway.yaml sebagai pengumpul otel untuk menghantar maklumat penjejakan kepada jaeger. Apa yang saya ingin capai ialah ketekunan data menggunakan postgresql dan saya cuba menggunakan repo github ini: teks. Walau bagaimanapun, saya terus mendapat ralat ini apabila melancarkan bekas docker menggunakan docker-compose up.
Log ralat:
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"}
Lagi konteks tentang kod saya 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
Saya cuba membina jaeger-plugin-store dengan CGO_ENABLED=0 GOARCH=amd64 GOOS=darwin kerana saya menggunakan sistem mac. Secara keseluruhan, saya masih baru.
Perkara yang pelik ialah apabila saya mengikut arahan biasa dalam readme, yang menjalankan jaeger-all-in-one sebagai boleh laku daripada binari, dan bukannya melalui karang docker, ia berfungsi, Tetapi pangkalan data postgres saya tidak dapat dikesan. Walau bagaimanapun, saya lebih baik untuk menjalankannya dengan fail karang docker saya.
Ralat yang berkaitan ialah
fork/exec /etc/cmd/jaeger-pg-store: exec format error
Ini menunjukkan format binari yang tidak serasi. Apabila anda menjalankan dalam bekas Docker, binari anda mempunyai pandangan sistem pengendalian yang berbeza daripada mesin tempatan anda, iaitu anda menggunakan imej Docker yang dibina untuk Linux, tetapi anda cuba menghalakannya ke binari pemalam yang dibina untuk MacOS . Anda juga perlu membina binari pemalam untuk Linux.
Atas ialah kandungan terperinci konfigurasi jaeger-all-in-one docker-compose.yaml untuk menyimpan jejak ke dalam postgresql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!