Skip to content
An active monitoring software to detect failures before your customers do.
Go Shell Other
Branch: master
Clone or download
manugarg Piper import (#289)
* Add Pub/Sub message resource type  (pubsub_messages) to RDS.

We plan to use pub/sub for lameduck.

Implementation is very similar to other resource types. Few details specific to pubsub_messages:

1. Pub/sub Subscriber name is provided in the config and if it doesn't exist already, we create one. We'll mostly use {topic_name}-{local_hostname} for subscriber name. Subscriber will expire in 1 day if there is no activity on it. That will take care of the cleanup of the subscribers.

2. On startup, if subscriber exists already we seek back by 1 hour (default, can be overridden through config). We don't lose any data on RDS instance restart.

Design: http://go/cloudprober-lameduck-redesign
PiperOrigin-RevId: 274224738
Latest commit b58677b Oct 12, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmd Add an option to set and get cloudprober version through runconfig: Dec 6, 2018
config Provide a mechanism to find the local RDS server and if rds_server_ad… Sep 4, 2019
docs Add documentation for HTTP and UDP built-in servers (#288) Oct 12, 2019
examples Update protobufs' Go code. Jul 23, 2019
logger Raise MaxLogEntrySize to 100KB (from 4KB). Apr 26, 2019
message Update protobufs' Go code. Jul 23, 2019
metrics Update protobufs' Go code. Jul 23, 2019
prober Provide a mechanism to find the local RDS server and if rds_server_ad… Sep 4, 2019
probes Update protobufs' Go code. Sep 14, 2019
servers Update protobufs' Go code. Jul 23, 2019
surfacers Update protobufs' Go code. Oct 9, 2019
sysvars Provide a way to access instance labels in cloudprober config. Jul 26, 2019
targets Piper import (#289) Oct 13, 2019
tools Set logger prefix to CLOUDPROBER_LOG_PREFIX env variable is available. Mar 18, 2019
validators Update protobufs' Go code. Jul 23, 2019
web Few more minor changes for the status page: Dec 13, 2018
.gitignore Docs fixes (Hugo) Mar 29, 2018
.travis.yml Up Go's version to 1.11 Feb 14, 2019 Update Apr 25, 2018
Dockerfile Set ENTRYPOINT to /cloudprober in Dockerfile. Mar 30, 2018
LICENSE Remove the copyright line that was wrongly copied. Apr 28, 2018
Makefile Makefile changes. Mar 30, 2018 Update slack link. Aug 2, 2019
cloudprober.go Add TLS based security option to cloudprober's gRPC server. Jul 17, 2019

Build Status Build status Docker Pulls


Cloudprober is a monitoring software that makes it super-easy to monitor availability and performance of various components of your system. Cloudprober employs the "active" monitoring model. It runs probes against (or on) your components to verify that they are working as expected. For example, it can run a probe to verify that your frontends can reach your backends. Similarly it can run a probe to verify that your in-Cloud VMs can actually reach your on-premise systems. This kind of monitoring makes it possible to monitor your systems' interfaces regardless of the implementation and helps you quickly pin down what's broken in your system.

Cloudprober Use Case


  • Integration with open source monitoring stack of Prometheus and Grafana. Cloudprober exports probe results as counter based metrics that work well with Prometheus and Grafana.
  • Automated target discovery for Cloud targets. GCP is supported out-of-the-box; other Cloud providers can be added easily.
  • Integration with StackDriver. If configured, Cloudprober exports probe results to StackDriver as custom metrics.
  • Built-in implementations for the most common probe types: PING, HTTP, UDP, DNS.
  • Arbitrary, complex probes can be run through the external probe type. For example, you could write a simple script to insert and delete a row in your database, and execute this script through the 'EXTERNAL' probe type.
  • Fast and efficient ping prober implementation that allows probing thousands of hosts with minimal resources.
  • Strong focus on ease of deployment. Cloudprober is written entirely in Go and compiles into a static binary. It can be easily deployed through docker containers. Thanks to the automated target discovery, there is usually no need to re-deploy or re-configure cloudprober in response to the most of the changes.
  • Go templates based config file with substitutions for standard variables like project, zone, instance names etc allows for using same config file across the fleet.
  • Low footprint. Cloudprober docker image is small, containing just the statically compiled binary and it takes very little CPU and RAM to run even a large number of probes.
  • Extensible architecture. Cloudprober can be easily extended along most of the dimensions. Adding support for other Cloud targets, monitoring systems (e.g. Graphite, Amazon Cloudwatch) and even a new probe type, is straight-forward and fairly easy.

Visit to get started with Cloudprober.

We'd love to hear your feedback. If you're using Cloudprober, would you please mind sharing how you use it by adding a comment to the issue #123. It will be a great help in planning Cloudprober's future progression.

Join Cloudprober Slack or mailing list for questions and discussion about Cloudprober.

You can’t perform that action at this time.