Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

AWS X-Ray introduction and my experience


Published on

My blog:
In this presentation you'll see 101 about the X-Ray on AWS as well as my first impression, production experience and finally adoption.

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

AWS X-Ray introduction and my experience

  1. 1. How I met X-Ray
  2. 2. About me Backend and Cloud Infrastructure engineer. Certified AWS Solutions Architect. Contractor. My blog: Youtube channel: CodeRunFun
  3. 3. Shortly about X-Ray X-rays make up X-radiation, a form of high-energy electromagnetic radiation. Most X-rays have a wavelength ranging from 0.01 to 10 nanometers, corresponding to frequencies in the range 30 petahertz to 30 exahertz (3×1016 Hz to 3×1019 Hz) and energies in the range 100 eV to 100 keV. X-ray wavelengths are shorter than those of UV rays and typically longer than those of gamma rays. In many languages, X-radiation is referred to as Röntgen radiation, after the German scientist Wilhelm Röntgen, who discovered it on November 8, 1895. He named it X-radiation to signify an unknown type of radiation. Spelling of X-ray(s) in the English language includes the variants x-ray(s), xray(s), and X ray(s).
  4. 4. X-Ray is an AWS service helping to analyze and debug distributed systems
  5. 5. AWS X-Ray improves observability
  6. 6. What observability is?
  7. 7. a fancy new word, like a DevOps and Chaos Engineering Observability is
  8. 8. not a monitoring Observability is
  9. 9. a measure of how well internal states of a system can be inferred from knowledge of its external outputs. Observability is
  10. 10. What observability consists of Monitoring Alerting/visualization Distributed system tracing Log aggregation/analytics
  11. 11. ● Rollbar or Airbrake ● Newrelic or Datadog ● CloudWatch ● Kibana ● PagerDuty Tooling you may use for observability
  12. 12. How X-Ray is different from that ● Tracks errors like Rollbar or Airbrake ● Partially an APM as Newrelic or Datadog ● Totally different thing than CloudWatch ● Can show you some things like Kibana ● Totally different thing than PagerDuty
  13. 13. Where it can be used ● Lambdas ● Traditional apps on OpsWorks or ECS ● *Some other AWS services
  14. 14. What about *Some other AWS services Can be enabled on the API Gateway, ELB, SQS, SNS and some others
  15. 15. Active and PassThrough Active - service decides when to send the data PassThrough - upstream service says when to
  16. 16. Features. Service map
  17. 17. Features. Segments performance
  18. 18. Features. Custom subsegments
  19. 19. Features. Sampling
  20. 20. Enough of introduction Give us some meat!
  21. 21. The architecture
  22. 22. First experience. The good
  23. 23. First experience. The bad
  24. 24. But why?????
  25. 25. AWS Support team answers
  26. 26. How to avoid Easy , enable X-Ray everywhere ¯_(ツ)_/¯
  27. 27. Easy… What about dependencies? Ruby >= 2.3.6 ...
  28. 28. Dependencies Our Ruby version is 2.2.x Our stack is OpsWorks, ECS, Lambdas on Ruby, Go, NodeJS. Sounds like an epic...
  29. 29. What if we rethink the approach To start the adoption
  30. 30. Second experience. The Success Story Solving real-world production performance issue
  31. 31. Identifying performance bottlenecks in a lambda in production using X-Ray
  32. 32. The first bottleneck and Elasticsearch upgrade
  33. 33. The second bottleneck and code optimization
  34. 34. X-Ray traces 🐌 Before...
  35. 35. 🎉 After...
  36. 36. Can I achieve the same with Newrelic or Datadog? Yes, but...
  37. 37. How to enable it
  38. 38. How to enable for API Gateway Just one line. But please make sure you are ready that it will be enabled for each and every service beneath* * if they have sufficient permissions
  39. 39. How to enable for a single Lambda You need permissions, flag...
  40. 40. How to enable for a single Lambda You need permissions, flag… and code
  41. 41. How to enable for an application You need permissions, daemon and code to send data