Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Observability For Serverless Workloads

Ara
February 21, 2020

Observability For Serverless Workloads

What is it observability? How we can improve observability when it comes to serverless workloads?

Ara

February 21, 2020
Tweet

More Decks by Ara

Other Decks in Programming

Transcript

  1. Observability A measure of how well internal states of a

    system can be inferred from knowledge of its external outputs
  2. NO ACCESS TO THE UNDERLYING OS CHARGED BY EXECUTION TIME

    / MEMORY ALLOCATED IN MANY CLOUDS, RUNTIMES ARE A BIT OF A BLACKBOX Serverless
  3. THE PLATFORM LOGS STDOUT, STDERR LOG AS MUCH AS POSSIBLE

    (PART OF THE PLATFORM) Logs USE LOG FORWARDERS TO COLLECT THEM ELSEWHERE USE YOUR LANGUAGE LOGGING LIBRARY TO DO MORE COMPLEX STUFF
  4. Cold start EXECUTION CONTEXT SHARES DISK ACROSS INVOCATIONS Cold start

    Send batch Execution context Collecting metrics
  5. Cold start WE CANNOT KNOW WHEN IT IS GOING TO

    BE GARBAGE COLLECTED Cold start Send batch Execution context Collecting metrics EXECUTION CONTEXT SHARES DISK ACROSS INVOCATIONS Send batch
  6. Use metrics to save $$$ (and time) 700ms 500ms 300ms

    128MB 192MB 320MB 128MB = $ 0.000001465 192MB = $ 0.000001565 320MB = $ 0.000001563
  7. EACH FUNCTION IS A POTENTIAL BUSINESS METRIC GATHER THOSE AND

    USE THEM TO IMPROVE YOUR BUSINESS Business metrics
  8. No OS / No agent Use cloud specific libraries for

    your functions … but make sure you don’t break your current traces
  9. No OS / No agent Use cloud specific libraries for

    your functions … but make sure you don’t break your current traces or use logs!!
  10. USE LOGS FOR METRICS TO AVOID LOSING DATA ADD YOUR

    FUNCTIONS TO YOUR CURRENT TRACES (if possible) LOGS ARE CHEAP. LOG A LOT. TRACK THOSE BUSINESS METRICS