Gestion de projet #19743
Intégration de Matomo (ex Piwik), outil de statistiques de consultation
0%
Description
Intégrer Piwik dans l'offre de base de Publik
Files
Related issues
History
Updated by Frédéric Péters about 7 years ago
- Subject changed from Intégration de Piwik, outil de statistiques de consultation to Intégration de Matomo (ex Piwik), outil de statistiques de consultation
Updated by Josué Kouka about 7 years ago
- Related to Bug #21474: PIWIK_COMMAND dans les setttings des worker est mal nommé added
Updated by Christophe Siraut almost 7 years ago
Salut Josué, peux-tu nous faire un bilan de ce qui est accompli est ce qui reste à faire pour intégrer Matomo aux instances clientes?
Updated by Josué Kouka almost 7 years ago
Christophe Siraut a écrit :
Salut Josué, peux-tu nous faire un bilan de ce qui est accompli est ce qui reste à faire pour intégrer Matomo aux instances clientes?
Il y'a une agent hobo qui a été dévelopé http://git.entrouvert.org/hobo.git/tree/debian/piwik/piwik-manage. Mais on a jamais rien déployé chez un client.
Updated by Christophe Siraut almost 7 years ago
- Assignee changed from Josué Kouka to Christophe Siraut
ok, je vais un peu reprendre le dossier. 1ère phase: analyse des modifications depuis piwik et faire un plan d'utilisation de matomo pour plusieurs tenants.
Updated by Frédéric Péters almost 7 years ago
Pour reprendre le fonctionnement imaginé, le serveur piwik reçoit les messages rabbitmq, quand dans hobo on déclare un service piwik il y a donc un message chopé par l'agent. L'agent regarde/crée un objet "Site" Piwik et l'associe à une floppée d'utilisateurs (adresses fournies par Hobo, pas de SSO).
Sur le côté multitenant, de manière native on crée donc un objet "Site" et ça assure le nécessaire (certes en utilisant tout le temps le même nom de domaine mais je ne pense pas ça bien grave).
Côté packaging il y avait debian.piwik.org et pour matomo il y a ce ticket : https://github.com/matomo-org/matomo-package/issues/62
Updated by Christophe Siraut about 6 years ago
- Assignee deleted (
Christophe Siraut)
Je laisse la main à Fred.
Je n'ai pas beaucoup avancé sur le fond, seulement installé 2 instances dans des conteneurs modernes, voir Piwik. L'instance de test est utilisée pour la recette de Toulouse. Un peu analysé les scenarii et compris qu'une automatisation via l'API matomo peut facilement ajouter des objets websites. (Par contre l'ajout d'instances matomo par client n'est pas prévue dans la version gratuite)
Updated by Frédéric Péters about 6 years ago
Sur ce même commentaire, je corrigeais en [[sysadmin:Piwik]] et posais la question "encore rien sur matomo.entrouvert.org ?", et Christophe éditait pour écrire "rien, sauf un cname qui pointe vers roquette et un conteneur vierge."
(je note ça parce que ça faisait un historique bizarre) (ça a donné #31011)
Updated by Frédéric Péters about 6 years ago
Nouveau plan :
- dans hobo un écran de configuration "statistiques de visite", qui contiendrait
- deux boutons, un bouton pour la configuration automatique et un bouton pour ouvrir la configuration manuelle
- la configiruation manuelle c'est une case à cocher "suivi des recommandations CNIL" et un textarea pour copier/coller du js
- pour accompagner ça un ou deux paragraphes pour rappeler un peu les règles CNIL, peut-être expliciter qu'ainsi il n'y a rien à consentir et donc pas de bandeau, et un lien vers le site de la cnil.
- évidemment quand dans le js il y a une référence google, ça désactive la case "suivi des recommandations CNIL"
- tout ça pose simplement cnil_compliant_visits_tracking_js ou visits_tracking_js.
- le clic sur le bouton "configuration automatique", il fait des appels à l'API de piwik/matomo
- SitesManager.addSite(siteName, urls = '', etc.) (https://developer.matomo.org/api-reference/reporting-api#SitesManager)
- UsersManager.addUser(userLogin, password, email, initialIdSite='')
- en userlogin le nom du tenant, en password un truc généré à la volée, en email il faut vérifier si ça doit être unique ou pas, mais genre ça peut être (noreply+whatever@entrouvert.com), en initiialIdSite ce qu'on aura reçu à l'appel précédent
- on stocke le site id et le mot de passe (dans des variables hobo)
- on tape dans cnil_compliant_visits_tracking_js le js de suivi, qu'on peut obtenir via SitesManager.getJavascriptTag(...)
- quand on a site id et mot de passe, on peut utiliser l'action logme pour taper sur la page un lien emmenant directement l'utilisateur sur le piwik (cf https://matomo.org/faq/how-to/faq_30/)
- ainsi on n'a pas besoin de communiquer d'identifiant ou de mot de passe
- évidemment il y a des gens qui n'ont pas accès à hobo qui voudront également aller sur le piwik, là comme réponse c'est que ce lien, il peut être posé dans une cellule sur le portail agent.
Updated by Nicolas Roche almost 6 years ago
Pour info, j'ai un problème avec les services web sur le serveur de test (en prod ça fonctionne bien) :
$ curl -u 'xx:yy' 'https://matomo-test.entrouvert.org/?module=API&method=SitesManager.getSiteFromId&idSite=1' <?xml version="1.0" encoding="utf-8" ?> <result> <error message="You can't access this resource as it requires 'view' access for the website id = 1." /> </result> $ curl -u 'xx:yy' 'https://matomo-test.entrouvert.org/?module=API&method=UsersManager.getUser&userLogin=entrouvert' <?xml version="1.0" encoding="utf-8" ?> <result> <error message="The user has to be either a Super User or the user 'entrouvert' itself." /> </result>
Updated by Nicolas Roche almost 6 years ago
- File 0001-matomo-correct-README-file-19743.patch 0001-matomo-correct-README-file-19743.patch added
- File 0002-matomo-manage-matomo-s-webservices-19743.patch 0002-matomo-manage-matomo-s-webservices-19743.patch added
- File 0003-matomo-dedicated-ihm-for-manual-configuration-19743.patch 0003-matomo-dedicated-ihm-for-manual-configuration-19743.patch added
- File 0004-matomo-manage-automatic-configuration-19743.patch 0004-matomo-manage-automatic-configuration-19743.patch added
- Status changed from Nouveau to Solution proposée
- Patch proposed changed from No to Yes
Merci Fred pour les spécifications détaillées.
- Pour le nom du tenant j'ai pris le nom de domaine du portail usager :
"combo.dev.publik.love" par exemple.
- Pas d'API Matomo pour retrouver un site par rapport à un identifiant externe,
ou en d'autres termes : ajouter 2 fois le même site ne sort pas en erreur.
Du coup je stocke l'ID en base (il y a doublon dans piwik si l'id est modifié en base)
- J'ai stocké le mot de passe matomo du client en clair dans la base.
Puisque l'on met à disposition une url pour se loguer et donc qu'à priori
on ne souhaite pas communiquer ce mot de passe, j'aurais pu stocker son md5.
Svp, je prends toutes vos remarques (specs, pep8, gestion des erreurs, IHM, tests...)
Updated by Frédéric Péters almost 6 years ago
(commentaires en vrac, commit par commit, sans avoir testé)
hobo/matomo/README
Doit être écrit en anglais, mais plutôt que se trouver là ça pourrait directement se trouver dans hobo/settings.py, au-dessus d'une initialisation à {} du paramètre.
MATOMO_FEED
Peut-être plutôt nommer ça MATOMO_SERVER ?
get_matomo_settings
Je zapperais totalement cette méthode et accèderait directement à settings.MATOMO_SERVER.
_parse_response, _raise_on_error
On n'a pas de règle stricte sur le sujet mais dans la pratique on préfixe rarement de _ les méthodes.
email = 'noreply_' + user_login + '@entrouvert.com'
Plutôt 'noreply+' que 'noreply_', histoire d'obtenir une adresse qui existe. Mais peut-être définir dans settings.MATOMO_SERVER un paramètre supplémentaire EMAIL_TEMPLATE (qu'on mettrait nous à 'noreply+%s@entrouvert.com' mais qu'une installation ailleurs pourrait vouloir différent).
get_and_normalise_javascript_tag
Je ne comprends à première vue pas le rôle de la partie CNIL_JS, ce n'est pas du code qu'on met dans nos installations; c'est quelque part une recommandation CNIL d'ajouter ça ?
compute_cnil_acknowledgment_level
Ok je comprends l'intention ici (surtout en suivant derrière 0003 et en relisant mon commentaire initial…). Comme c'est seulement utilisé dans le commit qui suit je l'y aurais déplacé, mais pas bien important.
<h2>Matomo</h2>
Et ailleurs, ça peut plutôt être {% trans "User tracking" %} ou une variation, plutôt que citer un nom de logiciel, ce qui ne sera pas évident pour les gens.
Les outils de mesures d’audience sont déployés afin d’obtenir des informations (...)
Il y a ce bout en français qui est venu se coller dans le {% blocktrans %}.
<div class="errornotice">suivi des recommandations CNIL
À traduire aussi et de préférence ne pas utiliser le même texte pour les trois situations (genre mettre "Excellent respect of user rights", "Good respect of user rights", "No respect for user rights"). (en se disant toujours qu'on n'est pas obligé de taper parfait pour les chaines en anglais, qu'on pourra aviser/adapter dans le fichier de traduction).
tracking_js = get_variable('cnil_compliant_visits_tracking_js').value
context['cnil_ack_level'] = compute_cnil_acknowledgment_level(tracking_js)
Attention aujourd'hui on peut avoir soit une variable "cnil_compliant_visits_tracking_js" soit une variable "visits_tracking_js" (dans le cas Google, et ça provoquera l'affichage d'un bandeau de consentement). (ce commentaire est valable aussi quelques lignes plus haut, quand on écrit la valeur).
0004
Il y a dedans des bouts qui semblent juste changer l'indendation, ça serait plutôt à aller dans 0003. (mais je pense que 0003 et 0004 peuvent être réunis en un seul commit).
{% trans "Matomo login url" %} :
URL en majuscule mais pour reprendre une note passée, plutôt avoir {% trans "Open visits tracking dashboard" %}, par exemple. Aussi ça aurait sa place comme lien à droite du titre appbar/h2, dans le <span class="actions">.
{% trans "Untrack me code" %} :
Ça n'est pas accessible dans Matomo même ? (parce que je zapperais bien ça ici).
~~
Voilà pour cette lecture mais déjà en l'état je pense que je peux tester en vrai, chouette.
Updated by Frédéric Péters almost 6 years ago
- Project changed from Publik to Hobo
- Category deleted (
Statistiques) - Target version deleted (
2019)
Updated by Frédéric Péters almost 6 years ago
- Tracker changed from Développement to Gestion de projet
- Project changed from Hobo to Publik
- Status changed from Solution proposée to En cours
- Target version set to 2019
- Patch proposed changed from Yes to No
- Club set to No
Je le redéplace côté Publik pour qu'il ne sorte pas de la roadmap/version cible; du coup j'ai créé #31778 pour la suite des discussions sur les patchs, désolé pour le changement de numéro de ticket que ça amène.
Updated by Frédéric Péters almost 6 years ago
- Status changed from En cours to Solution déployée
C'est désormais en recette.