Maison > développement back-end > Golang > Configuration jaeger-all-in-one docker-compose.yaml pour stocker les traces dans postgresql

Configuration jaeger-all-in-one docker-compose.yaml pour stocker les traces dans postgresql

WBOY
Libérer: 2024-02-06 08:09:03
avant
829 Les gens l'ont consulté

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

Contenu de la question

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"}
Copier après la connexion

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
Copier après la connexion

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.


La bonne réponse


L'erreur associée est

fork/exec /etc/cmd/jaeger-pg-store: exec format error
Copier après la connexion

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!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal