Starting from Nuxeo Drive 5.1.0, usage metrics have been added using custom HTTP headers. Those metrics are sent to the Nuxeo Platform exclusively when the application calls specific operations or endpoints.
On this page, you will find the details about these metrics and their content.
Some of them are sent asynchronously to the
/site/api/v1/me endpoint every 15 minutes (default value). This can be changed with the
custom-metrics-poll-interval option (expressed in seconds).
That asynchronous process can be disabled through the configuration using the custom-metrics option.
Custom metrics are sent under JSON format into two distinct headers that are:
This header is sent for each request to the platform and contains generic information about the Nuxeo Drive installation, configuration and operating system.
execution.locale: Selected language in Nuxeo Drive settings.
execution.profile: Profile of execution (
privatefor QA/dev people otherwise
execution.session.uid: Unique identifier generated at Nuxeo Drive startup.
installation.type: Installation type (
metrics.custom: Custom metrics are enabled.
metrics.ga: Google Analytics is enabled.
metrics.sentry: Sentry is enabled.
os.locale: Operating System locale.
os.machine: The machine type (e.g.
updater.channel: Current update channel.
This header is sent for specific requests only and contains usage and behavior information about Nuxeo Drive features.
directEdit.conflict.hit(async): A conflict has been encountered while sending updates to the server.
directEdit.error.count(async): Errors count occured while uploading changes to the server.
directEdit.recovery.hit(async): The file has been recovered from a previous Direct Edit session.
directEdit.save.count(async): Saves count done while editing the file, e.g.: how many times the user hit CTRL-S or COMMAND-S.
directTransfer.duplicate.file.behavior: File duplicate creation option (
directTransfer.option.newFolder: The new remote folder option was used for that session.
directTransfer.session.number: The session number.
directTransfer.session.status(async): Final session status (
sync.action(async): Event that triggered the transfer (
sync.error.label(async): Lower-cased error label that happened when processing the document.
sync.time(async): Time between the event trigger and the end of the action, in nanoseconds.
app.crashed.hit(async): The app crashed during the previous run.
app.crashed.trace(async): The application crash stack trace, when available.
filters.syncRoot.count(async): Enabled synchronization roots count.