Rumah  >  Artikel  >  pembangunan bahagian belakang  >  konfigurasi jaeger-all-in-one docker-compose.yaml untuk menyimpan jejak ke dalam postgresql

konfigurasi jaeger-all-in-one docker-compose.yaml untuk menyimpan jejak ke dalam postgresql

WBOY
WBOYke hadapan
2024-02-06 08:09:03816semak imbas

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

Kandungan soalan

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.


Jawapan yang betul


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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam