Actuellement, j'utilise le fichier docker-compose.yaml et le fichier Collector-gateway.yaml comme collecteur d'otel pour envoyer des informations de suivi à Jaeger. Ce que je veux réaliser, c'est la persistance des données en utilisant postgresql et j'essaie d'utiliser ce dépôt github : text. Cependant, je continue à recevoir cette erreur lors du lancement de conteneurs Docker à l'aide de docker-compose up.
Journal des erreurs :
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"}
Plus de contexte sur mon code 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
J'ai essayé de créer jaeger-plugin-store avec CGO_ENABLED=0 GOARCH=amd64 GOOS=darwin puisque je suis sur un système Mac. Dans l'ensemble, je suis encore relativement nouveau.
Ce qui est étrange, c'est que lorsque je suis les instructions normales du fichier readme, qui exécutent Jaeger-all-in-one en tant qu'exécutable à partir du binaire, plutôt que via docker-compose, cela fonctionne, mais ma base de données postgres ne peut pas être détectée. Cependant, je préférerais l'exécuter avec mon fichier docker-compose.
L'erreur associée est
fork/exec /etc/cmd/jaeger-pg-store: exec format error
Cela indique un format binaire incompatible. Lorsque vous exécutez dans un conteneur Docker, votre binaire a une vue du système d'exploitation différente de celle de votre machine locale, c'est-à-dire que vous utilisez une image Docker conçue pour Linux, mais vous essayez de la pointer vers un binaire de plug-in conçu pour MacOS. . Vous devez également créer les binaires du plugin pour Linux.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!