Description
Description of the issue
Most (all?) agents have a config option ignore_urls
(or similar, see below) to ignore certain transactions by URL, using pattern matching. Unfortunately, there are subtle and not-so-subtle differences across agents:
- Java and Go: a list of wildcard matchers
- Node: A list of items that can be either regexes or strings
- Ruby: a list of regexes. Also, the option is called
ignore_url_patterns
- Python: A list of regexes. Also, the option is called
transaction_ignore_patterns
. Oh, and it's matched against the transaction name, not the URL (historically, this is so it can also be used for non-HTTP transactions, like background jobs) - then I stopped...
These differences in both naming and semantics make it difficult to use this config option in a remote config scenario. Therefore, we should harmonize.
Semantics is probably the easier of the two: I propose that we follow the lead of the Java and Go agent, and use wildcard matching on the path
part of the URL itself (not the parametrized URL pattern).
As for naming, using IGNORE_URLS
or IGNORE_URL_PATTERNS
poses the difficulty that they are already used with different semantics by some agents (the former by Node, the latter by Ruby). Therefore, I propose to use TRANSACTION_IGNORE_URLS
, assuming that all agents only apply this config option to transactions, not errors or metrics (if that's not the case in your current implementation, please speak up!).
What we are voting on
All agents will add a new config option, TRANSACTION_IGNORE_URLS
, which will use glob matching. It will be case insensitive by default. There is no required deprecation path for old config values, each agent team can decide that for themselves.
Vote
Agent | Yes | No | Indifferent | N/A | Link to agent issue | Central Kibana Config |
---|---|---|---|---|---|---|
.NET | elastic/apm-agent-dotnet#688 | ⚪ | ||||
Go | elastic/apm-agent-go#792 | ⚪ | ||||
Java | elastic/apm-agent-java#1313 | ✅ | ||||
Node.js | elastic/apm-agent-nodejs#1689 | ✅ | ||||
Python | elastic/apm-agent-python#772 | ⚪ | ||||
Ruby | elastic/apm-agent-ruby#835 | ⚪ | ||||
RUM | ||||||
PHP | elastic/apm-agent-php#82 | ⚪ |