A CKAN extension for accessing instance statistics.
Shows statistics for datasets and downloads on the CKAN instance.
NB: This extension currently only works with the Natural History Museum's theme extension ckanext-nhm.
Path variables used below:
$INSTALL_FOLDER(i.e. where CKAN is installed), e.g./usr/lib/ckan/default$CONFIG_FILE, e.g./etc/ckan/default/development.ini
pip install ckanext-statistics-
Clone the repository into the
srcfolder:cd $INSTALL_FOLDER/src git clone https://github.com/NaturalHistoryMuseum/ckanext-statistics.git
-
Activate the virtual env:
. $INSTALL_FOLDER/bin/activate
-
Install via pip:
pip install $INSTALL_FOLDER/src/ckanext-statistics
Installing from a pyproject.toml in editable mode (i.e. pip install -e) requires setuptools>=64; however, CKAN 2.9 requires setuptools==44.1.0. See our CKAN fork for a version of v2.9 that uses an updated setuptools if this functionality is something you need.
-
Add 'statistics' to the list of plugins in your
$CONFIG_FILE:ckan.plugins = ... statistics -
Upgrade the database to create the tables:
ckan -c $CONFIG_FILE db upgrade -p statistics
These are the options that can be specified in your .ini config file.
| Name | Description |
|---|---|
ckanext.statistics.resource_ids |
IDs of collection resources (space separated). |
ckanext.statistics.gbif_dataset_keys |
GBIF dataset keys (space separated). If not specified, tries ckanext.gbif.dataset_key. Defaults to an empty string. |
These settings are used to directly configure a beaker cache region named ckanext_statistics. Please see their configuration docs for more information and additional options.
| Name | Description | Example |
|---|---|---|
ckanext.statistics.cache.type |
Cache backend. | ext:redis |
ckanext.statistics.cache.url |
URL for the backend. | redis://localhost:6379/0 |
ckanext.statistics.cache.expire |
Time until the cache content expires, in seconds. | 3600 |
Statistics for downloads of datasets from the instance.
from ckan.plugins import toolkit
# all of these filters are optional
data_dict = {
'resource_id': RESOURCE_ID,
'year': YEAR,
'month': MONTH
}
toolkit.get_action('download_statistics')(
context,
data_dict
)Statistics for dataset records.
from ckan.plugins import toolkit
# these filters are optional
data_dict = {
'resource_id': RESOURCE_ID,
}
toolkit.get_action('dataset_statistics')(
context,
data_dict
)There is a Docker compose configuration available in this repository to make it easier to run tests. The ckan image uses the Dockerfile in the docker/ folder.
To run the tests against ckan 2.9.x on Python3:
-
Build the required images:
docker compose build
-
Then run the tests. The root of the repository is mounted into the ckan container as a volume by the Docker compose configuration, so you should only need to rebuild the ckan image if you change the extension's dependencies.
docker compose run ckan