rda_python_metrics
RDA Python package to gather and view data usage metrics for the NSF NCAR Geoscience Data Exchange (GDEX).
Programs
The package provides two categories of programs:
Run as gdexdata via setuid (requires setup below):
| Command | Connector script | Description |
|---|---|---|
logarch |
setuid_logarch |
Archive RDA log files (web, TDS, AWS, OSDF, dssdb) to the DECSDATA area |
Run as current user (no setuid required):
| Command | Description |
|---|---|
fillawsusage |
Fill AWS usage metrics into the database |
fillcdgusage |
Fill CDG usage metrics into the database |
fillcodusage |
Fill COD usage metrics into the database |
fillcountry |
Fill country information into the database |
fillendtime |
Fill end times for usage records |
fillgdexusage |
Fill GDEX usage metrics into the database |
fillglobususage |
Fill Globus transfer usage metrics into the database |
fillipinfo |
Fill IP geolocation info into the database |
filloneorder |
Fill metrics for a single order |
fillosdfusage |
Fill OSDF usage metrics into the database |
fillrdadb |
Fill RDA database usage metrics |
filltdsusage |
Fill TDS (THREDDS) usage metrics into the database |
filluser |
Fill user information into the database |
fillzenodousage |
Fill Zenodo usage metrics into the database |
pgperson |
Retrieve user info from the UCAR People API by field |
pgusername |
Retrieve user info from the UCAR People API by username |
viewallusage |
View combined usage statistics |
viewawsusage |
View AWS usage statistics |
viewcheckusage |
View usage check results |
viewcodusage |
View COD usage statistics |
viewordusage |
View order usage statistics |
viewosdfusage |
View OSDF usage statistics |
viewrqstusage |
View request usage statistics |
viewtdsusage |
View TDS usage statistics |
viewwebfile |
View web file access records |
viewwebusage |
View web usage statistics |
Environment setup
Create a Python environment first; package installs in the next section run inside whichever environment you activate here.
Option A — Python venv (DECS machines)
python3 -m venv $ENVHOME # e.g. /glade/u/home/gdexdata/gdexmsenv
source $ENVHOME/bin/activate
Option B — Conda (DAV/Casper)
conda create --prefix $ENVHOME python=3.12 # e.g. /glade/work/gdexdata/conda-envs/pg-gdex
conda activate $ENVHOME
Installing rda-python-metrics
Pick whichever install mode fits your workflow. All four pull in the
transitive dependencies (rda_python_common, rda_python_setuid, geoip2,
ipinfo, httplib2, dnspython, unidecode, urllib3>=2.5.0,
requests>=2.33.0, idna>=3.10) automatically.
For local development, clone this repo alongside your project and install it in editable mode so that changes are picked up without re-installing:
git clone https://github.com/NCAR/rda-python-metrics.git
cd rda-python-metrics
pip install -e .
To test a specific branch (e.g. an in-progress feature or fix branch), pass
-b/--branch to git clone:
git clone -b <branch-name> https://github.com/NCAR/rda-python-metrics.git
cd rda-python-metrics
pip install -e .
For a regular (non-editable) install from a checkout:
pip install /path/to/rda-python-metrics
For a production install on a system that uses the published distribution:
pip install rda_python_metrics
Setuid Setup
logarch runs as the common user PGLOG['COMMONUSER'] (default gdexdata)
via the rda_python_setuid mechanism, which is pulled in automatically as
a dependency. After pip install above, choose one of the wiring options
below.
Note: If
rda_python_setuidis already installed and fully set up in your environment, you can skip the compile step (-c/--compile) and the optionalpgstartstep (-p/--pgstart). The-l/--linkstep is still required to wire up this package's own setuid program.
Full setuid install (requires sudo access to COMMONUSER)
Run these steps once per environment:
# 1. Compile the pywrapper C binary (once per environment):
pywrapper-install -c|--compile -n|--username gdexdata
# 2. Wire up logarch as a setuid entry (or use 'all' to link every setuid_* at once):
pywrapper-install -l|--link logarch
pywrapper-install -l|--link all
# 3. Optionally, install a pgstart_<loginname> binary so <loginname> (any
# user in the same group as PGLOG['COMMONUSER']) can run commands as
# themselves. Run either by PGLOG['ADMINUSER'] (default zji, if it has
# 'sudo -u <loginname>'), or by <loginname> directly:
pywrapper-install -p|--pgstart -n|--username <loginname>
pywrapper-install with no arguments displays the full user guide.
Simple install (no sudo required, runs as current user)
Users who do not need the setuid mechanism can create a direct symlink instead:
pywrapper-install -l|--link logarch -s|--simple
pywrapper-install -l|--link all -s|--simple # or link every setuid_* at once
This creates bin/logarch -> bin/setuid_logarch and logarch runs as the
current user with no privilege change.
Update an existing installation (no sudo required)
When the package is upgraded and a new pywrapper.c is bundled, recompile and
reinstall all setuid binaries using the existing pgstart_* binaries:
pywrapper-install -u|--update
Setup guide
The shared setuid setup guide is shown automatically if setuid_logarch is
invoked directly before the setuid wrapper has been configured.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rda_python_metrics-3.0.3.tar.gz.
File metadata
- Download URL: rda_python_metrics-3.0.3.tar.gz
- Upload date:
- Size: 124.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47f01ee1249b9e35483d50bd847aec6b18f4c41607643be63df8d34d2c2847be
|
|
| MD5 |
3fde8b0453a215b9b00b7717e1790253
|
|
| BLAKE2b-256 |
27821b3f9810614126d930cdacb356ade422314bf7c8d9f2c05de4c13626da72
|
Provenance
The following attestation bundles were made for rda_python_metrics-3.0.3.tar.gz:
Publisher:
publish.yml on NCAR/rda-python-metrics
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rda_python_metrics-3.0.3.tar.gz -
Subject digest:
47f01ee1249b9e35483d50bd847aec6b18f4c41607643be63df8d34d2c2847be - Sigstore transparency entry: 2259881056
- Sigstore integration time:
-
Permalink:
NCAR/rda-python-metrics@ab14e71528f1634a449cafdd07be0267ce9fa141 -
Branch / Tag:
refs/tags/v3.0.3 - Owner: https://github.com/NCAR
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ab14e71528f1634a449cafdd07be0267ce9fa141 -
Trigger Event:
release
-
Statement type:
File details
Details for the file rda_python_metrics-3.0.3-py3-none-any.whl.
File metadata
- Download URL: rda_python_metrics-3.0.3-py3-none-any.whl
- Upload date:
- Size: 242.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eecf00f566a9d71352ec8b8cbd5991de98549cde06d0ecf24e397c1eaab14c41
|
|
| MD5 |
751a8a8555f85332d4e2770a5b2f74de
|
|
| BLAKE2b-256 |
1c6cfaa3bf8b3a21ed0e6bb9c671d933d1af9040e9d6b22f680eacdb824860ed
|
Provenance
The following attestation bundles were made for rda_python_metrics-3.0.3-py3-none-any.whl:
Publisher:
publish.yml on NCAR/rda-python-metrics
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rda_python_metrics-3.0.3-py3-none-any.whl -
Subject digest:
eecf00f566a9d71352ec8b8cbd5991de98549cde06d0ecf24e397c1eaab14c41 - Sigstore transparency entry: 2259881202
- Sigstore integration time:
-
Permalink:
NCAR/rda-python-metrics@ab14e71528f1634a449cafdd07be0267ce9fa141 -
Branch / Tag:
refs/tags/v3.0.3 - Owner: https://github.com/NCAR
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ab14e71528f1634a449cafdd07be0267ce9fa141 -
Trigger Event:
release
-
Statement type: