Skip to main content

A CKAN extension for accessing instance statistics.

Project description

The Natural History Museum logo.

ckanext-statistics

Tests Coveralls CKAN Python Docs

A CKAN extension for accessing instance statistics.

Overview

Shows statistics for datasets and downloads on the CKAN instance.

NB: This extension currently only works for the Natural History Museum, London, due to embedded data.

Installation

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

Installing from PyPI

pip install ckanext-statistics

Installing from source

  1. Clone the repository into the src folder:

    cd $INSTALL_FOLDER/src
    git clone https://github.com/NaturalHistoryMuseum/ckanext-statistics.git
    
  2. Activate the virtual env:

    . $INSTALL_FOLDER/bin/activate
    
  3. Install via pip:

    pip install $INSTALL_FOLDER/src/ckanext-statistics
    

Installing in editable mode

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.

Post-install setup

  1. Add 'statistics' to the list of plugins in your $CONFIG_FILE:

    ckan.plugins = ... statistics
    
  2. Upgrade the database to create the tables:

    ckan -c $CONFIG_FILE db upgrade -p statistics
    

Configuration

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.

Cache settings

This extension uses two named Beaker cache regions: statistics_short (intended for relatively short-term caching, e.g. 1 day) and statistics_long (intended for more persistent, long-term caching, e.g. 1 week). Neither of these have any default settings configured, and they can either be configured together or separately.

To define a setting for both caches:

Name Description Example
ckanext.statistics.cache.type Cache backend. ext:redis
ckanext.statistics.cache.url URL for the backend. redis://localhost:6379/0

To define settings separately:

Name Description Example
ckanext.statistics.cache._region.statistics_short.expire Expire time in seconds for the statistics_short region. 86400
ckanext.statistics.cache._region.statistics_long.expire Expire time in seconds for the statistics_long region. 604800

Please see Beaker's configuration docs for more information and additional options.

Usage

Actions

download_statistics

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
)

dataset_statistics

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
)

Testing

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:

  1. Build the required images:

    docker compose build
    
  2. 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
    

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ckanext_statistics-6.0.0.tar.gz (32.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ckanext_statistics-6.0.0-py3-none-any.whl (32.8 kB view details)

Uploaded Python 3

File details

Details for the file ckanext_statistics-6.0.0.tar.gz.

File metadata

  • Download URL: ckanext_statistics-6.0.0.tar.gz
  • Upload date:
  • Size: 32.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ckanext_statistics-6.0.0.tar.gz
Algorithm Hash digest
SHA256 31118e430ff20d1fca51bac2a5bd5b178a7ad6028e6f920c263fbc24baba4249
MD5 4c1ba464ddaf98900f7f9eac82c37707
BLAKE2b-256 bd22b5fc6f6a01dd39ff740074b501d1749293f34ec146b8f052e5369c93a70c

See more details on using hashes here.

File details

Details for the file ckanext_statistics-6.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ckanext_statistics-6.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 287786ee9827ce87a2991ce407d0045d751f2f12dbb2be6e734af2cc43d9be60
MD5 6f7f642074fceca01e73812b66c9dd77
BLAKE2b-256 405e44592f8b24a395036718935439ef319a8bb3c9d80e19fe9b38a02c9939d7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page