Skip to content

Harmonize on name and meaning of IGNORE_URLS-ish config option #144

Closed
@beniwohli

Description

@beniwohli

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions