Categorygithub.com/yext/cloudprober
modulepackage
0.10.1
Repository: https://github.com/yext/cloudprober.git
Documentation: pkg.go.dev

# README

Build
Status Build status

Cloudprober

cloudprober.org

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

Features

  • 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 cloudprober.org 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 Group for discussion and release announcements.

# Packages

Binary cloudprober is a tool for running a set of probes and metric surfacers on a GCE VM.
Package config provides parser for cloudprober configs.
No description provided by the author
Package logger provides a logger that logs to Google Cloud Logging.
Package message implements wrappers for sending and receiving messages with sequence numbers and timestamps.
Package metrics implements data types for probes generated data.
Package probes provides an interface to initialize probes using prober config.
Package servers provides an interface to initialize cloudprober servers using servers config.
Package surfacers is the base package for creating Surfacer objects that are used for writing metics data to different monitoring services.
Package sysvars implements a system variables exporter.
Package targets provides the means to list and resolve targets for probers in the cloudprober framework.
Package validators provides an entrypoint for the cloudprober's validators framework.
Package web provides web interface for cloudprober.

# Functions

GetConfig returns the prober config.
GetInfo returns information on all the probes, servers and surfacers.
InitFromConfig initializes Cloudprober using the provided config.
Start starts a previously initialized Cloudprober.

# Constants

Constants defining the default server port.
Constants defining the default server port.

# Structs

Prober represents a collection of probes where each probe implements the Probe interface.