SignalFX – Jaeger -HotRod

Just imagine, you have an application that is using Jaeger as the backend, but now you want to switch to SignalFX. This is do able. Below is the steps

  1. Install SignalFX Agent:
    SignalFX Agent is used to collect your host info such as memory and cpu,network … it uses collectd for this purpose. Signalfx Agent also can act as a collector for Jaeger client via GRPC. Installing Signalfx Agent is not difficult, follow their current instruction from your account. To make it easy for you i will share my configuration
# *Required* The access token for the org that you wish to send metrics to.
signalFxAccessToken: {"#from": "/etc/signalfx/token"}
ingestUrl: {"#from": "/etc/signalfx/ingest_url", default: ""}
apiUrl: {"#from": "/etc/signalfx/api_url", default: ""}
cluster: {"#from": "/etc/signalfx/cluster", optional: true}

intervalSeconds: 10

  # Valid values are 'debug', 'info', 'warning', and 'error'
  level: info

# observers are what discover running services in the environment
  - type: host

  - {"#from": "/etc/signalfx/monitors/*.yaml", flatten: true, optional: true}
  - type: host-metadata
  - type: processlist
  - type: cpu
  - type: filesystems
  - type: disk-io
  - type: net-io
  - type: load
  - type: memory
  - type: vmem
  - type: jaeger-grpc
  - type: signalfx-forwarder
      environment: WBPetClinic

traceEndpointUrl: ""

  disableCollectd: true
  configDir: /tmp/collectd


  traceExportFormat: sapm

The important line is “- type: jaeger-grpc” this line will turn smartagent as a collector, it will listen on port 14250 , after making the configuration change , run service signalfx-agent restart , and run “signalfx-agent status” to check its status.

The next step is to run Jaeger Agent and point the collector to SmartAgent. In the example , is my SmartAgent IP

docker run   -d  -p5775:5775/udp   -p6831:6831/udp   -p6832:6832/udp   -p5778:5778/tcp   jaegertracing/jaeger-agent:latest

The fun part is coming, it’s time to run HotRod , again is my JaegerAgent – the reason my IP is because i run it in the docker, we can’t use localhost

docker run \
  --rm \
  --env JAEGER_AGENT_PORT=6831 \
  -p8080-8083:8080-8083 \
  jaegertracing/example-hotrod:latest \

So, let try to see if we can see our HotRod : http://localhost:8080

Wait for a while, then you will see the data reporting in SignalFX

Leave a Reply

Your email address will not be published. Required fields are marked *