Monitore #tudo com
Serilog
# Por que nossos logs são ruins?
# Quais tipos de logs existentes?
# Níveis de Log?
# Arquiteturas de log
Como #dev se sentir ?
Serilog
logger.Error("O Usuário @{user} se logou no canal @{channel} ", user, channel);
var loggerConfig = new LoggerConfiguration()
.WriteTo.MongoDBCapped("mongodb://localhost:27017", collectionName: "logs");
.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri("http://localhost:9200")));
Elasticsearch + MongoDB
Lembra dos tipos de logs?
Log
Resultado
Log
Resultado
Config
Resultado
Config
Resultado
Nome + Sobrenome
Propriedade separadas
Kibana
Watcher
{
"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"
}
}
}
}
"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
Benefícios