• /
  • EnglishEspañol日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.

Crea una propuesta

Instrumento transacción Go

Monitor su aplicación o microservicios New Relic for Go creando transacciones asociadas con actividades específicas del servidor de aplicaciones, como respuestas HTTP o tareas en segundo plano. Luego podrá ver el rendimiento de su aplicación en New Relic, incluida la página APM Transactions .

Identificar web y transacción no web

A diferencia de muchos otros lenguajes, la aplicación Go se ejecuta desde un archivo binario nativo compilado. Esto significa que configurar New Relic para su aplicación Golang requiere que agregue manualmente métodos New Relic a su código fuente.

En APM las transacciones se identifican como transacción web o transacción no web.

  • Cuando instrumenta o envuelve una transacción que tiene una solicitud HTTP y un escritor de respuesta, New Relic la trata como una transacción web.
  • Cuando instrumenta o envuelve una transacción que no tiene datos HTTP, New Relic la trata como una transacción no web.

Los segmentos son las funciones y llamadas que componen una transacción. También puedes usar New Relic for Go para agregar detalles a nivel de segmento a tu transacción.

Monitor una transacción

Importante

No utilice corchetes [suffix] al final del nombre de su transacción. New Relic elimina automáticamente los corchetes del nombre. En su lugar, utilice paréntesis (suffix) u otros símbolos si es necesario.

Para monitor una transacción: Coloque el siguiente código inmediatamente después del inicio de la función que desea monitor. Por ejemplo:

txn := app.StartTransaction("transaction_name")
defer txn.End()

En este ejemplo de código:

Para monitor una transacción web, llame a las API Transaction.SetWebRequest y, opcionalmente, a la Transaction.SetWebResponse:

txn := app.StartTransaction("transaction_name")
defer txn.End()
// req is a *http.Request, this marks the transaction as a web transaction
txn.SetWebRequestHTTP(req)
// writer is a http.ResponseWriter, use the returned writer in place of the original
writer = txn.SetWebResponse(writer)
writer.WriteHeader(500)

Monitor una transacción con múltiples goroutines

Para monitor una transacción a través de múltiples goroutines, use Transaction.NewGoroutine(). El método NewGoroutine devuelve una nueva referencia a la transacción, que es requerida por cada rutina de creación de segmentos. No importa si llamas NewGoroutine antes o después de que comience la otra rutina.

Todos los métodos Transaction se pueden utilizar en cualquier referencia Transaction . El Transactionfinalizará cuando se llame End() en cualquier rutina.

Monitor una transacción envolviendo un controlador HTTP

Si está utilizando el paquete de biblioteca HTTP estándar, puede crear transacciones envolviendo solicitudes HTTP, como alternativa a instrumentar el código de una función.

A continuación se muestra un ejemplo del antes y el después de la envoltura de un controlador HTTP:

Before:

http.HandleFunc("/users", usersHandler)

After:

Esto inicia y finaliza automáticamente una transacción con el autor de la solicitud y la respuesta.

http.HandleFunc(newrelic.WrapHandleFunc(app, "/users", usersHandler))

Para acceder a la transacción en su controlador, utilice la API newrelic.FromContext . Tenga en cuenta que esto solo funcionará para las versiones 1.7 y posteriores de Go. Por ejemplo:

func myHandler(w http.ResponseWriter, r *http.Request) {
txn := newrelic.FromContext(r.Context())
txn.NoticeError(errors.New("my error message"))
}

Monitor errores

New Relic for Go captura errores de tres maneras diferentes:

Si quieres...

Utilizar esta

Realice un seguimiento de los errores e informe cualquier combinación de mensaje, clase y atributo

Transaction.NoticeError()

Realice un seguimiento del error esperado e informe cualquier combinación de mensaje, clase y atributo sin activar alertas ni afectar el error métrico.

Transaction.NoticeExpectedError()

Informar pánicos

La transacción finalizó con defer registros de pánico automáticamente. Consulte la documentación de New Relic for Go GitHub para obtener más información. A partir de la versión 3.0.0, esta característica debe habilitarse específicamente configurando la configuración Config.ErrorCollector.RecordPanics en true.

Informar códigos de respuesta de error

La transacción registra automáticamente los errores superiores a 400 y inferiores a 100. Consulte la documentación de New Relic for Go GitHub para obtener más información.

Ver el registro de sus datos de infraestructura y APM

También puede reunir los datos de su registro y de la aplicación para que la resolución de problemas sea más fácil y rápida. Con el contexto de inicio de sesión, puede ver el mensaje de registro relacionado con sus errores y la traza directamente en UI de su aplicación.

  1. Desde la página

    Errors

    , haga clic en una traza para ir a la página

    Error details

    .

  2. En la página de detalles del error, haga clic en

    See logs

    .

  3. Para ver detalles relacionados con un mensaje de registro individual, haga clic directamente en el mensaje.

También puede ver el inicio de sesión en el contexto de los datos de su infraestructura, como el clúster de Kubernetes. No es necesario cambiar a otra UI.

Métodos de transacción adicionales

El objeto Transaction tiene varios métodos opcionales que se pueden utilizar para controlar el comportamiento de las transacciones, como NoticeError, AddAttribute y Ignore. Para obtener una lista de métodos de transacción, consulte los métodos de transacción de New Relic for Go en Godoc.

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.