MetrikStack
Sources

Bunny

Bunny CDN as a source, through Log Forwarding. One form to fill in, no code.

Bunny feeds analytics through Log Forwarding. Bunny sends its access log to MetrikStack as it happens, so every request is seen, including cache hits. There is no script, no edge code and nothing to deploy: you fill in one form in the bunny.net panel.

Set up Log Forwarding

  1. In the MetrikStack dashboard, add a source of kind Bunny edge to your site and copy its ingest token.
  2. In bunny.net, open your Pull Zone, go to Logging and turn on Log Forwarding.
  3. Fill in the form:
FieldValue
Hostnamelogs.metrikstack.com
Port6514
ProtocolTCP encrypted
Tokenthe ingest token of your source
FormatPlain text
  1. Save. Bunny forwards with a delay of up to half a minute, so the first pageviews appear in the dashboard within about a minute of the next visit.

The token is what ties the log lines to your site. Treat it like a password: anyone who has it can send pageviews to your site. If it leaks, rotate it in the dashboard and update the form.

Protocol

Only TCP encrypted works. Log lines contain visitor IP addresses, so MetrikStack does not accept UDP or plain TCP at all; with either of those nothing arrives.

Format

Use Plain text. JSON is accepted as well, but plain text is the format Bunny documents and the one we test against.

What counts

Only GET and HEAD requests for pages become pageviews. Assets (scripts, styles, images, fonts and the like), redirects and lines that cannot be read are skipped. Bots are recognised by their user agent and kept out of your visitor numbers, as with every other source.

Background requests a framework makes for a page are skipped too: the data fetches of Next.js (link prefetching and in-app navigation) and Remix are not pageviews.

Single-page apps

A log only contains what reaches the CDN. On a site that navigates in the browser without loading a new document (Next.js, Remix, Nuxt and similar), Bunny sees the first page of a visit and not the pages after it. Visitors and entry pages are accurate; pageviews per visit come out low. Add the browser script next to the Bunny source to count in-app navigation as well. Requests seen by both are merged, not counted twice.

Bunny's IP anonymization

Bunny anonymizes IP addresses in its logs by default. You can leave that on.

Bunny settingEffect in MetrikStack
Remove last octet (Bunny's default)Recommended. Country and region stay accurate, city is slightly less precise. Visitors who share a network and use the identical browser can be counted as one, so unique visitors come out marginally low. Pageviews are unaffected.
Full IP addressesThe most precise visitor counts. Bunny only offers this after you sign its Data Processing Agreement.
Drop allNot recommended. Every visitor with the same browser looks identical, so unique visitors and sessions collapse. Pageviews and the country (which Bunny reports separately) still work.

Whichever you choose, MetrikStack uses the address only to derive the location and the daily visitor hash, and discards it within milliseconds. It is never stored and never written to a log. See Privacy & data retention.

Troubleshooting

  • Nothing arrives. Check the protocol is TCP encrypted and the port is 6514, that the token has no spaces around it, and that the source is active in the dashboard.
  • Fewer pageviews than expected. Assets, redirects and bots are not pageviews. Compare with Bunny's request count for HTML pages only.
  • Combining with the browser script. That works; duplicates are merged. See Merging sources.

If you would rather receive Bunny's syslog yourself (for buffering, or to send the log to more than one place), see the relay setup in Access logs.

On this page