Skip to main content

Physics-inspired waterflood performance modeling

Project description

pywaterflood: Waterflood Connectivity Analysis

PyPI version Conda PyPI - Downloads

Documentation Status DOI status

License codecov pre-commit

pywaterflood provides tools for capacitance resistance modeling, a physics-inspired model for estimating well connectivity between injectors and producers or producers and other producers. It is useful for analyzing and optimizing waterfloods, CO2 floods, and geothermal projects.

Overview

A literature review has been written by Holanda, Gildin, Jensen, Lake and Kabir, entitled "A State-of-the-Art Literature Review on Capacitance Resistance Models for Reservoir Characterization and Performance Forecasting." They describe CRM as the following:

The Capacitance Resistance Model (CRM) is a fast way for modeling and simulating gas and waterflooding recovery processes, making it a useful tool for improving flood management in real-time. CRM is an input-output and material balance-based model, and requires only injection and production history, which are the most readily available data gathered throughout the production life of a reservoir.

There are several CRM versions (see Holanda et al., 2018). Through passing different parameters when creating the CRM instance, you can choose between CRMIP, where a unique time constant is used for each injector-producer pair, and CRMP, where a unique time constant is used for each producer. CRMIP is more reliable given sufficient data. With CRMP, you can reduce the number of unknowns, which is useful if available production data is limited.

Getting started

You can install this package from PyPI with the line

pip install pywaterflood

Or from conda/mamba with

conda install -c conda-forge pywaterflood

Then, read the docs to learn more. If you want to try it out online before installing it on your computer, you can run this google colab notebook.

A simple example

import numpy as np
import pandas as pd
from pywaterflood import CRM

gh_url = "https://raw.githubusercontent.com/frank1010111/pywaterflood/master/testing/data/"
prod = pd.read_csv(gh_url + 'production.csv', header=None).values
inj = pd.read_csv(gh_url + "injection.csv", header=None).values
time = pd.read_csv(gh_url + "time.csv", header=None).values[:,0]

crm = CRM(tau_selection='per-pair', constraints='up-to one')
crm.fit(prod, inj, time)
q_hat = crm.predict()
residuals = crm.residual()

print("MAE by well:", np.round(np.abs(residuals).mean(axis=0), 2), "barrels")
print("MAPE by well:", np.round(np.mean(np.abs(residuals) / prod * 100, axis=0), 2), "percent")
print("RMSE by well:", np.round(np.sqrt(np.sum(residuals**2, axis=0)), 2))

Contributing

Contributions are extremely welcome! Have an issue to report? Want to offer new features or documentation? Check out the contribution guide to help you set up. Discussions could start anytime at the discussions section.

pywaterflood uses Rust for computation and python as the high level interface. Luckily, maturin is a very convenient tool for working with mixed Python-Rust projects.

Running tests, building the package, linting to conform to code standards, and building the documentation are all handled by nox.

Running tests

The guide for getting started, has instructions for installing rust, python, and nox. At that point, both the lint and unit test sessions are run with the command

nox

License

This software library is released under a BSD 2-Clause License.

Acknowledgments

Capacitance resistance modeling would not have caught on without the persistence of two professors: Larry Lake and Jerry Jensen. Both of these gentlemen generously helped answer questions in the development of this library. Research funding for this project came from the Department of Energy grant "Optimizing Sweep based on Geochemical and Reservoir Characterization of the Residual Oil Zone of Hess Seminole Unit" (PI: Ian Duncan) and the State of Texas Advanced Resource Recovery program (PI: William Ambrose). Further development is supported by Penn State faculty promotion funds and volunteer time.

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

pywaterflood-0.3.4.tar.gz (1.1 MB view details)

Uploaded Source

Built Distributions

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

pywaterflood-0.3.4-pp310-pypy310_pp73-win_amd64.whl (178.0 kB view details)

Uploaded PyPyWindows x86-64

pywaterflood-0.3.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (311.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pywaterflood-0.3.4-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (325.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

pywaterflood-0.3.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl (272.2 kB view details)

Uploaded PyPymacOS 11.0+ ARM64

pywaterflood-0.3.4-pp310-pypy310_pp73-macosx_10_15_x86_64.whl (280.8 kB view details)

Uploaded PyPymacOS 10.15+ x86-64

pywaterflood-0.3.4-pp39-pypy39_pp73-win_amd64.whl (177.9 kB view details)

Uploaded PyPyWindows x86-64

pywaterflood-0.3.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (311.4 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pywaterflood-0.3.4-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (325.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

pywaterflood-0.3.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl (272.0 kB view details)

Uploaded PyPymacOS 11.0+ ARM64

pywaterflood-0.3.4-pp39-pypy39_pp73-macosx_10_15_x86_64.whl (280.2 kB view details)

Uploaded PyPymacOS 10.15+ x86-64

pywaterflood-0.3.4-cp37-abi3-win_amd64.whl (180.2 kB view details)

Uploaded CPython 3.7+Windows x86-64

pywaterflood-0.3.4-cp37-abi3-win32.whl (168.6 kB view details)

Uploaded CPython 3.7+Windows x86

pywaterflood-0.3.4-cp37-abi3-musllinux_1_2_x86_64.whl (375.7 kB view details)

Uploaded CPython 3.7+musllinux: musl 1.2+ x86-64

pywaterflood-0.3.4-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (314.6 kB view details)

Uploaded CPython 3.7+manylinux: glibc 2.17+ x86-64

pywaterflood-0.3.4-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (329.2 kB view details)

Uploaded CPython 3.7+manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

pywaterflood-0.3.4-cp37-abi3-macosx_11_0_arm64.whl (274.2 kB view details)

Uploaded CPython 3.7+macOS 11.0+ ARM64

pywaterflood-0.3.4-cp37-abi3-macosx_10_9_x86_64.whl (283.3 kB view details)

Uploaded CPython 3.7+macOS 10.9+ x86-64

File details

Details for the file pywaterflood-0.3.4.tar.gz.

File metadata

  • Download URL: pywaterflood-0.3.4.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pywaterflood-0.3.4.tar.gz
Algorithm Hash digest
SHA256 e8a86bc32ec58b4ae162627c781a83a3ed5088d688fbb540b74702eae9ce46d6
MD5 2c8a1e18e4a20a14bebd4fe35a06e150
BLAKE2b-256 d21b2125b1bf126f6f71e78fd1d543c5780b104321cf44365522c6c14768b43a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pywaterflood-0.3.4.tar.gz:

Publisher: publish-to-pypi.yml on frank1010111/pywaterflood

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

File details

Details for the file pywaterflood-0.3.4-pp310-pypy310_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for pywaterflood-0.3.4-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 a323171aca50c9ab4ad21797503716445d5de8b88de73ce9aacb2f38840f1625
MD5 b1ca45eced1ef9ed8349e362b2762771
BLAKE2b-256 fa5c4de42171f5b392d1636bb0dca4f565bb716e224a5590145e6bfaebd039e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pywaterflood-0.3.4-pp310-pypy310_pp73-win_amd64.whl:

Publisher: publish-to-pypi.yml on frank1010111/pywaterflood

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

File details

Details for the file pywaterflood-0.3.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pywaterflood-0.3.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 297995011455c98a2529b4f3f9a5c29fd8825038d9d9c0b88d4177a66612cc69
MD5 68f77aeeb95eedc4fc24cd2b4efb9434
BLAKE2b-256 22600d22b2ff1c8f0bc5f74e572a40b0b214f05e2024b3c165969e1e24eeb9b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pywaterflood-0.3.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-to-pypi.yml on frank1010111/pywaterflood

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

File details

Details for the file pywaterflood-0.3.4-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pywaterflood-0.3.4-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ef295732b2eed3803d00ec22586e924b435637fde7f0432b8f95ee4d474a6e80
MD5 f1c63fbfa7767c7cae5d83cfb08f2aa5
BLAKE2b-256 54e9b294cc1dd483bcc2d8f1c69a43f3500d5fb1c38f8339d3e120819a304b91

See more details on using hashes here.

Provenance

The following attestation bundles were made for pywaterflood-0.3.4-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: publish-to-pypi.yml on frank1010111/pywaterflood

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

File details

Details for the file pywaterflood-0.3.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pywaterflood-0.3.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 045c5fb8afce021ddd336b62e257d841ec5a2559d8b4c8994f60a5390bc3d408
MD5 156a2c3fe847ca6bb3c615697edfb695
BLAKE2b-256 093004368128388ce84634cae986769d7ecf330a685d7fc230b7463df10407dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for pywaterflood-0.3.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl:

Publisher: publish-to-pypi.yml on frank1010111/pywaterflood

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

File details

Details for the file pywaterflood-0.3.4-pp310-pypy310_pp73-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pywaterflood-0.3.4-pp310-pypy310_pp73-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 e4e16d4a1130b833b3c3d5f0751be0be1db1fd567df6f6f1fa774455a78eb19f
MD5 dac3bf3792ad9aebdbae65433043ec30
BLAKE2b-256 122a0f1579d9ff2637bbe6dc4d07a6b4bee90a9e608dde4facef0c97db23c51e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pywaterflood-0.3.4-pp310-pypy310_pp73-macosx_10_15_x86_64.whl:

Publisher: publish-to-pypi.yml on frank1010111/pywaterflood

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

File details

Details for the file pywaterflood-0.3.4-pp39-pypy39_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for pywaterflood-0.3.4-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 e9eadb4e0016a47800a1b1f3f91f63828567a3e37fed78969e985d47cfdc22de
MD5 6797004104ffe3691b20a6f979df9af3
BLAKE2b-256 e33394ddb6c5517a4b11f142b79b3de7d79a4e6dac0873178d9f6b63e532fa1c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pywaterflood-0.3.4-pp39-pypy39_pp73-win_amd64.whl:

Publisher: publish-to-pypi.yml on frank1010111/pywaterflood

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

File details

Details for the file pywaterflood-0.3.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pywaterflood-0.3.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fbdfb3b0832845840cf77ba0707cae9e50c2b1a09f8ff83563cbc49516690e1d
MD5 72b30a2323dabfb0a53f3380c2585372
BLAKE2b-256 bb66502096761072ec65afb603edc0b7cdae2b0b83c950d0a1b08a41aaf433a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pywaterflood-0.3.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-to-pypi.yml on frank1010111/pywaterflood

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

File details

Details for the file pywaterflood-0.3.4-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pywaterflood-0.3.4-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 cf4796cbe9197295b8f0fa2d5d0467d0a570865ee942d7267027601a6515e881
MD5 bac3fe8eae2b24d876f2917792654dbe
BLAKE2b-256 db58661a65f5f02c561804643ef97376b984dba3e5571903866836f0e8e61c7c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pywaterflood-0.3.4-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: publish-to-pypi.yml on frank1010111/pywaterflood

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

File details

Details for the file pywaterflood-0.3.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pywaterflood-0.3.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cfbf25178e926daa69fb957f2c3c8cd3edaed3a5b9f5723a63e717264c32a6b8
MD5 2687ed560dfc74c3463bcf40dcd22a48
BLAKE2b-256 53c4fce2d5e1128fef0d3ba40635388bc744573039897f0525b9f5cebd109a23

See more details on using hashes here.

Provenance

The following attestation bundles were made for pywaterflood-0.3.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl:

Publisher: publish-to-pypi.yml on frank1010111/pywaterflood

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

File details

Details for the file pywaterflood-0.3.4-pp39-pypy39_pp73-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pywaterflood-0.3.4-pp39-pypy39_pp73-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 3ec657f056214d09f252bdc929903bf331ea57280f91f3d43abdc2b6b20da958
MD5 201e9c26598c4a9cb398bc84a7e6b84c
BLAKE2b-256 5455d2a7b721f4db816edc61196a61cd28fda1029e50763ed7d5d5a444cdec88

See more details on using hashes here.

Provenance

The following attestation bundles were made for pywaterflood-0.3.4-pp39-pypy39_pp73-macosx_10_15_x86_64.whl:

Publisher: publish-to-pypi.yml on frank1010111/pywaterflood

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

File details

Details for the file pywaterflood-0.3.4-cp37-abi3-win_amd64.whl.

File metadata

  • Download URL: pywaterflood-0.3.4-cp37-abi3-win_amd64.whl
  • Upload date:
  • Size: 180.2 kB
  • Tags: CPython 3.7+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pywaterflood-0.3.4-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 58a1ebc6e25b78bbb0ed0b04c3414a7f4020ecd2d4bc8c8f467df8bb35dfa846
MD5 6d89a74002cee2f4e3941796ff46ff66
BLAKE2b-256 0ec073de03dfcb55d532f570dd937b62df11467f48109cd3104555a7bc5309c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pywaterflood-0.3.4-cp37-abi3-win_amd64.whl:

Publisher: publish-to-pypi.yml on frank1010111/pywaterflood

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

File details

Details for the file pywaterflood-0.3.4-cp37-abi3-win32.whl.

File metadata

  • Download URL: pywaterflood-0.3.4-cp37-abi3-win32.whl
  • Upload date:
  • Size: 168.6 kB
  • Tags: CPython 3.7+, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pywaterflood-0.3.4-cp37-abi3-win32.whl
Algorithm Hash digest
SHA256 3f4edf06c6eb6dbbc0cdf5f5def0279aea4c19c80fee8e9c7bb2e53173612e85
MD5 53e6cc4905af8e60ec19e796422c91e1
BLAKE2b-256 37b30cdd9cd4f70e431c8fe1264e85aaf703c748641980f4d445ed173d43c3c6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pywaterflood-0.3.4-cp37-abi3-win32.whl:

Publisher: publish-to-pypi.yml on frank1010111/pywaterflood

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

File details

Details for the file pywaterflood-0.3.4-cp37-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pywaterflood-0.3.4-cp37-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e017f73c137b24269892ae1f882dec171adb6098ca5a10415971994e353e248a
MD5 4bd1138d7e20c0e0d0edd5005a1d2e2e
BLAKE2b-256 79967da8dcd825b1faee9a3cb5d79e4d9b0bc0ce10209b2a5c107515e68eb522

See more details on using hashes here.

Provenance

The following attestation bundles were made for pywaterflood-0.3.4-cp37-abi3-musllinux_1_2_x86_64.whl:

Publisher: publish-to-pypi.yml on frank1010111/pywaterflood

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

File details

Details for the file pywaterflood-0.3.4-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pywaterflood-0.3.4-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 43df6e3a8f7b6f4fc7eb88915523425f50d9092dcf37e5372977ea0e525c51c7
MD5 2131911f5c82909037b03fd35978dda1
BLAKE2b-256 1cb2f4b10fdf5eb95d15d5f2e95ab2a26bcd75cbbbc68114d91c851618dc8059

See more details on using hashes here.

Provenance

The following attestation bundles were made for pywaterflood-0.3.4-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-to-pypi.yml on frank1010111/pywaterflood

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

File details

Details for the file pywaterflood-0.3.4-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pywaterflood-0.3.4-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 15d405fa827444d4d2dcfbe925264f8d9047507d92108d664a79aaf1cb90e260
MD5 be5c611970c9df5df6add0356dc6f045
BLAKE2b-256 84a28a8c761b48b22d508986988e53c05dc0b81a727b0309283b2959195b0da9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pywaterflood-0.3.4-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: publish-to-pypi.yml on frank1010111/pywaterflood

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

File details

Details for the file pywaterflood-0.3.4-cp37-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pywaterflood-0.3.4-cp37-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ede2ce91c2ef13a4af5a46fe2c5c422e74dfba5779479dd69bc63d57eb13c0a1
MD5 a1b4f8cd39c32a6ea548d3cbb3f9be16
BLAKE2b-256 3b1610a647fb3be5f766714595514a5a0df7d1482b6c8715675cc4edd0c25892

See more details on using hashes here.

Provenance

The following attestation bundles were made for pywaterflood-0.3.4-cp37-abi3-macosx_11_0_arm64.whl:

Publisher: publish-to-pypi.yml on frank1010111/pywaterflood

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

File details

Details for the file pywaterflood-0.3.4-cp37-abi3-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pywaterflood-0.3.4-cp37-abi3-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 eb43235bdb897dec78ebf9a22f8bb08ca7d3aecc1bf442eeda0c771977295132
MD5 296ca0d364a1fdd1c9618d81b21a7fd9
BLAKE2b-256 b59d50a7d0eedabf0a7fcfc255c86b13ca54c0f48ffd65505b825b8ec6ec4154

See more details on using hashes here.

Provenance

The following attestation bundles were made for pywaterflood-0.3.4-cp37-abi3-macosx_10_9_x86_64.whl:

Publisher: publish-to-pypi.yml on frank1010111/pywaterflood

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

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