Skip to main content

Hector v3.0

Hector estimates trends, periodic signals, and offsets in geodetic time series with correlated noise. It uses Restricted Maximum Likelihood Estimation (RMLE) and supports several noise models (GGM/flicker, power-law, AR(1), Matérn, white noise and combinations thereof).

Quick start

pip install hector-ts
hector-examples          # creates ./hector-examples/ with examples + manual PDF

hector-examples copies eight worked examples and the PDF user manual into a directory of your choice. Open hector_manual_v3.0.pdf first — it explains the workflow, all control-file parameters, and walks through every example step by step. The examples are self-contained: each has its own data and control files ready to run.

Installation

Windows

Pre-built wheels are available for Python 3.10–3.14. FFTW3 is bundled inside the wheel, so no separate installation is needed:

pip install hector-ts

macOS (Apple Silicon — M1 and later)

Pre-built wheels are available for Python 3.10–3.14. Install FFTW3 via Homebrew first (it is not bundled in the macOS wheel):

brew install fftw
pip install hector-ts

macOS (Intel)

Hector is compiled from source during pip install, so Xcode Command Line Tools must be present (xcode-select --install):

brew install fftw
pip install hector-ts

If the build fails, conda provides a self-contained alternative:

conda install -c conda-forge fftw
pip install hector-ts

Linux

Pre-built manylinux wheels are available for Python 3.10–3.14 on x86_64 — no FFTW3 headers needed for those platforms. For other architectures (ARM64 etc.) Hector builds from source; install the FFTW3 development package first:

# Ubuntu / Debian
sudo apt install libfftw3-dev

# CentOS / RHEL / Fedora
sudo yum install fftw-devel        # or: sudo dnf install fftw-devel

pip install hector-ts

Programs

Name Description
estimatetrend Estimate trend, seasonal signals, and offsets using RMLE
estimatespectrum Welch periodogram of the residuals
removeoutliers Flag and remove outliers before trend estimation
findoffsets Automated forward search for offset epochs
find_all_offsets Multivariate (E+N+U) offset search on NCF files
simulatenoise Generate synthetic coloured-noise time series
estimate_all_trends Batch trend estimation on all files in obs_files/
ncfgen Create a multi-channel NCF (NetCDF4) time-series file
ncfdump Inspect or export an NCF file
plot_ts Quick time-series plot from a mom file
date2mjd Convert calendar date to Modified Julian Date
mjd2date Inverse of date2mjd
convert_rlrdata2mom Convert PSMSL RLR data to mom format
predict_error Predict trend uncertainty as a function of series length

Reference

If you use Hector in your research, please cite:

Bos, M.S. (2026). Fast noise analysis and offset detection for continuous GNSS time series. Journal of Geodesy (submitted).

Performance

Hector v3.0 is a Python/Cython rewrite of Hector C++ v2.2. The core Toeplitz factorisation uses the Generalised Schur Algorithm (O(n log²n)) instead of Durbin-Levinson (O(n²)), and data gaps are handled with an FFT-based spectral approximation. The result is 6–27× faster for typical GNSS series lengths:

Series Gaps Hector v3.0 (s) Hector C++ v2.2 (s) Speedup
10 yr 0% 0.45 5.2 11.6×
20 yr 0% 1.7 14.4 8.5×
30 yr 0% 3.2 30.9 9.7×
40 yr 0% 4.4 91.9 20.7×
10 yr 10% 1.3 7.3 5.8×
30 yr 10% 14.2 85.4 6.0×
40 yr 10% 24.0 220.1 9.2×

Benchmarked on Apple M4 Pro, GGM+White noise model, including offset estimation.

License

Free for academic, research, and educational use. Commercial use requires a separate license from TeroMovigo – Earth Innovation Lda. See LICENSE for full terms.

Download files

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

Source Distribution

hector_ts-3.0.7.tar.gz (12.6 MB view details)

Uploaded Source

Built Distributions

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

hector_ts-3.0.7-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (15.7 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

hector_ts-3.0.7-cp314-cp314-win_amd64.whl (13.1 MB view details)

Uploaded CPython 3.14Windows x86-64

hector_ts-3.0.7-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (15.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

hector_ts-3.0.7-cp314-cp314-macosx_14_0_arm64.whl (12.6 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

hector_ts-3.0.7-cp313-cp313-win_amd64.whl (12.6 MB view details)

Uploaded CPython 3.13Windows x86-64

hector_ts-3.0.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (15.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

hector_ts-3.0.7-cp313-cp313-macosx_14_0_arm64.whl (12.6 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

hector_ts-3.0.7-cp312-cp312-win_amd64.whl (12.6 MB view details)

Uploaded CPython 3.12Windows x86-64

hector_ts-3.0.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (15.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

hector_ts-3.0.7-cp312-cp312-macosx_14_0_arm64.whl (12.6 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

hector_ts-3.0.7-cp311-cp311-win_amd64.whl (12.7 MB view details)

Uploaded CPython 3.11Windows x86-64

hector_ts-3.0.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (15.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

hector_ts-3.0.7-cp311-cp311-macosx_14_0_arm64.whl (12.6 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

hector_ts-3.0.7-cp310-cp310-win_amd64.whl (12.7 MB view details)

Uploaded CPython 3.10Windows x86-64

hector_ts-3.0.7-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (15.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

hector_ts-3.0.7-cp310-cp310-macosx_14_0_arm64.whl (12.6 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

Details for the file hector_ts-3.0.7.tar.gz.

File metadata

  • Download URL: hector_ts-3.0.7.tar.gz
  • Upload date:
  • Size: 12.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hector_ts-3.0.7.tar.gz
Algorithm Hash digest
SHA256 174979e5dfcff5c1c0eedaed4e53f36945949c17b6c74ae441231265942b8d9c
MD5 fc46337d293ae8515b5b39228a07b747
BLAKE2b-256 1b0e0aff1cf006fe77309d164fa2459fae4b29ff34a4aa9ee76ab0a96e806036

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.7.tar.gz:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.7-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hector_ts-3.0.7-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c1efc613ca65e9086eb14907dbe9d99ae88aecd8d2b61c3480017effcb4fa19d
MD5 697f0280aad456aa724ad6c14d8b7ee9
BLAKE2b-256 f484a80e2b86786ed5d9d647628c7029f98141f1270c3878d1d0698ded4d31f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.7-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.7-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: hector_ts-3.0.7-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 13.1 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hector_ts-3.0.7-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 630c1dac8eb05f74c3e544de192a33be5f826365afa2cf6cf6cbb4b548963c27
MD5 f144d305c7ad37fa9a13ace17468cf26
BLAKE2b-256 da012d7164f0a7f365384ee2cd32b3231be91db6c828721d8880dc3264549732

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.7-cp314-cp314-win_amd64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.7-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hector_ts-3.0.7-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 73228632c81366b2baa1e3fd652f6fcc75bf9cc4d9377a7cdfb9c582de3755dd
MD5 69fe0272a4d144166d234eff11c017fd
BLAKE2b-256 ca2ab7168ae181e670a5d5cf44b7050e5d5e149d8d46ce36060067166eed3453

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.7-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.7-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for hector_ts-3.0.7-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 db1786d0d03178eddf306c720e46348eae37488941c7a862483e14e4c339e8e6
MD5 a3dca39dca344bce49dc4598ed7a3529
BLAKE2b-256 fb4bb5c57c3cd1c983164cf30c2de826249dbe9233cb72201e3b0bfc1535bce4

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.7-cp314-cp314-macosx_14_0_arm64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.7-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: hector_ts-3.0.7-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 12.6 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hector_ts-3.0.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 429676f1fb5ebb2a1313a62c268079e8885333d020cb6a9507c73b6f0b57865e
MD5 d7b0d8a722471de8ef84c8abf9f45e2f
BLAKE2b-256 e1fc0ca42e998e2203fc171bd47b87151b8c674dd6d7536940a37c24cb20df68

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.7-cp313-cp313-win_amd64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hector_ts-3.0.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c774dfc54a31332b6180215eb0d189da4e0bdacd4e8940ca807d80f28db099ee
MD5 5151c0640062faf3364eca4b523c2908
BLAKE2b-256 9b1d81836b4288d0e0deb01611e50564e17178fd957ee20735e8e8a989ac9b84

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.7-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for hector_ts-3.0.7-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 145880505186282c65b5b29d3d7aa43a13e4cfcfdddbc44b710a6b599baf8dcc
MD5 6cd72b476a7668ea715a51d3680697ef
BLAKE2b-256 6e5f7200383e8c7ece1ba26765f4097ae06ef1f9716c4ef6c0b1bf999ed522b5

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.7-cp313-cp313-macosx_14_0_arm64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.7-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: hector_ts-3.0.7-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 12.6 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hector_ts-3.0.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5732e4e39868b8397c49d5217f0acb140a05390977ee1b5f681bd0055053a185
MD5 40cb935d09b64c14df4a9cf7610b6023
BLAKE2b-256 a5bcf60da07ad602c20adf4c612a5b229ed0d805752bd7139db37bf26485790f

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.7-cp312-cp312-win_amd64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hector_ts-3.0.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c15b796a977800e680055ebb683f0a78fed2ef007faeed92f86ee69db0746a43
MD5 457fb1f06cf7749f7a42c11464bd740c
BLAKE2b-256 2b9231b3a029cc1b39de8697d2469a02ff5a5d9a74661ae5a038ec731434ea69

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.7-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for hector_ts-3.0.7-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 710e712f765abcbae991dd2e388fbcd7730db2397bf13a1f96dc71aa9cb12789
MD5 2201042ecd10215e6441dc2a51067d4b
BLAKE2b-256 390142990819e26cdb224473339da2d5786233490a6722622fecfa9b833264ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.7-cp312-cp312-macosx_14_0_arm64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.7-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: hector_ts-3.0.7-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 12.7 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hector_ts-3.0.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3142dfd12514ea10bdcbc9a9d23ece1ef014e54ca2bfaee06d512b69bc2d7a93
MD5 2dc03a050b337bcb5f2a0d0d0ffff7fd
BLAKE2b-256 6e732547906e022ac0edfa88ac2b6db090d8d2083a5014e99b1290695a512a1c

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.7-cp311-cp311-win_amd64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hector_ts-3.0.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dbf4791d42866e8f7ac104e365c91a3fb26820e20f3a876207ff09f6c732a144
MD5 7cb61830a49f049544d25eb0555b8464
BLAKE2b-256 f98fa0b9426fb6578373978bd05cab69fe90b35a3ac783fc66bf1501b1f469c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.7-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for hector_ts-3.0.7-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 66413e64ad4759667a68c98e33fefb75191c0ecb6a3bfda844e8ab83e63df023
MD5 f9567b8f96fa8b351674a22a44420416
BLAKE2b-256 8e1ec1b60138ef3842b27beb220795c077b4fda6bb2b4447e5052d74ba3f219a

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.7-cp311-cp311-macosx_14_0_arm64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.7-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: hector_ts-3.0.7-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 12.7 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hector_ts-3.0.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a3f79d97633d1bf384318886afc090bf663941957e6790dda47c6eccf1510c0e
MD5 06d95dcae2d4cedd9403cc9f0b6e1646
BLAKE2b-256 e6dc24a74949f677726f378678d03d5b1080db0bdc8bd8a723fe47e6ca11e5d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.7-cp310-cp310-win_amd64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.7-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hector_ts-3.0.7-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f1daf9074cf6a3dd92eb8d16fb7b8c50f67875c64744c185161e8531a62611ff
MD5 7b3866dfa43f4323ad2f4a5adbcf9c1e
BLAKE2b-256 67d984a10c8a86657e844f98fbb944a6b21c51f470281acae178fb8e37024885

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.7-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hector_ts-3.0.7-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for hector_ts-3.0.7-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 02489358a056842471c18108963ed25dce011c6b4d557555be9e4d5e68504438
MD5 7fbe9255f35efe46100638db35fa1496
BLAKE2b-256 1fccd98573316bf616e888944a870baf780795a856f8e2f45d6d7536208ca418

See more details on using hashes here.

Provenance

The following attestation bundles were made for hector_ts-3.0.7-cp310-cp310-macosx_14_0_arm64.whl:

Publisher: release.yml on machielbos8/hector-ts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

3.1.1

17 files

3.1.0

17 files

3.0.10

17 files

3.0.9

17 files

3.0.8

17 files

This release

3.0.7 This release

17 files

3.0.6

17 files

3.0.5

17 files

3.0.4

17 files

3.0.3

17 files

3.0.2

17 files

3.0.1

17 files

3.0

12 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page