Active Installs 2 API
API to send XWiki instance ping data and query it |
Type | JAR |
Category | API |
Developed by | |
Rating | |
License | GNU Lesser General Public License 2.1 |
Bundled With | XWiki Standard |
Compatibility | Since XWiki 14.5RC1 |
Table of contents
Description
It's very important for the open source committers to understand how well or how badly they're faring when developing the XWiki open source project. Before the Active Installs feature we didn't know if the number of people using XWiki was increasing, decreasing or staying stable.
This module allows everyone to know who's using XWiki by sending data from your running instance of XWiki (once per day). The data sent is anonymous and consists of the following:
- A unique id (UUID) representing the XWiki instance. Note that not even the IP is kept and there's no way to find who's having a given UUID (it's generated using Java's UUID implementation)
- The id, version and features of your XWiki distribution. Each packaging is sending a different distribution id (e.g. org.xwiki.enterprise:xwiki-enterprise-web, org.xwiki.enterprise:xwiki-enterprise-installer-debian-common, org.xwiki.enterprise:xwiki-enterprise-jetty-hsqldb)
- The technical ids, versions and features of extensions you have installed.
- Your OS name, achitecture and version
- Your Database name and version
- Your Java vendor & version, and specifications
- Your Servlet Container name and version
- Your Memory usage: maximum JVM memory and current JVM memory
New from version 2 of Active Installs:
- The number of pages in the main wiki, in each wiki and in total. Note that this includes pages coming from extensions too.
- The number of users registered in the main wiki, in each wiki and in total. Note that only active users are counted.
- Total number of wikis in the XWiki instance (including the main wiki)
Dashboard
The ActiveInstalls records can be browsed using a Kibana dashboard.
The old ActiveInstalls 1 data can be seen on the XWiki.org Active Installs page (or on the old Kibana instance)
History
This is version 2 of the Active Installs API (see Client API and Server Application). This is a new extension, and not a new version of the v1 of Active Installs. The main reason is that version 2 supports Elasticsearch 8.x while version was supporting Elasticsearch 1.x. It's not easy to migrate from 1.x to 8.x and thus we wanted to be able to install both extensions side by side on xwiki.org.
Format
Example:
"date": {
"current": "2022-05-16T14:47:56.405538459Z",
"first": "2022-05-16T14:47:56.405538459Z",
"since": 0
},
"memory": {
"total": 536870912,
"max": 1610612736,
"used": 235463944,
"free": 301406968
},
"os": {
"name": "Mac OS X",
"arch": "aarch64",
"version": "12.2"
},
"documents": {
"total": 111000,
"main": 10000,
"wikis": [1000, 100000]
},
"distribution": {
"extension": {
"features": ["featureId/featureVersion"],
"id": "distributionId",
"version": "distributionVersion"
},
"instanceId": "1873627e-ee7f-4cbb-9933-a74ebbfa924a"
},
"users": {
"total": 1110,
"main": 100,
"wikis": [10, 1000]
},
"extensions": [{
"features": ["featureId1/featureVersion1"],
"id": "extensionId1",
"version": "extensionVersion1"
}, {
"features": ["featureId2/featureVersion2"],
"id": "extensionId2",
"version": "extensionVersion2"
}],
"database": {
"name": "databaseProductName",
"version": "databaseProductVersion"
},
"java": {
"vendor": "JetBrains s.r.o.",
"version": "11.0.13",
"specificationVersion": "11"
},
"servletContainer": {
"name": "servletcontainername",
"version": "servletcontainerversion"
},
"wikis": {
"total": 3
}
}
Configuration
#-# regularly sends anonymous information to xwiki.org about the current instance.
#-# The goal is to count the number of active installs of XWiki out there and provide statistics on xwiki.org
#-#
#-# The default is:
# activeinstalls2.pingURL = https://extensions.xwiki.org/activeinstalls2
#-# Default user agent used when sending pings.
#-# The default is:
# activeinstalls2.userAgent = XWikiActiveInstalls2
Opting Out
To opt-out and not send a daily ping to xwiki.org (please don't, we need your help, knowing who's using us and that it's growing is what keeps the XWiki developers motivated to continue developing XWiki!), you can simply configure the ping URL to be empty in xwiki.properties (and restart XWiki), as in:
Prerequisites & Installation Instructions
We recommend using the Extension Manager to install this extension (Make sure that the text "Installable with the Extension Manager" is displayed at the top right location on this page to know if this extension can be installed with the Extension Manager).
You can also use the manual method which involves dropping the JAR file and all its dependencies into the WEB-INF/lib folder and restarting XWiki.
Dependencies
Dependencies for this extension (org.xwiki.platform:xwiki-platform-activeinstalls2-api 16.7.1):
- org.xwiki.commons:xwiki-commons-extension-api 16.7.1
- org.xwiki.platform:xwiki-platform-instance 16.7.1
- co.elastic.clients:elasticsearch-java 8.14.3
- com.fasterxml.jackson.core:jackson-databind 2.17.2
- org.xwiki.platform:xwiki-platform-oldcore 16.7.1