Skip to main content

Vehicle routing open-source optimization machine (VROOM)

Project description

Python Vehicle Routing Open-source Optimization Machine

gh_action codecov pypi

Good solution, fast… in Python.

Pyvroom is an Python wrapper to the excellent VROOM optimization engine for solving vehicle routing problems.

The library aims to solve several well-known types of vehicle routing problems, including:

  • Travelling salesman.

  • Capacitated vehicle routing.

  • Routing with time windows.

  • Multi-depot heterogeneous vehicle.

  • Pickup-and-delivery.

VROOM can also solve any mix of the above problem types.

Basic usage

>>> import vroom

>>> problem_instance = vroom.Input()

>>> problem_instance.set_durations_matrix(
...     profile="car",
...     matrix_input=[[0, 2104, 197, 1299],
...                   [2103, 0, 2255, 3152],
...                   [197, 2256, 0, 1102],
...                   [1299, 3153, 1102, 0]],
... )

>>> problem_instance.add_vehicle([vroom.Vehicle(47, start=0, end=0),
...                               vroom.Vehicle(48, start=2, end=2)])

>>> problem_instance.add_job([vroom.Job(1414, location=0),
...                           vroom.Job(1515, location=1),
...                           vroom.Job(1616, location=2),
...                           vroom.Job(1717, location=3)])

>>> solution = problem_instance.solve(exploration_level=5, nb_threads=4)

>>> solution.summary.cost
6411

>>> solution.routes.columns
Index(['vehicle_id', 'type', 'arrival', 'duration', 'setup', 'service',
       'waiting_time', 'location_index', 'id', 'description'],
      dtype='object')

>>> groups = solution.routes[solution.routes.type == "job"].groupby("vehicle_id")["id"].apply(lambda x: set(x.dropna().astype(int)))
>>> groups[47] == {1414, 1515} and groups[48] == {1616, 1717}
True

Usage with a routing engine

>>> import vroom

>>> problem_instance = vroom.Input(
...     servers={"auto": "valhalla1.openstreetmap.de:443"},
...     router=vroom._vroom.ROUTER.VALHALLA
... )

>>> problem_instance.add_vehicle(vroom.Vehicle(1, start=(2.44, 48.81), profile="auto"))

>>> problem_instance.add_job([
...     vroom.Job(1, location=(2.44, 48.81)),
...     vroom.Job(2, location=(2.46, 48.7)),
...     vroom.Job(3, location=(2.42, 48.6)),
... ])

>>> sol = problem_instance.solve(exploration_level=5, nb_threads=4)
>>> 3800 < sol.summary.duration < 4200
True

Installation

Pyvroom currently makes binaries for on macOS and Linux. There is also a Windows build that can be used, but it is somewhat experimental.

Installation of the pre-compiled releases should be as simple as:

pip install pyvroom

The current minimal requirements are as follows:

  • Python at least version 3.10.

  • Intel MacOS (or Rosetta2) at least version 15.0.

  • Apple Silicon MacOS at least version 15.0.

  • Windows on AMD64.

  • Linux on x86_64 and Aarch64 given glibc at least version 2.34.

Outside this it might be possible to build your own binaries.

Building from source

Building the source distributions requires:

  • Download the Pyvroom repository on you local machine:

    git clone --recurse-submodules https://github.com/VROOM-Project/pyvroom
  • Install the Python dependencies:

    pip install -r pyvroom/build-requirements.txt
  • Install asio headers, and openssl and crypto libraries and headers. For mac, this would be:

    brew install openssl@1.1
    brew install asio

    For RHEL:

    yum module enable mariadb-devel:10.3
    yum install -y openssl-devel asio

    For Musllinux:

    apk add asio-dev
    apk add openssl-dev
  • The installation can then be done with:

    pip install pyvroom/

Alternatively it is also possible to install the package from source using Conan. This is also likely the only option if installing on Windows.

To install using Conan, do the following:

cd pyvroom/
conan install --build=openssl --install-folder conan_build .

Documentation

The code is currently only documented with Pydoc. This means that the best way to learn Pyvroom for now is to either look at the source code or use dir() and help() to navigate the interface.

It is also useful to take a look at the VROOM API documentation. The interface there is mostly the same.

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

pyvroom-1.15.0.dev24.tar.gz (25.8 kB view details)

Uploaded Source

Built Distributions

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

pyvroom-1.15.0.dev24-cp314-cp314-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.14Windows x86-64

pyvroom-1.15.0.dev24-cp314-cp314-manylinux_2_34_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

pyvroom-1.15.0.dev24-cp314-cp314-manylinux_2_34_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ ARM64

pyvroom-1.15.0.dev24-cp314-cp314-macosx_15_0_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.14macOS 15.0+ x86-64

pyvroom-1.15.0.dev24-cp314-cp314-macosx_15_0_arm64.whl (3.9 MB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

pyvroom-1.15.0.dev24-cp313-cp313-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.13Windows x86-64

pyvroom-1.15.0.dev24-cp313-cp313-manylinux_2_34_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

pyvroom-1.15.0.dev24-cp313-cp313-manylinux_2_34_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ ARM64

pyvroom-1.15.0.dev24-cp313-cp313-macosx_15_0_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.13macOS 15.0+ x86-64

pyvroom-1.15.0.dev24-cp313-cp313-macosx_15_0_arm64.whl (3.9 MB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

pyvroom-1.15.0.dev24-cp312-cp312-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.12Windows x86-64

pyvroom-1.15.0.dev24-cp312-cp312-manylinux_2_34_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

pyvroom-1.15.0.dev24-cp312-cp312-manylinux_2_34_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ ARM64

pyvroom-1.15.0.dev24-cp312-cp312-macosx_15_0_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

pyvroom-1.15.0.dev24-cp312-cp312-macosx_15_0_arm64.whl (3.9 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

pyvroom-1.15.0.dev24-cp311-cp311-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.11Windows x86-64

pyvroom-1.15.0.dev24-cp311-cp311-manylinux_2_34_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

pyvroom-1.15.0.dev24-cp311-cp311-manylinux_2_34_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ ARM64

pyvroom-1.15.0.dev24-cp311-cp311-macosx_15_0_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.11macOS 15.0+ x86-64

pyvroom-1.15.0.dev24-cp311-cp311-macosx_15_0_arm64.whl (3.9 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

pyvroom-1.15.0.dev24-cp310-cp310-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.10Windows x86-64

pyvroom-1.15.0.dev24-cp310-cp310-manylinux_2_34_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

pyvroom-1.15.0.dev24-cp310-cp310-manylinux_2_34_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ ARM64

pyvroom-1.15.0.dev24-cp310-cp310-macosx_15_0_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.10macOS 15.0+ x86-64

pyvroom-1.15.0.dev24-cp310-cp310-macosx_15_0_arm64.whl (3.9 MB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

File details

Details for the file pyvroom-1.15.0.dev24.tar.gz.

File metadata

  • Download URL: pyvroom-1.15.0.dev24.tar.gz
  • Upload date:
  • Size: 25.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyvroom-1.15.0.dev24.tar.gz
Algorithm Hash digest
SHA256 2e71dca77af24e59f18971e77f2706cb4b4c6e35aeac3bf2e50959069a19a3a6
MD5 d851be3f2a3659468f9da7833347dd34
BLAKE2b-256 a9efce7cc7ed08188f947686d0ef1920f65ae3b043ba987c6f983da130d2bf04

See more details on using hashes here.

File details

Details for the file pyvroom-1.15.0.dev24-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for pyvroom-1.15.0.dev24-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 01f3907c491d8b7a37ae9fb9601339738df3692e535d57e77162dedc52529775
MD5 92cb8476547a34fa92df410f6b5d06b1
BLAKE2b-256 c858e1390a2401129532cf13c3e6f5b3379c1a21f173b858a4fafbb688c5179d

See more details on using hashes here.

File details

Details for the file pyvroom-1.15.0.dev24-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pyvroom-1.15.0.dev24-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 5598332e71da693db806e9afa7964e3beb928eac45debc04cee3802eff218774
MD5 acff6520e714a15a224813b9a0420c43
BLAKE2b-256 bca27e38b81cee713c540ef9650473aae1b6ce8089a71276dc6d0a148e16d949

See more details on using hashes here.

File details

Details for the file pyvroom-1.15.0.dev24-cp314-cp314-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for pyvroom-1.15.0.dev24-cp314-cp314-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 b751b3d319a27f8d26ba6b4197014058a9ee777e166796d89f094f436522756f
MD5 1b0e5bb2be5f551626345ee1bb6f9716
BLAKE2b-256 db4948932cbffc779fa1eee13b4e48ad9757a6809d62e8c95536a4c49eaf9f0c

See more details on using hashes here.

File details

Details for the file pyvroom-1.15.0.dev24-cp314-cp314-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pyvroom-1.15.0.dev24-cp314-cp314-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 8d06838f832fddd76b358b6961543f4d933e6f6125ca34b97e4938825cdde9a5
MD5 6197529c9aac0bcbaea8b70c96439ce4
BLAKE2b-256 4bbbaa6330c3e5e9f47cb3628e6eda3167fb1454cc23c34b150253677d82e5c9

See more details on using hashes here.

File details

Details for the file pyvroom-1.15.0.dev24-cp314-cp314-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyvroom-1.15.0.dev24-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 1dd4ec440944f258984163e55c6341fa48c93bdbc65af63dc99eaf64df996c4b
MD5 f8729015234e94187524cce39fb4ff2a
BLAKE2b-256 6acbd2d99197954ac79709b7fbf291aca8f85b68eb164e4d7f3bfd40f7e77f65

See more details on using hashes here.

File details

Details for the file pyvroom-1.15.0.dev24-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pyvroom-1.15.0.dev24-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 85137852bac5db91935df77242a869d66eeab17d7bd3d23731240aa628420aba
MD5 4612439de42f54cee6e03e02b229e31f
BLAKE2b-256 2ba962224b0ee1dffd7858b5b157c29b5bc8c31fb8c41fb7d27c8bc0dedc2349

See more details on using hashes here.

File details

Details for the file pyvroom-1.15.0.dev24-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pyvroom-1.15.0.dev24-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 8f40291a7a3488c8557104c6be704c3e5da17ac306f263f86e18c559368e131a
MD5 53d3db5c89b1273337945a3e6c54062a
BLAKE2b-256 c3669fe06e17e5fceb0e9891ecea4b87060ab680a381ff2d42061fbd102fb04a

See more details on using hashes here.

File details

Details for the file pyvroom-1.15.0.dev24-cp313-cp313-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for pyvroom-1.15.0.dev24-cp313-cp313-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 631d5f4860e7a92f5f1076f087374f07e16b4b4131e528707c7180df9b5d751f
MD5 51f85d4060e163b6af180ad9dd6ffbe4
BLAKE2b-256 59a0cc17ccfaaa545101e0ae436e1f29f25c3d4a078ebfb1c7f5ce68ea27708f

See more details on using hashes here.

File details

Details for the file pyvroom-1.15.0.dev24-cp313-cp313-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pyvroom-1.15.0.dev24-cp313-cp313-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 2be7e5f6f82bb2c5ac22019a2c6b7744a5c89a6299dbbc37620e0b8bfe1d785e
MD5 a65cfd91a2920445cc750538e82545f0
BLAKE2b-256 55b5b2449c7ac3f5e236a383bdc9999aaf07978a8a0a6caa2d094d42fc7ea00f

See more details on using hashes here.

File details

Details for the file pyvroom-1.15.0.dev24-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyvroom-1.15.0.dev24-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 8a09fcbb301e250cf4e4777bfebc57657429f3897496f126482ed4edcd3d7140
MD5 fae0c6f9f97713581d786c754bcd6ad2
BLAKE2b-256 5ac76045ed365f5453eee54f513b93b491832737448f2ab84b5235b124c231e6

See more details on using hashes here.

File details

Details for the file pyvroom-1.15.0.dev24-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pyvroom-1.15.0.dev24-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1d0972be202f99701e0b1bd772fef12614802324339dac405a389e044af36476
MD5 a14f003773b2047a1b708636930686eb
BLAKE2b-256 d1f511c0015cfef993265f112e2052fffc3bbf4801bc0f602ace1b24a6829d9a

See more details on using hashes here.

File details

Details for the file pyvroom-1.15.0.dev24-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pyvroom-1.15.0.dev24-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 80bc6ad1bbbe6df0891b1236b60a6cf2687948096a1af7cd8088eeb6715c64e9
MD5 1c6f3e6791eaf5929905de166fd33f49
BLAKE2b-256 bce6ee851146ef8d5bea950c4de3b79031e738b532ff224ee1780c5de22752d8

See more details on using hashes here.

File details

Details for the file pyvroom-1.15.0.dev24-cp312-cp312-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for pyvroom-1.15.0.dev24-cp312-cp312-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 c1436730c817e9785cf7756d0d73438231ba2f20d704f3934f3cd48b19df544b
MD5 34e5703483760d2efe835735c622f794
BLAKE2b-256 deee737d443ba410d7e47724347e1ca701cbd11af476e4f6581d41a6dc34179e

See more details on using hashes here.

File details

Details for the file pyvroom-1.15.0.dev24-cp312-cp312-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pyvroom-1.15.0.dev24-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 772cd51d65fe024d8d6e2447fe893cee8d891fe8e79e499fcabd9f6635c7a95e
MD5 31362f1fc1312cd8a529dfe6d9b9a4be
BLAKE2b-256 657d4c59bc7b6ba6b03c77b04274404c1ff8366bf78ba78c7b542460ff4ee54a

See more details on using hashes here.

File details

Details for the file pyvroom-1.15.0.dev24-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyvroom-1.15.0.dev24-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 c9379c71e34261ee1c9e26813781fa3d8b061914d3b1bb40785bfd92ef9807bf
MD5 45e027200e64c1df82e85dcdc623524e
BLAKE2b-256 f020da40fb3331c4c179d3b7f512cfc7f65332672d7ad5d2798d82bb1369f494

See more details on using hashes here.

File details

Details for the file pyvroom-1.15.0.dev24-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pyvroom-1.15.0.dev24-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 cb73cde380e182ec15c7342b96c22ef32067203d4ce1a56759d3ffb2a89a3412
MD5 18833529114db56ecff4bf97af447e8d
BLAKE2b-256 38339450950f0e0b7c01373a25542bb734c10a43ed09d3b2f82546912fb48644

See more details on using hashes here.

File details

Details for the file pyvroom-1.15.0.dev24-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pyvroom-1.15.0.dev24-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 093c6427f24896fb427e1e1801c681d3ce83949c47dafa146b17c3ec414daa96
MD5 d161dc1daee2d4760cdb700aeb53770d
BLAKE2b-256 cf23206d3ba51605e3c1aaeda3fbe9048cf58b864e61480a9f2f126b5cb92bee

See more details on using hashes here.

File details

Details for the file pyvroom-1.15.0.dev24-cp311-cp311-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for pyvroom-1.15.0.dev24-cp311-cp311-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 922c888857cfc2dc697d6184a0aa011105c74d1cd441525d6c5e35fc87d293ff
MD5 24dbb900516138e9c56ba3673c028486
BLAKE2b-256 1d2c7672921dcacd3085ac3547458f2b009939a936e7159822af6fa87f24677b

See more details on using hashes here.

File details

Details for the file pyvroom-1.15.0.dev24-cp311-cp311-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pyvroom-1.15.0.dev24-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 87ac6ac8621e655896bb67fd3e642bd741d46c2ded77c2a1f4c2b987bdd7664b
MD5 3b19691dc980da5d6919121f12f35e79
BLAKE2b-256 46f06412070857cd9c50fa4e6170e8de82c4d2754dd6532670f82d6764129040

See more details on using hashes here.

File details

Details for the file pyvroom-1.15.0.dev24-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyvroom-1.15.0.dev24-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 7656167a32af8a42f4233b3234c6ca01acff9ef89ddebaf2e51904238b69196a
MD5 2e38ab014515145f5841834a1b73661b
BLAKE2b-256 0e0d17d9578009bb4d9254cd0c4adaac6fbd98a8e4d50f8be773bd0ca9a3ba62

See more details on using hashes here.

File details

Details for the file pyvroom-1.15.0.dev24-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pyvroom-1.15.0.dev24-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 df0fa05516a352f89499e3b07598622a80ed841ad5b5b49144c3850576456f0d
MD5 f6e213afc5a969f1c9e2f0ccb81492ac
BLAKE2b-256 3d7e3c239e9aacce39cbc71c703e3a4e0e4b91f192d26f9478ed1974128854bb

See more details on using hashes here.

File details

Details for the file pyvroom-1.15.0.dev24-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pyvroom-1.15.0.dev24-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 ce290dd6fd6d6d40c241d79a3e454abaa315141d7119e365ac3cce7551a260dd
MD5 512ad5f9c77bd5ae9fff1c67d44b04f5
BLAKE2b-256 9148f8d3b8f50013535f0bc66634b5c1eec21bb13723522002aadf300123dae2

See more details on using hashes here.

File details

Details for the file pyvroom-1.15.0.dev24-cp310-cp310-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for pyvroom-1.15.0.dev24-cp310-cp310-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 ce55256e17e956519d597f0e16544d94474de2d2b6deb41e818443973653c607
MD5 eee768e6e31dfb5ffe8bf36f399f15e3
BLAKE2b-256 e3602e5aa531f1f200a6bbeb6e0c62e8a75ab714313c97ed51b11d5fcd865135

See more details on using hashes here.

File details

Details for the file pyvroom-1.15.0.dev24-cp310-cp310-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pyvroom-1.15.0.dev24-cp310-cp310-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 ba8b3861bbf131bfebaa00eee23af9d96b5c24a6b9554b674cfef6028992e21a
MD5 cd66e9c5c3ecfcc002de849367690790
BLAKE2b-256 1e5506ab7a25c9d5c6264a1cea8f73cf76494e527ae13b4041dc326a22280c69

See more details on using hashes here.

File details

Details for the file pyvroom-1.15.0.dev24-cp310-cp310-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyvroom-1.15.0.dev24-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 f783813e350e03ca54811c69a33da09ab30d1cccc2508f312fed8457b584e53a
MD5 49616560ea512453106c945906c20172
BLAKE2b-256 52bc26f7b36e57e155957854fbeb65f63857b04703fdf0648877632feeb6eebf

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