Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: Jaeger doesn't show my service dependencies #3803

Closed
paule96 opened this issue Jul 8, 2022 · 6 comments
Closed

[Bug]: Jaeger doesn't show my service dependencies #3803

paule96 opened this issue Jul 8, 2022 · 6 comments
Labels

Comments

@paule96
Copy link

paule96 commented Jul 8, 2022

What happened?

I'm working on a proof of concept, to use open telemetry for projects at work.
So far I'm happy to see what is all possible.

So currently my setup is the following:

graph TD;
   Application==Sends all telemetry data==>Collector;
   subgraph App
     Application;
   end
   subgraph Monitoring
      Prometheus--Get all metrics data-->Collector;
      otherMetric(other metrics tool)--Get all metrics data-->Collector;
      Jäger--get all tracing data-->Collector;
      ZipKin--get all tracing data-->Collector;
      othertrace(other tracing collectors)--get all tracing data-->Collector;
      Grafana--visualize the metrics-->Prometheus;
      Grafana--visualize the tracing-->Jäger;
    end

The problem what I currently have is that my jaeger instance doesn't show the service dependencies like for example ZipKin does. Here a screenshot of zipkin:

image

Jaeger also sees that the connection exsist in the traces:
image

But under system architecture everthing is empty

image

Steps to reproduce

  1. Create a sample application that does communication to another service. (in my case it's written in dotnet and communicate with a cosmos db)
  2. Add OpenTelemetry to you app
  3. Configure the open telemetry agent
receivers:
  otlp:
    protocols:
      grpc:
      http:

exporters:
  prometheus:
    endpoint: "0.0.0.0:8889"
    const_labels:
      label1: value1
  logging:

  zipkin:
    endpoint: "http://zipkin-all-in-one:9411/api/v2/spans"
    format: proto

  jaeger:
    endpoint: jaeger-all-in-one:14250
    tls:
      insecure: true

processors:
  batch:

extensions:
  health_check:
  pprof:
    endpoint: :1888
  zpages:
    endpoint: :55679

service:
  extensions: [pprof, zpages, health_check]
  pipelines:
    traces:
      receivers: [otlp]
      processors: [batch]
      exporters: [logging, jaeger, zipkin]
    metrics:
      receivers: [otlp]
      processors: [batch]
      exporters: [logging, prometheus]
  1. Start the application
  2. Compare ZipKin and jaeger with each other

Expected behavior

Jaeger just shows the dependencies like zipkin does between the systems.

Relevant log output

No response

Screenshot

No response

Additional context

No response

Jaeger backend version

1.35.0

SDK

OpenTelemetry Dotnet

Pipeline

OTEL SDK -> OTEL collector -> Jaeger all in one

Stogage backend

jaeger all in one

Operating system

docker jaeger all in one

Deployment model

Docker

Deployment configs

version: "3.8"
services:
  # vscode
  vscode:
    image:  mcr.microsoft.com/vscode/devcontainers/dotnet:6.0
    environment:
      - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/vscode/.dotnet/tools
    # don't shutdown container if it's fails
    command: ["/bin/sh", "-c", "sudo cp -RTv /workspaces/opentelemetrysample/docker/ /configs/ && cd /workspaces/opentelemetrysample && curl -k https://cosmosdb:8081/_explorer/emulator.pem > azure.cosmosdb.crt && sudo cp azure.cosmosdb.crt /usr/local/share/ca-certificates/azure.cosmosdb.crt && sudo update-ca-certificates && dotnet tool restore && dotnet dev-certs https && while sleep 1000; do :; done"]
    # command: ["/bin/sh", "-c", "while sleep 1000; do :; done"]
    user: vscode
    volumes:
      - ..:/workspace:cached
      - configs:/configs
    networks:
      - network
    hostname: vscode
    depends_on:
      - cosmosdb
  cosmosdb:
    image: mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest
    environment:
      - AZURE_COSMOS_EMULATOR_PARTITION_COUNT=10
      - AZURE_COSMOS_EMULATOR_ENABLE_DATA_PERSISTENCE=true
    networks:
      - network
  # Jaeger
  jaeger-all-in-one:
    image: jaegertracing/all-in-one:latest
    ports:
      - "16686:16686"
      - "14268"
      - "14250"
    networks:
      - network
    hostname: jaeger-all-in-one
    environment:
      - METRICS_STORAGE_TYPE=prometheus
      - PROMETHEUS_SERVER_URL=http://prometheus:9090/
      - COLLECTOR_OTLP_ENABLED=true
  # Zipkin
  zipkin-all-in-one:
    image: openzipkin/zipkin:latest
    ports:
      - "9411:9411"
    networks:
      - network
    hostname: zipkin-all-in-one
  # prometheus
  prometheus:
    container_name: prometheus
    image: prom/prometheus:latest
    command: ["--config.file=/usr/share/prometheusconfig/prometheus.yaml", "--storage.tsdb.path=/prometheus", "--web.console.libraries=/usr/share/prometheus/console_libraries", "--web.console.templates=/usr/share/prometheus/consoles"]
    volumes:
      - type: volume
        source: configs
        target: /usr/share/prometheusconfig
    ports:
      - "9090:9090"
    networks:
      - network
    hostname: prometheus
    depends_on:
      - vscode
  otel-collector:
    image: otel/opentelemetry-collector-contrib-dev:latest
    command: ["--config=/otel/config/otel-collector-config.yaml", "${OTELCOL_ARGS}"]
    volumes:
      # - ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
      - type: volume
        source: configs
        target: /otel/config
    #ports:
      #- "1888:1888"   # pprof extension
      #- "8888:8888"   # Prometheus metrics exposed by the collector
      #- "8889:8889"   # Prometheus exporter metrics
      #- "13133:13133" # health_check extension
      #- "4317:4317"   # OTLP gRPC receiver
      # - "55670:55679" # zpages extension
      # - "9090:9090"   # prometheus
      # - "9411:9411"   # zipkin
      # - "16686:16686" # jäger
    depends_on:
      - prometheus
      # - zipkin-all-in-one
      - jaeger-all-in-one
    networks:
      - network
    hostname: otel-collector
  grafana:
    image: grafana/grafana-oss:latest
    environment:
      - GF_PATHS_PROVISIONING=/configs/grafana
    volumes:
      - type: volume
        source: configs
        target: /configs/
    depends_on:
      - vscode
      - otel-collector
    ports:
      - "3000:3000"
    networks:
      - network
  crank-agent:
    image: mcr.microsoft.com/dotnet/sdk:6.0
    depends_on:
      - vscode
    volumes:
      - type: volume
        source: configs
        target: /configs/
    # user: crank
    environment:
      - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/.dotnet/tools
    command: ["/bin/sh", "-c", "mkdir -p .config && cp /configs/dotnet-tools.json .config/dotnet-tools.json && dotnet tool restore && dotnet tool run crank-agent"]
    networks:
      - network

networks:
  network:
volumes:
  configs:
@paule96 paule96 added the bug label Jul 8, 2022
@yurishkuro
Copy link
Member

Jaeger only shows instrumented services in the DAG

@paule96
Copy link
Author

paule96 commented Jul 8, 2022

Ahhh that's sad. Okay so I must find out how to add cosmos to the system... That will be a challenge. Maybe this is then a feature request instead of a bug? :) I mean it would be still nice to have this option. In special if your service is build on top of other public services that are not controlled by you.

@yurishkuro
Copy link
Member

I think we already have a similar ticket. It's not too difficult to support.

@paule96
Copy link
Author

paule96 commented Jul 8, 2022

If you have a link I could try my best to implement it. If this is a ticket for a nice first contribution. ✌️

@yurishkuro
Copy link
Member

Had a quick look, cannot easily find that other ticket. Booked a new one with some details #3804

@jkowall
Copy link
Contributor

jkowall commented Jun 8, 2024

Handled in new ticket, closing this out as it's not a bug but a new feature request.

@jkowall jkowall closed this as not planned Won't fix, can't repro, duplicate, stale Jun 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants