Please enable JavaScript.
Coggle requires JavaScript to display documents.
Datadog: Performance monitoring tool (from Zero to Hero) - Coggle Diagram
Datadog: Performance monitoring tool (from Zero to Hero)
Definition Configuration e integration
Agent
Roda a cada 50 segundos
Collector - envia os dados para o forwader tcp: 17123
forwader - envia os dados para o datadog via http 443
A principal configuração está no arquivo datadog.yaml
As configurações de integração estão na pasta conf.d
Datadog > Integration > Agent
Integration
Datadog > Integration > integrations
vemos tudo que temos integrado ou queremos integrar
Clicando em cima mostra como fazer a integração
Infrastructure
Host Map
Podemos ver a saúde dos hosts
podemos mutar ou demutar alertas sobre o host
Metrics
Interface básica par expor dados nos gráficos e posteriormente dashboards
Metrics summary
Metricas prontas e podemos alterar algumas coisas
Metric Types
Count: soma todos os valores enviados; [1,1,1,2,2,2,3,3] o agent vai mandar um ponto com o valor de 15
Rate: faz uma média dos valores recebidos no periodo de tempo. [1,1,1,2,2,2,3,3] o agent vai mandar um ponto com o valor de 1,5
Gauge: ele manda o maior número recebido no intervalo. [71,71,71,71,71,71,71,71.5] o agent vai mandar um valor de 71.5
Distribuition: Representa a distribuição estatistica de um conjunto de valores calculados
APM
Precisa de um client instalado
Precisamos das variaveis DD_ENV e DD_VERSION
Services
Lista os services separados por camadas
P50
Descartamos 50% e pegamos o primeiro valor que sobra, assim funciona para os outros
Traces
Detalhe de uma chamada
Flame graphics
É o gráfico que mostra a pilha nas execuções
Facets
São propriedades aonde eu posso realizar filtros, etc.. por default já temos algumas, porém eu posso adicionar vindo do trace
Tracemap
Uma vizualização visual de quais os caminhos das chamadas
Span List
Uma visualização de tabela para o detalhe do trace
Error Tracking
Lista de erros do sistema, podemos filtrar por projetos, tipos, etc...
Podemos criar um incidente para os erros
Podemos criar um monitor para os nossos erros
Profiling
É como depurar nosso código, um verdadeiro profiler dotnet
Precisamos instalar o trace no host e setarmos as variaveis de ambiente para habilitar a coleta
Podemos filtrar classes e metodos do dotnet
Aggregations
Combina todas as transações de um serviço e monta um profile unico
Custom tags
é uma métrica personalizada enviada pelo sistema, como chave e valor
Para enviar custom tags precisa instalar o DataDog Trace pelo nuget
É visto dentro do trace na camada enviada
Podemos criar facets para as custom tags
Dashboard
Existem alguns dashboards padrão
Timeboard
Quadros com layouts automáticos e representam o tempo, normalmente utilizados para correção de problemas
scrrenboards
Quadro de formato livre
Time Series
Incluir série de tempo em 4 etapas (Selecionar visualização, adicionar a query, display preferences e titulo)
Query Series
Adicionar regras e pintar de acordo com a metrica
Day_before
Formula automatica que compara com o dia anterior
Variaveis
Posso adicionar variaveis em (add template variables)
Posso filtrar os gráficos baseado na variavel selecionada
Monitors
É uma das partes mais importantes no gerenciamento de desempenho dos apps
Watchdog types
Olha comportamentos estranhos
Check alert
Quando um alerta é acionado quando um host para
cluster alert
Quando disparamos um trigger baseada em dados
Para o monitor posso definir o alert threshould e o warning threshould, eles me dão uma porcentagem de quando é alert e quando é warning
Monitores sugeridos
Quando navegamos nas integrações ou dentro dos serviços, o datadog sugere alguns monitores para cada coisa
Quando recebemos um alerta temos a opção de resolver
SLA, SLO, SLI e Error Budget
SLA
É um acordo pré definido de nivel de serviço entre o cliente e o servidor
SLO
São os objetivos, promessas e metas que a equipe deve atingir para cumprir o SLA
Posso criar um SLO no datadog. Monitors > SLO
Pode ser por métrica ou total, depois defino os targets
Posso definir alerta para quando o SLO é violado
SLI
Número real que determinam o sucesso do SQL
Error Budget
É o valor das violações do SLO
Se o serviço tem um SLO de 99.9% o error budget é 100%-99.9% = 0.1%
Se eu tenho 1.000.000 request e o error budget é 0.1% então 0.1% x 1.000.000 = 1.000 erros permitidos
Synthetic monitoring
Prática de monitoramento de desempenho de aplicativos, usamos as mesmas ações que o usuário faria no app
Podemos rastrear: Tempo de resposta, latencia, tempo de carregamento e dados de sistema e rede (CPU, HD, memória, etc...)
API Test
Etapas para criação
Escolhemos os tipos de request: HTTP, SSL, TCP, etc...
Definimos o request, o verbo (GET, POST, ...) e o endereço do request
Podemos criar uma variavel para usar no tempo de execução
Definimos os asserts
Posso definir as locations que o teste será executado
Frequencia do teste
Definir alerta
Criar um monitor para o teste
Entrar em UX Monitoring> synthetic tests > Create
Testa a execução de uma api ou endpoint diretamente
Browser test
Conjunto de ações que o datadog executa usando um navegador
Precisa adicionar uma extensão no chrome para gravar os steps
Etapas para a criação
Entrar em UX Monitoring > Synthetic test > Create Browser
Definimos a URL
Quais Navegadores irão executar
As locations onde vai executar
a frequencia
Definir alertas
Criar monitor
Adicionamos a extenção e iniciamos a gravação
Adicionamos os asserts
Podemos vincular ao CI/CD
Log Management (LMS)
Log Entry
É uma estrutura de dados simples, como uma documentação persistente de eventos relevantes de um determinado sistema
Pode emitir: timestamp, tipo de erro: Error, Warn, Info e Debug. Informações adicionais: User information, API Information
São armazenados no log file
É uma solução que envolve a coleta, processamento, armazenamento e analis de log files
Usamos um logger diferente para cada linguagem para salvarmos os logs
Passos para habilitar no datadog
habilitar o agent no datadog.yaml file (logs_enabled: true)
Criar a pasta csharp.d na pasta Datadog\conf.d com um conf.yaml dentro
Criar um arquivo vazio datadog.log (pode ser qualquer nome)
Instalar o nuget para NLog
Configurar o NLog.config
Explorar o datadog
Podemos usar o logger na exception inteira, assim podemos ver os tipos de erros
Notebooks
É uma pagina aonde eu posso anotar elementos de texto e gráficos
Elementos de texto eu posso adicionar texto livre, links, subtitulo, imagens, bloco de código, etc...
Gráficos eu posso adicionar timeseries, top lists, heat map, etc...
Tipos de notebooks
Runbook: quando descrevemos um dashboard monitor que pode ser usado pelos membros do time
Investigation: quando há uma exceção na minha aplicação e eu preciso reunir os dados necessários
Documentation: para adicionar qualquer nota
Report: Para analisar um dado em um horario especifico
Postmortem: Detalha um incidente que aconteceu, causa raiz depois de ter acontecido
Podemos exportar qualquer gráfico do DD diretamente para o notebook
Posso criar um template para usar depois
Posso usar um template pré definido