Dette er vår cronjob-app på NAIS for å skaffe oversikt over innholdet vårt på nav.no og oppdatere vårt dashboard der vi følger med på innholdsmengde over tid.
main trekker ut innholdet vårt fra CMSet Enonic XP og lager
aggregert statistikk på metadata som mengden publisert og avpublisert
innhold, innholdsmengde, alder og fordeling på områdene på nav.no
.
Dashboardet oppdateres en gang i måneden via en cronjob i kubernetes. Logger i Kibana.
Jobb lokalt
Bruk venv for å lage og starte det virtuelle miljøet, og pip for avhengigheter. Installér avhengigheter med make install
.
cd innholdsoversikt
source venv/bin/activate # starter virtuelt miljø
make install # installerer avhengigheter
make update-deps # oppdater avhengigheter
make format # formaterer python-kode med black
Enonic data api eksporterer innhold fra Enonic XP via dataquery APIet.
Se pods i kubernetes
kubectl config use-context dev-gcp
kubectl config use-context prod-gcp
kubectl -npersonbruker get pods
Se naisjobs i kubernetes
kubectl get naisjob -npersonbruker # viser naisjob i namespace
kubectl describe naisjob innholdsoversikt-dashboard -npersonbruker # beskriver naisjob metadata
Start og slutt naisjob manuelt
kubectl create job innholdsdashboard
--from=cronjob/innholdsoversikt-dashboard -npersonbruker
kubectl delete naisjob innholdsoversikt-dashboard -npersonbruker
Secrets
kubectl config use-context dev-gcp
kubectl config use-context prod-gcp
kubectl -npersonbruker create secret generic innholdsmengde-dashboard-secrets --from-file=secrets.json
kubectl -npersonbruker get secret
kubectl -npersonbruker describe secrets/innholdsmengde-dashboard-secrets
kubectl -npersonbruker delete secret innholdsmengde-dashboard-secrets
Bygg og Inspiser app lokalt
colima start
docker build -f Dockerfile.local -t innholdsmengde_local .
docker run --rm -it innholdsmengde_local /bin/bash
Spørringer i databasen
Bigquery har sin egen syntaks for SQL spørringer. Bruk kopitabellen for å teste spørringer.
Det går an å kjøre spørringer regelmessig, f.eks ukentlig.
Velg rader for en gitt dato, med et utvalg på 1000
SELECT * FROM `project-id.dataset.table` WHERE dato = '2024-07-05' LIMIT 1000
Velg samme data uten begrenset utvalg
SELECT * FROM `project-id.dataset.table` WHERE dato = '2023-08-21'
Slett rader for en gitt dato
DELETE FROM `project-id.dataset.table` WHERE dato = '2023-08-21'