Aller au contenu principal
Version : Suivant

Collecte des données

Pour nous aider à améliorer sans cesse nos produits, nous collectons automatiquement des données concernant les statistiques d'utilisation des applications 4D Server. Les données collectées sont transférées sans incidence sur l'expérience utilisateur. Aucune information personnelle n'est collectée. Pour plus d'informations sur la politique de 4D en matière de protection des données personnelles, veuillez consulter cette page.

La section ci-dessous explique :

  • quelles sont les informations collectées,
  • où les informations sont stockées et quand elles sont envoyées à 4D,
  • comment désactiver la collecte automatique de données dans les applications client/serveur générées.

Informations collectées

Les données sont collectées lors des événements suivants :

  • démarrage de la base de données,
  • fermeture de la base de données,
  • démarrage du serveur web,
  • utilisation de fonctions spécifiques telles que php, open datastore, débogueur distant,
  • connexion client,
  • envoi de la collecte de données.

Certaines données sont également collectées à intervalles réguliers.

DataTypeNotes
appServerObjectObjet contenant des informations sur le serveur d'application
appServer.hitsNumberNombre de requêtes provenant de process internes
appServer.bytesInNumberOctets reçus par des process internes
appServer.bytesOutNumberOctets envoyés par des process internes
appServer.executionTimeNumberTemps d'exécution CPU pour les process internes
cacheMissBytesObjectNombre d'octets manqués dans le cache
cacheMissCountObjectNombre de lectures manquées dans le cache
cacheReadBytesObjectNombre d'octets lus à partir de la mémoire cache
cacheReadCountObjectNombre de lectures dans le cache
classUsageObjectNombre d'instances de certaines classes du langage
connectionSystemsCollectionSystème d'exploitation du client sans le numéro de build (entre parenthèses) et nombre de clients qui l'utilisent
databases[].cacheSizeNumberTaille du cache en octets
databases[].externalDatastoreOpenedNumberNombre d'appels à Open datastore
databases[].idNumberID de la base de données
databases[].internalDatastoreOpenedNumberNombre de fois où le datastore est ouvert par un serveur externe
databases[].maxConcurrent4DClientsNumberNombre maximum de sessions 4D Client simultanées (utilisant une licence 4D Client) sur l'intervalle de collecte
databases[].maxConcurrentRestSessionsNumberNombre maximal de sessions REST simultanées sur l'intervalle de collecte
databases[].maxConcurrentWebSessionsNumberNombre maximal de sessions Web simultanées (4DACTION et SOAP) sur l'intervalle de collecte
databases[].maximum4DClientConnectionsNumberNombre maximal de connexions de 4D Client au serveur
databases[].numberOfDistinctClientsNumberNombre distinct d'UUID persistants de clients sur l'intervalle de collecte
databases[].numberOfFieldsNumberNombre de champs
databases[].numberOfKeepRecordSyncInfoNumberNombre de tables dont l'option "Activer la réplication" est cochée
databases[].numberOfRecordsMaxNumberNombre total d'enregistrements
databases[].numberOfTablesNumberNombre de tables
databases[].qodly.webformsNumberNombre de webforms Qodly
databases[].remoteDebugger4DRemoteAttachmentsNumberNombre de rattachements au débogueur distant à partir d'un 4D distant
databases[].remoteDebuggerQodlyAttachmentsNumberNombre de rattachements au débogueur distant à partir de Qodly
databases[].remoteDebuggerVSCodeAttachmentsNumberNombre de rattachements au débogueur distant à partir de VS Code
databases[].structureHashText
databases[].uniqueIDTexte (chaîne hachée)Identifiant unique associé à la base de données (Hachage par roulement polynomial du nom de la base de données)
databases[].uptimeNumberTemps écoulé (en secondes) entre deux événements de collecte
databases[].uuidTextUUID de la base de données
databases[].webIPAddressesNumberNumberNombre d'adresses IP différentes ayant adressé une requête à 4D Server
databases[].webMaxScalableSessionsNumberNombre maximal de sessions évolutives sur le serveur
databases[].webScalableSessionsBooleanVrai si les sessions évolutives sont activées
dataSegment1.diskReadBytesObjectNombre d'octets lus dans le fichier de données
dataSegment1.diskReadCountObjectNombre de lectures dans le fichier de données
dataSegment1.diskWriteBytesObjectNombre d'octets écrits dans le fichier de données
dataSegment1.diskWriteCountObjectNombre d'écritures dans le fichier de données
dataSizeNumberTaille du fichier de données en octets
dbServerObjectObjet contenant des informations sur le serveur DB4D
dbServer.hitsNumberNombre de requêtes provenant de process internes
dbServer.bytesInNumberOctets reçus par des process internes
dbServer.bytesOutNumberOctets envoyés par des process internes
dbServer.executionTimeNumberTemps d'exécution CPU pour les process internes
encryptedConnectionsBooleanTrue si les connexions client/serveur sont cryptées
externalPHPBooleanTrue si le client effectue un appel à PHP execute et utilise sa propre version de php
general.buildNumberNumberNuméro de build de l'application 4D
general.headlessBooleanTrue si l'application fonctionne en mode headless
general.isRosettaBooleanTrue si 4D est émulé par Rosetta sous macOS, False sinon (non émulé ou sous Windows).
general.licenseObjectNom commercial et description des licences des produits
general.uniqueIDTextID unique du serveur 4D
general.versionTextNuméro de version de l'application 4D
hasDataChangeTrackingBooleanTrue si une table "__DeletedRecords" existe
indexSegment.diskReadBytesNumberNombre d'octets lus dans le fichier d'index
indexSegment.diskReadCountNumberNombre de lectures dans le fichier d'index
indexSegment.diskWriteBytesNumberNombre d'octets écrits dans le fichier d'index
indexSegment.diskWriteCountNumberNombre d'écritures dans le fichier d'index
indexSizeNumberTaille des index en octets
isCompiledBooleanTrue si l'application est compilée
isEncryptedBooleanVrai si le fichier de données est chiffré
isEnginedBooleanTrue si l'application est fusionnée avec 4D Volume Desktop
isProjectModeBooleanTrue si l'application est un projet
LDAPLoginNumberNombre d'appels à la fonction LDAP LOGIN
license.sffPrimaryKeyNumberNuméro de produit du serveur principal
machine.CPUTextNom, type et vitesse du processeur
machine.memoryNumberTaille de la mémoire (en octets) disponible sur la machine
machine.numberOfCoresNumberNombre total de cœurs
machine.systemTextVersion du système d'exploitation et numéro de version
maximumNumberOfWebProcessesNumberNombre maximal de process web simultanés
maximumUsedPhysicalMemoryNumberUtilisation maximale de la mémoire physique
maximumUsedVirtualMemoryNumberUtilisation maximale de la mémoire virtuelle
mobileCollectionInformations sur les sessions mobiles
numberOfWebServicesNumberNombre de méthodes publiées en tant que Services Web
ODBCLoginNumberNombre d'appels à SQL LOGIN utilisant ODBC
phpCallNumberNombre d'appels à PHP execute
QueryBySQLNumberNombre d'appels à QUERY BY SQL
restServerObjectObjet contenant des informations sur le serveur REST
restServer.bytesInNumberOctets reçus par le serveur REST
restServer.bytesOutNumberOctets envoyés par le serveur REST
restServer.hitsNumberNombre de hits du serveur REST
restServer.executionTimeNumberTemps d'exécution CPU du serveur WEB REST
soapServerObjectObjet contenant des informations sur le serveur SOAP
soapServer.bytesInNumberOctets reçus par le serveur SOAP
soapServer.bytesOutNumberOctets envoyés par le serveur SOAP
soapServer.hitsNumberNombre de hits du serveur SOAP
soapServer.executionTimeNumberTemps d'exécution CPU du serveur SOAP
SQLBeginEndStatementNumberNombre d'utilisations de Begin SQL / End SQL
SQLLoginInternalNumberNombre d'appels à SQL LOGIN utilisant SQL_INTERNAL
sqlServerObjectObjet contenant des informations sur le serveur SQL
sqlServer.hitsNumberNombre de requêtes SQL exécutées
sqlServer.bytesInNumberOctets reçus par le moteur SQL
sqlServer.bytesOutNumberOctets envoyés par le moteur SQL
sqlServer.executionTimeNumberTemps d'exécution CPU pour les requêtes SQL
usingQUICNetworkLayerBooleanTrue si la base de données utilise la couche réseau QUIC
totalExecutionTimeNumberTemps d'exécution total du CPU : somme de tous les types de requêtes
totalRequestsNumberTotal des requêtes : somme des requêtes web, REST, SOAP, SQL et du trafic interne
webServerObjectObjet contenant des informations sur le serveur Web
webServer.bytesInNumberOctets reçus par le serveur Web
webServer.bytesOutNumberOctets envoyés par le serveur Web
webServer.hitsNumberNombre de hits du serveur Web
webServer.executionTimeNumberTemps d'exécution CPU du serveur Web
webStaticServerObjectObjet contenant des informations sur le serveur Web statique
webStaticServer.bytesInNumberOctets reçus par le serveur Web statique
webStaticServer.bytesOutNumberOctets envoyés par le serveur Web statique
webStaticServer.hitsNumberNombre de hits du serveur Web statique
webStaticServer.executionTimeNumberTemps d'exécution CPU du serveur Web statique

Où sont-elles stockées et envoyées ?

Les données collectées sont écrites dans un fichier texte (format JSON) par base de données lorsque 4D Server quitte. Le fichier est stocké dans le dossier 4D actif, c'est-à-dire :

  • sous Windows : Users\[userName]\AppData\Roaming\4D Server
  • sous macOS : /Users/[userName]/Library/ApplicationSupport/4D Server

Une fois par semaine, le fichier est automatiquement envoyé par le réseau à 4D. Le fichier est ensuite supprimé du dossier 4D actif.

Si le fichier n'a pas pu être envoyé pour une raison quelconque, il est néanmoins supprimé et aucun message d'erreur n'est affiché côté 4D Server.

Le fichier est envoyé au serveur à l'adresse suivante : https://dcollector.4d.com (ip : 195.68.52.83).

Désactiver la collecte de données dans les applications client/serveur générées

Vous pouvez désactiver la collecte automatique de données dans les applications client/serveur générées.

Pour désactiver la collecte, passez la valeur False à la clé ServerDataCollection dans le fichier buildApp.4DSettings, utilisé pour construire l'application client/serveur.