• Data Collection
    • Configuration Example
    • Collected Data
      • What's collected / when ?
      • Example of Collected Data
    • The Code for Data Collection

    Data Collection

    Understanding How Traefik is Being Used

    Configuration Example

    Understanding how you use Traefik is very important to us: it helps us improve the solution in many different ways.For this very reason, the sendAnonymousUsage option is mandatory: we want you to take time to consider whether or not you wish to share anonymous data with us so we can benefit from your experience and use cases.

    Enabling Data Collection

    1. [global]
    2. # Send anonymous usage data
    3. sendAnonymousUsage = true
    1. global:
    2. # Send anonymous usage data
    3. sendAnonymousUsage: true
    1. # Send anonymous usage data
    2. --global.sendAnonymousUsage

    Collected Data

    This feature comes from the public proposal here.

    In order to help us learn more about how Traefik is being used and improve it, we collect anonymous usage statistics from running instances.Those data help us prioritize our developments and focus on what's important for our users (for example, which provider is popular, and which is not).

    What's collected / when ?

    Once a day (the first call begins 10 minutes after the start of Traefik), we collect:

    • the Traefik version number
    • a hash of the configuration
    • an anonymized version of the static configuration (token, user name, password, URL, IP, domain, email, etc, are removed).

    Note

    We do not collect the dynamic configuration information (routers & services).We do not collect these data to run advertising programs.We do not sell these data to third-parties.

    Example of Collected Data

    Original configuration

    1. [entryPoints]
    2. [entryPoints.web]
    3. address = ":80"
    4. [api]
    5. [providers.docker]
    6. endpoint = "tcp://10.10.10.10:2375"
    7. exposedByDefault = true
    8. swarmMode = true
    9. [providers.docker.TLS]
    10. ca = "dockerCA"
    11. cert = "dockerCert"
    12. key = "dockerKey"
    13. insecureSkipVerify = true

    Resulting Obfuscated Configuration

    1. [entryPoints]
    2. [entryPoints.web]
    3. address = ":80"
    4. [api]
    5. [providers.docker]
    6. endpoint = "xxxx"
    7. exposedByDefault = true
    8. swarmMode = true
    9. [providers.docker.TLS]
    10. ca = "xxxx"
    11. cert = "xxxx"
    12. key = "xxxx"
    13. insecureSkipVerify = false

    The Code for Data Collection

    If you want to dig into more details, here is the source code of the collecting system: collector.go

    By default we anonymize all configuration fields, except fields tagged with export=true.