Projet

Général

Profil

Project management #19743

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

Ajouté par Pierre Cros il y a plus de 6 ans. Mis à jour il y a plus de 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
Statistiques
Version cible:
Début:
29 octobre 2017
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non
Club:
Non

Description

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


Fichiers


Demandes liées

Lié à Hobo - Bug #21474: PIWIK_COMMAND dans les setttings des worker est mal nomméFermé29 janvier 2018

Actions

Historique

#1

Mis à jour par Pierre Cros il y a plus de 6 ans

  • Catégorie mis à Statistiques
#2

Mis à jour par Josué Kouka il y a plus de 6 ans

  • Assigné à mis à Josué Kouka
#3

Mis à jour par Frédéric Péters il y a environ 6 ans

  • Sujet changé de Intégration de Piwik, outil de statistiques de consultation à Intégration de Matomo (ex Piwik), outil de statistiques de consultation
#4

Mis à jour par Josué Kouka il y a environ 6 ans

  • Lié à Bug #21474: PIWIK_COMMAND dans les setttings des worker est mal nommé ajouté
#5

Mis à jour par Christophe Siraut il y a presque 6 ans

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

Mis à jour par Josué Kouka il y a presque 6 ans

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

Mis à jour par Christophe Siraut il y a presque 6 ans

  • Assigné à changé de Josué Kouka à 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

Mis à jour par Frédéric Péters il y a presque 6 ans

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

Mis à jour par Christophe Siraut il y a environ 5 ans

  • Assigné à Christophe Siraut supprimé

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

Mis à jour par Frédéric Péters il y a environ 5 ans

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

Mis à jour par Frédéric Péters il y a environ 5 ans

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

Mis à jour par Nicolas Roche il y a environ 5 ans

  • Assigné à mis à Nicolas Roche
#14

Mis à jour par Nicolas Roche il y a presque 5 ans

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

Mis à jour par Frédéric Péters il y a presque 5 ans

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

#18

Mis à jour par Nicolas Roche il y a presque 5 ans

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

Mis à jour par Frédéric Péters il y a presque 5 ans

(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

Mis à jour par Frédéric Péters il y a presque 5 ans

  • Projet changé de Publik à Hobo
  • Catégorie Statistiques supprimé
  • Version cible 2019 supprimé
#21

Mis à jour par Frédéric Péters il y a presque 5 ans

  • Tracker changé de Development à Project management
  • Projet changé de Hobo à Publik
  • Statut changé de Solution proposée à En cours
  • Version cible mis à 2019
  • Patch proposed changé de Oui à Non
  • Club mis à Non

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

Mis à jour par Frédéric Péters il y a presque 5 ans

  • Catégorie mis à Statistiques
#23

Mis à jour par Frédéric Péters il y a presque 5 ans

  • Statut changé de En cours à Solution déployée

C'est désormais en recette.

#24

Mis à jour par Mikaël Ates il y a plus de 2 ans

  • Statut changé de Solution déployée à Fermé

Formats disponibles : Atom PDF