La visibilidad unificada de los comportamientos más detallados de su función Lambda .NET es esencial para que pueda comprender lo que sucede en su aplicación sin servidor. Esta información le permite solucionar problemas y optimizar sus funciones para que puedan funcionar más rápido y ofrecer resultados consistentes.
Puede elegir entre dos enfoques de instrumentación para obtener visibilidad de su función Lambda .NET:
Emplee los siguientes consejos para ayudarlo a decidir qué enfoque es mejor para usted.
Comparación de características
La siguiente tabla describe los diferentes requisitos y capacidades de cada enfoque:
Agente .NET New Relic | Distribución AWS para OpenTelemetry | |
---|---|---|
Requiere cambios de código | No | Sí |
Necesita herramienta para enviar datos. | Sí | No |
New Relic experiencia UI | ||
rastreo distribuido | Sí | |
Métrica | No | Sí |
Traza de la transaccion | Sí | N/A |
Evento de transacción | Sí | |
Evento de error/intervalos | Sí | Sí |
Span evento o spans | Sí | Sí |
SQL trazas | Sí | N/A |
Perfilado de hilos | No | N/A |
Gestión de vulnerabilidades | No | N/A |
llamadas externas | Sí | |
Instrumentación personalizada mediante XML | No | No |
Instrumentación personalizada mediante API | Sí (agente) | Sí (OpenTelemetry) |
Métrica personalizada | No | Sí |
Evento personalizado | Sí | N/A |
Tramos personalizados | Sí | Sí |
Errores personalizados | Sí | No |
Atributo personalizado | Sí | Sí |
Logs | Sí | Sí |
Rastreo multiaplicación heredado | No | No |
Información
Logs-in-context será capturado por la extensión Lambda o CloudWatch, no por el agente de reenvío de log .
Agente .NET New Relic
A partir de la versión 10.26.0 del agente, el agente .NET New Relic admite la función Lambda instrumentada AWS. En la mayoría de los casos, el agente .NET instrumentará automáticamente su función Lambda AWS. El beneficio de emplear el agente es que, en la mayoría de los casos, no se requieren cambios de código para monitor su función Lambda.
En una función Lambda, el agente cambiará a un "modo sin servidor" que deshabilitará el envío de datos directamente a New Relic, así como también deshabilitará alguna otra característica. Para enviar datos a New Relic, debe emplear la extensión New Relic Lambda (incluida en nuestra capa de agente .NET) o CloudWatch.
Dado que el agente instrumentó automáticamente la mayoría de las funciones Lambda, puede emplear el paquete agente NuGet para monitor su función Lambda. Debe configurar manualmente las variables de entorno para el método de implementación elegido (consulte nuestra guía de instalación). Esto aún requiere que configure la extensión Lambda de New Relic o la integración de CloudWatch para enviar sus datos a New Relic.
La instrumentación automática está disponible para los siguientes tipos de funciones Lambda AWS (a partir de la versión del agente 10.29.0):
- Amazon.Lambda.AspNetCoreServer.APIGatewayProxyFunction
- Amazon.Lambda.AspNetCoreServer.APIGatewayHttpApiV2ProxyFunction
- Amazon.Lambda.AspNetCoreServer.ApplicationLoadBalancerFunction
Limitaciones:
- Los métodos lambda genéricos no se instrumentan automáticamente. Si su método lambda es un método genérico, como
Task<TResponse> MyMethod<TRequest, TResponse>(TRequest, ILambdaContext)
, el agente .NET actualmente no puede implementar ese método. - Actualmente , Lambda Annotations Framework no es compatible.
- Al evento ApiGatewayV2 le falta algún contexto requerido para el rastreo distribuido.
- No se admite el rastreo saliente distribuido para diferentes llamadas del SDK AWS (como SQS).
- Si su controlador de función Lambda no incluye un parámetro
ILambdaContext
, el agente .NET no podrá recopilar toda la información esperada sobre su función Lambda. - La función .NET Lambda creada con el método de implementación Native AOT no es compatible.
Importante
Complemento de marco sin servidor La compatibilidad con la función Lambda de .NET comienza en la versión 5.3.0 del complemento sin servidor. Si está ejecutando una versión del complemento sin servidor anterior a la v5.3.0, La actualización a v5.3.0 o posterior implementará automáticamente su función Lambda de .NET. Puede emplear la declaración de exclusión en su serverless.yml para excluir funciones de la instrumentación automática.
Distribución AWS para OpenTelemetry (ADOT) Soporte Lambda para .NET
La instrumentación OpenTelemetry Lambda para .NET proporciona extensión y API de seguimiento que puede emplear para instrumentar su función Lambda. ADOT está disponible como capa para facilitar su instalación. La capa ADOT Lambda proporciona una versión reducida del recolector AWS Distro for OpenTelemetry , que puede exportar datos OpenTelemetry a New Relic. En lugar de la UI experiencia de sin servidor, este enfoque empleará la OpenTelemetry UI.
Este método requiere alguna configuración manual inicial dependiendo de su método de implementación.
Para detalles de instalación, consulte trazar su función Lambda .NET con New Relic y OpenTelemetry.