ProVouchers

Metrics and Telemetry

What ProVouchers reports, why, and how to opt out.

ProVouchers submits pseudonymous, aggregate usage statistics through bStats and FastStats. The data helps prioritise which platforms, integrations, and features to invest in. It is enabled by default and can be turned off with a single setting.

Metrics are aggregate and non-identifying. No player names, UUIDs, IP addresses, voucher contents, or command output ever leave the server. Everything below is either a server-wide count or a coarse category.

Opting out

Set metrics.enabled to false in config.yml and restart the server:

config.yml
metrics:
  enabled: false

This disables every chart and both providers at once.

What is collected

The same definitions are reported to bStats and FastStats. Charts fall into two groups: a snapshot of how the plugin is configured, and counts of activity since the server started.

Environment and configuration

Read from the loaded configuration on each submission.

ChartMeaning
storage_backendWhich database backend is in use (sqlite, mysql, mariadb, postgres).
active_integrationsWhich optional integrations are installed (Vault, PlaceholderAPI, LuckPerms, WorldGuard, ItemsAdder, Oraxen, Nexo, Head Database, MiniPlaceholders).
loaded_vouchers / loaded_codesHow many vouchers and codes are loaded.
voucher_count_bucket / code_count_bucketThe same totals as a coarse range (0, 1-5, 6-20, 21-50, 51-100, 100+).
most_common_rewardThe most-used reward type across all configured vouchers and codes.
reward_types_usedThe distribution of reward types in your configuration.
condition_types_usedWhich condition types you gate redemptions behind.
item_providers_usedWhere voucher items come from (vanilla, player-head, or a custom provider).
uses_random_rewardsWhether any voucher or code uses weighted random reward sets.
uses_cooldownsWhether any voucher sets a cooldown.
uses_expiryWhether any voucher or code sets an expiry.
uses_conditionsWhether any voucher or code gates on conditions.

Activity

Each report carries the increase since the previous report, so the charts read as activity per interval rather than a line that climbs with uptime. They never contain anything about who redeemed what.

ChartMeaning
redemptionsTotal successful redemptions.
voucher_redemptions / code_redemptionsThe split between item vouchers and typed codes.
dupes_blockedDuplicate voucher items rejected by anti-dupe.
condition_denialsRedemptions blocked because a condition failed.
top_reward_grantedThe reward type granted most often.

Where the data goes

  • bStats publishes a public page per plugin, with the charts above rendered as graphs.
  • FastStats receives the same definitions.

Each chart is defined once and reported to both backends, and the single metrics.enabled switch governs both.

Checking it works

Run /voucher doctor. Its Metrics line reports what each backend is doing:

Metrics: bStats on, FastStats bukkit 0.30.2 on (errors on)
ReadsMeaning
off (metrics.enabled: false)Turned off in config.yml. Nothing is collected.
not startedMetrics are on, but no backend started. The console logs why at startup.
bStats not startedbStats failed to start, usually no network at startup.
FastStats opted out on this serverOpted out in config/faststats/config.properties, or started with -Dfaststats.enabled=false.
FastStats not submitting metricsFastStats runs but its metrics submission is off in that file.
(errors off)Error reports are not sent, either by that file or because the service did not start.

FastStats submits nothing on a brand new server: the first start writes config/faststats/config.properties, and submission begins on the next start. A first run showing on is normal and correct.

To watch it submit, start the server with -Dfaststats.debug=true. The console then logs the FastStats context on startup and each submission as it is sent. On a test or development server, start with -Dfaststats.enabled=false instead, so its data stays out of the live project.

On this page