Collection de Metrics
La collection des metrics des serveurs qui utilisent votre plugin peut être un outil incroyablement utile pour savoir quelle direction votre plugin doit prendre. Cependant, les Directives de Soumission de Plugins Ore (dans Connexions Externes) stipulent que les plugins peuvent seulement collecter des metric si le consentement informé a été accordé. Ce consentement doit être opt-in, la collection de metrics doit être désactivée par défaut.
Pour simplifier la collecte du consentement, Sponge fournit une API qui permet aux plugins de vérifier ce consentement d’une manière centrale.
Le consentement de la collection des metrics se fait plugin par plugin. Les plugins ne doivent pas assumer que le consentement pour un plugin signifie le consentement pour tous.
Obtenir Le Consentement
Afin de gagner le consentement des gérants des serveurs, les plugins peuvent demander que les gérants des serveurs activent les metrics. Cela peut se faire de la forme d’un message au démarrage indiquant aux joueurs qu’ils peuvent activer les metrics en modifiant l’option adéquate dans les fichiers de configuration. SpongeForge et SpongeVanilla fournissent également la commande /sponge metrics <pluginid> enable
.
Les plugins peuvent demander aux gérants des serveurs d’exécuter la commande ou permettre de l’activer en « un clic » en jeu.
Avertissement
Les plugins ne peuvent pas exécuter la commande /sponge metrics <pluginid> enable
sans avoir un consentement informé d’un gérant du serveur. Faire ceci provoquera un rejet du plugin de la plateforme Ore.
Note
La commande /sponge metrics
est seulement garantie d’être présente dans les implémentations de serveurs SpongeForge
et SpongeVanilla
. D’autres implémentations, comme Lantern
, peuvent ne pas inclure cette commande.
Vérification du Consentement
Le MetricsConfigManager vous permet de déterminer si votre plugin a gagné le consentement pour envoyer les metrics. Il peut être soit injecté dans la classe de votre plugin, soit obtenu sur demande via l’objet Sponge#getMetricsConfigManager().
À chaque fois que votre plugin souhaite envoyer des metrics, vous devez vérifier le MetricsConfigManager#getCollectionState(PluginContainer), en fournissant le PluginContainer de votre plugin. Les metrics doivent seulement être envoyées si cette méthode retourne Tristate#TRUE
pour votre plugin.
L’exemple suivant montre comment utiliser l’injection de champ pour obtenir le MetricsConfigManager
et le PluginContainer
pour votre plugin, et les utilise pour déterminer si le consentement pour envoyer les metrics a été obtenu.
Exemple
import com.google.inject.Inject;
import org.spongepowered.api.plugin.PluginContainer;
import org.spongepowered.api.util.metric.MetricsConfigManager;
@Inject
private PluginContainer container;
@Inject
private MetricsConfigManager metricsConfigManager;
public boolean hasConsent() {
return this.metricsConfigManager.getCollectionState(this.container).asBoolean();
}