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

Observabilidade de APIs

Observabilidade de APIs

Definições e como implementar, com exemplos em Go

Elton Minetto

May 10, 2023
Tweet

More Decks by Elton Minetto

Other Decks in Programming

Transcript

  1. Observabilidade
    de
    APIs

    View Slide

  2. Elton Minetto

    View Slide

  3. Elton Minetto
    ๏ Escrevo códigos, sou professor, palestrante, e
    escritor

    View Slide

  4. Elton Minetto
    ๏ Escrevo códigos, sou professor, palestrante, e
    escritor
    ๏ Escrevo no https://eltonminetto.dev e no
    twitter

    View Slide

  5. Elton Minetto
    ๏ Escrevo códigos, sou professor, palestrante, e
    escritor
    ๏ Escrevo no https://eltonminetto.dev e no
    twitter
    ๏ Principal Software Engineer @ PicPay

    View Slide

  6. Monitoramento
    x
    observabilidade

    View Slide

  7. Monitoramento de APIs

    View Slide

  8. Permite que as equipes observem e entendam o
    estado de suas APIs ou até mesmo sistemas. É
    baseado na coleta de conjuntos predefinidos de
    métricas ou logs

    View Slide

  9. View Slide

  10. Observabilidade de APIs

    View Slide

  11. A observabilidade é baseada na exploração de
    propriedades e padrões não definidos com
    antecedência. Invoca um sentimento de
    transparência, é uma forma de monitoramento
    baseado em métricas expostas pelo sistema

    View Slide

  12. View Slide

  13. MELT

    View Slide

  14. View Slide

  15. ๏ Metrics - Medições numéricas coletadas e
    rastreadas ao longo do tempo.

    View Slide

  16. ๏ Metrics - Medições numéricas coletadas e
    rastreadas ao longo do tempo.
    ๏ Events - Snapshots de mudanças de estado
    significativas.

    View Slide

  17. ๏ Metrics - Medições numéricas coletadas e
    rastreadas ao longo do tempo.
    ๏ Events - Snapshots de mudanças de estado
    significativas.
    ๏ Logs - Uma transcrição detalhada do
    comportamento do sistema.

    View Slide

  18. ๏ Metrics - Medições numéricas coletadas e
    rastreadas ao longo do tempo.
    ๏ Events - Snapshots de mudanças de estado
    significativas.
    ๏ Logs - Uma transcrição detalhada do
    comportamento do sistema.
    ๏ Traces - uma rota de interações entre
    componentes, juntamente com um contexto
    associado.

    View Slide

  19. Metrics

    View Slide

  20. Metrics
    ๏ Um status numérico em um momento (como %
    de CPU usada)

    View Slide

  21. Metrics
    ๏ Um status numérico em um momento (como %
    de CPU usada)
    ๏ Medições agregadas (como uma contagem de
    eventos em um minuto ou uma taxa de eventos
    por minuto)

    View Slide

  22. For the minute of 3:34-3:35pm on 2/21/2019,
    there were three purchases totaling $2.75.

    View Slide

  23. Events
    Um evento pode ser definido como uma ação
    discreta que acontece em um momento no tempo.

    View Slide

  24. At 3:34pm on 2/21/2019, a bag of BBQ chips was
    purchased for $1.

    View Slide

  25. Logs
    Linhas de texto que um sistema produz quando
    certos blocos de código são executados. Os
    desenvolvedores dependem muito deles para
    solucionar problemas de seu código e veri

    car e
    interrogar retroativamente a execução do código.

    View Slide

  26. 2/21/2019 15:34:03: { actionType:
    purchaseCompleted, machineId: 2099, itemName:
    ‘Tasty BBQ Chips’, itemValue: 1.00 }

    View Slide

  27. Traces
    Traces – ou mais precisamente, “traces
    distribuídos” – são amostras de cadeias causais
    de eventos (ou transações) entre diferentes
    componentes em um ecossistema de
    microsserviços.

    View Slide

  28. Digamos que nossa máquina de venda automática
    aceite dinheiro e cartões de crédito. Se um
    usuário fizer uma compra com cartão de crédito, a
    transação deverá fluir pela máquina de venda
    automática por meio de uma conexão de back-end,
    entrar em contato com a administradora do
    cartão de crédito e, em seguida, entrar em
    contato com o banco emissor.

    View Slide

  29. Show me the
    code

    View Slide

  30. View Slide

  31. Stacks de
    Telemetria

    View Slide

  32. View Slide

  33. Open Telemetry

    View Slide

  34. View Slide

  35. Adicionando
    logs

    View Slide

  36. View Slide

  37. View Slide

  38. Adicionando
    métricas

    View Slide

  39. View Slide

  40. View Slide

  41. Adicionando
    traces

    View Slide

  42. View Slide

  43. View Slide

  44. View Slide

  45. View Slide

  46. View Slide

  47. View Slide

  48. View Slide

  49. View Slide

  50. https://github.com/eminetto/api-o11y

    View Slide

  51. Referências

    View Slide

  52. View Slide


  53. What is the Di

    erence between API
    Observability and API Monitoring

    View Slide


  54. What is the Di

    erence between API
    Observability and API Monitoring

    API Observability: A framework for managing
    your applications in an API world

    View Slide


  55. What is the Di

    erence between API
    Observability and API Monitoring

    API Observability: A framework for managing
    your applications in an API world

    Intro to API Observability

    View Slide

  56. View Slide

  57. ๏ Usando Prometheus para coletar métricas de
    aplicações Golang

    View Slide

  58. ๏ Usando Prometheus para coletar métricas de
    aplicações Golang
    ๏ Collector

    View Slide


  59. Usando Prometheus para coletar métricas de
    aplicações Golang

    Collector

    OpenTelemetry Demo Documentation

    View Slide


  60. Usando Prometheus para coletar métricas de
    aplicações Golang

    Collector

    OpenTelemetry Demo Documentation

    MELT 101

    View Slide

  61. Perguntas

    View Slide

  62. Contato
    https://eltonminetto.dev
    https://twitter.com/eminetto
    [email protected]

    View Slide