Skip to content

geopython/GeoUsage

Repository files navigation

GeoUsage

Build Status

Metrics Analysis for OGC Web Services

Overview

GeoUsage is a pure Python package providing OGC Web Services usage analysis.

Installation

The easiest way to install GeoUsage is via pip:

pip install GeoUsage

This assumes you have the privileges to install GeoUsage on your system which may require administrator/root privileges. For isolated installations, see Installing GeoUsage in a virtualenv.

Requirements

Dependencies

Dependencies are listed in requirements.txt. Dependencies are automatically installed during GeoUsage installation.

Installing GeoUsage in a virtualenv

Using a virtualenv allows for isolated installations which do not affect system wide dependencies which require administrative/root privileges. To install to a virtualenv, perform the following steps:

# setup virtualenv
python3 -m venv GeoUsage
cd GeoUsage
source bin/activate

# clone codebase and install
git clone https://github.com/geopython/GeoUsage.git
cd GeoUsage
python3 setup.py install

Running

cp GeoUsage-config.env local.env
vi local.env # update environment variables accordingly

# help
GeoUsage --help

# get version
GeoUsage --version

# perform WMS analysis on an Apache logfile on any WMS endpoint
GeoUsage log analyze </path/to/apache_logfile> --service-type=OGC:WMS

# perform WMS analysis on an Apache logfile on a specific WMS endpoint
GeoUsage log analyze </path/to/apache_logfile> --service-type=OGC:WMS --endpoint=/ows

# perform WMS analysis on an Apache logfile for a single date
GeoUsage log analyze </path/to/apache_logfile> --service-type=OGC:WMS --endpoint=/ows --time=2018-01-26

# perform WMS analysis on an Apache logfile for a date range
GeoUsage log analyze </path/to/apache_logfile> --service-type=OGC:WMS --endpoint=/ows --time=2018-01-26/2018-01-27

# perform WMS analysis on an Apache logfile for a single datetime
GeoUsage log analyze </path/to/apache_logfile> --service-type=OGC:WMS --endpoint=/ows --time=2018-01-26T11:11:11

# perform WMS analysis on an Apache logfile for a datetime range
GeoUsage log analyze </path/to/apache_logfile> --service-type=OGC:WMS --endpoint=/ows --time=2018-01-26T11:11:11/2018-01-27T12:32:11

# resolve IP addresses
GeoUsage log analyze </path/to/apache_logfile> --service-type=OGC:WMS --endpoint=/ows --verbosity=INFO --resolve-ips

# show top 10 unique IPs and top 10 layers
GeoUsage log analyze </path/to/apache_logfile> --service-type=OGC:WMS --endpoint=/ows --verbosity=INFO --resolve-ips --top=10

# add verbose mode
GeoUsage log analyze </path/to/apache_logfile> --service-type=OGC:WMS --endpoint=/ows --verbosity=INFO

# query a Mailman mailing list member count
GeoUsage mailing_list member_count

Example

Analyse OGC:WPS service using nginx log files:

GeoUsage log analyze /var/log/nginx/access.log* --service-type=OGC:WPS --endpoint=/wps

Using the API

from GeoUsage.mailman import MailmanAdmin

ma = MailmanAdmin('http://example.org/mailman/admin/list', 'secret')
print(ma.member_count)

Development

Running Tests

# install dev requirements
pip install -r requirements-dev.txt

# run tests like this:
python3 GeoUsage/tests/run_tests.py

# or this:
python3 setup.py test

# measure code coverage
coverage run --source=GeoUsage -m unittest GeoUsage.tests.run_tests
coverage report -m

Releasing

python3 setup.py sdist bdist_wheel --universal
twine upload dist/*

Code Conventions

Bugs and Issues

All bugs, enhancements and issues are managed on GitHub.

Contact

About

Metrics Analysis for OGC Web Services

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published