elastic / elastic/apm-agent-python

The set_custom_context API attaches contexts only to transactions

Open
#1,124 1 comment 0 reactions 0 assignees View on GitHub
agent-python feature
Dominant language
Python
Stars
431
Forks
239
Avg merge
5d 10h
Merged PRs (30d)
7

Description

**Describe the bug**:

When using `set_custom_context` API, as per [documentation](https://www.elastic.co/guide/en/apm/agent/python/master/api.html#api-set-custom-context), the expectation is to be able to attach custom data to a `Transaction` or to an `Error`.

From the [code](https://github.com/elastic/apm-agent-python/blob/4d125e6f554a85b84085ddcf1fb783bc7228922c/elasticapm/traces.py#L848), it seems we apply the custom context only to `Transactions` which are sampled.

**Expected behavior**

The custom context should be attached to the `Error` too so that it will not be affected by sampling.

In any case, the request is to have an API to enrich errors without it being affected by sampling.

**Potential workaround**

If the objective is to enrich exceptions/errors, it is possible to use the `custom` named argument of `capture_exception` to enrich it. This information is attached to the `Error` and it will not be sampled.

**Environment**
- Python version: Python 2.7
- Framework and version: Django 1.11
- Agent version: 5.10.1

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.