elastic / elastic/apm-agent-python

Transaction: Context Manager & Decorator

Abierto
#959 3 comentarios 1 reacción 0 asignados Ver en GitHub
agent-python
Lenguaje dominante
Python
Estrellas
431
Forks
239
Merge medio
5 d 10 h
PR fusionados (30 d)
7

Descripción

**Is your feature request related to a problem? Please describe.**
No, it is not.

**Describe the solution you'd like**
Just for increasing the convenience of using Transactions, it would be nice to have an option for using them as a context manager and/or decorator, instead of calling `start_transaction` and `end_transaction` every time. It would be something like this:

```
with transaction('my_transaction_type'):
calling_my_transaction()
```
as a decorator it would look like this
```
@elasticapm.transaction('my_transaction_type', 'my_transaction_name')
def this_is_my_view_method():
pass
```

**Describe alternatives you've considered**
The alternative is use what is already provided (`start_transaction` and `end_transaction`)

**Additional context**
Just to illustrate, the context manager implementation would be similar to the following code
```
def transaction(self, transaction_type, transaction_name=None, trace_parent=None, start=None):
transaction = self.begin_transaction(
transaction_type,
transaction_name=transaction_name,
trace_parent=trace_parent,
start=start
)
yield
self.tracer.end_transaction(transaction.name)
```

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comience leyendo los puntos de entrada existentes start_transaction y end_transaction, y luego compárelos con las APIs begin_transaction y elasticapm.transaction propuestas en el issue. Defina el comportamiento del gestor de contexto y del decorador, incluidos el nombre de la transacción y la limpieza, y verifique que ambos ejemplos de uso funcionen sin llamadas manuales a transacciones.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
observability-sre
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.