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: "https://ingest.signalfx.com"}
apiUrl: {"#from": "/etc/signalfx/api_url", default: "https://api.signalfx.com"}
cluster: {"#from": "/etc/signalfx/cluster", optional: true}

intervalSeconds: 10

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

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

monitors:
  - {"#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
    
    listenAddress: 127.0.0.1:9080
    extraSpanTags:
     
      environment: WBPetClinic

traceEndpointUrl: "https://ingest.us1.signalfx.com/v2/trace"


collectd:
 
  disableCollectd: true
 
  configDir: /tmp/collectd


writer:

  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 , 10.0.2.15 is my SmartAgent IP

docker run   -d  -p5775:5775/udp   -p6831:6831/udp   -p6832:6832/udp   -p5778:5778/tcp   jaegertracing/jaeger-agent:latest   --reporter.grpc.host-port=10.0.2.15:14250

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

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

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 *