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
src
folder: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
These are no configuration options for this extension.
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
)
-
initdb
: initialise the database modelckan -c $CONFIG_FILE statistics initdb
-
gbif
: retrieve download statistics from GBIF.ckan -c $CONFIG_FILE statistics gbif
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