You are not logged in.
Pages: 1
Bonjour tout le monde,
Utilisant GLPI depuis un certain temps, je peaufine chaque année mes compétences dessus afin d'améliorer le service HelpDesk de ma société.
Je m'attaque aujourd'hui a un sujet important pour moi qui est le reporting des tickets.
J'ai essayé de jongler avec les reportings de base ou avec des plugins comme "Dashboard" mais ils ne m'ont pas donnés satisfaction.
La méthode que nous utilisons actuellement est de faire une extraction des tickets par client en csv et de le travailler ensuite sur un excel.
Petit rappel pour se connecter à la base MariaDB avec Power BI :
1) Installation de Power BI Desktop sur une machine
2) Télécharger le connecteur ODBC pour MariaDB sur le site officiel (Même principe pour MySQL)
3) Lancer l'utiliataire "ODBC Data Source" depuis Windows
4) Selectionner le connecteur en question
5) Rentrer les informations demandées (dans mon cas)
- Nom a donner au connecteur
- IP du serveur et identifiant aillant les droits sur la base
- Un bouton test permet de tester la connexion
/!\ Si le test est en erreur vérifier que le pare-feu (côté client et serveur) laisse passer le port MYSQL (par défaut 3306). Dans mon cas c'était le pare-feu de Centos qui le bloquait.
- Si le test réussi un message vous l'indique et vous pouvez choisir votre base
6) Lancer Power Bi Desktop
7) Choisir ensuite "ODBC" dans le menu "Get Data". Une fenetre s'ouvre et vous n'avez plus qu'à selectionner votre connecteur que vous venez de créer.
8) Enjoy !
Les tables sur lesquelles je travaille pour le moment sont :
- glpi_tickets
- glpi_entities
- glpi_users
Création de mon premier report qui comporte les informations suivantes :
Nom de l'entitité | Nombre de ticket | Année | Charge totale
Création des jointures entre les trois tables :
Résultat du tableau avec les filtres en place :
Je vais continuer mes tests mais auriez une idée pour convertir la colonne "actiontime" en charge (1h=1, 30 minutes=0,5) ? Est ce que je suis obligé de créer une nouvelle colonne quelque part avec une formule dedans ?
Merci d'avance pour votre aide
Last edited by Robin MATHE (2020-01-05 14:37:13)
=================
GLPI : 10.0.7
OS : Debian 11
GlpiInventory : 1.2.1
Offline
Peso, j'ai fait une table dérivée uniquement, avec donc une requête personnalisée, afin d'avoir les colonnes avec les infos qui m’intéressent.
Manger un castor, c'est sauver un arbre.
Quand on est mort, on ne sait pas qu'on est mort ; c'est pour les autres que c'est difficile. Quand on est con, c'est pareil !
Offline
Je reviens sur mon topic pour indiquer que j'ai reussi a faire ce que je souhaitais avec PowerBi.
Il a fallut créer de nouvelles tables pour rajouter les valeurs manquantante a mes requetes.
Last edited by Robin MATHE (2020-04-03 19:05:43)
=================
GLPI : 10.0.7
OS : Debian 11
GlpiInventory : 1.2.1
Offline
perso, j'ai une table dérivée avec la requête qui me transforme les données voulues (notamment ajout de plage horaire).
SELECT distinct glpi_tickets.id ID,
glpi_itilcategories.name Categorie,
case glpi_tickets.type when 1 then "Incident" else "Demande" end as Type,
glpi_itilcategories.completename Categorie_cplte,
case glpi_itilcategories.level
when 1 then glpi_itilcategories.name
else substr(glpi_itilcategories.completename,1,instr(glpi_itilcategories.completename, ">")-2)
end as cat_mere,
case
when time(glpi_tickets.date)="00:00:00" then glpi_tickets.Date_creation
else glpi_tickets.date
end Date,
date_format(glpi_tickets.date,"%H:%i") heure_ticket,
case
when date_format(glpi_tickets.date,"%H:%i") < 08 then "Avant 8h"
when date_format(glpi_tickets.date,"%H:%i") between 08 and "09:59" then "8h-10h"
when date_format(glpi_tickets.date,"%H:%i") between 10 and "11:59" then "10h-12h"
when date_format(glpi_tickets.date,"%H:%i") between 12 and "13:59" then "12h-14h"
when date_format(glpi_tickets.date,"%H:%i") between 14 and "15:59" then "14h-16h"
when date_format(glpi_tickets.date,"%H:%i") between 16 and "17:59" then "16h-18h"
else "Après 18h" end Plage_heure,
glpi_tickets.Date_creation,
glpi_tickets.solvedate Date_resolution,
date_format(glpi_tickets.solvedate,"%H:%i") heure_resolution,
case
when date_format(glpi_tickets.solvedate,"%H:%i") < 08 then "Avant 8h"
when date_format(glpi_tickets.solvedate,"%H:%i") between 08 and "09:59" then "8h-10h"
when date_format(glpi_tickets.solvedate,"%H:%i") between 10 and "11:59" then "10h-12h"
when date_format(glpi_tickets.solvedate,"%H:%i") between 12 and "13:59" then "12h-14h"
when date_format(glpi_tickets.solvedate,"%H:%i") between 14 and "15:59" then "14h-16h"
when date_format(glpi_tickets.solvedate,"%H:%i") between 16 and "17:59" then "16h-18h"
when date_format(glpi_tickets.solvedate,"%H:%i") is NULL then ""
else "Après 18h" end Plage_heure_resolution,
glpi_tickets.priority Priorite,
glpi_groups.completename Groupe,
glpi_requesttypes.name Origine,
glpi_slas.name type_SLA,
glpi_tickets.time_to_resolve date_pour_resoudre,
glpi_slas.number_time nbre_jours_prevu_SLA,
glpi_tickets.solve_delay_stat temps_resolution,
glpi_tickets.takeintoaccount_delay_stat temps_de_prise_en_compte,
glpi_tickets.waiting_duration temps_attente,
glpi_tickets.begin_waiting_date debut_attente,
case glpi_tickets.status
when 1 then "Nouveau"
when 2 then "Attribué"
when 3 then "planifié"
when 4 then "En attente"
when 5 then "Résolu"
else "Clos"
end Status,
solution.name solution,
glpi_tickets.name ticket,
case
when solvedate < time_to_resolve then 'OK'
else 'NOK'
end as SLA,
case
when substr(sec_to_time(solve_delay_stat),-5) ='00:00' then 'Non résolu'
when hour(sec_to_time(solve_delay_stat)) < '01' then '< 1h'
when hour(sec_to_time(solve_delay_stat)) < '04' then '< 4h'
when hour(sec_to_time(solve_delay_stat)) < '24' then '< 1jr'
when hour(sec_to_time(solve_delay_stat)) < '48' then '< 2jrs'
/* when hour(sec_to_time(solve_delay_stat)) < '72' then '< 3jrs'
when hour(sec_to_time(solve_delay_stat)) < '96' then '< 4jrs'
when hour(sec_to_time(solve_delay_stat)) < '110' then '< 5jrs'*/
else '> 2jrs'
end as periode_resolution,
case
when sec_to_time(takeintoaccount_delay_stat)<'00:15:00' then '< 15 min'
when sec_to_time(takeintoaccount_delay_stat)<'00:30:00' then '< 30 min'
when sec_to_time(takeintoaccount_delay_stat)<'01:00:00' then '< 1h'
else '> 1h'
end as temps_prise_en_charge
FROM ((((((glpi_tickets LEFT JOIN glpi_slas ON glpi_tickets.slas_id_ttr = glpi_slas.id)
LEFT JOIN glpi_itilcategories ON glpi_tickets.itilcategories_id = glpi_itilcategories.id)
LEFT JOIN glpi_groups_tickets ON glpi_tickets.id = glpi_groups_tickets.tickets_id)
LEFT JOIN glpi_groups ON glpi_groups_tickets.groups_id = glpi_groups.id)
LEFT JOIN glpi_requesttypes ON glpi_tickets.requesttypes_id = glpi_requesttypes.id)
LEFT JOIN (select a.items_id, b.name name from glpi.glpi_itilsolutions a,glpi.glpi_solutiontypes b where b.id=a.solutiontypes_id) solution on glpi_tickets.id=solution.items_id)
where glpi_tickets.entities_id=0
-- and glpi_tickets.date >= '2018-01-01 00:00:00' and glpi_tickets.date <= '2019-12-31 23:59:59'
and glpi_tickets.is_deleted=0
ORDER BY glpi_tickets.id DESC
j'ai d'autres tables dérivées avec des requêtes similaires qui interroge notamment les tables du plugin formcreator pour aller y rechercher les données saisies par l'utilisateur a des fins statistiques pour les métiers (RH, moyens généraux et SIG)
Last edited by Sico31 (2020-04-03 12:04:23)
Manger un castor, c'est sauver un arbre.
Quand on est mort, on ne sait pas qu'on est mort ; c'est pour les autres que c'est difficile. Quand on est con, c'est pareil !
Offline
Voici la vu et les liaisons que j'ai fait dans PowerBi :
J'ai pu ensuite créer des rapports personnalisés en fonction de mes clients. Exemple :
Il reste encore a renommer certains noms afin d'avoir quelque chose de propre.
=================
GLPI : 10.0.7
OS : Debian 11
GlpiInventory : 1.2.1
Offline
Bonjour,
je me penche sur votre tuto afin de créer certains rapport est il possible d'avoir votre modèle afin de l'analyser
merci
Offline
Bonjour,
Malheureusement mon template rattache des données de l'entreprise. Quel rapport voulez vous créer ?
Last edited by Robin MATHE (2020-04-08 19:52:42)
=================
GLPI : 10.0.7
OS : Debian 11
GlpiInventory : 1.2.1
Offline
Celui de l’exemple me paraît pas mal.
Offline
Rien de plus simple , pour se faire il faut :
- Commencer par rattacher PowerBI a la base GLPI.
- Créer les liaisons entre les tables de ton choix dans PowerBI.
- Créer les graphiques en fonction de ton besoin.
La seule customisation que j'ai faite est la table contrat que j'ai créé pour mon besoin et la notion de semaine.
Si tu bloque a une étape fait le moi savoir.
Last edited by Robin MATHE (2020-04-09 16:33:44)
=================
GLPI : 10.0.7
OS : Debian 11
GlpiInventory : 1.2.1
Offline
Bonsoir,
J'ai essayé de recréer la même structure de champs que toi mais il me manque glpi_ticket_type et glpi itilcatégorie et maintenant pour créer les graphiques je ne sais pas comment faire.Quelles données prendre pour créer ton modèle.
Offline
Bonjour robin,
Peut être pourrais tu m'aider pour créer un graphique genre nombre de tickets ouvert sur une période données avec un moyenne par rapport l'année passée.
merci
Offline
Hello Doubleve,
Pour les tables j'ai oublié de préciser mais il y en a que j'ai créé pour mon besoin comme "glpi_ticket_type". Elle me permet d'afficher le type "incident" ou "demande" au lieu des chiffres "1" et "2" que propose la table "glpi_tickets". Concernant la table "glpi_itilcatégories" celle-ci est présente dans GLPI.
Tu as réussi à avancer concernant la création de ton graphe ? Tu as pu afficher quoi pour le moment ?
Last edited by Robin MATHE (2020-04-16 11:18:18)
=================
GLPI : 10.0.7
OS : Debian 11
GlpiInventory : 1.2.1
Offline
Je reviens sur mon topic pour indiquer que j'ai reussi a faire ce que je souhaitais avec PowerBi.
Il a fallut créer de nouvelles tables pour rajouter les valeurs manquantante a mes requetes.
Bonjour Robin,
Serait-il possible d'échanger sur ces fameuses tables connex que tu as pu créer ?
Merci par avance
Offline
perso, nous avons en test actuellement Grafana (version free on premise) qui permet de réaliser différent dashboard et tableaux de bord en attaquant directement la base GLPI. La construction de chaque tableau se faisant soit via l'editeur intégré, soit via des requêtes SQL. L'outil est assez puissant et extremement réactif.
j'ai pu croiser les données GLPI avec celle d'airwatch (sql server) sans probleme
j'étudie aussi la même chose mais avec Metabase qui inclut "nativement" le connecteur oracle (contrairement à grafana où le connecteur oracle demande une licence Entreprise à 40K€)
Manger un castor, c'est sauver un arbre.
Quand on est mort, on ne sait pas qu'on est mort ; c'est pour les autres que c'est difficile. Quand on est con, c'est pareil !
Offline
Bonjour Robin,
Serait-il possible d'échanger sur ces fameuses tables connex que tu as pu créer ?
Merci par avance
Bonjour ByGgoCap,
Que souhaites tu faire exactement ?
Robin.
=================
GLPI : 10.0.7
OS : Debian 11
GlpiInventory : 1.2.1
Offline
Bonjour Robin,
je test aussi le reporting sur Power BI, je dois faire du reporting mensuel pour mon équipe.
je ne trouve pas le champs qui dit que le ticket est attribué à un technicien, l'avez-vous identifié?
Merci par avance.
GLPI 9.4.0
FusionInventory
Ubuntu 18.04 LTS
Offline
Pages: 1