Monitore #tudo com
Serilog
# Por que nossos logs são ruins?

# Quais tipos de logs existentes?
- Estruturado
- Desestruturado
- Mas ainda temos os níveis de log....
# Níveis de Log?

- Verbose - tracing information and debugging minutiae; generally only switched on in unusual situations
- Debug - internal control flow and diagnostic state dumps to facilitate pinpointing of recognised problems
- Information - events of interest or that have relevance to outside observers; the default enabled minimum logging level
- Warning - indicators of possible issues or service/functionality degradation
- Error - indicating a failure within the application or connected system
- Fatal - critical errors causing complete failure of the application
# Arquiteturas de log

Como #dev se sentir ?
- Centralizado: Graylog, Prometheus;
- Descentralizado: Serilog




Serilog

- Sinks
- Context
- Enricher
- Custom Destruct
easy as take lollipop's from children
logger.Error("O Usuário @{user} se logou no canal @{channel} ", user, channel);
Sinks - Como configurar
var loggerConfig = new LoggerConfiguration()
.WriteTo.MongoDBCapped("mongodb://localhost:27017", collectionName: "logs");
.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri("http://localhost:9200")));
Elasticsearch + MongoDB
Sinks - Quais temos james?


API Simples
Lembra dos tipos de logs?

Context com classe
Log
Resultado


Context com Properties
Log
Resultado


Enrichers
Config

Enrichers
Resultado

Custom Destructures
Config


Custom Destructures
Resultado


Nome + Sobrenome
Propriedade separadas
E como ficam nossos índices

Ah... e o mongo?

Kibana
Dashboard

consultas por tempo/auto-refresh



Watcher
Watcher, ALERTA PADRÃO
{
"trigger" : { "schedule" : { "interval" : "10s" } },
"input" : {
"search" : {
"request" : {
"indices" : [ "logs" ],
"body" : {
"query" : {
"match" : { "message": "error" }
}
}
}
}
},
"condition" : {
"compare" : { "ctx.payload.hits.total" : { "gt" : 0 }}
},
"actions" : {
"log_error" : {
"logging" : {
"text" : "Found {{ctx.payload.hits.total}} errors in the logs"
}
}
}
}
Watcher, eNVIO EMAIL
"actions" : {
"send_email" : {
"email" : {
"to" : "<username>@<domainname>",
"subject" : "Watcher Notification",
"body" : "{{ctx.payload.hits.total}} watches took more than 2.5 seconds to execute.",
"attach_data" : true
}
}
}
Curator
Arquiteturas
- Implementações sobre os logs
- Burocrática
- Flexível
Benefícios
- Monitore tudo do jeito que quiser
- Agrege valor em business e em dev(ops)
- Resolva problemas de forma fácil e rápida
Monitore tudo com Serilog
By Fábio Damasceno
Monitore tudo com Serilog
Monitore tudo com Serilog
- 1,435