Project

General

Profile

Project management #19743

Intégration de Matomo (ex Piwik), outil de statistiques de consultation

Added by Pierre Cros almost 2 years ago. Updated 4 months ago.

Status:
Solution déployée
Priority:
Normal
Assignee:
Category:
Statistiques, BI (BI-Joe)
Target version:
Start date:
29 Oct 2017
Due date:
% Done:

0%

Patch proposed:
No
Planning:
No
Demande du club utilisateur:
No

Description

Intégrer Piwik dans l'offre de base de Publik

0001-matomo-correct-README-file-19743.patch View (932 Bytes) Nicolas Roche, 27 Mar 2019 06:08 PM

0002-matomo-manage-matomo-s-webservices-19743.patch View (31.7 KB) Nicolas Roche, 27 Mar 2019 06:08 PM

0003-matomo-dedicated-ihm-for-manual-configuration-19743.patch View (14.7 KB) Nicolas Roche, 27 Mar 2019 06:08 PM

0004-matomo-manage-automatic-configuration-19743.patch View (9.53 KB) Nicolas Roche, 27 Mar 2019 06:08 PM


Related issues

Related to Hobo - Bug #21474: PIWIK_COMMAND dans les setttings des worker est mal nommé Fermé 29 Jan 2018

History

#1 Updated by Pierre Cros almost 2 years ago

  • Category set to Statistiques, BI (BI-Joe)

#2 Updated by Josué Kouka almost 2 years ago

  • Assignee set to Josué Kouka

#3 Updated by Frédéric Péters over 1 year 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

#4 Updated by Josué Kouka over 1 year ago

  • Related to Bug #21474: PIWIK_COMMAND dans les setttings des worker est mal nommé added

#5 Updated by Christophe Siraut about 1 year 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?

#6 Updated by Josué Kouka about 1 year 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.

#7 Updated by Christophe Siraut about 1 year 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.

#9 Updated by Frédéric Péters about 1 year 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

#10 Updated by Christophe Siraut 6 months 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)

#11 Updated by Frédéric Péters 6 months 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)

#12 Updated by Frédéric Péters 6 months 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 (), 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.

#13 Updated by Nicolas Roche 6 months ago

  • Assignee set to Nicolas Roche

#14 Updated by Nicolas Roche 5 months 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>

#16 Updated by Frédéric Péters 5 months ago

Utilise plutôt le jeton d'accès à l'API.

#18 Updated by Nicolas Roche 5 months ago

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...)

#19 Updated by Frédéric Péters 5 months 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 à '' 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.

#20 Updated by Frédéric Péters 5 months ago

  • Category deleted (Statistiques, BI (BI-Joe))
  • Project changed from Publik to Hobo
  • Target version deleted (2019)

#21 Updated by Frédéric Péters 5 months ago

  • Patch proposed changed from Yes to No
  • Tracker changed from Development to Project management
  • Project changed from Hobo to Publik
  • Status changed from Solution proposée to En cours
  • Target version set to 2019
  • Demande du club utilisateur 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.

#22 Updated by Frédéric Péters 5 months ago

  • Category set to Statistiques, BI (BI-Joe)

#23 Updated by Frédéric Péters 4 months ago

  • Status changed from En cours to Solution déployée

C'est désormais en recette.

Also available in: Atom PDF