Recopilación de logs de Go
Para enviar tus logs de Go a Datadog, loguea un archivo y luego supervisa ese archivo con tu Datadog Agent. Puedes utilizar la siguiente configuración con logrus, una biblioteca de registro de código abierto.
Datadog recomienda encarecidamente que configures tu biblioteca de registro para producir tus logs en JSON y evitar la necesidad de reglas de parseo personalizadas.
Configurar tu registrador
Para una configuración de Go clásica, abre un archivo main.go
y pega el siguiente código:
package main
import (
log "github.com/sirupsen/logrus"
)
func main() {
// use JSONFormatter
log.SetFormatter(&log.JSONFormatter{})
// log an event as usual with logrus
log.WithFields(log.Fields{"string": "foo", "int": 1, "float": 1.1 }).Info("My first event from golang to stdout")
}
Puedes añadir metas a cualquier log si proporcionas un objeto JSON que desees ver en el evento de log.
Estas metas pueden ser hostname
, username
, customers
, metric
o cualquier información que pueda ayudarte a solucionar problemas y entender lo que ocurre en tu aplicación Go.
package main
import (
log "github.com/sirupsen/logrus"
)
func main() {
// use JSONFormatter
log.SetFormatter(&log.JSONFormatter{})
// log an event with logrus
log.WithFields(log.Fields{"string": "foo", "int": 1, "float": 1.1 }).Info("My first event from golang to stdout")
// for metadata, a common pattern is to reuse fields between logging statements by reusing
contextualizedLog := log.WithFields(log.Fields{
"hostname": "staging-1",
"appname": "foo-app",
"session": "1ce3f6v"
})
contextualizedLog.Info("Simple event with global metadata")
}
Configura tu Datadog Agent
Una vez que la recopilación de log está habilitada, configura la recopilación de log personalizada para supervisar tus archivos de log y enviar nuevos logs a Datadog.
Crea una carpeta go.d/
en el directorio de configuración del Agent conf.d/
.
Crea un archivo conf.yaml
en go.d/
con el siguiente contenido:
##Log section
logs:
- type: file
path: "<path_to_your_go_log>.log"
service: <service_name>
source: go
sourcecategory: sourcecode
Reinicia el Agent.
Ejecuta el subcomando de estado del Agent y busca go
en la sección Checks
para confirmar que los logs se han enviado correctamente a Datadog.
Si los logs están en formato JSON, Datadog analiza automáticamente los mensajes de log para extraer los atributos de log. Utiliza el Log Explorer para ver y solucionar los problemas de tus logs.
Conectar logs y trazas
Si APM está habilitado para esta aplicación, la correlación entre los logs de aplicación y trazas (traces) puede mejorarse siguiendo la documentación de registro de APM Go para añadir automáticamente trazas e IDs de tramos en tus logs.
Prácticas recomendadas
- Asigna al registrador un nombre que se corresponda con la funcionalidad o servicio pertinente.
- Utiliza los niveles de log
DEBUG
, INFO
, WARNING
y FATAL
. En Datadog, FATAL
de Go se asigna a un nivel de gravedad de Emergency
. - Empieza registrando la información más importante. Amplía el alcance de tu registro con nuevas iteraciones.
- Utiliza metas para añadir contexto a cualquier log. Esto te permite filtrar rápidamente por usuarios, clientes, atributos empresariales, etc.
Leer más
Additional helpful documentation, links, and articles: